Forum Replies Created
-
AuthorPosts
-
Thanks so much for your help. I am able to pull the file with nodes on MAX site.
Thank you so much! That definitely helps a lot.
It works, thank you so much for the help!
When I tried to upload a test.txt file from JupyterHub environment to node1, I got an error :
Exception: cannot unpack non-iterable SFTPAttributes object
Here is the script I run:
try: node1 = slice.get_node(name = node1_name) stdout, stderr = node1.upload_file('/home/fabric/work/test.txt', 'test.txt') except Exception as e: print(f"Exception: {e}")
If I want to upload file from JupyterHub environment, what the local path should I use?
Thank you so much for the information!
We run
iperf
command to test the transfer speed between Fabric nodes with L2 network connection.
Here are test results:- To transfer 19.8 GBytes file, the speed between nodes is 17.0 Gbits/sec at the same UTAH site.
- To transfer 870 MBytes file, the speed between nodes is 729 Mbits/sec at two different sites, UTAH and STAR respectively.
We found that the second test run is much lower than the first test. Is it because the size of the file or other factors.
This is the IP information of node 1:
Management IP : 129.114.110.73
ubuntu@8a2a14e6-6f5d-4c4e-ade1-2be3bfcb39d1-node1:~$ ip add list 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc fq_codel state UP group default qlen 1000 link/ether fa:16:3e:e0:93:d9 brd ff:ff:ff:ff:ff:ff inet 10.20.5.243/23 brd 10.20.5.255 scope global dynamic ens3 valid_lft 83194sec preferred_lft 83194sec inet6 fe80::f816:3eff:fee0:93d9/64 scope link valid_lft forever preferred_lft forever 3: ens7: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 0e:39:e8:53:0d:f9 brd ff:ff:ff:ff:ff:ff 4: ens8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 0e:bd:97:98:24:91 brd ff:ff:ff:ff:ff:ff
This is the IP information of node 2:
Management IP : 2001:400:a100:3030:f816:3eff:fe7b:f006
ubuntu@64a59517-0fd2-4800-8973-d74edfeb2932-node2:~$ ip add list 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc fq_codel state UP group default qlen 1000 link/ether fa:16:3e:7b:f0:06 brd ff:ff:ff:ff:ff:ff inet 10.20.4.203/23 brd 10.20.5.255 scope global dynamic ens3 valid_lft 83292sec preferred_lft 83292sec inet6 2001:400:a100:3030:f816:3eff:fe7b:f006/64 scope global dynamic mngtmpaddr noprefixroute valid_lft 86331sec preferred_lft 14331sec inet6 fe80::f816:3eff:fe7b:f006/64 scope link valid_lft forever preferred_lft forever 3: ens7: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 12:5f:51:23:af:fa brd ff:ff:ff:ff:ff:ff 4: ens8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 12:7d:49:e2:f1:bb brd ff:ff:ff:ff:ff:ff
Hello Paul,
Much appreciate the example you provided above, I have created a slice based on that. The slice can be created successfully. However, when I ssh to the node terminal, I created ndn face and route based on Mac address between node 1 and node 2 (these two nodes are at different sites, node 1 is at ‘TACC’ and node 2 is at ‘STAR’. Then I tested with ndnserverping and ndnping, I got a timeout error. Then, I run
ping -c 4 <node1 IP address>
, still the data cannot pass with error informationDestination Host Unreachable
.
The nodes at the same site are able to receive interests on layer 2 level by ndnping. Therefore, I was wondering if there was any configuration that I missed when nodes were created across the sites.Here is how we set up face and route, and the error information:
ubuntu@251f45cd-65fc-4232-970a-751e22f774be-node2:~$ nfdc face create remote ether://[fa:16:3e:71:6d:89] local dev://ens3 face-created id=265 local=dev://ens3 remote=ether://[fa:16:3e:71:6d:89] persistency=persistent reliability=off congestion-marking=off congestion-marking-interval=100ms default-congestion-threshold=65536B mtu=8800 ubuntu@251f45cd-65fc-4232-970a-751e22f774be-node2:~$ nfdc route add /A ether://[fa:16:3e:71:6d:89] route-add-accepted prefix=/A nexthop=265 origin=static cost=0 flags=child-inherit expires=never
ubuntu@251f45cd-65fc-4232-970a-751e22f774be-node2:~$ ndnping -c 4 /A PING /A timeout from /A: seq=15948254377564552323 timeout from /A: seq=15948254377564552324 timeout from /A: seq=15948254377564552325 timeout from /A: seq=15948254377564552326 --- /A ping statistics --- 4 packets transmitted, 0 received, 0 nacked, 100% lost, 0% nacked, time 0 ms
Thanks,
Xusheng- This reply was modified 2 years, 9 months ago by Xusheng Ai.
- This reply was modified 2 years, 9 months ago by Xusheng Ai.
Hello Brandon,
Thanks for the information. However, my script didn’t work out with
net1 = slice.add_l2network(name=network_name, interfaces=[iface1, iface2, iface3, iface4, iface5])
. I was wondering if you could look the error information I have :Slice Fail: Invalid Network Service: Networks are limited to 2 unique sites. Site requested: {'STAR', 'UTAH'}
Here is how I set the parameters:
slice_name = 'Hydra_L2' site1 = 'UTAH' site2 = 'STAR' node1_name = 'Node1' node2_name = 'Node2' node3_name = 'Node3' node4_name = 'Node4' node5_name = 'Node5' network_name= 'net1' node1_nic_name = 'nic1' node2_nic_name = 'nic2' node3_nic_name = 'nic3' node4_nic_name = 'nic4' node5_nic_name = 'nic5' image = 'default_ubuntu_20' cores = 2 ram = 8 disk = 20
try: #Create Slice slice = fablib.new_slice(name=slice_name) # Node1 node1 = slice.add_node(name=node1_name, site=site1) node1.set_capacities(cores=cores, ram=ram, disk=disk) node1.set_image(image) iface1 = node1.add_component(model='NIC_Basic', name=node1_nic_name).get_interfaces()[0] # Node2 node2 = slice.add_node(name=node2_name, site=site1) node2.set_capacities(cores=cores, ram=ram, disk=disk) node2.set_image(image) iface2 = node2.add_component(model='NIC_Basic', name=node2_nic_name).get_interfaces()[0] # Node3 node3 = slice.add_node(name=node3_name, site=site1) node3.set_capacities(cores=cores, ram=ram, disk=disk) node3.set_image(image) iface3 = node3.add_component(model='NIC_Basic', name=node3_nic_name).get_interfaces()[0] # Node4 node4 = slice.add_node(name=node4_name, site=site2) node4.set_capacities(cores=cores, ram=ram, disk=disk) node4.set_image(image) iface4 = node4.add_component(model='NIC_Basic', name=node4_nic_name).get_interfaces()[0] # Node5 node5 = slice.add_node(name=node5_name, site=site2) node5.set_capacities(cores=cores, ram=ram, disk=disk) node5.set_image(image) iface5 = node5.add_component(model='NIC_Basic', name=node5_nic_name).get_interfaces()[0] # Network net1 = slice.add_l2network(name=network_name, interfaces=[iface1, iface2, iface3, iface4, iface5]) #Submit Slice Request slice.submit(progress=True) except Exception as e: print(f"Slice Fail: {e}")
Thanks for the help
Thanks so much for the clarification.
Hello Paul,
Thanks for the information. I’m able to run command
docker pull registry.ipv6.docker.com/<image name>
on the node I created. So one possible way is that I could rundocker run <my image>
to get the VM on that node?In addition, I was wondering if we could set
node_name = 'Node1'
image = '<my image>'
when we configure Experiment Parameters of a slice.Thanks,
Xusheng- This reply was modified 2 years, 9 months ago by Xusheng Ai.
Sorry that I didn’t make it clear.
Boot nodes and then find the IPv6 management IP works for us. I was wondering how could we request an automatic IPv6 for the nodes. Because when I created the slice on some sites like UATH, the nodes’ management IP type is IPv6, but on TACC the nodes’ management IP type is IPv4. Does it mean that TACC site is not support IPv6?Thanks for the information,
Xusheng
I found the jupyter example on the Github about how to renew the slice. However, when I run the command, the Lease End didn’t change.
# renew import datetime #Set end host to now plus 1 day end_date = (datetime.datetime.now() + datetime.timedelta(days=6)).strftime("%Y-%m-%d %H:%M:%S") print(end_date) try: slice = fablib.get_slice(name=slice_name) slice.renew(end_date) except Exception as e: print(f"Get Slices Fail: {e}") traceback.print_exc()
Here is the end_date : 2022-03-16 00:12:32
#check new days try: slice = fablib.get_slice(name=slice_name) print(f"Lease End : {slice.get_lease_end()}") except Exception as e: print(f"Fail: {e}") traceback.print_exc()
The Lease End is still two days after : 2022-03-11 00:09:50
- This reply was modified 2 years, 9 months ago by Xusheng Ai.
sorry to post the topic twice due to unstable networking, please feel free to delete one of these.
-
AuthorPosts