Управление OpenVZ с помощью WebVZ

Для одного проекта понадобилось установаить на сервер OpenVZ. Продукт для меня новый, раньше им никогда не пользовался. Разбираться в тонкостях консольных команд для создания и управления контейнерами OpenVZ на начальном этапе не хотелось совершенно.

Оказалось, есть неплохой инструмент для администрирования контейнеров OpenVZ, который называется WebVZ 2.0. Контрольная панель WebVZ использует для работы Ruby, SQLite 3, в качестве веб-сервера идет WEBrick.

Итак, установка на Debian Lenny. Считаем, что OpenVZ уже установлен на сервере и работает. В моей системе настроен sudo, в вашей может понадобиться предварительно взять права администратора через команду su –.

$ sudo apt-get install ruby rubygems libsqlite3-ruby sqlite3 irb1.8 libopenssl-ruby1.8 libreadline-ruby1.8 rdoc1.8
$ sudo gem install -v=2.1.0 rails
$ wget http://sourceforge.net/projects/webvz/files/webvz/webvz%202.0/webvz.2.0.tar.gz/download
$ tar xvfz webvz.2.0.tar.gz
$ sudo mv webvz.2.0 /usr/local/webvz
$ cd /usr/local/webvz
$ sudo ln -s /var/lib/vz /vz
$ sudo ln -s /usr/bin/irb1.8 /usr/bin/irb
$ sudo mkdir /etc/sysconfig
$ sudo ln -s /etc/vz/conf /etc/sysconfig/vz-scripts

Находясь в каталоге /usr/local/webvz, запустим сервер:

$ sudo ruby script/server

По умолчанию сервер запустится на порту 3000, логин admin, пароль admin123.

WebVZ

Сразу же идем на закладку [Users] и либо меняем пароль, либо создаем своего пользователя со своим паролем и деактивируем пользователя admin.

Дальше мы можем создавать, удалять контейнеры и управлять их параметрами, запускать и останавливать. Достаточно удобно.

VEs

Практически вся установка была сделана по статье на Howtoforge.com: “Install WebVZ 2.0 On Debian Etch To Administrate OpenVZ”. После установки очень легко разобраться где и как настраиваются и управляются контейнеры. Правда, от знания и понимания многочисленных параметров настройки OpenVZ это не избавляет.

Попутно выяснился один существенный нюанс, который легко упустить при переходе с систем виртуализации вроде VMware или VirtualBox. В отличии от последних, OpenVZ не является витруализацией системы в чистом виде, а контейнером ресурсов. Соответственно, при исчерпании выделенных ресурсов система в контейнере не получит их извне. Например, если не в меру прожорливый PHP-скрипт съел всю выделенную память и завис, не освободив, то в контейнере не сможет стартовать ни один процесс. В контейнере нет разницы между оперативной памятью и свопом, есть просто “память”. Если у нас на аппаратном ноде 1GB RAM и 4GB swap,  то мы безболезненно можем выделить виртуальной машине 4GB памяти. Или, если у нас 4GB RAM и 1ГБ, то тоже можем выделить 4GB контейнеру. Разница будет только в производительности. Так что работать внутри контейнера нужно аккуратно: если на реальной системе при исчерпании памяти система полезет на диск, то в контейнере она упрется в лимит и выдаст ошибку. Я с этой особенностью столкнулся.

Leave a comment

Your comment