Установка OpenVZ на Gentoo Linux
Установка
- Установка ядра:
emerge openvz-sources
- Установка утилит управления:
emerge vzctl
Настройка HN
NH - Hardware Nodes : физический сервер, основной базовый сервер
Сборка ядра
cd /usr/src/linux-2.6.27-openvz-<текущая версия> make menuconfig
Далее сконфигурированное ядро компилируем и добавляем в загрузку
make && make install modules_install ls -l /boot/ nano /boot/grub/menu.lst
menu.lst
... title Gentoo Linux 2.6.27-openvz-<текущая версия> root (hd0,0) kernel /boot/vmlinuz-2.6.27-openvz-<текущая версия> root=/dev/sda5 panic=30 ...
Сборка ядра (genkernel)
Сборка ядра с использованием genkernel и конфига от разработчиков.
Устанавливаем genkernel:
emerge genkernel
Создайте символьную ссылку на исходники ядра:
cd /usr/src ln -sf linux-<нужная версия> linux
Скачиваем с сайта openvz.org подготовленный разработчиками конфиг по умолчанию. Находим здесь свою версию ядра и в разделе Configs выбираем нужный конфиг в зависимости от архитектуры.
Скачиваем нужный конфиг:
cd /usr/src/linux wget http://download.openvz.org/kernel/branches/2.6.27/2.6.27-briullov.1/configs/kernel-2.6.27-i686.config.ovz
Сборка ядра:
genkernel --kernel-config=kernel-2.6.27-i686.config.ovz --menuconfig all
Описание опций genkernel:
- --kernel-config= – использовать указанный конфиг. Без этой опции будет испльзоватья конфиг ядра по умолчанию от генты
- --menuconfig – перед сборкой запустить ручной конфигуратор ядра. При необходимости можно поменять некоторые опции заданные по умолчанию
- all – собрать ядро, модули, образ initrd и выполнить установку
Настройка загрузчика grub:
/boot/grub/grub.conf
title Gentoo Linux (OpenVZ) root (hd0,0) kernel /boot/kernel-genkernel-<ваша_версия_ядра> root=root=/dev/ram0 real_root=/dev/sda1 vga=788 panic=30 initrd /boot/initramfs-genkernel-<ваша_версия_ядра>
Системные параметры
Необходимо изменить некоторые параметры ядра в файле /etc/sysctl.conf:
/etc/sysctl.conf
## Разрешения на прохождение пакетов net.ipv4.ip_forward = 1 net.ipv4.conf.default.forwarding=1 net.ipv4.conf.all.forwarding=1 ## Принцип фильтрования в rp_filter: # Если ответ на текущий пакет не может уйти через тот же интерфейс пакет отфильтровывается # (когда приходит через один интерфейс, а уходит через другой) net.ipv4.conf.default.rp_filter = 1 net.ipv4.conf.all.rp_filter = 1 ## Посылает ICMP-сообщения о перенаправление трафика на другой адрес # эти параметры рекомендуются на wiki.openvz.org net.ipv4.conf.default.send_redirects = 1 net.ipv4.conf.all.send_redirects = 0 ## proxy arp #net.ipv4.conf.default.proxy_arp = 0 # TCP Explict Congestion Notification #net.ipv4.tcp_ecn = 0
Применить изменения:
sysctl -p
Перезагрузка
reboot
Запуск
Запуск подсистемы openvz:
/etc/init.d/vz start
Добавление в загрузку по умолчанию:
rc-update add vz default
Настройка работы внутренней сети через NAT
Выполнить загрузку модулей:
modprobe ip_conntrack
Для нормальной работы ftp через nat нужно подгрузить модуль:
modprobe ip_conntrack_ftp modprobe ip_nat_ftp
Соответствующие модули должны быть включены в настойках ядра
Для автоматической загрузки добавить в файл /etc/modules.autoload.d/kernel-2.6 строки
/etc/modules.autoload.d/kernel-2.6
ip_conntrack ip_conntrack_ftp ip_nat_ftp
Правила для iptables:
firewall.rule
#!/bin/bash IPT="/sbin/iptables" $IPT -F $IPT -X $IPT -t nat -F $IPT -t mangle -F VPS_LAN="10.0.0.0/8" # сеть VPS WAN1_IF="eth0" # интерфейс на реальной машине (HN) для внешнего выхода WAN1_IP="1.1.1.1" # основной IP на HN $IPT -t nat -A POSTROUTING -s ${VPS_LAN} -o ${WAN1_IF} -j SNAT --to ${WAN1_IP}
Дерево портажей
Для подключения общего дерева портажей к Gentoo VE необходимо выполнить на HN:
mount --bind /usr/portage /vz/root/<VPS-ID>/usr/portage
Можно настроить использования одного общего дерева портажей для всех виртуальных gentoo окружений. Для этого создадим скрипты:
/etc/vz/conf/vps.mount
#!/bin/bash # if one of these files does not exist then something is really broken [ -f /etc/vz/vz.conf ] || exit 1 [ -f $VE_CONFFILE ] || exit 1 . /etc/vz/vz.conf . $VE_CONFFILE if [ "x$DISTRIBUTION" == "xgentoo" ]; then echo "Mounting share portage tree" [ -d $VE_ROOT/usr/portage ] || mkdir $VE_ROOT/usr/portage mount -o bind /usr/portage $VE_ROOT/usr/portage fi exit ${?}
/etc/vz/conf/vps.umount
#!/bin/bash # if one of these files does not exist then something is really broken [ -f /etc/vz/vz.conf ] || exit 1 [ -f $VE_CONFFILE ] || exit 1 . /etc/vz/vz.conf . $VE_CONFFILE if [ "x$DISTRIBUTION" == "xgentoo" ]; then echo "Umounting share portage tree" umount $VE_ROOT/usr/portage fi exit 0
Сделаем скрипты выполняемыми:
chmod +x /etc/vz/conf/vps.mount && chmod +x /etc/vz/conf/vps.umount
Скрипты с именами : /etc/vz/conf/vps.mount и /etc/vz/conf/vps.umount выполняются при старте/остановке VE.
См. Bind_mounts.
Для того, чтобы это работало в конфигурационном файле VE нужно добавить строчку:
/etc/vz/conf/VPS-ID.conf
... DISTRIBUTION="gentoo" ...
Пример установки VE
VE - Virtual Environment : виртуальное окружение, так же еще называют СT - контейнером
Пример установки виртуального окружения Gentoo Linux openvz
- В начале необходимо загрузить шаблон в папку /vz/template/cache/:
cd /vz/template/cache/ wget http://download.openvz.org/template/precreated/contrib/gentoo-openvz-x86-2008.11.30.tar.gz
Список подготовленных шаблонов OpenVZ Download
Также свежие шаблоны для Gentoo Linux можно найти на www.funtoo.org
или сделать самому Gentoo template How-To
- Создание VPS:
vzctl create 101 --ostemplate gentoo-openvz-x86-2008.11.30
ID для VPS следует задавать начиная с номера 101
- Настройка VPS:
vzctl set 101 --hostname test.vz --ipadd 10.0.0.1 --nameserver 4.2.2.2 --save
- Установить количество доступной памяти для VE:
vzctl set 101 --vmguarpages 512M:unlimited --privvmpages 1G:1100M --shmpages 512M:512M --save
- Запуск VPS:
vzctl start 101
- Вход в виртуальное окружение:
vzctl enter 101
- Понять сетевой интерфейс (если не запустился автоматически):
/etc/init.d/net.venet0 start && rc-update add net.venet0 boot
Дополнительная информация
2012/02/01 22:55 | ||
2012/02/01 22:55 | ||
2012/02/01 22:55 | ||
2012/02/01 22:55 | ||
2012/02/01 22:55 | ||
2012/02/01 22:55 | ||
2012/02/01 22:55 | ||
2012/02/01 22:55 | ||
2012/02/01 22:55 |
Обсуждение