wiki:UserGuide/DiskImages

Version 11 (modified by msherman, 6 years ago) ( diff )

Site Navigation

  1. COSMOS Testbed Overview
    1. Concepts
    1. Testbed Workflow
    1. Availability and Resource Status
    1. Events and Conferences
  2. Getting Started
    1. Make an Account
    2. Create and Configure SSH Keys
    3. Make a Reservation
    4. Log in to your Reservation
    5. Control Resources with OMF
    6. Run a Hello World Experiment
    7. Get Help and Support
  3. COSMOS/ORBIT User Guide
    1. The COSMOS Portal
    2. Connecting to the Testbed
    3. Running Experiments
    4. Policies and Support
    5. Quick Links
    1. Policies
    1. Account Creation
    1. Camera Streaming
    1. Scheduling and Reservations
    1. Disk Images
    1. Frequently Asked Questions
    1. Resource Control with OMF
  4. COSMOS Portal
    1. Your First Visit
    2. Setting Up Your Account
    3. Reserving Testbed Time
    4. Monitoring Your Experiment
    5. Connecting via SSH
    6. Managing Disk Images
    7. Joining the Community
    8. Browsing Users and Groups
    9. Tips
  5. Account Management
    1. Edit Profile
    2. Change Password
    3. SSH Keys
  6. Portal Dashboard
    1. Profile Card
    2. Usage Statistics
    3. Community Forum
  7. Directory
    1. Users
    2. Groups
    3. Privacy Note
  8. Disk Images
    1. Browsing Images
    2. Image Details
    3. Searching and Sorting
    4. Managing Your Images
    5. Baseline Images
    6. Saving Custom Images
    7. Storage and Retention
  9. Community Forum
    1. Accessing the Forum
    2. Forum Categories
    3. How to Use the Forum
    4. Forum Etiquette
    5. Privacy and Access
  10. Getting Started with the COSMOS Portal
    1. Creating an Account
    2. Logging In
    3. What to Do After Logging In
  11. SSH Access to Testbed Nodes
    1. Access Model
    2. Console Servers
    3. Basic Connection
    4. SSH Config File
    5. SSH Tunneling
    6. File Transfer
    7. Troubleshooting
  12. Scheduler
    1. Calendar View
    2. Reservation Colors
    3. Creating a Reservation
    4. Competing for a Slot
    5. Modifying or Canceling Reservations
    6. My Reservations
    7. Resource Information
  13. Testbed Status
    1. Node Status Grid
    2. RF Matrix Control (SB4)
    3. Understanding Node States During Experiments
    1. Remote Access
    1. Chrome Remote Desktop Setup Page
  14. Installing Chrome Remote Desktop (CRD) on a Custom Image
    1. Measurement & Result Collection
    1. Storage
    1. Support
    1. Contributing to the Wiki
  15. Tutorials
    1. SDR and Wireless
    2. Wireless Digital Twins
    3. Optical Networking
    4. Wired Networking
    5. Edge Computing
    6. 4G/5G Systems
    7. Orchestration Platforms
  16. Architecture
    1. Data Flow
    1. Deployment Map
    1. Domains
    1. Naming Convention
    1. Networks
    1. Optical
  17. Resources, Services and APIs
    1. RF Control
    2. SDR Control
    3. Compute Control
    4. Network Control
    5. Optical Control
  18. Datasets
  19. Hardware Info
    1. Cameras
    1. Compute
    1. FR3 SDRs
    1. Network
    1. Nodes
    1. Optical
    1. RF Subsystems
    1. Antennas
    1. Full-Duplex Radio
    1. RF Front End
    1. Software Defined Radios (SDR)
  20. RF Policies & Compliance
    1. Outdoor Radio Frequency Allocation
    2. Program Experiment License
    3. Spectrum Monitoring
    4. Emergency Stop Procedures
    5. Network and Platform Security

Node Images

Summary

The imaging process is executed by the commands 'omf load' and 'omf save'

These provision a full disk image onto a set of nodes, and should work for any ext2/¾ filesystem.

