TenForward

技術ブログ。はてなダイアリーから移転しました

lxc で CentOS 5 コンテナ

ちょっと聞かれたので即席でやる方法を.

  1. lxcの動作に必要な設定をします.例えば,
    1. cgroupマウント
    2. ブリッジの設定
  2. OpenVZ の precreated なテンプレートキャッシュを取得する.
  3. CentOS5 環境を調整します.rc.sysinit の変更は (OpenVZのテンプレートを使って入れば) 不要ですが,そのままだと console ログインできないので,そのための追加をしています.
    # cd /var/lib/lxc/centos5/rootfs
    # echo 0 > selinux/enforce
    # vi etc/inittab
    # diff -u etc/inittab.dist etc/inittab
    --- etc/inittab.dist 2010-10-09 07:21:32.378918095 +0900
    +++ etc/inittab 2010-10-09 07:21:49.843105793 +0900
    @@ -28,6 +28,8 @@
    l5:5:wait:/etc/rc.d/rc 5
    l6:6:wait:/etc/rc.d/rc 6

    +1:2345:respawn:/sbin/agetty 38400 console
    +
    # Trap CTRL-ALT-DELETE
    ca::ctrlaltdel:/sbin/shutdown -t3 -r now
  4. CentOS5環境の/etc/rc.d/rc.sysinitから start_udev を実行している部分を除去します.
    #/sbin/start_udev
  5. CentOS5環境用のlxc設定ファイルを作成します.例えば,
    lxc.tty = 4
    lxc.pts = 1024
    lxc.rootfs = /var/lib/lxc/centos5/rootfs
    lxc.cgroup.devices.deny = a
    # /dev/null and zero
    lxc.cgroup.devices.allow = c 1:3 rwm
    lxc.cgroup.devices.allow = c 1:5 rwm
    # consoles
    lxc.cgroup.devices.allow = c 5:1 rwm
    lxc.cgroup.devices.allow = c 5:0 rwm
    lxc.cgroup.devices.allow = c 4:0 rwm
    lxc.cgroup.devices.allow = c 4:1 rwm
    # /dev/{,u}random
    lxc.cgroup.devices.allow = c 1:9 rwm
    lxc.cgroup.devices.allow = c 1:8 rwm
    lxc.cgroup.devices.allow = c 136:* rwm
    lxc.cgroup.devices.allow = c 5:2 rwm
    # rtc
    lxc.cgroup.devices.allow = c 254:0 rwm
    # mounts point
    lxc.mount.entry=proc /var/lib/lxc/centos5/rootfs/proc proc nodev,noexec,nosuid 0 0
    lxc.mount.entry=devpts /var/lib/lxc/centos5/rootfs/dev/pts devpts defaults 0 0
    lxc.mount.entry=sysfs /var/lib/lxc/centos5/rootfs/sys sysfs defaults 0 0
    #
    lxc.utsname = centos5
    lxc.network.type = veth
    lxc.network.flags = up
    lxc.network.link = br0

で,

# lxc-start -n centos5
INIT: version 2.86 booting
		Welcome to  CentOS release 5.5 (Final)
Setting clock : Fri Oct  8 16:29:44 MDT 2010               [  OK  ]
Setting hostname centos5:                                  [  OK  ]
raidautorun: unable to autocreate /dev/md0
Checking filesystems
                                                           [  OK  ]
Mounting local filesystems:                                [  OK  ]
Enabling local filesystem quotas:                          [  OK  ]
Enabling /etc/fstab swaps:                                 [  OK  ]
INIT: Entering runlevel: 3
Entering non-interactive startup
Bringing up loopback interface:                            [  OK  ]
Starting system logger:                                    [  OK  ]
Starting kernel logger:                                    [PASSED]
Starting sshd:                                             [  OK  ]
Starting crond:                                            [  OK  ]

CentOS release 5.5 (Final)
Kernel 2.6.34.7-56.fc13.i686.PAE on an i686

centos5 login: