от SWsoft, а также два решения с открытыми исходными кодами OpenVZ и Xen.
Кто прежде работал с OS/390 (сегодня z/OS) и рассматривал персональный компьютер в лучшем случае как средство ввода, может лишь устало улыбаться в ответ на восторг по поводу сегодняшнего бума виртуализации. Как и множество других заимствований из мира больших компьютеров, виртуализация проникла теперь в открытые системы. В последнее время много говорится о системе Xen, которая теперь доступна для целого ряда современных дистрибутивов Linux. Кроме того, наиболее распространенные дистрибутивы Red Hat и SuSE будут содержать Xen в своих следующих релизах. Подобную область применения имеет и программное обеспечение для виртуализации OpenVZ, и ее коммерческий вариант Virtuozzo от SWsoft. Однако если Xen и OpenVZ представлены только в версиях для Linux, то Virtuozzo предусматривает вариант для Windows.
ПРИНЦИПИАЛЬНЫЕ РАЗЛИЧИЯ
Лидеры рынка VMware и Microsoft используют метод так называемой «полной» виртуализации (Full Virtualisation). Гостевой системе как бы предоставляется полноценный компьютер с присущем ему аппаратным обеспечением. Тем самым достигается максимальная гибкость: на такой виртуальной машине можно инсталлировать любую операционную систему, а на хосте под управлением Windows могут работать Linux и UNIX. Однако для этого необходимо специальным образом адаптировать хостовую операционную систему. Кроме того, широко распространенные сегодня процессоры x86 поддерживают распределение ресурсов только посредством некоторых уловок. Помочь в этом вопросе могут, к примеру, процессоры от Intel и AMD с уже представленными расширениями Vanderpool (Intel) и Pacific (AMD). До тех пор в качестве обходного метода можно использовать программные средства, однако это ведет к значительному падению производительности — снижение может достигать 15-25% в зависимости от приложения и хостовой системы. Вдобавок на каждую гостевую систему потребуется отдельная лицензия на работу с операционной системой.
Паравиртуализацией же, напротив, называют подход с применением гипервизора, когда под уровнем хостовой операционной системы располагается тонкий программный слой, распределяющий ресурсы оперативной памяти и процессора. Гостевая операционная система использует большую часть хостовой, а гипервизор следит за делением на отдельные процессы. Явный недостаток состоит в том, что гостевая система должна быть аналогична хостовой. Поэтому гости под управлением Linux на хостовых системах Windows и наоборот не могут быть реализованы, по крайней мере на данный момент. Решение, возможно, появится с выпуском процессорных расширений Pacifica и Vanderpool. Преимущество же паравиртуализации заключается в том, что для хоста и для гостевых систем требуется лишь одна лицензия на использование операционной системы, что позволяет заметно снизить издержки. Кроме того, гостевые системы не нужно инсталлировать по отдельности: процесс копирования всех необходимых данных длится в большинстве случаев лишь несколько секунд. Такая ОС — в отличие от полной виртуализации — работает практически без снижения производительности.
ТЕНДЕНЦИЯ В НАПРАВЛЕНИИ К ПАРАВИРТУАЛИЗАЦИИ
Самым известным представителем паравиртуализации является Xen. Программное обеспечение для Linux в последнее время превратилось из интересной концепции в многообещающее приложение. Паравиртуализацию реализуют также программа Virtuozzo от SWsoft и ее аналог с открытыми исходными кодами под названием OpenVZ. В этом случае пользователь может организовать несколько виртуальных серверов на базе хостовой системы — по данным разработчика, до 400 серверов на каждой машине с оперативной памятью объемом 4 Гбайт. В отличие от других технологий виртуализации Virtuozzo и OpenVZ способны распределять ресурсы динамически, поэтому отдельные виртуальные серверы могут получить больше оперативной памяти и мощности центрального процессора, чем другие. Основное различие между двумя продуктами заключается в инструментарии управления: Virtuozzo предлагает многофункциональный графический интерфейс управления, включая инструменты мониторинга на базе браузера, а OpenVZ ограничивается командной строкой.
Три протестированных продукта — Xen, OpenVZ и Virtuozzo — настолько обширны, что о каждом из них можно написать отдельную статью, особенно если принять во внимание разные дистрибутивы. Поэтому, выбирая для тестирования гостевую и хостовую операционные системы, мы ограничились Xen и OpenVZ на базе Linux с Fedora Core 5, а в случае Virtuozzo использовали вариант для Windows, поскольку нас особенно интересовали отличия от продуктов с полной виртуализацией.
В качестве тестовой платформы для Linux был взят сервер Dell PowerEdge 1750, оснащенный двумя процессорами Xeon с тактовой частотой 3,2 ГГц и оперативной памятью объемом 2 Гбайт. А Microsoft Windows 2003 Server был установлен на станции Dell Precision 650 с оперативной памятью объемом 1 Гбайт и процессором Xeon 2,8 ГГц.
SWSOFT VIRTUOZZO 3.5.1
Virtuozzo компании SWsoft состоит из собственно паравиртуализатора и консоли управления. Стоимость сервера равна приблизительно 1000 евро на процессор, цена лицензии на консоль — от 200 до 2000 евро в зависимости от количества физических машин. Процесс инсталляции довольно прост, что типично для Windows, и ограничивается запуском исполняемого файла .exe. В качестве базовой операционной системы пригодны любые версии Windows Server 2003, за исключением Data Center и Small Business. Релиз R2 поддерживается, но необязателен. Доступно 64-разрядное исполнение. Во время инсталляции ищется файл с лицензией, который затем интегрируется в систему, без него Virtuozzo инсталлируется на 30-дневный период. Одновременно программа инсталляции создает несколько шаблонов. В Virtuozzo они образуют базис для гостевых систем, которые здесь называются «виртуальные частные серверы» (Virtual Private Server, VPS). Наиболее важным шаблоном является Windows Server 2003, для чего необходим источник данных Windows Server 2003 с инсталяционными файлами (к примеру, компакт-диск). Важно отметить, что пользователю потребуется дезактивировать функцию автоматического обновления Windows, поскольку Virtuozzo сам позаботится о заплатах и пакетах обновления. Интерфейс управления неплох: SWsoft интегрирует все в программное обеспечение, от предоставления ресурсов до конфигурации и мониторинга (см. Рисунки 1 и 2). На первый взгляд это практично, однако через некоторое время ситуация представляется не столь очевидной, поскольку имеется несколько способов доступа к настройкам или необходимой информации.
Рисунок 1. Множество опций: Virtuozzo в своей консоли поддерживает все функции управления. |
У того, кто уже знаком с VMware или Virtual Server, установка первого VMS может вызвать удивление. SWsoft предусмотрела для этого специальный мастер, который на двух конфигурационных страницах запрашивает все параметры: базовые шаблоны, количество VPS, автоматическое назначение идентификаторов, имя хоста и пароль — придраться не к чему. Дополнительно предусматривается возможность добавления новых шаблонов: к примеру, таких приложений, как еще один браузер Web или сервер SSH. И наконец, Virtuozzo позволяет определять предельные значения для выделяемых ресурсов центрального процессора, оперативной памяти и процессов. Все настройки можно сохранить и снова использовать в качестве образца. В зависимости от аппаратного обеспечения и текущей нагрузки этот процесс длится от нескольких секунд до минуты, после чего VPS готов к работе в сети через «мостовое устройство» (программный модуль) и — при соответствующей конфигурации — с доступом к сетевым или локальным накопителям хоста. По сравнению с решениями полной виртуализации данный метод значительно быстрее и эффективнее, особенно при более чем одном VPS.
Рисунок 2. Мониторинг через браузер: Power-Panel служит в Virtuozzo для мониторинга и наблюдения. |
Поскольку выполняющийся сам по себе VPS в общем-то бесполезен, необходимо сконфигурировать виртуальный сервер. В случае отдельных приложений администратор соединяется с новым VPS при помощи Microsoft Remote Desktop и работает с системой как с локальным сервером. Проблем не возникает даже с приложениями, близкими к аппаратному обеспечению, такими, как программы для проведения диагностики: во время тестирования инструмент Rightmark функционировал на VPS без каких-либо проблем. Инсталляция браузера Firefox 1.5 прошла точно так же, как и на обычном сервере. Особенно удобной оказалась инсталляция при помощи шаблона: Virtuozzo фиксирует все изменения, производимые при инсталляции программы, и записывает их в шаблон. Последний можно передать любому VPS одним щелчком мыши, и приложение немедленно инсталлируется.
Образы VPS занимают от 10 до 20 Мбайт и используют файл как эмулируемую файловую систему. Как правило, виртуальному частному серверу всегда предоставляется доступ к сетевому накопителю для обращения к совместно используемым данным. Интересной выглядит и возможность сохранения и восстановления VPS одним щелчком мыши — либо полностью, либо лишь некоторых файлов. Для мониторинга Virtuozzo предлагает графическую оценку, а также множество системных журналов, куда записываются тревожные сообщения, информация о событиях и проводимых операциях.
OPENVZ
Пользователю программного обеспечения OpenVZ придется обходиться без графических инструментов его коммерческого собрата. Впрочем, инсталляция не так уж и сложна. По адресу http://www.openvz.com можно загрузить нобходимый инсталляционный пакет, с начала апреля поддерживаются Fedora Core 5 и SuSE 10. В зависимости от того, применяет ли пользователь 64-разрядный центральный процессор, гиперпотоковую технологию или оперативную память объемом более 4 Гбайт, предоставляются разные пакеты RPM. Для тех, кто захочет самостоятельно скомпилировать OpenVZ из исходных кодов, также имеется соответствующий RPM. Наряду с заплатами для ядра в OpenVZ входят пользовательские инструменты, которые требуется загрузить отдельно. Поддержка аппаратного обеспечения ориентирована на Virtuozzo — OpenVZ ссылается на список совместимости этого продукта. В зависимости от выбранного менеджера загрузки инсталлируется сначала исправление ядра — к примеру, при помощи команды
rpm -ihv имя_ядра.rpm
Разработчики предостерегают от использования параметра -U (обновление): это чревато удалением всех уже инсталлированных ядер, в результате чего в системе останется только версия OpenVZ. В качестве загрузчика операционной системы автоматически конфигурируется GRUB. Если необходимо сразу несколько ядер, то для них придется соответствующим образом подобрать имена, чтобы при загрузке не возникло путаницы. Могут понадобиться и дальнейшие настройки, к примеру в файле /etc/sysctl.conf, однако во время тестирования мы ограничились настройками по умолчанию. Значение соответствующих параметров объясняется на сайте OpenVZ. После перезагрузки (с правильным ядром) OpenVZ готов к работе и можно установить пользовательские инструменты. Далее администратор (с правами root) запускает при помощи команды
/sbin/service vz start
собственно службу паравиртуализации.
В конечном итоге речь идет о развертывании VPS для предоставления функционирующей службы. Как и Virtuozzo, OpenVZ использует шаблоны для обобщения изменений в операционной системе. Быстрее всего работающую гостевую систему удается получить именно при помощи заранее предопределенного шаблона (кэша шаблона). На странице OpenVZ можно найти пакеты для Centos, Debian, Fedora, Gentoo и SuSE — по преимуществу в минимальной версии объемом около 35 Мбайт и в версии по умолчанию объемом около 100 Мбайт. Во время тестирования использование шаблона Fedora Core 5 не вызвало каких-либо проблем. Конечно, шаблоны можно создавать и самостоятельно — если пользователь хочет интегрировать определенные приложения, по-другому просто не получится. Для формирования шаблона с нуля необходим набор определенной информации (метаданных): список пакетов, которые пользователь собирается использовать в шаблоне, пути к файлам и др. OpenVZ предлагает для загрузки базу таких шаблонов для нескольких операционных систем, среди которых — Fedora Core 5 и Centos 4. Однако такой способ неудобен, и тем, кто ищет решение виртуализации в расчете на продуктивную работу, в большинстве случаев он не подойдет. Новичкам в области Linux или тем, кто пользуется Linux лишь время от времени, попросту может не хватить знаний.
XEN
Хотя Xen (http://www.xensource.com) представляет собой еще один проект с открытыми исходными кодами, разработчики постарались предложить услуги и функции, какие присущи коммерческому продукту. Так, существуют довольно привлекательные дополнительные возможности, к примеру компакт-диск с Xen для тестирования. Те, кто с него загружается, получают «на блюдечке» Linux, где Xen уже реализирован в ядре, а виртуальные машины уже сконфигурированы. В данный момент Xen не входит в пакет поставки Fedora Core 5, однако инсталляцию можно быстро провести при помощи интегрированного инсталлятора yum. После ввода команды
yum install kernel-xen0
необходимые пакеты (при наличии доступа в Internet) загружаются вместе с инструментами пользовательского пространства и инсталлируются. При следующей загрузке Fedora предлагает второе ядро с расширением Xen. Однако последнее включается нестандартно — пользователь должен проделать это вручную в файле grub.conf. Поскольку для управления удаленными серверами Xen использует программу удаленного доступа VNC, этот пакет также должен быть инсталлирован на сервере.
Гостевые системы (виртуальные машины) можно создать двумя путями. Администратор может придерживаться руководства пользователя и без конца перебирать различные настройки. Конечно, в этом есть и свое преимущество: администратор получает полный контроль над виртуальными машинами, но данный процесс отнимает слишком много времени. Однако пользователь может управлять всеми настройками оперативной памяти и выбирать между корневым деревом, файлом образа, NFS или некоторыми другими возможностями. Тем не менее гораздо проще все сделать следующим образом, при помощи сценария Python, который является составной частью пакета начиная с версии Xen 3.0. Его вызов выглядит следующим образом:
/usr/sbin/xenguest-install.py
Далее следует список вопросов об имени виртуальной машины, предоставляемой оперативной памяти, локальном пути и размере файла с образом, а также о местонахождении инсталляционных файлов. Последнее — единственно важный пункт: Xen ожидает указания пути к файлам, используемым в качестве исходных для инсталляции. В документации на Xen рекомендуется скопировать все файлы хостовой операционной системы вплоть до каталогов /proc, /sys /home и /tmp в отдельный раздел. Затем администратор создает отсутствующие каталоги и в новом дереве каталогов изменяет соответствующие файлы конфигурации, к примеру /etc/fstab и /etc/hostname.
Рисунок 3. Графика для Xen: Enomalism призван упростить управление Xen. |
Сценарий продолжает инсталляцию с этими параметрами и запускает обычную процедуру установки Fedora вместе с сетевыми настройками и созданием разделов в собственном окне. Спустя какое-то время гостевая система инициализируется, и к ней можно обращаться через VNC по заданному IP-адресу (DHCP также применим). Fedora Core 5 в качестве гостевой системы работает на удивление быстро. Xen 3.0 предлагает и некоторые дополнительные функции управления: так, пользователь может переносить виртуальные машины с одного хоста на другой даже без прекращения работы, однако гостевая система на несколько секунд останавливается. Как и в случае OpenVZ, для Xen доступны инструменты, использующие только командную строку. Однако есть и некоторые графические разработки, прежде всего Enomalism (http://www.enomalism.com), бета-версия которого появилась в конце апреля (см. Рисунок 3).
ЗАКЛЮЧЕНИЕ
Паравиртуализация обладает серьезными преимуществами, когда пользователь собирается установить на одной хостовой машине большое количество виртуальных серверов. Пример Virtuozzo демонстрирует, как в этом случае может выглядеть профессиональная реализация. Хотя Xen в последнее время очень активно развивается, большинству администраторов — за исключением профессионалов в области Linux — не следует активно использовать в рабочей среде решения с открытыми исходными кодами. Даже без приложений конфигурация и администрирование оказываются слишком сложными.
Эльмар Торок — независимый автор. С ним можно связаться по адресу: hdaktion@lanline.de.
? AWi Verlag