Virtualization (LXC Containers)

From CSCWiki
Revision as of 16:52, 14 March 2012 by Jbroman (talk | contribs) (documenting LXC (in progress))
Jump to navigation Jump to search

Linux Containers

As of Fall 2009, we use Linux containers to maintain a few virtual machines, most notably caffeine, which is hosted on glomag. The various commands to manipulate Linux containers are prefixed with "lxc-"; see their individual manpages for usage.

To manage containers, use the lxc-* tools, which require root privilege. Some examples (replace caffeine with the appropriate container name):

# check if caffeine is running
lxc-info -n caffeine

# start caffeine in the background
lxc-start -d -n caffeine

# stop caffeine gracefully
lxc-halt -n caffeine

# stop caffeine forcefully
lxc-stop -n caffeine

# launch a TTY console for the container
lxc-console -n caffeine

To install Linux container support on a recent Debian (squeeze or newer) system:

  • Install the lxc and bridge-utils packages.
  • Create a bridged network interface (this can be configured in /etc/network/interfaces as though it were a normal Ethernet device, with the additional bridge_ports parameter. This is usually called br0 (can be created manually with brctl). LXC will create a virtual Ethernet device and add it to the bridge when each container starts.

To start caffeine, run the following command as root on glomag:

lxc-start -d -n caffeine

Containers are stored on the host filesystem in /var/lib/lxc (root filesystems are symlinked to the appropriate directory on /vm).

VServer

Linux-VServer Homepage

vserver $NAME build -m debootstrap --hostname magic --interface $IFACE:$IP/24 -- -d lenny

To have a vserver autostart, create a file called /etc/vservers/$VSERVER/apps/init/mark with content:

default