Виртуалки на OpenVZ (и немного Vesta CP)

// Август 12th, 2013 // Веб-разработка, Виртуализация

openvz_logo1В моей работе приходится постоянно экспериментировать, разрабатывать и отлаживать новые сервисы. Искать баги, как в собственном коде, так и в стороннем софте на разных платформах. В связи с этим возникла необходимость иметь под рукой небольшой загончик для виртаульных машин для тестирования всего, что нужно.С системами виртаулизации я, в принципе, работал и раньше. На одном из серверов стояла VirtualBox в headless Режиме (без гуя) и там вполне успешно крутились Ubuntu и Windows. Однако, после моих экспериментов машины часто падали. Причем падали так хорошо, что приходилось переставлять операционку. А это минимум час + наладка софта и т.д. Мне конечно всё это надоело и я стал искать решения.

Платформы для виртуализации

Т.к. для моих садистских игр мне требуется только Nix-like операционки, то я рассматривал довольно широкий спектр систем виртаулизациии. Основной критерий в поиске — бесплатность решения. Есть замечательные системы типа VMWare, Parallels — но все они либо платные, либо не подходят мне (по наличию железа). Из бесплатных систем я остановил свой выбор на Xen и OpenVZ, LXC (Linux Containers). Разница между ними принципиальная. OpenVZ и LXC — это системы контейнерной виртаулизации. Т.е. одно ядро используется всеми виртальными машинами. Но в моем случае, контейнерная виртаулизация как оказалась лучше, т.к. она потребляет меньше ресурсов. Одновременно с поиском системы виртуализации я присматривался к различным веб-интерфейсам этих систем. И уж очень мне приглянулась OpenVZ Web Panel.

Установка OpenVZ + Web Panel

openvz

Итак, первой моей ошибкой было то, что я не глянул в список поддерживаемых операционных систем. А моей любимой Ubuntu Server там как раз не было. Тут надо добавить, что панель может работать в двух режимах.

  • Первый режим, когда на сервере не стоит OpenVZ ядра, а панель коннектится к физическим серверам для управления ими. А ля Cluster Manager, или как там это называется в энтерпрайзе.
  • Второй режим, когда на сервере, куда ставится панель есть openvz ядро, то соответственно панель может управлять этим сервером (ставить виртаульные машины и т.д.).

Я сначала поставил панель и очень удивился, что я не могу создать виртальную машину. Потом понял, что надо присоединить физический сервер и вот тут то до меня дошло, что ядрышко у меня не то :-)

Вообще установка самой OpenVZ на Debian-системы довольно запутана, скажу лишь, что надо скачивать rpm-пакекты и конвертировать их в deb, при этом поплясывая с бубном. Мне это дело поднадоело и я снёс нафиг убунту и накатил Debian 6. (Да, под 7м панель тоже не работает).

Лучше всего сделать отдельный LVM раздел, который примонтировать к /vz в корневой системе. Итак имеем чистый Debian 6 и выполняем следующие шаги для установки. Сначала ставим сам OpenVZ.

 

Заходим под root.

su
#

Обновляем пакеты.

apt-get update
apt-get upgrade

Для правильной работы openvz изменяем настройки ядра.

Редактируем файл sysctl.conf. Добавляем или изменяем нужные строки.

vi /etc/sysctl.conf
# On Hardware Node we generally need
# packet forwarding enabled and proxy arp disabled
net.ipv4.ip_forward = 1
net.ipv6.conf.default.forwarding = 1
net.ipv6.conf.all.forwarding = 1
net.ipv4.conf.default.proxy_arp = 0

# Enables source route verification
net.ipv4.conf.all.rp_filter = 1

# Enables the magic-sysrq key
kernel.sysrq = 1

# We do not want all our interfaces to send redirects
net.ipv4.conf.default.send_redirects = 1
net.ipv4.conf.all.send_redirects = 0

Применяем изменения:

sysctl -p

Если у Вас работает SeLinux, его необходимо выключить:

vi /etc/sysconfig/selinux
SELINUX=disabled

Следующая команда установит новое ядро системы с поддержкой openvz, а так же автоматически установит vzctl и vzquota (необходимые утилиты для управления гостевыми системами). После удачной установки перезагружаем систему.

