KsI-wiki online documents

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 ~]$

Все работает :)