Forum Replies Created
-
AuthorPosts
-
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
orConnectX_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,
KomalThank you, Prateek, for sharing your slice ID and observations! If you encounter this issue again, please let us know and refrain from deleting the slice. This will greatly assist us in debugging and identifying the problem.
Unfortunately, we can’t do much with a deleted slice. We appreciate your cooperation with this!
Thanks,
KomalHi Sunjay,
Are you still facing this issue? I tried a slice on TOKY and didn’t run into any access issues.
Please let us know.
Thanks,
KomalJuly 31, 2024 at 9:23 am in reply to: Unable to (consistently) reach FABNetv4Ext addresses from outside FABRIC #7335Hi Sunjay,
I just checked all the VMs on your slice. I can ping all FabNetv4Ext IPs from my laptop. I’ll check with Network Team and share more details if we see any issues.
Thanks,
KomalHi Nirmala,
This looks like a bug in
fablib
which doesn’t have the update regarding the username for default_kali. Could you please try using userkali
to access the VM?I will work to provide a fix for this soon. Apologies for the inconvenience!
Thanks,
KomalSorry for the confusion, Users can still validate their keys against the bastion host using the command above as indicated on the learn article.
Thanks,
KomalHi,
Could you please try running this notebook?
jupyter-examples-rel1.6.1/configure_and_validate.ipynb
This will validate your configuration and update it if needed.
Please try running the
Hello Fabirc Notebook
after that. This notebook creates a VM and also displays the SSH command to use to login into the VM. Please check if the SSH command works and let us know if the issue still persists.NOTE: Bastion host is only used as a jump box, we do not allow login to Bastion Nodes.
Thanks,
Komal
-
This reply was modified 8 months, 4 weeks ago by
Komal Thareja.
Hi Nishanth,
The fix for this issue is now available with
fabrictestbed-extensions==1.7.2
Thanks,
Komal
Hi Nishanth,
We just added support for users to query host level information as well. Examples for this would be available in a couple of days. I am sharing a snippet below on how this can be done:
fablib.list_hosts()
resources = fablib.get_resources()
site = resources.get_site("MAX")
all_hosts = site.get_hosts()
host = site.get_host(name="max-w1.fabric-testbed.net")
print(host)Please checkout our documentation here to find more details. Please let us know if you have more questions/concerns.
https://fabric-fablib.readthedocs.io/en/latest/resources.html
https://fabric-fablib.readthedocs.io/en/latest/site.html
Thanks,
Komal
July 23, 2024 at 10:03 am in reply to: MFLib question – querying the entire fabric environment #7278Hi Bjoern,
We just added support for users to query host level information as well. Examples for this would be available in a couple of days. I am sharing a snippet below on how this can be done:
fablib.list_hosts()
resources = fablib.get_resources()
site = resources.get_site("MAX")
all_hosts = site.get_hosts()
host = site.get_host(name="max-w1.fabric-testbed.net")
print(host)Please checkout our documentation here to find more details. Please let us know if you have more questions/concerns.
https://fabric-fablib.readthedocs.io/en/latest/resources.html
https://fabric-fablib.readthedocs.io/en/latest/site.html
Thanks,
Komal
Hi Natty,
Apologies for the inconvenience! I looked at your Slice and can confirm from the logs the deletion was triggered by user either via Fablib/Portal.
2024-07-10 21:30:15,216 - CFEL Slice event slc:54466474-bcc2-45ef-a86a-4696b7d1bc5e create by prj:073ee843-2310-45bd-a01f-a15d808827dc usr:4d5326ac-b002-444f-bb44-3b406a038be5:nm3833@nyu.edu:49c50f84eab437103fa7f7863bfbbd5bbe4e303ea017b2912ce0df418b61a3df compute vms:5,cores:48,p4s:0; sites GATECH; components SmartNIC:1,SharedNIC:4; services L2Bridge:0,L2Bridge:0; vmdetails C32/R256/D25:1,C4/R32/D10:4
2024-07-11 14:25:52,610 - CFEL Slice event slc:54466474-bcc2-45ef-a86a-4696b7d1bc5e delete by prj:073ee843-2310-45bd-a01f-a15d808827dc usr:4d5326ac-b002-444f-bb44-3b406a038be5:nm3833@nyu.edu:49c50f84eab437103fa7f7863bfbbd5bbe4e303ea017b2912ce0df418b61a3df
This possibly may have happened because of the Bug reported here With the maintenance next week the delete bug would be addressed.
Thanks,
Komal
-
This reply was modified 9 months, 1 week ago by
Komal Thareja.
Hi Nishant,
It appears that a network service has leaked. In a distributed system like our testbed, encountering some leaked resources is not unusual. We plan to deploy updates in the coming week to address this issue. In the meantime, I recommend introducing a delay between deletion and recreation, as the resources are distributed across the testbed.
For now, I have cleaned up the leaked services, so provisioning should work.
Also, if possible could you please share your notebook or code- snippet that might help reproduce this state. Would be super helpful to debug and address this issue? Appreciate your help with this!
Best regards,
Komal
We are deploying 1.7 next week which would contain a fix for this issue. Apologies for the inconvenince!
Thanks,
Komal
Hi Nishant,
VM requested on GATECH identified by ID:
3d425fc6-0f44-4e98-a0cc-d9ee9358cb8f
cannot be allocated. Looks like you are requesting CX6 there which are only available onGATECH-w3
which is currently under maintenance. Hence, CF is unable to find any nodes to serve this reservation.Hope this helps!
Thanks,
Komal
Hi Nirmala,
FABLIB API supports 3 modes of configuration for the VMs.
– Manual: Manual configuration does not require any additional steps before the slice request is submitted.– Auto: Automatic configuration requires specify a subnet for the network and setting the interface’s mode to auto using the iface1.set_mode(‘auto’) function before submitting the request. With automatic configuration, FABlib will allocate an IP from the network’s subnet and configure the device during the post boot configuration stage. Optionally, you can add routes to the node before submitting the request.
– User Defined (config): User defined configuration requires specifying a subnet for the network and specifying the IP to use for each interface before the request is submitted. You can signal FABlib to configure the user defined IPs by setting the interface’s mode to config using the iface1.set_mode(‘config’) function before submitting the request. With user defined configuration, FABlib will use the IP defined by the user and configure the device during the post boot configuration stage. Optionally, you can add routes to the node before submitting the request.
Examples for each mode of configuration are available via Start Here:
Assuming the manual configuration is done via
ip addr
commands, it is not reboot persistent and the onus lies on the user to save/apply the config again post reboot.For modes
auto
andconfig
, FABLIB maintains the IP address information in the meta data for each of VMs maintained in UserData JSON object saved in the Fabric Information Model for the VM. In both these modes, the configuration can be fetched and re-applied using the code block:slice = fablib.get_slice(slice_name) for n in slice.get_nodes() n.config()
Hope this helps! Please let me know if you have any feedback.
Thanks,
Komal-
This reply was modified 9 months, 3 weeks ago by
Komal Thareja.
-
This reply was modified 9 months, 3 weeks ago by
Komal Thareja.
-
This reply was modified 8 months, 4 weeks ago by
-
AuthorPosts