After saving an image from one node, and loading it onto another, it will appear to the user that a copy of the hard disk has been made. Specifically, this is a block based copy, not a file based one.

The baseline image is a recommended starting point, as this provisioning tool does not currently work with standard .iso or similar files, instead using a custom compressed .ndz format.

Security and Access

Images

Images you save are saved to the directory "/export/omf-images-5.4/"

They have permissions to be writable by your user, and readable by your group, and all logged in users. You can customize this via the chmod and chown commands. For example, you may want to restrict the ablility to load your images to only members of a specific group.

SSH

WARNING: For nodes that may be accessible externally, [mobile nodes, tunnels to an external subnet, etc] it is YOUR responsibility to set credentials to prevent remote login.

This can be done via the passwd command, and / or editing the file /etc/ssh/sshd_config The default baseline image allows passwordless based access as the user native, from RFC1918 private ip space: 10/8 172.16/12 192.168/16 Root login is disabled

Passwordless Sudo is enabled for the user native.

You should set up your own accounts, or customize your image's ssh config if you need something different.

List of pre-defined images

Image name Description username Last updated
baseline.ndz ubuntu18.04 + omf tools native n/a
baseline_uhd.ndz baseline + uhd native n/a
baseline_sdr.ndz baseline + uhd + gnuradio native n/a
baseline_cuda.ndz baseline + cuda + drivers native n/a
baseline_tensorflow.ndz baseline + cuda + drivers + tensorflow native n/a
baseline_pytorch.ndz baseline + cuda + drivers + pytorch native n/a

Baseline Image

The baseline image is a very bare install of Ubuntu 18.04 Bionic

You should customize it to you needs, and use that as a base for your experiments.

After saving an image, it will NOT track changes to the baseline, it is a copy, not a delta.

You may periodically want to re-create your experimental images when a new baseline has been relased, to support new hardware, or newer drivers, etc.

Baseline UHD

Baseline UHD has UHD images downloaded, and uhd3.14 installed from source.

Baseline SDR

Baseline CUDA

The cuda baseline image is meant to be run on the cosmos server machines containing V100 GPUs. It is built with Nvidia drivers for the GPUs and CUDA libraries for general purpose GPU programming. The baseline image is built with driver version 410.104 with cuda 10.0 libraries.

If you would like to create a cuda image using different versions of either the drivers or cuda, you can do so by starting with the baseline_1804 image.

  1. Select the driver version you need from the Nvidia Driver Downloads Page. Be sure to specify the product type as "Tesla" and the product series as "V-Series". Click download and then on the following page, right click on the "agree & download" and copy the link address. On the node, use wget or curl to download the link you copied.
    • "dpkg -i nvidia-diag-driver-local-repo-ubuntu1804-410.104_1.0-1_amd64.deb" note: you may be asked to add a gpg key during the installation process. Use the command that is given.
    • "apt-get update"
    • "apt-get install cuda-drivers"
    • log out of the node and use omf tell to turn it off and on again. When you log back into the node, running lsmod should demonstrate that the nvidia drivers have been loaded.
  2. Select the version of cuda you need from the cuda toolkit archive, then choose your operating system (Linux), architecture (x86_64), distribution (Ubuntu), and version (18.04). Choose "deb(local)" as the installer type. Again, copy the download link and use wget to download it onto the node. You can then follow the installation instructions on the download page.
  3. To verify your cuda installation, you can build and run some of the cuda samples. They'll be found in /usr/local/cuda/samples.
  4. You will also have to add the directory of cuda binaries to the path. Edit the .profile file and add 'PATH="PATH:/usr/local/cuda/bin"'

Building a baseline image

  1. Use pxe or usb to install ubuntu netinstall iso
  2. Start it up, run update and dist-upgrade
  3. set netplan.io to dhcp on all physical ethernet interfaces
  4. add dhclient-exit-hook/hostname to dynamically set hostname based on DHCP
  5. add prepare.sh script to generalize prior to saving images
Note: See TracWiki for help on using the wiki.