This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
технология_lxс [2011/02/26 11:48] val |
— (current) | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== Технология LXС ====== | ||
| - | ===== Создаем ветку гостевой системы ===== | ||
| - | <code> | ||
| - | root@gate:~# apt-get install debootstrap | ||
| - | |||
| - | root@gate:~# mkdir /var/lxc/ | ||
| - | |||
| - | root@gate:~# debootstrap --variant=minbase --arch i386 lucid /var/lxc/server.rootfs | ||
| - | </code> | ||
| - | |||
| - | ===== Настраиваем гостевую систему для запуска в контейнере ===== | ||
| - | <code> | ||
| - | 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 | ||
| - | </code><code> | ||
| - | 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 | ||
| - | </code><code> | ||
| - | root@gate:/etc/init# cat ssh.conf | ||
| - | </code><code> | ||
| - | ... | ||
| - | start on startup | ||
| - | ... | ||
| - | </code><code> | ||
| - | root@gate:/etc/init# cat rsyslog.conf | ||
| - | </code><code> | ||
| - | ... | ||
| - | start on startup | ||
| - | ... | ||
| - | </code> | ||
| - | |||
| - | ===== Настраиваем hostname, hosts, DNS client и учетную запись root в гостевой системе ===== | ||
| - | <code> | ||
| - | 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 | ||
| - | </code> | ||
| - | |||
| - | ===== Подготовка сети родительской машины для дочерних систем ===== | ||
| - | <code> | ||
| - | root@gate:~# apt-get install bridge-utils | ||
| - | |||
| - | root@gate:~# ifdown eth0 | ||
| - | |||
| - | root@gate:~# cat /etc/network/interfaces | ||
| - | </code><code> | ||
| - | 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 | ||
| - | |||
| - | </code><code> | ||
| - | root@gate:~# ifup br0 | ||
| - | </code> | ||
| - | |||
| - | ===== Установка lxc и настройка родительской системы ===== | ||
| - | <code> | ||
| - | 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 | ||
| - | </code> | ||
| - | |||
| - | ===== Настройка lxc для запуска дочерней системы в контейнере ===== | ||
| - | <code> | ||
| - | 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 | ||
| - | </code> | ||
| - | |||
| - | ===== Запуск/мониторинг/остановка контейнера ===== | ||
| - | <code> | ||
| - | 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 | ||
| - | </code> | ||