User Tools

Site Tools


технология_lxс

This is an old revision of the document!


Технология LXС

Создаем ветку гостевой системы

root@gate:~# apt-get install debootstrap

root@gate:~# mkdir /var/lxc/

root@gate:~# debootstrap --variant=minbase --arch i386 lucid /var/lxc/server.rootfs

Настраиваем гостевую систему для запуска в контейнере

root@gate:~# chroot /var/lxc/server.rootfs /bin/bash

root@gate:/# apt-get update
root@gate:/# apt-get install --force-yes -y gpgv
root@gate:/# apt-get update

root@gate:/# apt-get -y install language-pack-en
root@gate:/# locale-gen en_US.UTF-8
root@gate:/# update-locale LANG="en_US.UTF-8" LANGUAGE="en_US.UTF-8" LC_ALL="en_US.UTF-8" 

LC_CTYPE="C"

root@gate:/# apt-get install -y vim nano telnet inetutils-ping ssh rsyslog 

root@gate:/# cd /etc/init

root@gate:/etc/init# rm -f console* control* hwclock* module* mount* network-interface*  
root@gate:/etc/init# rm -f plymouth* procps* tty* udev* upstart*

root@gate:/etc/init# cat rc-sysinit.conf
start on startup

pre-start script
        rm -f $(find /var/run -name '*pid')
        route add default gw 172.16.1.254
#        /etc/init.d/postfix start
end script
root@gate:/etc/init# cat ssh.conf
...
start on startup
...
root@gate:/etc/init# cat rsyslog.conf
...
start on startup
...

Настраиваем hostname, hosts, DNS client и учетную запись root в гостевой системе

root@gate:/# cat /etc/hostname
server.class.un

root@gate:/# cat /etc/hosts
172.16.1.100+X server.class.un

root@gate:/# cat /etc/resolv.conf
search class.un
nameserver 172.16.1.254

root@gate:/# passwd

root@gate:/# exit

Подготовка сети родительской машины для дочерних систем

root@gate:~# apt-get install bridge-utils

root@gate:~# ifdown eth0

root@gate:~# cat /etc/network/interfaces
auto lo
iface lo inet loopback

#auto eth0
#iface eth0 inet static
#        address 172.16.1.X
#        netmask 255.255.255.0
#        gateway 172.16.1.254

auto br0
iface br0 inet static
        address 172.16.1.X
        netmask 255.255.255.0
        gateway 172.16.1.254
        bridge_ports eth0
        bridge_stp off
        bridge_maxwait 5
        post-up /usr/sbin/brctl setfd br0 0
root@gate:~# ifup br0

Установка lxc и настройка родительской системы

root@gate:~# apt-get install lxc

root@gate:~# mkdir /cgroup

root@gate:~# cat /etc/fstab
...
none /cgroup cgroup defaults 0 0

root@gate:~# mount /cgroup

Настройка lxc для запуска дочерней системы в контейнере

root@gate:~# cat /var/lxc/server.config
lxc.utsname = server
lxc.network.type = veth
lxc.network.flags = up
lxc.network.link = br0
lxc.network.name = eth0
lxc.network.mtu = 1500
lxc.network.ipv4 = 172.16.1.100+X/24
lxc.rootfs = /var/lxc/server.rootfs
lxc.mount = /var/lxc/server.fstab

root@gate:~# cat /var/lxc/server.fstab
none /var/lxc/server.rootfs/dev/pts devpts defaults 0 0
none /var/lxc/server.rootfs/proc proc defaults 0 0
none /var/lxc/server.rootfs/sys sysfs defaults 0 0
none /var/lxc/server.rootfs/var/lock tmpfs defaults 0 0
none /var/lxc/server.rootfs/var/run tmpfs defaults 0 0

root@gate:~# lxc-create -f /var/lib/lxc/config.server -n server

root@gate:~# lxc-ls
server

root@gate:~# ls /var/lib/lxc
server

Запуск/мониторинг/остановка контейнера

root@gate:~# lxc-start -n server /bin/bash

root@gate:~# lxc-start -n server -d

root@gate:~# lxc-info -n server
'server' is RUNNING

root@gate:~# lxc-ps --name server

root@gate:~# ssh 172.16.1.100+X

root@gate:~# lxc-stop -n server
технология_lxс.1298710102.txt.gz · Last modified: 2013/05/22 13:50 (external edit)