1. Reserve bandwidth for a slice

Reserve bandwidth for a slice

Home Forums FABRIC General Questions and Discussion Reserve bandwidth for a slice

Viewing 6 posts - 1 through 6 (of 6 total)
  • Author
    Posts
  • #7348
    Prateek Jain
    Participant

      Hi,

      I have a slice with 5 nodes on teracore network. I need to conduct several experiments that require a stable and interference-free network environment. I’m looking to ensure that my experimental traffic is prioritized, or isolated, to avoid any interference from other experimenters using the same infrastructure. I’m considering reserving bandwidth for the slice that includes all nodes relevant to my experiments.

      Is there any way to reserve bandwidth for a slice on teracore network? If yes, can you please direct me to the relevant page or jupyter notebook?

       

      #7350
      Komal Thareja
      Participant

        Hi Prateek,

        We currently do not support guaranteed Quality of Service (QoS), but we do offer best-effort QoS. You can request bandwidth by setting it on your interfaces using a command like iface.set_bandwidth(10).

        Please note that Basic NICs are essentially Virtual Functions, and the underlying dedicated NIC is shared, so guaranteed bandwidth may not be achievable. However, you should see better performance with ConnectX_6 or ConnectX_5 NICs.

        Here’s an example slice request for your reference:


        #Create Slice
        slice = fablib.new_slice(name=slice_name)
        # Network
        net1 = slice.add_l2network(name=network_name, subnet=IPv4Network("192.168.1.0/24"))
        # Node1
        node1 = slice.add_node(name=node1_name, site=site)
        iface1 = node1.add_component(model='NIC_Basic', name='nic1').get_interfaces()[0]
        iface1.set_mode('auto')
        iface1.set_bandwidth(10)
        net1.add_interface(iface1)
        # Node2
        node2 = slice.add_node(name=node2_name, site=site)
        iface2 = node2.add_component(model='NIC_Basic', name='nic1').get_interfaces()[0]
        iface2.set_mode('auto')
        iface2.set_bandwidth(10)
        net1.add_interface(iface2)
        #Submit Slice Request
        slice.submit();

        Thanks,
        Komal

        #7351
        Prateek Jain
        Participant

          Thanks! I will try that.

          #8526
          PHILIP CUMMINS
          Participant

            is this supported by fabnet?

            when creating the slice I do:

            node = slice.add_node(name=f”{swarm_node_name_prefix}-{idx+1}”, site=site, disk=disk, image=image)
            node.add_fabnet()
            iface = node.get_interface(network_name=f’FABNET_IPv4_{node.get_site()}’)
            iface.set_mode(‘auto’)
            iface.set_bandwidth(30)

            after I am trying to confirm the new bandwidth:

            for idx in range(swarm_node_count):
            node = slice.get_node(f”{swarm_node_name_prefix}-{idx+1}”)
            iface = node.get_interface(network_name=f’FABNET_IPv4_{node.get_site()}’)
            iface.set_mode(‘auto’)
            iface.set_bandwidth(30)
            print(iface.get_bandwidth())
            nodes.append(node)

            but I see that the bandwidth is 100 for the interface, any suggestions? thanks!

            #8535
            PHILIP CUMMINS
            Participant

              #Create Slice slice = fablib.new_slice(name=slice_name) # Network net1 = slice.add_l2network(name=network_name, subnet=IPv4Network(“192.168.1.0/24”)) # Node1 node1 = slice.add_node(name=node1_name, site=site) iface1 = node1.add_component(model=’NIC_Basic’, name=’nic1′).get_interfaces()[0] iface1.set_mode(‘auto’) iface1.set_bandwidth(10) net1.add_interface(iface1) # Node2 node2 = slice.add_node(name=node2_name, site=site) iface2 = node2.add_component(model=’NIC_Basic’, name=’nic1′).get_interfaces()[0] iface2.set_mode(‘auto’) iface2.set_bandwidth(10) net1.add_interface(iface2) #Submit Slice Request slice.submit();

              even following your example and using an L2 network and creating/adding the interface, I am unable to set the bandwidth. After the slice has been created I still see the 100 bandwidth for the interface.

              #8538
              Komal Thareja
              Participant

                Hi Philips,

                At the moment, we do not support guaranteed QoS. This feature will be available soon. In the meantime, you can use tools such as tc to manage bandwidth on the VMs.

                Thanks,
                Komal

              Viewing 6 posts - 1 through 6 (of 6 total)
              • You must be logged in to reply to this topic.