This guide walks you through the steps you need to take to start running
experiments on the COSMOS testbed. Each step links to the dedicated page
with the full instructions, screenshots, and troubleshooting tips.
Already have an ORBIT account? You can
skip steps 1 and 2 — your existing credentials work on COSMOS too.
COSMOS is not a single homogenous pool of machines — it's a
collection of domains, each one a self-contained slice of the
testbed serving a different purpose. Examples include the Grid
(WINLAB's indoor 20 × 20 radio room), BED (the West Harlem rooftop
deployment), small sandboxes (sb1–sb9) for trying things before
scaling up, the Outdoor WINLAB site, the Intersection model,
the Weeks Hall advanced-manufacturing site, and several reserved
project subdomains. Every domain is independent: it has its own
hardware inventory, its own network space, and its own scheduler
entry. The full catalogue is at Hardware → Domains.
Inside each domain you'll typically find:
Each domain has a single console host at
console.<domain>.<root-domain> — for example
console.sb1.cosmos-lab.org, console.bed.cosmos-lab.org, or
console.grid.orbit-lab.org. The console is your primary access
point into the domain: it's where you run the omf command-line
tools, where you mount NFS-shared storage, and where you reach the
nodes / servers / devices on the domain's internal network.
You always log in to the console via SSH from your local machine:
ssh <your-username>@console.<domain>.<root-domain>
# e.g.
ssh alice@console.sb1.cosmos-lab.org
ssh alice@console.bed.cosmos-lab.org
ssh alice@console.grid.orbit-lab.org
SSH lands you on the console; from there you control everything in
that domain for the duration of your reservation.
Register through the COSMOS portal: pick your group, supply your
contact info, then have your PI approve the request. New users go
through an email-verification round-trip before the account is
activated.
→ Full instructions: Account Creation
Generate an SSH key pair locally (use ed25519), then upload the public
key through the portal's SSH Keys page. All testbed-side hosts —
consoles, servers, sandboxes — accept your reservation-time SSH login
via that key.
→ Full instructions: Configuring SSH Keys ·
also see SSH tunnel
and SSH tips.
Reservations are made from the portal Scheduler. Pick the testbed
or sandbox you want, choose a time window (default 6 h), submit, and
wait for the auto-approver to confirm. Lower 28-day usage = higher
priority on contested slots.
→ Full instructions: Making a Reservation ·
the page covers conflict-resolution, multi-day reservations, and the
shared-resource scheduler (BED, sandboxes, O-RUs).
When your reservation window opens, SSH into the console for the
domain you reserved — for example ssh seskar@console.sb1.cosmos-lab.org
for SB1. From the console you control everything within that domain.
→ Full instructions: Reaching the Console ·
helper material: Chrome Remote Desktop
for GUI access, VPN for
firewall'd campus networks.
omf is the command-line tool used on every console for controlling
the nodes in your reservation: status checks, image load, power on/off,
save image, run experiments.
The most common workflow is:
| Step | OMF command |
|---|---|
| Status of all nodes | omf stat -t all |
| Load a saved disk image onto your nodes | omf load -t all -i baseline.ndz |
| Power-on the nodes | omf tell on -t all |
| Power-off when done | omf tell off -t all |
| Save the modified nodes back to a custom image | omf save -t node1-1 -n my-experiment.ndz |
→ Full instructions, all subcommands, options, and worked examples:
OMF Quick Start ·
deeper reference: OMF Commands.
Once the nodes are loaded and powered on, you run experiments from the
console — the orchestration host for your domain. Simple experiments
run straight from the console shell (SSH into a node and run your tools);
more complex, multi-node experiments are orchestrated with Ansible
playbooks. The Experimentation guide explains the two ways to work, and
the Tutorials section has fuller scenarios.
→ See the Experimentation guide
· Tutorials for end-to-end examples.
If you get stuck:
→ Full instructions and contact details: Support.