apt-get install linux-image-openvz-*
reboot

В меню GRUB появится дополнительные пункты с новым ядром. Его и необходимо запускать. Так как оно стоит первым по списку, запуск произойдет автоматически.

Для проверки, что всё ок смотрим вывод команды uname.

root@server:~# uname -a
Linux vaio 2.6.32-5-openvz-amd64 #1 SMP Fri May 10 09:43:55 UTC 2013 x86_64 GNU/Linux

Ну вот, теперь можно переходить к установки панели.

cd /var/tmp/
wget -O - http://ovz-web-panel.googlecode.com/svn/installer/ai.sh | sh

После окончания работы установщика, ваша панель будет доступна на 3000 порту сервера:

http://адрес_сервера:3000

Данные для входа по умолчанию:

login: admin
password: admin

Настройки панели лежат в /etc/vz/vz.conf Там же вы можете выбрать пути, где будут храниться сами контейнеры виртуальных машин (параметры VE_ROOT, VE_PRIVATE) и образы виртуалок (параметр TEMPLATE). Рекомендую вам сменить путь с /var/lib/vz на yнаш LVM том /vz просто установив симлинк туда.

Далее заходите в панель, видите там реальный сервер localhost, и в меню выбираете OS Templates. ПОсле выбора образов они будут поставлены в очередь на скачку. Через некоторео время можете создавать виртуалки с новыми образами. Статус закачив можно смотреть через пункт меню Tasks.

Установка Vesta Hosting Panel

Ну что-ж, пойдём автоматизировать дальше. Создаём вирталку из образа centos 6 x86_64 с
Ram 1024Mb (а то будет глючить, ведь Vesta кушает на холостом ходу 400Мб) и HDD 6100Mb. Вы, естественно, можете сами подтюнить эти параметры. А то и вовсе вырубить гуй у Vesta и пользоваться только консольными утилитами.

Готовим систему. Ставим mc для удобства и удаляем пакеты, которые веста и так поставит.

yum install mc
yum remove httpd bind

Устанавливаем мягкое ограничение на количество ресурсов.

ulimit -s unlimited

Теперь скачиваем установщик и ставим панельку.

# Download installation script
curl -O http://vestacp.com/pub/vst-install.sh
# Run it
bash vst-install.sh --force

Нам покажут, чего будем ставить, соглашаемся и вперед. Перезапускаем панель (и Mysql В т.ч.), а то сразу он не работает.

/etc/init.d/vesta stop
/etc/init.d/vesta start

Ну вот и всё. Открываем панельку в веб-браузере.

https://server:8083/

Наслаждаемся видом. Если админка не будет доступна, (Bad Gateway Error) попробуйте подождать чуть и ещё раз перезагрузить vesta (start/stop).

vesta-panel

Теперь мы можем плодить виртуалки, vhost-ы апача и делать там чего хотим, потом легким движениям удалять машины и создавать новые /* сказал он потирая руки */.

Share


Смотрите также:

Спасибо!


Если вам помогла статья, или вы хотите поддержать мои исследования и блог - вот лучший способ сделать это:


7 Responses to “Виртуалки на OpenVZ (и немного Vesta CP)”

  1. hackPNZ:

    Андрей, а ты в сторону Vagrant не смотрел? Там можно сделать бокс из Убунты и поднимать/ронять снепшоты вагрантовские сколько влезет)

    • google.com Андрей Токарчук:

      Кстати да, Антох. Надо бы прогуглить эту тему. Спасибо за наводку) Слышал краем уха, но не приглядывался.

  2. Ruslan:

    А еще в сторону Proxmox VE стоит посмотреть
    Ну прочто незаменимая вещь для подобных извратов :)

    • google.com Андрей Токарчук:

      Пробовал, Руслан, но он при загрузке мне матерился на модули ядра, и грузиться не стал (

    • google.com Андрей Токарчук:

      Но это были не фатальные баги. На самом деле не вставал он потому, что пытался найти свой CDROM, а я его iso-шник на флешку записал. Так что с флешки он не грузится. Сейчас попробую, как с реального CD.

  3. Там теперь есть репозиторий ядер для Дебиан, лежит на http://download.openvz.org/debian, конвертировать уже ничего не надо!

Комментировать