Introduction to CloudLab

Linh B. Ngo

What is CloudLab?

  • Experimental testbed for future computing research

  • Allow researchers control to the bare metal

  • Diverse, distributed resources at large scale

  • Allow repeatable and scientific design of experiments

What is GENI?

  • Global Environment for Networking Innovation
  • "Combining heterogeneous resource types, each virtualized along one or more suitable dimensions, to produce a single platform for network science researchers"
  • Key components:
    • GENI racks: virtualized computation and storage resources
    • Software-defined networks (SDNs): virtualized, programmable network resources
    • WiMAX: virtualized cellular wireless communication

Berman, M., Chase, J.S., Landweber, L., Nakao, A., Ott, M., Raychaudhuri, D., Ricci, R. and Seskar, I., 2014. GENI: A federated testbed for innovative network experiments. Computer Networks, 61, pp.5-23.

Key experimental concepts:

  • Scliceability: the ability to support virtualization while maintaining some degree of isolation for simultaneaous experiments
  • Deep programmability: the ability to influence the behavior of computing, storage, routing, and forwarding components deep inside the network, not just at or near the network edge.

Utah/HP: Low-power ARM64 (785 nodes)

  • 315 m400: 1X 8-core ARMv8 at 2.4GHz, 64GB RAM, 120GB flash
  • 270 m510: 1X 8-core Intel Xeon D-1548 at 2.0 GHz, 64GB RAM, 256 GB flash
  • 200 xl170: 1X 10-core Intel E5-2640v4 at 2.4 Ghz, 64 GB RAM, 480 GB SSD

Suitable for experiments that:

  • explore power/performance tradeoff
  • want instrumentation of power and temperature
  • want large numbers of nodes and cores
  • need bare-metal control over switches
  • want tight ARM64 platform integration
  • ...

Wisconsin/Cisco (530 nodes)

  • 90 c220g1: 2X 8-core Intel Haswell at 2.4GHz, 128GB RAM, 1X 480GB SDD, 2X 1.2TB HDD
  • 10 c240g1: 2X 8-core Intel Haswell at 2.4GHz, 128GB RAM, 1X 480GB SDD, 1X 1TB HDD, 12X 3TB HDD
  • 163 c220g2: 2X 10-core Intel Haswell at 2.6GHz, 160GB RAM, 1X 480GB SDD, 2X 1.2TB HDD
  • 7 c240g2: 2X Intel Haswell 10-core at 2.6GHz, 160GB RAM, 2X 480GB SDD, 12X 3TB HDD
  • 224 c220g5: 2X 10-core Intel Skylake at 2.20GHz, 192GB RAM, 1TB HDD
  • 32 c240g5: 2X 10-core Intel Skylake at 2.20GHz, 192GB RAM, 1TB HDD, 1 NVIDIA P100 GPU
  • 4 c4130: 2X 8-core Intel Broadwell at 3.20GHz, 128GB RAM, 2X 960GB HDD, 4 NVIDIA V100 GPU

Suitable for experiments that:

  • want large number of nodes/cores, and bare metal control over nodes/switches
  • want network I/O performance, intra-cloud routing, and transport
  • network virtualization
  • in-memory big data frameworks
  • cloud-scale resource management and scheduling
  • ...

Clemson/Dell (256 nodes)

  • 96 c8220: 2X 10-core Intel Ivy Bridge at 2.2GHz, 256GB RAM, 2X 1TB HDD
  • 4 c8220x: 2X 10-core Intel Ivy Bridge at 2.2GHz, 256GB RAM, 8X 1TB HDD, 12X 4TB HDD
  • 84 c6420: 2X 14-core Intel Haswell at 2.0GHz, 256GB RAM, 2X 1TB HDD
  • 2 c4130: 2X 12-core Intel Haswell at 2.5GHz, 256GB RAM, 2X 1TB HDD, 2 NVIDIA K40m GPU
  • 2 dss7500: 2X 6-core Intel Haswell at 2.4GHZ, 128GN RAM, 2X 126GB SSD, 45X 6TB HDD
  • 72 c6420: 2X 16-core Intel Skylake at 2.6GHZ, 386GB RAM, 2X 1TB HDD

Suitable for experiments that:

  • need large per-core memory
  • want to experiment with IB and/or GbE networks
  • need bare-metal control over switches

Why do we want CloudLab

  • In CSC 496, we will break things
  • We will have access to another national computing environment (XSEDE), which was designed for research computing. We can't break things on XSEDE.
  • We can break things on CloudLab (within the context of the experiment, as root account)

Set up SSH Key on CloudLab

  • Generate a passwordless SSH Key in your CentOS VM to access CloudLab
  • You can set up multiple keys in the future for various devices you want to use to login to your CloudLab experiments
  • Import the puclic portion of the SSH key through CloudLab's webpage
    • After logging into www.clouldlab.us, look under your username in the top right corner of the webpage and select Manage SSH Keys
    • Copy and paste the public portion of the SSH key you generated in the previous step and click Add Key
  • Run cat ~/.ssh/id_rsa.pub to print out the content of the public key
  • Copy the content of the public key

Paste the content of the public key into the Key box

Approaches to build experimental profile

  • Copy an existing profile
  • Use a topology GUI
  • Write Python code (geni-lib)