Difference between revisions of "LXC"

From CRIU
Jump to navigation Jump to search
Line 50: Line 50:
  
 
= Dump/Restore a Linux Container =
 
= Dump/Restore a Linux Container =
 +
* Install the last crtools' kernel [http://git.kernel.org/?p=linux/kernel/git/gorcunov/linux-cr.git;a=heads Linux checkpoint/restore tree]
 +
* Install a modified version of [http://git.criu.org/?p=iproute2;a=summary iproute2]
 +
* Write a path to the command "ip" to the envoriment variable CR_IP_TOOL
 +
export CR_IP_TOOL=/root/iproute2/ip/ip
 +
* Install crtools

Revision as of 08:50, 18 September 2012

Prepare a Linux Container (CT)

Requirements

  • A console should be disabled (lxc.console = none)
  • udev should not run in CT ($ mv /sbin/udevd{,.bcp})

Prepare a host environment

  • Mount cgroupfs
$ mount -t cgroup c /cgroup
  • Create a network bridge
# cat /etc/sysconfig/network-scripts/ifcfg-br0 
DEVICE=br0
TYPE=Bridge
BOOTPROTO=dhcp
ONBOOT=yes
DELAY=5
NM_CONTROLLED=n
$ cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
NM_CONTROLLED="no"
ONBOOT="yes"
BRIDGE=br0

Create CT

  • Download an OpenVZ template and extract it.
curl http://download.openvz.org/template/precreated/centos-6-x86_64.tar.gz | tar -xz -C test-lxc
  • Create a config files
$ cat ~/test-lxc.conf 
lxc.console=none
lxc.utsname = test-lxc
lxc.network.type = veth
lxc.network.flags = up
lxc.network.link = br0
lxc.network.name = eth0
lxc.mount = /root/test-lxc/etc/fstab
lxc.rootfs = /root/test-lxc-root/
$ cat /root/test-lxc/etc/fstab
none /root/test-lxc-root/dev/pts devpts defaults 0 0
none /root/test-lxc-root/proc    proc   defaults 0 0
none /root/test-lxc-root/sys     sysfs  defaults 0 0
none /root/test-lxc-root/dev/shm tmpfs  defaults 0 0
  • Register CT
$ lxc-create -n test-lxc -f test-lxc.conf
  • Start CT
$ mount --bind test-lxc test-lxc-root/
$ lxc-start -n test-lxc

Dump/Restore a Linux Container

export CR_IP_TOOL=/root/iproute2/ip/ip
  • Install crtools