Виртуализация 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 в которой запущен процесс.

Leave a Reply