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

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.

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

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

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

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

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

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

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

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

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

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

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

Настройки панели лежат в /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 для удобства и удаляем пакеты, которые веста и так поставит.

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

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

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

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

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

vesta-panel

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

7 Comments

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

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

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

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

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

Leave a Comment