VirtualNET @ CSE - Behind the curtain
Key technologies
- Master instance of Arch Linux which runs 24/7, and which updates itself automatically once per day (
pacman -Syu
).
- Linux Logical Volume Manager (LVM) which runs on the VM host. This is used to instantiate a thin, copy-on-write block device for the root file system for each VM.
- A master LVM block device on the host is updated nightly via
rsync
from the master Arch Linux instance. The VM root file systems are cloned from this block device to give fast VM instantiation.
- User-mode Linux (UML) provides the Linux kernel used to boot each VM. Instead of running on virtual hardware, UML runs (when viewed from the outside, on the host) as a non-privileged process under Linux owned by the user.
- UML multicast networking devices provide eth1, eth2, eth3 and eth4 operation spanning multiple hosts and allowing effectively-unlimited VLANs to exist at the same time.
- eth0 is provided via a conventional tap device bridged to the host's physical network connection to the outside world.
- Traffic to/from eth0 and the outside world is NAT'ed by
iptables
on the host.
- UML's hostfs filesystem abstraction provides
/home
access without compromising security or access controls, even when accessing files as root from the VM.
- A stripped-down set of
systemd
services replaces those normally part of Arch Linux to give basic functionality as a starting point for users.