Использование OpenVZ

Перейти к: навигация, поиск

Установка OpenVZ

Скачиваем ядро для своей системы с www.openvz.org, или из репозитария OpenVZ и устанавливаем его (rpm -ihv ovzkernel-name*.rpm). Далее, необходимо изменить некоторые параметры в /etc/sysctl.conf:

# On Hardware Node we generally need
# packet forwarding enabled and proxy arp disabled
net.ipv4.ip_forward = 1
net.ipv4.conf.default.proxy_arp = 0
# Enables source route verification
net.ipv4.conf.all.rp_filter = 1
# Enables the magic-sysrq key
kernel.sysrq = 1
# TCP Explict Congestion Notification
#net.ipv4.tcp_ecn = 0
# we do not want all our interfaces to send redirects
net.ipv4.conf.default.send_redirects = 1
net.ipv4.conf.all.send_redirects = 0

При необходимости можно установить новое ядро загружаемым по умолчанию (для GRUB - параметр default в /boot/grub/menu.lst). Перезагружаемся с новым ядром и выполняем:

/sbin/service vz start

Создание и удаление VPS

Например, создаем VPS 128 с template CentOS Linux Minimal:

/usr/sbin/vzctl create 128 --ostemplate centos-4-i386-minimal --config vps.basic

Чтобы физически удалить VPS 128:

/usr/sbin/vzctl destroy 128

Конфигурирование VPS

Задание автостарта при загрузке openvz для VPS 126:

/usr/sbin/vzctl set 126 --onboot yes --save

Установка hostname для VPS 126:

/usr/sbin/vzctl set 126 --hostname vps126.servername.ru --save

Смена (задание) IP на VPS 127:

/usr/sbin/vzctl set 127 --ipdel all --ipadd 192.168.1.27 --save

Установка nameserver для VPS 126:

/usr/sbin/vzctl set 126 --nameserver 123.45.67.89 --save

Установка пароля password на пользователя root для VPS 126 (**НИКОГДА ТАК НЕ ДЕЛАЙТЕ**):

/usr/sbin/vzctl set 126 --userpasswd root:password --save

Установка процессорной квоты 15% для VPS 126 (если процессора два, то максимум будет не 100%, а 200%):

/usr/sbin/vzctl set 126 --cpulimit 15 --save

Установка дисковой квоты 9 GB (10 GB в течении промежутка 600 секунд) для VPS 126:

/usr/sbin/vzctl set 126 --diskspace 9000000:10000000 --save
/usr/sbin/vzctl set 126 --quotatime 600 --save

Установка квоты на виртуальную память 750M (768M в течение quotatime - см.выше) с гарантией выделения до 250M (256M) для VPS 126:

/usr/sbin/vzctl set 126 --privvmpages 750M:768M --save
/usr/sbin/vzctl set 126 --vmguarpages 250M:256M --save

Это означает, что приложения на VPS не смогут выделить больше 768МБ, но в любом случае выделение до 256МБ пройдет успешно.

Управление VPS

Стартовать VPS 126:

/usr/sbin/vzctl start 126

Остановить VPS 126:

/usr/sbin/vzctl stop 126

Перезапустить VPS 126:

/usr/sbin/vzctl restart 126

Установка пакета на VPS 126:

/usr/bin/vzyum 126 install something

Деинсталляция пакета на VPS 126:

/usr/bin/vzyum 126 remove something

Запуск команды something... на VPS 126

/usr/sbin/vzctl exec 126 something...

Посмотреть, каких лимитов не хватило

# cat /proc/user_beancounters
Version: 2.5
     uid  resource           held    maxheld    barrier      limit    failcnt
     126: kmemsize        2773550    2822268  134217728  268435456          0
          lockedpages           0          0         32         32          0
          privvmpages       48620      51229      49152      53575          1
          shmpages            640        656       8192       8192          0
          dummy                 0          0          0          0          0
          numproc              34         35         65         65          0
          physpages         31297      31317          0 2147483647          0
          vmguarpages           0          0       6144 2147483647          0
          oomguarpages      31297      31317       6144 2147483647          0
          numtcpsock           13         16         80         80          0
          numflock              8         11        100        110          0
          numpty                1          1         16         16          0
          numsiginfo            0          2        256        256          0
          tcpsndbuf          8944      27940     319488     524288          0
          tcprcvbuf             0       9080     319488     524288          0
          othersockbuf     242836     262056     262144     524288          0
          dgramrcvbuf           0       8380     132096     132096          0
          numothersock        152        164        256        256          0
          dcachesize            0          0    1048576    1097728          0
          numfile            1003       1030       2048       2048          0
          dummy                 0          0          0          0          0
          dummy                 0          0          0          0          0
          dummy                 0          0          0          0          0
          numiptent            10         10        128        128          0

В колонка failcnt считается, сколько раз был достигнут лимит ресурса.

Пример создания VPS

psw="passwORD:-)"              # пароль от рута
ostmpl="centos-4-i386-minimal" # темплейт
vid="129"                      # VPS ID
/usr/sbin/vzctl create ${vid} --ostemplate ${ostmpl} --config vps.basic
/usr/sbin/vzctl set ${vid} --onboot yes --save 
/usr/sbin/vzctl set ${vid} --hostname vps${vid}.mwn --save
/usr/sbin/vzctl set ${vid} --ipdel all --save
/usr/sbin/vzctl set ${vid} --ipadd 192.168.1.${vid} --save
/usr/sbin/vzctl set ${vid} --nameserver 123.45.67.89 --save
/usr/sbin/vzctl set ${vid} --userpasswd root:${psw} --save
/usr/sbin/vzctl set ${vid} --cpulimit 15 --save
/usr/sbin/vzctl set ${vid} --diskspace 9000000:10000000 --save
/usr/sbin/vzctl set ${vid} --quotatime 600 --save
/usr/sbin/vzctl set ${vid} --privvmpages 250M:256M --save
/usr/sbin/vzctl set ${vid} --vmguarpages 120M:128M --save
/usr/sbin/vzctl start ${vid}


Локализация

К примеру, мы используем template CentOS Linux. Тогда, отредактируем /vz/template/centos/4/i386/config/.rpmmacros:

%_install_langs C:en_US.UTF-8:en_US:en:ru_RU.UTF-8:ru_RU:ru

Выполним:

vzpkgcache -f centos-4-minimal

По окончании OS template centos-4-minimal будет поддерживать UTF-8

Уже готовый OS template с UTF-8 можно найти здесь: ftp://172.30.1.126/pub/unix/centos-4-i386-minimal.tar.gz

В существующих VPS добавить новые локали можно только путём переинсталляции всех пакетов

В свежесозданной VPS создаем файл /etc/sysconfig/i18n:

LANG="en_US.UTF-8"
SUPPORTED="en_US.UTF-8:en_US:en:ru_RU.UTF-8:ru_RU:ru"
SYSFONT="latarcyrheb-sun16"

Рестарт и UTF-8 работает.

Проблемы

w/who на VPS и VPS node
w/who ничего не выводят
   * http://forum.openvz.org/index.php?t=rview&th=413&goto=2912
   * http://bugzilla.openvz.org/show_bug.cgi?id=124
   * http://kb.swsoft.com/article_133_1146_en.html 

Наиболее легкое решение проблемы — добавить в sshd_config:

UsePAM no
UseLogin yes
/sbin/service sshd restart

Более правильное — перекомпилировать ядро OpenVZ с опциями

CONFIG_AUDIT=y
CONFIG_AUDITSYSCALL=y

from [1] Pavel Stegnii aka --Adramelech 17:13, 28 апреля 2009 (UTC)