Linux-vserver
Материал из Ksimute
Поднятие виртуального сервера на linux. Есть такая тема в виртуализации как Openvz и Vserver можно поставить спец патчеванное ядро собрать его и делать виртуальные сервера. Но обрабатывать их всех будет одно ядро. Т.е. ядро нашей ОС. Снижение производительности по сравнению с отдельными физическими серверами 3-4 % Но есть некоторые ограничения на софт. О них позже. Во FBSD есть jail функционал аналогичен.
Смотрим что есть на http://linux-vserver.org/Welcome_to_Linux-VServer.org
2.6.22.19 - вполне бодрое ядрышко.
Для gentoo
Тянем патчи
ksi ~ # emerge vserver-sources
стянется ядрышко и патчи У меня стянулось linux-2.6.22.tar.bz2
в данный момент рабочее ядро
ksi ~ # uname -a Linux ksi 2.6.23.9
компилим новый кернел
ksi src # genkernel --menuconfig all Правим параметры по вкладке Linux VServer --->
Пока кернел компилится, соберем утилиты для администрирования
ksi ~ # emerge util-vserver
Прописываем новый kernel в boot loader
ребутимся.
Стартуем скрипт, который на proc правильные права раздаст
#/etc/init.d/vprocunhide start
# /etc/init.d/util-vserver start * Setting vshelper path to /usr/lib/util-vserver/vshelper [ ok ] * Loading default device map ..
Делаем первый vserver
читаем маны :)
man vserver man vserver-build
Ставить будем из stage специально собранного для vserver (базовый системный образ)
http://bb.xnull.de/projects/gentoo/stages/ точнее отсюда
ksi ~ # wget http://bb.xnull.de/projects/gentoo/stages/i686/gentoo-i686-20091217/vserver/gentoo-vserver-i686-20091217.tar.bz2
ksi init.d # vserver testy build --context 25083 --hostname test.trancom.ru --interface eth0:192.168.250.73/24 --initstyle gentoo -m template -- -t /root/gentoo-vserver-i686-20091217.tar.bz2 -d gentoo
Ждем, систему пока разархивируется.
внимание, context должен соответствовать последним 2-м октетам ip адреса. По неизвестным мне причинам в противном случае ip алиасом на интерфейс не вешается.
>>> Adding shared /usr/portage to fstab ... >>> Checking init-style ... gentoo >>> Unpacking template ... ok >>> Installing special init-style magic ... !!! !!! You have to install a service (e.g. syslog/cron) and add it to the !!! default runlevel before you start the guest the first time! !!! Otherwise the guest will die as soon as it has finished booting. !!! !!! Consult the Gentoo Handbook on how to chroot and install !!! packages into the guest environment. !!! >>> Setting hostname ... >>> Fixing syslog-ng.conf ... ksi / #
#ls /vservers/testy/
видим корневую fs
Стартуем.
ksi testy # vserver testy start
OpenRC 0.5.3 is starting up Gentoo Linux (i686) [VSERVER]
- /proc is already mounted, skipping
- Caching service dependencies... [ ok ]
- Setting hostname to test.trancom.ru... [ ok ]
- Creating user login records... [ ok ]
- Cleaning /var/run... [ ok ]
- Wiping /tmp directory... [ ok ]
- Updating /etc/mtab... [ ok ]
- Starting syslog-ng... [ ok ]
- Starting fcron... [ ok ]
- Starting local... [ ok ]
ksi ~ # vserver-stat CTX PROC VSZ RSS userTIME sysTIME UPTIME NAME 83 3 11.5M 2.6M 0m00s36 0m00s23 2m10s10 testy
Работает.
теперь собственно поставим на него апач.
ksi ~ # vserver testy enter ksi ~ # echo nameserver 93.188.188.11 > /etc/resolv.conf ksi ~ # vemerge testy -- apache
Входим на vserver, стартуем апач
Проверяем с другого хоста :)
[korobanov@ksi-powerstation ~]$ telnet 192.168.250.73 80 Trying 192.168.250.73... Connected to 192.168.250.73. Escape character is '^]'. GET /index.html It works! Connection closed by foreign host. [korobanov@ksi-powerstation ~]$
Все работает :)