1. Xusheng Ai

Xusheng Ai

Forum Replies Created

Viewing 15 posts - 31 through 45 (of 54 total)
  • Author
    Posts
  • in reply to: What is the node storage class –NVME/SSD? #1758
    Xusheng Ai
    Participant

      Thank you so much! That definitely helps a lot.

      in reply to: Upload local files to fabric nodes #1638
      Xusheng Ai
      Participant

        It works, thank you so much for the help!

        in reply to: Upload local files to fabric nodes #1636
        Xusheng Ai
        Participant

          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}")
          in reply to: Upload local files to fabric nodes #1634
          Xusheng Ai
          Participant

            If I want to upload file from JupyterHub environment, what the local path should I use?

            in reply to: Upload local files to fabric nodes #1633
            Xusheng Ai
            Participant

              Thank you so much for the information!

              in reply to: Expected transfer speed between nodes #1600
              Xusheng Ai
              Participant

                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.

                 

                in reply to: Create Layer 2 interface amount 5 nodes #1578
                Xusheng Ai
                Participant

                  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
                  in reply to: Create Layer 2 interface amount 5 nodes #1573
                  Xusheng Ai
                  Participant

                    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 information Destination 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, 1 month ago by Xusheng Ai.
                    • This reply was modified 2 years, 1 month ago by Xusheng Ai.
                    in reply to: Create Layer 2 interface amount 5 nodes #1569
                    Xusheng Ai
                    Participant

                      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

                      in reply to: Create a slice with the custom docker image #1534
                      Xusheng Ai
                      Participant

                        Thanks so much for the clarification.

                        in reply to: Create a slice with the custom docker image #1530
                        Xusheng Ai
                        Participant

                          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 run docker 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, 1 month ago by Xusheng Ai.
                          in reply to: Create Nodes with IPv6 address #1518
                          Xusheng Ai
                          Participant

                            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

                            in reply to: Slice expiration extension #1465
                            Xusheng Ai
                            Participant

                              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, 2 months ago by Xusheng Ai.
                              in reply to: Slice expiration extension #1453
                              Xusheng Ai
                              Participant

                                sorry to post the topic twice due to unstable networking, please feel free to delete one of these.

                                in reply to: unable to get new Fabric Identity #1402
                                Xusheng Ai
                                Participant

                                  It works now, thanks so much for the help!

                                Viewing 15 posts - 31 through 45 (of 54 total)