Монитор виртуальных машин Xen — один из наиболее ожидаемых и обсуждаемых современных инструментов виртуализации. Что же такого особенного в Xen и какие его функции вызвали столь большие ожидания, в том числе и со стороны крупных производителей? Технические характеристики и быстрые темпы развития программного обеспечения указывают на то, что Xen может стать важным средством виртуализации как для небольших, так и для крупных предприятий.
Поиск в Internet по запросу Xen выдает два понятия: Xen Community и Xensource. Xen Community (сообщество Xen), или Xen Project (проект Xen), представляет собой проект с открытыми исходными кодами, инициированный группой разработчиков Кембриджского университета и развивающийся до сих пор. Xen следует тем же путем, что и VMware со своим сервером ESX: адаптированное ядро (гипервизор) работает в качестве промежуточного уровня между аппаратным обеспечением и операционной системой. Этот уровень виртуализации обеспечивает высокую производительность гостевой системы и полный контроль над ресурсами в главной.
Благодаря поддержке именитых производителей — AMD, Intel, IBM, Novell и многих других — этот проект с открытыми исходными кодами (с общедоступной лицензией и по-этому бесплатный) получил сильный импульс к развитию. Группа разработчиков Xen, кроме того, основала предприятие по коммерческому продвижению Xen и курирует его дальнейшее развитие. Xensource наряду с поддержкой пользователей станет в ближайшем будущем выпускать и готовые продукты: Xen Optimizer для управления серверами Xen и работающими на них виртуальными машинами. Xensource своим выходом на рынок и предложением поддержки клиентов делает проект разработки открытых кодов интересным для многих предприятий. Вот только нет пока официальных курсов обучения и сертификаций.
ПАРАВИРТУАЛИЗАЦИЯ
Xen работает с так называемой «технологией паравиртуализации»: виртуализатор передает ресурсы аппаратного обеспечения х86 непосредственно гостевым системам вместо того, чтобы эмулировать их для этих систем, как происходит, к примеру, в решениях виртуализации от VMware и Microsoft. Поскольку все участвующие системы могут обращаться к аппаратному обеспечению параллельно, такой процесс называют паравиртуализацией. Недостаток заключается в том, что каждая гостевая система должна использовать адаптированное ядро операционной системы. С появлением ожидаемых в 2006 г. технологий виртуализации Pacifica (AMD) и Vanderpool (Intel) ситуация изменится, но высокая скорость паравиртуализации будет возможна лишь при условии применения адаптированного ядра.
Для обеспечения надежной и быстрой среды Xen различает привилегированные и непривилегированные домены. При этом домен 0 имеет неограниченный контроль над всей системой, остальные же гостевые системы работают вне его (в домене U). Для администратора это выглядит следующим образом: он инсталлирует Xen под дистрибутивом Linux и конфигурирует его. Помимо прочего, в то же время происходит инсталляция ядра Xen. После перезапуска машина загружает ядро Xen, тем самым запускается домен 0, управляющий всеми остальными доменами (виртуальными системами). При помощи так называемых «инструментов Xen» системный администратор может создавать, конфигурировать и приводить в действие виртуальные машины.
ФУНКЦИОНАЛЬНЫЙ ОХВАТ
В ноябре прошлого года появилась третья версия Xen. Помимо стандартных функций, к примеру замораживания виртуальных машин, она предлагает поддержку разнообразного аппаратного обеспечения и различных возможностей, которые до сих пор предоставлял лишь сервер ESX от VMware. В случае разделяемых хранилищ возможны «живые миграции», т. е. перевод работающих виртуальных машин (Virtual Machine, VM) с одного сервера Xen на другой без заметного простоя. Роль таких хранилищ могут выполнять системы NAS, SAN и iSCSI. В области VMware эта технология известна под названием VМotion, правда, она будет поддерживать миграцию виртуальных машин на базе iSCSI или NAS лишь начиная с третьей версии ESX и сервера VirtualСenter, появление которой пока только ожидается.
Еще одной отличительной чертой Xen является мощная поддержка многопроцессорных вычислений в гостевой системе — до 32 виртуальных процессоров, причем их можно динамически добавлять и удалять. Доступная оперативная память в зависимости от архитектуры может составлять до 1 Тбайт: 4 Гбайт в 32-разрядной системе без расширения физического адреса (Physical Address Extension, PAE), 64 Гбайт при 32 бит с PAE и 1 Тбайт в 64-разрядной системе.
ПРОЦЕССОР Р6 В КАЧЕСТВЕ БАЗИСА
В качестве базиса для реализации Xen предусматривается использование как минимум семейства процессоров х86-Р6, т. е. Intel Pentium Pro, Celeron, Pentium II, Xeon или AMS Athlon или Duron. Сегодня это не должно сос-тавлять проблем. Однако в отличие от решений VMware, используемая Xen технология не позволяет запускать 32-разрядную гостевую систему в 64-разрядной главной. Интерес представляют находящиеся в данный момент в разработке версии для IA64 и Power5. С их помощью Xen может расширить область своего применения.
Рисунок 2. Процедура запуска двух виртуальных машин с консоли Xen (вверху): одна виртуальная машина работает с Cent OS (слева), другая — с Debian (справа). |
Интеграция Xen возможна для всех производных Linux, базирующихся на ядре 2.4 (для главной системы, т. е. домен 0) и 2.6 (для главной и гостевой систем, т. е. домен 0 и домен U), а также для Net BSD (домен U), Free BSD (домен U), React OS (домен U) и Plan9 (домен U). Реализация для Solaris должна появиться в следующих версиях. Таким образом, Xen в области Linux может использоваться практически с любой системой. Многие дистрибутивы, к примеру от Novell и Red Hat, ее уже содержат. Для серверных версий Novell и Red Hat планируется полная интеграция ядра Xen.
Поддержка Windows находится в стадии разработки и приобретет свой практический смысл с развитием технологий виртуализации процессоров от AMD и Intel. Причина заключается в уже обсуждаемой необходимой адаптации ядра операционной системы, которая в результате потеряет свою актуальность. Однако гостевые системы с модифицированным ядром будут всегда показывать лучшие характеристики, чем немодифицированные. Более точную информацию о различиях в производительности удастся получить лишь на основании тестов.
БАЗОВАЯ ИНСТАЛЛЯЦИЯ
Инсталляция, в зависимости от версии, может различаться, поскольку, к примеру, для Fedora Core 4 есть пакеты RPM, а для других производных — лишь двоичные коды и исходники, которые еще нужно преобразовать. Инсталляционные файлы и руководство опубликованы на сайте Xensource (http://www.xensource.com).
С помощью этого удачно составленного руководства, а также размещенных здесь же рекомендаций сообщества базовая инсталляция гипервизора должна пройти быстро и без проблем. Вот общее описание процесса инсталляции:
- инсталляция гипервизора;
- запись в файл menu.lst (файл предварительной конфигурации) информации о только что инсталлированном ядре Xen, а также о создании образа загрузки initrd;
- перезагрузка с последующим выбором загрузочной записи Xen.
В руководстве, помимо прочего, представлен список различных параметров ядра Xen. В случае необходимости пользователь может задать их в упомянутом уже файле menu.lst.
СОЗДАНИЕ НОВЫХ ВИРТУАЛЬНЫХ МАШИН
Создание новых виртуальных машин, как и при использовании любого программного обеспечения для виртуализации, представляет собой наибольший интерес. Жаль, что по сравнению с другими распространенными виртуализаторами в случае с Xen эта задача еще и самая сложная: Xen не предлагает интерфейса управления, поэтому все операции придется проводить вручную, причем необходимы очень глубокие знания в области Linux. Именно в решении данного вопроса в ближайшем будущем должен будет помочь Xensource со своим Xen Optimizer: он позволяет централизованно управлять инсталляцией гипервизора Xen, создавать виртуальные машины и контролировать их.
Рисунок 3. Две виртуальные машины с Cent OS и Debian, управление которыми осуществляется удаленно при помощи VNC. |
Виртуальная машина для Xen состоит вначале из файла конфигурации, который администратор должен создать сам. В лучшем случае он содержит всего несколько строк, где определяются загружаемое ядро Xen, количество виртуальных процессоров, объем оперативной памяти, число сетевых адаптеров и их конфигурация, а также жесткие диски виртуальной машины. Если первые три компонента конфигурируются сравнительно просто, то для конфигурации сети и жестких дисков понадобятся определенная смекалка (для проектирования) и обширные познания в области Linux (для конфигурации).
ИНСТАЛЛЯЦИЯ ГОСТЕВОЙ СИСТЕМЫ
Инсталляция и первичная конфигурация гостевой системы — задачи не из легких. Как минимум, не обойтись без глубоких познаний в области Linux, поскольку привычная программа инсталляции операционных систем (к примеру, с помощью компакт-диска) доступна не для каждого дистрибутива. Однако руководства по инсталляции имеются для самых разных дистрибутивов Linux, и потому правильный путь к работоспособной гостевой системе находится довольно быстро. Возможны разные типы инсталляции: от копирования файловой системы с уже работающей машины до использования программ автоматической инсталляции при помощи yum (Fedora) или debootstrap (Debian). Целью копирования или автоматической инсталляции всегда является точка монтирования. Однако здесь допустимо использование всех средств Linux, благодаря чему наряду с собственным жестким диском в качестве цели или будущего системного жесткого диска для гостевой системы может служить отдельный раздел или достаточно большой форматированный файл. В руководстве по Xen эта процедура подробно описана.
При наличии необходимых знаний, поддержка автоматизации всей инсталляции гостевой системы делает отсутствие возможности инсталляции вручную относительным недостатком. Ведь при помощи нескольких хорошо продуманных сценариев инсталляцию и адаптацию гостевой системы можно провести за несколько минут. Кроме того, доступны все известные опции Linux, а значит, можно использовать и свободное программное обеспечение, к примеру Fully Automated Installation (FAI) или системные менеджеры для развертывания. Для запуска инсталляции с компакт-диска администратор должен адаптировать гостевую конфигурацию таким образом, чтобы напрямую интегрировались загрузочный компакт-диск и два жестких диска (для данных и подкачки).
Инсталляция гостевой системы за некоторыми исключениями происходит так же, как и в физическом мире. Резервное копирование может выполняться инкрементально либо полностью в гостевой или главной операционной системе. Использование файла в качестве жесткого диска для гостевой системы обладает еще одним преимуществом: благодаря простому копированию любого файла при выключенной виртуальной машине можно создать полный образ системы. Удаленное управление гостем возможно при помощи VNC и SSH.
ВЫВОДЫ И ПЕРСПЕКТИВЫ
Xen в третьей версии стал более совершенным. Однако пока ему не достает нескольких важных функций, чтобы конкурировать с решениями от VMware или Microsoft. К ним относятся простая центральная консоль управления и наличие продуктов третьих производителей, с помощью которых можно осуществлять миграцию или массовое распределение новых виртуальных машин.
Поскольку во многих серверных ландшафтах доминирует Microsoft Windows, далеко не все администраторы достаточно хорошо разбираются в Linux, чтобы интегрировать Xen и обеспечить его работоспособность. Даже при наличии соответствующих знаний администратору будет довольно сложно автоматизировать с трудом поддающуюся управлению систему и избежать при этом ошибок. Поэтому необходимо соответствующее программное обеспечение, которое устранит указанный недостаток. Шаг в этом направлении сделала Xensource, представив административный интерфейс Web — Xen Optimizer. К сожалению, тестовая версия до сих пор отсутствует, так что точной информации пока нет.
Большой потенциал Xen неоспорим. Сильное впечатление производит то, какими темпами развивается продукт, не говоря уже о новых функциях, способных составить конкуренцию коммерческим разработкам: в частности, благодаря поддержке технологии виртуализации процессоров, до 32 виртуальных процессоров, до 1 Тбайт оперативной памяти и разнообразного аппаратного обеспечения. Именно технологии виртуализации процессоров будут иметь важное значение для корпоративного использования в области Windows, поскольку лишь с их появлением станет возможно функционирование MS Windows в качестве гостевых систем Xen. Поэтому сравнения производительности гостевых систем Windows с VMware ESX и Windows Virtual Server пока еще отсутствуют.
Для однородных ландшафтов Linux, управляемых компетентными администраторами, Xen уже сейчас предоставляет развитый инструментарий с массой полезных функций, которые пользователи вправе ожидать от виртуализации. Средства виртуализации окажут помощь при консолидации серверов и позволят сэкономить на административных издержках. Достижение таких результатов подразумевает соответствующую стадию планирования, и Xen в этом смысле не исключение.
Кстати, чтобы посмотреть Xen в ра-боте, нет необходимости заново инсталлировать персональный компьютер или сервер. Третья версия доступна на компакт-диске, который распространяется бесплатно на http://www.xenresource.com. Кроме того, разработчики создали компакт-диск на основе Knoppix, под именем Xenoppix его можно найти на http://unit.aist.go.jp/itri/knoppix/xen/index-en.html.
Деннис Циммер — системный администратор сайта http://www.vmachine.de, автор издания «VMware & Microsoft Virtual Server». С ним можно связаться по адресу: wg@lanline.awi.de.
Пример: инсталляция гостевой системы Debian
В качестве иллюстрации приведен пример инсталляции Debian в файл объемом 1 Гбайт (плюс дополнительные 128 Мбайт для подкачки) в качестве жесткого диска.
mkdir -p /opt/xen/domains/vm01
dd if=/dev/zero of=/opt/xen/domains/vm01/diskimage bs=1024k
count=1024
dd if=/dev/zero of=/opt/xen/domains/vm01/diskimage bs=1024k
count=128
mkfs.ext3 /opt/xen/domains/vm01/diskimage
mkswap /opt/xen/domains/vm01/swapimage
mkdir mnt/disk
mount -o loop /opt/xen/domains/vm01/disk-image /mnt/disk
apt/get install debootstrap # если отсутствует
debootstrap -arch i386 sarge /mnt/disk http://ftp.us.debian.org/de
bian
chroot /mnt/disk /bin/bash
cd /etc; vi hostname hosts resolv.conf fstab
/etc/fstab необходимо соответствующим образом адаптировать под Xen или создать:
/dev/sda1 /ext3 errors=remount-ro 0 1
/dev/sda2 none swap sw 0 0
proc /proc proc defaults 0 0
После этого пользователь задает точку монтирования при помощи /unmount/mnt/disk и создает конфигурационный файл:
kernel="/boot/vmlinuz-2.6.10-xenU"
memory=128
name="vm01"
dhcp="dhcp"
disk=['file:/opt/xen/domains/vm01/diskimage,sda1,w', 'file:/opt/ xen/domains/vm01/swapimge,sda2'w']
root="/dev/sda1 ro"
Посредством команды xm cretae vm1.cfg -c запускается виртуальная машина, и теперь пользователь может обращаться к ней через сеть или консоль Xen (xm console vm01).
? AWi Verlag