|
Батуты Оптово-розничный интернет-магазин. Товары для туризма, спорта и отдыха. cyber-kid.ru |
|
Алюминиевый лист Флокирование и декорирование материалов. Электротехника, металлопрокат. gsmetal.ru |
Статья опубликована в журнале
Системы виртуализации Xen/KVM, выпускаемые под свободными лицензиями, не имеют удобного интерфейса, что часто трактуется не в их пользу. Эту задачу решают сторонние проекты.
Сегодняшний мир — это мир виртуализации. Мощности современных серверов уже достигли все мыслимых пределов при достаточно низкой стоимости. Поэтому многие задачи, для которых традиционно отводилось несколько серверов, переносятся в виртуальные среды. Причем если раньше администратор был, по сути, связан самим железом, то теперь он может создать любое количество серверов буквально одной командой. В результате на группе серверов может “крутиться” целый табун виртуальных машин, что в итоге порождает целый ряд проблем управления всем хозяйством с возможностью делегирования полномочий между несколькими администраторами. Плюс надо как-то получать информацию о состоянии хостовых и гостевых систем. Контроль первых необходим, чтобы создавать новые виртуальные машины на наименее загруженных серверах. Гостевые системы, как правило, ограничены в ресурсах, их контроль необходим, чтобы быстро реагировать на проблемы. Частично это все решается при помощи команд Unix, записанных в скрипты, но производимые операции и выдаваемая информация не всегда наглядны, да и требует некоторой подготовки. Не говоря уже о том, что эти скрипты надо где-то брать. Использование графического интерфейса сразу снимает ряд вопросов. В мартовском приложении к журналу «Виртуализация», уже рассматривался интерфейс Karesansui и Red Hat Enterprise Virtualization. Проект ConVirt также обещает много интересного.
Разработкой ConVirt занимает компания Convirture, ранее решение было известно как XenMan, но затем продукт изменил свое название. ConVirt позволяет управлять Xen и KVM, развертывая виртуальные машины одной кнопкой на нескольких серверах. При разработке использована ставшая популярной концепция “open core”(открытая основа), когда вместе с исходными текстами свободно распространяется только базовый набор функций, остальное доступно в коммерческой версии.
Сегодня предлагается две версии – Enterprise и Open Source. Вторая распространяется на условиях лицензии GPL, от коммерческой версии отличает отсутствием High Availability, интеграции с VLAN, резервирования и восстановления, управления из командной строки, уведомлений и некоторых других функций. Подробнее о различиях можно узнать в таблице ().
Управление настройками производится при помощи интерактивного веб-интерфейса построенного с использованием технологии Ajax (в ранних версиях использовалось настольное приложение). Из браузеров официально поддерживается только Firefox. Сразу скажу о минусе, интерфейс доступен только на английском, но для человека понимающего суть настроек, перевод и не потребуется. Реализована возможность делегировать управление виртуальной средой нескольким администраторам с возможностью контроля за их действиями и аудита.
Для удобства настройки серверы объединяются в пулы, администратор самостоятельно устанавливает количество пулов и принадлежность к ним серверов. Такое объединение дает возможность настраивать и контролировать виртуальные машины и ресурсы на уровне серверного пула, а не одного сервера. Для создания виртуальных машин используются шаблоны. После установки ConVirt предоставляет несколько готовых шаблонов, при необходимости шаблоны можно создать самостоятельно или загрузить прямо из окна программы. Шаблон по сути является описанием настроек виртуальной машины как это принято в Xen или KVM и содержит данные об выделяемых ресурсах, путь к файлам ОС и дополнительные настройки. Интерфейс позволяет производить все необходимые действия с виртуальными машинами даже неподготовленному пользователю: запускать, останавливать VM, создавать снимки, контролировать и перераспределять ресурсы, подключаться по протоколу VNC, автоматизировать многие задачи администрирования. При наличии нескольких физических серверов возможно использование режима обслуживания (Maintenance mode), который позволяет одной кнопкой перенести все виртуальные машины с одного сервера на время остановки и затем вернуть обратно. В обычном режиме гостевые системы переносятся между серверами при помощи перетаскивания.
При добавлении новой системы или сервера, ConVirt автоматически начинает собирать данные о его конфигурации и производительности, предоставляя итоговую информацию на нескольких уровнях от отдельной виртуальной машины, физического сервера и всего пула. Собранные данные накапливаются и доступны, в том числе и в виде временных графиков, что в итоге позволяет диагностировать ошибки, вовремя обнаруживать узкие места и перераспределять ресурсы. Собранные данные используются для автоматического размещения новых гостевых систем, ConVirt выбирает наиболее оптимальный по производительности сервер. Также автоматически отслеживается использование и состояние NAS/SAN ресурсов, в качестве последних к ConVirt подключаются устройства, работающие по протоколам NFS, iSCSI и AOE (ATA Over Ethernet).
Поддерживается балансировка нагрузки, горячая миграция, виртуальные диски с растущей емкостью, позволяющие задействовать ресурсы по мере необходимости и многие другие возможности, реализованные в Xen и KVM. Перераспределение ресурсов возможно “на лету” без остановки виртуальной машины. Ограничение на количество поддерживаемых виртуальных машин не прописано, очевидно, оно будет диктоваться только возможностями самого сервера.
Еще одно отличие ConVirt от других подобных решений состоит в том, что на виртуальных системах не устанавливаются агенты, что также упрощает администрирование и развертывание. Только на физическом сервере запускается convirt-tool, обеспечивая его подключение к консоли управления. Поддержка Open Source версии обеспечивается обществом, плюс информацией в документации и Wiki проекта. Кроме того, за деньги предоставляется т.н. Incident-based и Silver помощь. В первом случае помощь запрашивается при возникновении проблемы — «pay-as-you-go«. После оплаты нужная информация предоставляется в течение 48 часов, затем повторно можно вернуться к этому вопросу в течение 12 месяцев. Поддержка Silver предоставляет полный пакет услуг в течение года, плюс доступ к информации об инцидентах, сертифицированным патчам и обновлениями, инструментам настройки и даже компенсацию. Последний пункт интересен, но к сожалению подробностей последнего разработчики не разглашают.
При разработке использовались фреймворк TurboGears2, библиотеки ExtJs и FLOT, для хранения информации – MySQL, в качестве DHCP- и DNS-сервера – dnsmasq .
Актуальной на момент написания статьи была версия 2.0, установку которой и будем рассматривать. В качестве тестового дистрибутива использовался в Ubuntu 10.4 с Xen, хотя все действия на CentOS 5.5 совпадают практически полностью, за исключением особенностей пакетной системы. На WiKi проекта доступны списки сертифицированных и протестированных дистрибутивов Linux (SUSE Linux Enterprise Server 11 и SP1, Red Hat Enterprise Linux 5.4/5.5, CentOS 5.4/5.5, Ubuntu 8.10-10.04, Debian 5.0). Там же даны комментарии по настройке Xen/KVM в дистрибутивах. Списки доступных репозитариев для Debian 5.0, Ubuntu 8.х/9.х, RHEL 5.x и файлы с их настройками можно найти на .
В репозитарии Ubuntu 10.4, доступен пакет с ConVirt, но более ранней версии.
$ sudo apt-cache show convirt | grep –i version Version: 1.1-1

