Разворачиваем виртуальные сервера +

Привезли мне сегодня весьма мощный сервер и решил я поднять там несколько виртуальных серверов. Несколько IP адресов у меня имеется, так почему добро должно пропадать или простаивать? :)

В общем, поставил я и настроил OpenVZ под Ubuntu 8.04 LTS, о чем и хочу сегодня рассказать.

С самого начала нужно уяснить, что защита «Хост-сервера» — это основное, так как если злоумышленник получит доступ к нему, то все гостевые сервера будут скомпрометированы. Поэтому мы туда не ставим ничего лишнего. В идеале — OpenSSH и все.

1. Разметка файловой системы.

В принципе, разметка вся стандартная, то есть та, к которой Вы привыкли. За исключением одного раздела, где будут лежать все виртуальные машины «/vz». Он, естественно должен быть самым большим, так как там будут шаблоны виртуалок, сами гостевые сервера и т.п.

2. Установка ядра системы с виртуализацией.

Первое, что нам нужно — это установить ядро с поддержкой виртуализации и вычистить ненужное. Для этого запускаем

sudo apt-get install linux-openvz vzctl

Перезагружаемся с новым ядром и сносим лишнее серверное ядро.

sudo apt-get remove —purge —auto-remove linux-image-.*server

Теперь правим параметры ядра в /etc/sysctl.conf

# On Hardware Node we generally need
# packet forwarding enabled and proxy arp disabled

net.ipv4.conf.default.forwarding=1
net.ipv4.conf.default.proxy_arp = 0
net.ipv4.ip_forward=1

# 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

Применяем параметры ядра

sudo sysctl -p

Переносим все из /var/lib/vz в /vz и создаем симлинк на раздел

sudo mv /var/lib/vz /vz
sudo rm -f /var/lib/vz
sudo ln -s /vz /var/lib/vz

3. Установка гостевой системы

Установка гостевой системы абсолютно проста и прозрачна. Скачиваем образ системы с сайта http://openvz.org/download/template/cache/ (например, ubuntu) в каталог /vz/template/cache и пишем скрипт для более быстрого развертывания сервера.

#!/bin/bash

OT=’ubuntu-8.04-i386-minimal’ # Название файла шаблона
VEID=’101′ # номер виртуальной машины
VEIP=’192.168.0.101′ # IP виртуальной машины
VEHN=’virtual101.localnet’ # имя машины
VENS=’192.168.0.1′ # DNS

sudo vzctl create $VEID —ostemplate $OT
sudo vzctl set $VEID —ipadd $VEIP —save
sudo vzctl set $VEID —hostname $VEHN —save
sudo vzctl set $VEID —nameserver $VENS —save
sudo vzctl set $VEID —onboot yes —save
sudo vzctl set $VEID —numothersock 100 —save
sudo vzctl set $VEID —numtcpsock 100 —save
sudo vzctl set $VEID —numproc 150 —save
sudo vzctl set $VEID —vmguarpages 65536 —save # гарантированный объем 256Мб, в блоках по 4Кб
sudo vzctl set $VEID —privvmpages 131072 —save # максимальный объем 512Мб, в блоках по 4Кб
sudo vzctl start $VEID
sudo vzctl enter $VEID

После запуска скрипта у нас разворачивается виртуальный сервер с указанным IP и мы сразу попадаем на него.

Собственно говоря — это все. Дальше мы работает с ним как с обычным сервером. Надеюсь эта информация будет Вам полезна и Вы найдете как ее применить в условиях избытка мощностей. :)

Вы можете оставить комментарий, или поставить трэкбек со своего сайта.

9 комментариев(я)

  • 25.11.2008 08:17, www2 сказал:

    Настоятельно рекомендую воспользоваться vzctl версии 3.0.23. Только с его помощью можно настроить автоматическое включение veth-интерфейсов в бридж: http://vladimir-stupin.blogspot.com/2008/11/openvz-debian.html

    Кроме того, всё запустить в контейнерах не удастся. Нельзя запустить pppd, pure-ftpd без напильника, смонтировать SMB-шару: http://vladimir-stupin.blogspot.com/2008/11/openvz.html
    А мне очень хотелось настроить в отдельном VE роутер, а в другом VE файловый сервер на samba и pure-ftpd. Samba-сервер работает, но воспользоваться им внутри других VE нельзя :(

    (Обязательно)
    (Обязательно, не публикуется)

    "АБЫРВАЛГ!", сказал линукс после руссификации.
    Яндекс.Метрика beget