Виртуализация Linux с помощью OpenVZ

Часто возникает необходимость разнесения различных сервисов по разным физическим серверам. Но что делать если физический сервер один? Выход есть - виртуализация. В этой статье я расскажу о технологии виртуализации , которая базируется на ядре Linux. Рассматривать будем на дистрибутиве Debian, т.к. недавно OpenVZ патч был включен в репозиторий etch. Будем считать, что ОС у нас уже установлена.

Итак,

Сборка и установка ядра

Для начала установим исходники ядра и патч:
aptitude update
aptitude install kernel-patch-openvz
aptitude install linux-source-2.6.18
Также нам понадобятся утилиты для работы и управления виртуальными машинами:
aptitude install vzctl vzquota
Распакуем ядро:
cd /usr/src
tar xjvf linux-source-2.6.18.tar.bz2
cd linux-source-2.6.18
Скопируем конфиг:
cp /boot/config-2.6.18-4-686 .config
Исправим в конфиге параметр CONFIG_SECURITY он должен быть установлен в n. Вот так:

CONFIG_SECURITY=n

Установим пакет kernel-package, он нам поможет собрать пакет с пропатченным ядром:
aptitude install kernel-package
Соберем и установим новое ядро:

make-kpkg --append_to_version=-1-openvz --added_patches=openvz --revision=1 kernel_image
cd ..
dpkg -i linux-image-2.6.18-1-openvz_1_i386.deb
update-initramfs -c -k 2.6.18-1-openvz
update-grub
Редактируем /boot/grub/menu.lst так, чтобы у нас грузилось новое ядро. Перезагружаемся.

Если вы все сделали верно, то после перезагрузки у вас появится новый сетевой интерфейс venet.

Создание виртуальных машин.

Для начала поменяем параметры ядра:
sysctl -w net.ipv4.conf.eth0.proxy_arp=1
sysctl -w net.ipv4.ip_forward = 1
Далее нам понадобится хотя бы один шаблон ОС(шаблоны вы найдете на сайте OpenVZ).

cd /var/lib/vz/template/cache
wget http://download.openvz.org/template/prec…
Непосредственно создаем новую машину с VEID 101:

vzctl create 101 --ostemplate debian-4.0-minimal --config vps.basic
vzctl set 101 --onboot yes --save
vzctl set 101 --hostname hostname1.example.com --save
vzctl set 101 --ipadd 192.168.5.1 --save
vzctl set 101 --numothersock 120 --save
vzctl set 101 --nameserver 192.168.0.1 --save
vzctl set 101 --privvmpages 500000:750000 --save
vzctl start 101
vzctl exec 101 passwd
Заходим внутрь:

vzctl enter 101
Проверяем, все ли работает, и наслаждаемся:)

Прочие полезности:

Конфигурационные файлы находятся в /etc/vz/
команда vzctl start - запускает виртуальную машину.
команда vzctl stop - останавливает виртуальную машину.
команда vzctl restart - перезапускает виртуальную машину.

cat /proc/user_beancounters покажет используемые ресурсы и покажет их нехватку.

vzlist покажет запущенные виртуальные машины
vzlist -a покажет все сконфигурированые виртуальные машины
vzpid $PID По pid процесса покажет VEID в которой запущен процесс.

Источник

free-templates.ru