Поэтому чтобы установить версию 2.0 приходится прибегать к использованию исходных текстов. После прочтения руководства приходишь к мысли, что чтобы развернуть ConVirt потребуется ввести всего две команды. На самом деле, в нем не описаны тонкости, которые потом разрешаются при помощи информации доступной на форуме. Вначале следует установить зависимости. Это можно сделать самостоятельно:
$ sudo apt-get install python yelp python-rpm python-vte python-paramiko python-gtk2 python-xen-3.3 python-glade2 xen-utils ssh vncviewer socat uml-utilities dnsmasq mysql-server build-essential libdbd-mysql-perl libdbi-perl libhtml-template-perl ssh libxen3 vncviewer bridge-utils
Или поручить это установочному скрипту, который в идеальных случаях сам со всем справляется. Кроме этого необходимо обязательно установить пакет python-setuptools.
$ sudo apt-get install python-setuptools
Обращаю на него особое внимание, потому что в зависимостях он не указан, но при его отсутствии ConVirt не запускается, что в журнале отображается следующим образом.
Traceback (most recent call last): File "/home/heilig/tg2env/bin/paster", line 8, in <module> load_entry_point('PasteScript==1.7.3', 'console_scripts', 'paster')() File "/home/heilig/tg2env/lib/python2.6/site-packages/PasteScript-1.7.3-py2.6.egg/paste/script/command.py", line 84, in run invoke(command, command_name, options, args[1:]) …... File "/usr/lib/python2.6/dist-packages/pkg_resources.py", line 546, in resolve raise DistributionNotFound(req) pkg_resources.DistributionNotFound: distribute Removing PID file ./paster.pid </module>
Также следует до начала установки, изменить пароль root в MySQL установив его в значение “convirt”:
$ mysql -u root -p mysql> use mysql; mysql> update user set password=PASSWORD(“convirt”) where User=“root”; mysql> flush privileges; mysql> quit
Об этом, кстати, тоже ни где не сказано, только пара сообщений на форуме проясняют ситуацию. Естественно в целях безопасности следует ограничить доступ к MySQL только с локальной системы. Если такая схема не устраивает можно изменить настройки в файле convirt/src/convirt/web/convirt/development.ini:
sqlalchemy.url=mysql://root:convirt@localhost:3306/convirt?charset=utf8
ConVirt устанавливается в домашнем каталоге пользователя который запустил скрипт. Но в некоторых случаях установочный скрипт по непонятным причинам не мог создать каталог ~/.ssh/ в котором хранятся SSH-ключи. Поэтому его также можно создать вручную:
$ mkdir ~/.ssh/
Скачиваем скрипт установки:
$ wget --no-cache http://www.convirture.com/downloads/convirt/2.0/convirt-install-2.0.tar.gz $ tar -xzf convirt-install-2.0.tar.gz
Теперь устанавливаем зависимости:
$ sudo ./convirt-install/install/cms/scripts/install_dependencies
По окончании работы скрипта, можно начинать собственно установку.
$ sudo ./convirt-install/install/cms/scripts/install_convirt
В процессе будет скачано и установлено еще несколько приложений и собственно CovVirt. По окончанию будет запрошен пароль необходимый для генерации SSH ключа. В последующем он будет запрашиваться при каждом запуске ConVirt, это одна из ступеней защиты. Хотя если поле оставить пустым, то тогда ничего запрашиваться не будет.
ConVirt Setup Done... Generting ssh identity for CMS. Generating public/private rsa key pair. Enter passphrase (empty for no passphrase): Enter same passphrase again:
Далее скрипт выдает необходимые данные для регистрации в ConVirt
ConVirt Management Server (CMS) setup complete. To start CMS, give the following commands. cd /home/grinder/convirt ./convirt-ctl start By default the CMS listens on 8081 port. So make sure that your firewall allows TCP 8081 port Typically this can be achieved by using the following command as root user iptables -I INPUT -p tcp --dport 8081 -j ACCEPT Once done, you should be able to access ConVirt application using http://grinder-desktop:8081/
В принципе все необходимые указания по дальнейшим действиям уже даны. На серверах с установленными Xen и KVM необходимо развернуть инструмент управления.
$ wget -c http://www.convirture.com/downloads/convirture-tools/2.0/convirture-tools-2.0.tar.gz $ tar xzvf convirture-tools-2.0.tar.gz $ cd convirture-tools-2.0/install/managed_server/scripts
В каталоге находится установочный скрипт “convirt-tool” все параметры которого можно просмотреть запустив его с ключом “-h”. Вначале проверим дистрибутив и наличие платформы виртуализации:
$ sudo ./convirt-tool --detect_only setup
Если все нормально определилось, устанавливаем.
$ ./convirt-tool setupПосле этого будет открыты порты 8002 и 8006.
Запускаем сервер ConVirt:
$ cd ~/convirt $ sudo ./convirt-ctl start
Вызываем браузер и регистрируемся используя логин и пароль admin/admin. Если выдается ошибка, то проверяем при помощи netstat, слушается ли порт 8081, плюс наличие файла paster.pid в каталоге ~/convirt. Кроме этого в поиске проблем могут помочь журналы paster.log и convirt.log.
Дальнейшее управление из веб-консоли, достаточно интуитивное, и понимая процесс разобраться просто. Основное окно визуально разбито на 4 поля. Сверху находится поле администрирования системы, в котором доступны 2 основных пункта (вообще 4, но смена пароля и выход не считаем). В Admin находится управление учетными записями ConVirt и настройки SMTP-сервера. Просто выбираем нужный пункт, нажимаем кнопку New и заполняем предложенные поля, ничего сложного. При настройке SMTP сразу же проверяем подключение. При выборе Task будут показаны все текущие задачи (создание виртуальных машин, их остановка, запуск и т.д.), кроме этого, задачи выводятся в нижнем окне.

