Имеем сервер с установленным Debian Lenny. Задача: настроить на серверe несколько VPS-ов.1. Устанавливаем ядро с поддержкой OpenVZ
aptitude install linux-image-openvz-amd64
2. Для нормальной работы OpenVZ-контейнеров необходимо чтобы /etc/sysctl.conf содержал следующие строки:
net.ipv4.conf.all.rp_filter=1
net.ipv4.icmp_echo_ignore_broadcasts=1
net.ipv4.conf.default.forwarding=1
net.ipv4.conf.default.proxy_arp = 0
net.ipv4.ip_forward=1
kernel.sysrq = 1
net.ipv4.conf.default.send_redirects = 1
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.eth0.proxy_arp=13. Перезагружаем сервер
4. Проверяем, что сервер загрузился с новым ядром
uname -rесли система выдаст 2.6.26-2-openvz-amd64, то всё установилось корректно
5. Ядро, которое было установлено по-умолчанию мне не нужно и я его удаляю (если хотите оставить предыдущее ядро - шаг пропускаем)
apt-get remove --purge linux-image-2.6.26-2-amd64
6. Для контейнеров OpenVZ у меня выделен отдельный раздел подмонтированный в /vz. По-умолчанию OpenVZ в Debian всё складывает в /var/lib/vz. Переношу всё с /var/lib/vz в /vz и создаю симлинк
/etc/init.d/vz stop
mv /var/lib/vz/* /vz/
rmdir /var/lib/vz
ln -s /vz /var/lib/vz
/etc/init.d/vz start7. В контейнере у меня будет работать Debian Lenny х86. Загружаем шаблон контейнера с сайта OpenVZ
cd /var/lib/vz/template/cache
wget -c http://download.openvz.org/template/precreated/debian-5.0-x8...8. Создаём контейнер (101 - это уникальный идентификатор контейнера)
vzctl create 101 --stemplate debian-5.0-x86 --config vps.basic
9. Указываем чтобы контейнер запускался в вместе с OpenVZ
vzctl set 101 --onboot yes --save
10. Конфигурируем имя хоста, IP и dns-сервер для контейнера
vzctl set 101 --hostname vps1.local --save
vzctl set 101 --ipadd 10.1.1.101 --save
vzctl set 101 --nameserver 10.1.1.2 --save11. Запускаем контейнер и устанавливаем пароль для root-a
vzctl start 101
vzctl exec 101 passwd12. Переключаемся в контейнер
vzctl enter 101
Для выхода из контейнера необходимо дать команду exit. Зайти можно и по ssh.
13. Устанавливаем необходимое ПО в контейнере.
14. Успешно эксплуатируем.
P.S. Несколько необходимых команд для работы с контейнерами:
vzlist -a - список запущенных контейнеров и их состояние
vzctl stop <UID> - остановить контейнер
vzctl restart <UID> - перезагрузить контейнер
vzctl destroy <UID> - удалить контейнергде <UID> - уникальный идентификатор OpenVZ-контейнера
URL: http://sysadminpages.com/2009/11/openvz-on-debian-lenny/
Обсуждается: http://www.opennet.me/tips/info/2221.shtml
> net.ipv4.icmp_echo_ignore_broadcasts=1А я хочу DHCP
> kernel.sysrq = 1
Это, ваще, просто необходимо :)
>> net.ipv4.icmp_echo_ignore_broadcasts=1
>А я хочу DHCPА причем тут DHCP ? Человек боится ping -b
А для работы DHCP внутри VE нужно вместо
> vzctl set 101 --ipadd 10.1.1.101 --saveделать
> vzctl set 101 --netif_add veth0 --saveвнутри появится виртуальный адаптер и его уже можно конфигурять обычным /etc/network/interfaces (или /etc/network/interfaces.template если есть дополнительные venet'ы)
хорошо описано все это на сайте openvz http://wiki.openvz.org/Differences_between_venet_and_veth
>> kernel.sysrq = 1
> Это, ваще, просто необходимо :)Вообще да, т.к. при большом количестве сетевых соединений внутри VE (10-15 к) она отказывается останавливаться и/или чекпоинтицо, например для дампа или миграции, после чего всё ядро встает колом и нельзя ни создать, ни остановить нихрена. echo b > /proc/sysrq-trigger поможет отцу русской демократии (синковацо не забываем).
К вопросу, о veth0
> внутри появится виртуальный адаптер и его уже можно конфигурять обычным /etc/network/interfaces (или /etc/network/interfaces.template если есть дополнительные venet'ы)Это для интерфейса внутри контейнера
А как привязать также элегантно, адрес для veth101.0 в хостовой системе?
netwoking стартует раньше vz и естественное никаких vethXXX.Y нету.Кто нибуть решал подобную задачу?
>К вопросу, о veth0
>> внутри появится виртуальный адаптер и его уже можно конфигурять обычным /etc/network/interfaces (или /etc/network/interfaces.template если есть дополнительные venet'ы)
>
>Это для интерфейса внутри контейнера
>А как привязать также элегантно, адрес для veth101.0 в хостовой системе?
>netwoking стартует раньше vz и естественное никаких vethXXX.Y нету.
>
>Кто нибуть решал подобную задачу?Нашёл сам в http://wiki.openvz.org/Veth#Add_veth_device_to_CT_2
но от адреса на venet прилшось отказаться... перезатирал настройки в interfaces
Жаль только не весь функционал OpenVZ в ядрах 2.6.26 доступен, так что для нормальной работы контейнеров может понадобиться еще 2.6.18 использовать. :(
+1
> Warning: cpulimit is not yet implemented in kernels > 2.6.18 (i.e. development ones).
> Use stable kernel if you want this feature.
мдя.. на сате OVZ есть wiki, там все описано, да и ман довольно хорошо написан...
или это для ленивых?
Уже сто раз описано на всех языках и все-равно даже сюда постится.
Вишь, хоть тыщщу напишут, а все равно>> net.ipv4.conf.default.proxy_arp = 0
>> net.ipv4.conf.eth0.proxy_arp=1
>
> аффтар, я тебя не понял.
> что это за махинации? если это специфично именно для вашей конфигурации, то это стоило бы > отметить как-то.
>net.ipv4.conf.default.proxy_arp = 0
>net.ipv4.conf.eth0.proxy_arp=1аффтар, я тебя не понял.
что это за махинации? если это специфично именно для вашей конфигурации, то это стоило бы отметить как-то.
Как квотировать память процессор винт.
запятая запала на клавиатуре?
Статья из серии "делай как я, делай как я!".