Basic Facts
FABRIC has three ways of interacting with it:
- Portal – manage projects, SSH keys, API tokens. Create or visualize slice topologies
- Jupyter Notebooks in FABRIC’s own Jupyter Hub – using FABRIC APIs to run experiments and not just create topologies – all in a browser
- Use FABRIC APIs from experimenter laptop or desktop – FABRIC API libraries are available for download from PyPi.
The types of resources FABRIC offers are
- Virtual machines of different sizes (up to 64 cores, 384G RAM) with directly attached PCI devices – GPUs, Network Cards, NVMe drives, FPGAs.
- Virtual machines can be placed at the sites of your choice and interconnected by a rich set of on-demand Layer 2 and Layer 3 network services
- Virtual machines can have large storage volumes attached to them
- VMs or slivers are arranged in slices representing individual experiment topologies. Slices can be created, modified and deleted.
- Slices have a finite lifetime, but can typically be extended before they expire
- FABRIC Slices can connect to other testbeds or facilities using Facility Ports
Getting a FABRIC Account
FABRIC uses different credential types, however everything is tied to your institutional identity – all elements of the infrastructure – the Portal, Jupyter Hub, this site (Knowledge Base), the use of APIs – everything requires logging in via CI Logon using your university credentials or one of the commercial identity providers (Google, GitHub).
Note that using Google, ORCID, GitHub or Microsoft as your identity provider requires extra verification steps by our staff. Whenever possible please try to use your university identity provider.
To get an account, before you can do anything you must enroll via the portal. The enrollment has multiple steps. After you complete the enrollment you can login to the Portal and be added to projects.
Using and managing Projects
A Project is a group of experimenters with the same permissions. Professors and senior research staff can request and manage a project. See Creating a project. for more information. Each project has a set of permissions to specific FABRIC resources. Project owners can request additional permissions for their projects.
Interacting with FABRIC
Experimenters interact with FABRIC using REST-based APIs which are invoked using FABlib library or the Portal. Portal only allows you to manage slice topologies while FABlib also lets you configure experiments. This is a crucial difference as in addition to a topology an experiment has configuration states, data and may include resources from other testbeds. The Portal can only create slices on FABRIC. FABlib is developing integrations with other testbeds’ APIs to support cross-testbed experiments.
To authenticate APIs FABRIC uses API tokens. Tokens can expire, they can also be renewed. Note that Jupyter Notebooks automatically manage tokens for you.
We provide a rich set of example Jupyter notebooks that showcase the different capabilities of the testbed and simple experiments. See the Artifact Manager to access the examples. In addition, many users contribute examples to the Artifact Manager.
Logging into VMs
FABRIC relies on bastion hosts to restrict access to VMs you create in your slices. Because of this, two SSH keypairs are needed to login to a VM – a bastion keypair and a slice/sliver keypair. FABRIC allows managing bastion and slice/sliver keys via the Portal and APIs.
Management vs Dataplane
FABRIC has a concept of a management plane and a dataplane. Management plane is used for
- Logging into VMs via bastion hosts
- Downloading necessary software into VMs from the Internet
Most FABRIC sites’ management networks are on IPv6 network, i.e. they provide IPv6 management addresses to experimenter VMs. Bastion hosts have access to both IPv4 and IPv6 network so they make using IPv4 and IPv6 sites transparent to experimenters. Generally you will not have any problems accessing IPv6 sites from the IPv4 network, however in some cases fetching software from the IPv4 network into your IPv6 VMs may require additional configuration steps.
Dataplane on the other hand is intended for running experiments – connecting VMs with one another into desired topologies and connecting to external resources – HPC facilities, other testbeds, public cloud providers and the Internet. It provides high-bandwidth (100Gbps on many links) and many types of on-demand network services.
Getting Help
Visit this article for more information. This article discusses how to search for information.