Поле слева содержит также два основных меню – Data Center в котором настраиваются серверные пулы, виртуальные машины, системы хранения данных и библиотека шаблонов (Template Library). В окне справа выводятся графики, информация и производятся все настройки.
После установки создано три пула их можно удалить или переименовать, по желанию. Все действия производятся при помощи выбора пунктов контекстного меню. Например, чтобы создать пул, вызываем меню на Data Center и в нем пункт “Add Server Pool”, дальше просто вводим название. При добавлении устройства хранения, следует выбрать протокол, указать имя, сервер, точку монтирования. Кнопка Test позволяет проверить доступность устройства хранения. Теперь необходимо добавить серверы в пул, для этого используем пункт Add Server, выбираем платформу Xen/KVM и имя сервера. После подключения в консоли появятся данные о новом сервере. Аналогично просто настраивается виртуальная сеть и отдельные виртуальные машины. Если для выполнения некоторой операции потребуется выполнить условие, появится внятная подсказка.

ConVirt OpenSource показал себя с неплохой стороны. В том случае, если есть необходимость в управление большим количество виртуальных систем работающих под управлением Xen и KVM следует обратить на него внимание. Разработчики обещают в дальнейшем добавить и другие платформы виртуализации.
2 Комментариев к Управление Xen/KVM при помощи ConVirt
Июнь 23rd, 2011 | 11:20
спс! как раз в тему =)), правда KVM у нас и убогий virt-manager….
Июль 10th, 2011 | 17:13
Недавно начали использовать конвирт, все было хорошо пока в списке не стало > 20 железяк (не виртуалок а именно железа), конвирт начал тормозить ужасно, в итоге отказались от него.
Итоги работы с convirt:
+ если 2-3 железных сервера, то очень даже удобно
+ радует VNC
- для большого количества железа он явно не предназначен, начинает жутко тормозить
- отсутствие copy/past, названия серваков для тогоже подключения через vnc придется вбивать руками