[[Установка OpenVZ на Gentoo Linux]]

GentooOpenVZ

Установка OpenVZ на Gentoo Linux

Установка

  1. Установка ядра:
    emerge openvz-sources
  2. Установка утилит управления:
    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

Дополнительная информация

Обсуждение

Ваш комментарий. Вики-синтаксис разрешён:
110 -0 = ?
 
howto/openvz/install_openvz_on_gentoo.txt · Последние изменения: 2012/06/03 21:52 (внешнее изменение)
Gentoo Linux Driven by DokuWiki