2005 г.
В фокусе Microsoft Virtual Server 2005
Арсений Чеботарев, СЕТИ и Телекоммуникации
Виртуализация вычислительных ресурсов — довольно популярная в последнее время технология, особенно в серверных системах. Интересно проанализировать тенденции развития этого направления и нового продукта Microsoft — Virtual Server 2005, одного из важнейших компонентов Microsoft Dynamic Systems Initiative.
Как известно, в феврале 2003 года Microsoft приобрела активы компании Connectix, включая ее передовую технологию Virtual PC Machine для ОС Windows и Mac, а также Connectix Virtual Server. Вместе с исходным кодом и интеллектуальной собственностью в Редмонд переместились и основные разработчики Virtual PC. Впрочем, Connectix по-прежнему представляет собой независимую компанию и продолжает продавать ПО, разработанное до слияния с Microsoft, и поддерживать пользователей ранее выпущенных версий данного ПО.
С помощью перешедших в Microsoft разработчиков продолжает дальнейшую модернизацию семейства продуктов Virtual PC, в частности, обеспечивая лучшую адаптацию к новым серверным платформам собственного производства, таким как Microsoft Server 2003.
Новый продукт компании "Майкрософт", Microsoft Virtual Server 2005, находящийся сейчас в стадии бета-тестирования, предназначен в первую очередь для корпоративного сектора. Как и другие подобные продукты (VMWARE Workstation, VMWARE Server или Microsoft Virtual PC), Microsoft Virtual Server представляет собой эмулятор аппаратной платформы, на которую могут быть установлены одна или несколько операционных систем.
Существует два различных подхода к реализации виртуальных машин. В первом случае дополнительное ПО устанавливается непосредственно на аппаратную платформу и запускается до загрузки любой другой операционной системы общего назначения. Во время загрузки и работы дополнительное ПО берет на себя управление физическими ресурсами, создавая для ОС так называемый "виртуальный компьютер". Так работает VMWARE ESX Server, а также, в некотором смысле, будут работать компоненты Intel Foundation Code.
Второй метод предполагает создание виртуальных машин поверх работающей ОС, так что аппаратные прерывания эмулируются системными вызовами. Этот режим несколько менее производителен, но дает значительное преимущество с точки зрения удобства эксплуатации. Таким образом реализованы, например, виртуальные ПК VMWARE Workstation и GSX Server. Именно так работает и Microsoft Virtual Server 2005, который устанавливается поверх существующей инсталляции Windows 2003/XP как системная служба.
Virtual Server в среде Windows XP
В качестве базовой операционной системы предполагается использование именно Windows Server 2003, хотя для тестирования и отладки Virtual Server 2005 можно установить также и на Windows XP.
В целях обеспечения должной производительности и аутентификации при доступе к файлам виртуальных машин установка производится только в разделы NTFS – аутентификация средствами NTFS при доступе к файлам является обычной практикой для серверных продуктов компании "Майкрософт".
Преимуществами использования конфигурации "операционная система поверх другой операционной системы" могут стать увеличение надежности предоставляемых сервисов, повышение отказоустойчивости и более эффективное использование вычислительных ресурсов; также при этом создаются условия для постепенного перехода с одной платформы на другую без перерывов в обслуживании клиентов.
Кроме того, такая конфигурация позволяет консолидировать серверное хозяйство – если раньше, например, SQL-сервер под управлением Windows 2000 и DNS-сервер под управлением одной из версий UNIX приходилось размещать на нескольких аппаратных платформах, то сейчас это можно произвести на одной аппаратной базе, используя дополнительный виртуальный сервер. Как известно, изначально виртуальные машины Connectix хотя и работали только на базе платформы Windows, но могли использовать в качестве инсталлируемой виртуальной машины также различные разновидности Linux и BSD. В новой версии официально поддерживаются только Windows NT 4, Windows 2000 и Windows 2003 Server, кроме версии Datacenter. Конечно же, такие ограничения значительно сужают ареал применения нового продукта, поскольку слишком много всего происходит под Unix-подобными операционными системами.
С другой стороны, как указано в документации, под Virtual Server может запускаться практически любое приложение для архитектуры i386, то есть подразумевается поддержка иных ОС, но, что называется, на свой страх и риск. Например, мы практически без проблем смогли установить AESP Linux 9.2 и FreeBSD 5.2.
В любом случае, виртуальные машины – простой, дешевый и эффективный способ работы как в гомогенной, так и в гетерогенной среде. Особенно удобно создавать с их помощью тестовые инсталляции сложных операционных сред и моделировать поведение систем распределенных вычислений.
Впоследствии, в процессе разворачивания системы в режиме промышленной эксплуатации и роста нагрузки, некоторые сервисы, вероятно, придется переносить на отдельные аппаратные платформы, но во-первых, это будет происходить только по мере необходимости, а во-вторых, всегда остается возможность просто добавить вычислительной мощности в сервер, на котором работают виртуальные машины. Во многих случаях последний вариант может оказаться экономически более выгодным.
Эмулируемые аппаратные средства
В качестве "аппаратных средств" продукты серии Virtual PC/Virtual Server традиционно эмулируют распространенные модели карт расширения и чипсетов – в отличие от той же VMWARE, которая снабжает свои виртуальные машины фирменным "железом" и соответственными драйверами. В частности, как сетевой адаптер используется реплика Intel 21140 PCI Fast Ethernet Adapter, а в качестве видео – карта S3 Trio32/64.
Windows 2000 Advanced Server выполняется на виртуальном сервере
Для каждой виртуальной машины поддерживается до 3,6 Гб оперативной памяти – естественно, эта память будет позаимствована из пула основной памяти операционной системы. Говоря о жестких дисках, можно отметить то, что могут эмулироваться как IDE-, так и SCSI-устройства, хотя по умолчанию преимущество отдается в пользу первых. Эмулирование SCSI-адаптеров позволяет строить виртуальные сети SAN и кластеры. Поддерживаются режимы hot plug, то есть диски могут извлекаться по ходу работы, а также режим "отката" для сохранения контрольных точек и восстановления состояния дисков в этих точках (отключено по умолчанию).
Для администратора виртуальная машина попрежнему представляет собой один файл – Virtual Hard Disk (VHD), включающий в себя как файловую систему с установленными приложениями, так и файлы состояния виртуальных процессов, если машина была приостановлена во время работы. Это создает предпосылки для создания новых методов инсталляции, распространения и резервирования критически важных приложений: становится возможным восстановить работу системы после сбоя из резервных копий в течение нескольких секунд, причем в автоматическом режиме. Конечно, процедуру такого "горячего" восстановления придется тщательно спланировать и реализовать, но файлы виртуальных машин по крайней мере создают технический базис, и, кроме того, значительно упрощают процесс за счет использования штатных средств резервирования и восстановления файловой системы.
Аналогичные преимущества гибкого конфигурирования имеет и виртуальная сеть: можно создать надежную и легко настраиваемую сетевую конфигурацию либо соединяя виртуальные машины между собой, либо подключая их к внешним физическим и виртуальным интерфейсам хост-системы. Дополнительно можно организовать сетевые сервисы DHCP/NAT между внешним подключением и виртуальными машинами. В качестве CD-ROM могут использоваться как реальные устройства, так и образы ISO – естественно, вы всегда сможете извлечь диск из такого устройства.
Настройка аппаратных ресурсов виртуальных машин
Настройка сетевых адаптеров сводится к выбору динамического или статического MACадреса, который может понадобиться в том случае, если вы работаете с DHCP-сервером, который оперирует настройками на основании фиксированных аппаратных сетевых адресов. В дополнение ко всему аппаратному обеспечению существуют так называемые Virtual Machine Additions, нечто, соответствующее VMWARE Tools – средства ускорения взаимодействия хост- и виртуальных машин – например, ускорение вывода графики на виртуальный десктоп, "бесшовный" курсор мыши при переходе из виртуального десктопа в реальный, синхронизация системного времени и так далее.
Инсталляция данной утилиты происходит аналогично инсталляции VMWARE Tools – во время работы виртуальной машины администратор выбирает опцию Install VM Additions, что приводит к монтированию ISO-образа в виртуальный CDROM. При этом, если включен автозапуск, то инсталляция сразу запустится в виртуальной среде. Само собой разумеется, что на "инсталляционном диске" будут присутствовать версии Tools только для официально поддерживаемых операционных систем.
Инструментарий и безопасность
Как и все серверные продукты Microsoft, Virtual Server обеспечен необходимыми графическими инструментами для комфортной и производительной работы администратора, в том числе удаленного администрирования через вэб-браузер. Последнее, кстати, сделано надежно, эффективно и изящно, так что нет практически никаких неудобств, если не считать перезагрузок вэб-страниц при переходе. В этой возможности удаленного управления, по сути, и заключается основное отличие от настольной версии Microsoft Virtual PC.
Вполне естественно, что в качестве сервера приложений используется сочетание IIS/ASP с активным применением встроенных в вэб-страницы Active-X-компонентов. Главным или по крайней мере самым заметным из таких компонентов является виртуальный экран, на котором отображается работа виртуальной машины. Также в виде Active-X выполнены и остальные элементы управления.
В качестве дополнительного уровня защиты можно запустить виртуальную машину от имени (под учетной записью) другого пользователя. Таким образом, можно защитить критические данные на основной ОС от возможных воздействий виртуальной машины.
Для автоматизации часто выполняемых операций Virtual Server 2005 снабжен программным интерфейсом COM API. На его основе администратор может с помощью Windows Scripting Host создавать собственные скрипты автоматизации, выполняемые интерактивно или в результате системных событий автоматически, например по таймеру. С самой инсталляцией уже поставляется небольшой набор таких скриптов, демонстрирующих различные аспекты управления режимами виртуальной машины.
Другой вариант автоматизации – асинхронное выполнение программ (скриптов) в ответ на события виртуальной машины. С виртуальной машиной ассоциируются десять событий, в том числе: включение, восстановление из приостановленного состояния, выключение с сохранением, выключение без сохранения, по перезагрузке, а также по ошибке в виртуальной машине или по переполнению физического диска при записи. В ответ на эти события администратор может определить выполнение определенных действий путем запуска утилит командной строки. Стоит учитывать, что эта возможность отключена по умолчанию – включить ее можно в основных настройках.
Также Virtual Server содержит несколько средств обеспечения безопасности. Первое – это уровень привилегий пользователя. Только члены группы администраторов могут создавать и запускать виртуальные машины. Впоследствии администратор может делегировать свои полномочия по управлению виртуальными машинами другим пользователям или группам пользователей. Эти настройки регулируются в специальном подпункте панели управления.
Защита виртуальных машин также реализована на уровне файловой системы NTFS: пользователь должен иметь как минимум права на чтение и выполнение файлов, ассоциированных с виртуальной машиной. Члены группы администраторов должны вручную разрешить эти операции для конкретных пользователей средствами операционной системы: консоль управления не имеет таких полномочий. Кроме разрешенных прав доступа, с панели управления контролируются такие параметры системы безопасности, как удаленный доступ к административной панели (по умолчанию разрешен) и возможность выполнять скрипты в ответ на события (по умолчанию отключена).
Отдельной графой идет безопасность соединения при удаленном подключении к панели управления. IIS не требует никаких дополнительных средств для защиты сайта удаленного управления: установленной по умолчанию интегрированной системы аутентификации Windows с отключенным анонимным пользователем вполне достаточно для эффективной работы.Правда, если по какой-то причине нельзя использовать встроенную аутентификацию Windows, придется применять basic http-аутентификацию. В этом случае необходимо включить SSL-механизмы защиты трафика, поскольку базовая аутентификация отправляет имя пользователя и пароль в открытом виде, что может быть не в ваших интересах. Кроме того, система автоматически предлагает использование протокола SSL для передачи всего трафика от вэб-браузера к виртуальной машине и наоборот.
Автоматизация
Как уже упоминалось, Microsoft Virtual Server имеет программируемый интерфейс, то есть обеспечивает доступ к своим настройкам благодаря программным средствам на основе Visual Basic, C# или C++. Основной точкой входа является интерфейс IVMVirtualServer. Этот интерфейс экспортирует свойства и методы для всего сервера в целом. Для доступа к отдельным виртуальным машинам служит набор интерфейсов IVMVirtualServer.
Через него можно получить доступ к параметрам и состоянию конкретной виртуальной машины: в частности, свойство IVMVirtualMachine.State как раз и содержит состояние конкретной виртуальной машины. Через этот интерфейс можно исследовать также аппаратные и программные настройки виртуальной машины, включать/выключать/приостанавливать ее, а также программно управлять устройствами ввода-вывода, такими как мышь, клавиатура и экран.
Возможность программирования серверных платформ через COM-интерфейс – очень сильная сторона решения от компании "Майкрософт", в частности, программный доступ к виртуальным машинам обеспечивает значительные преимущества для Virtual Server по сравнению с аналогичными продуктами.
Итоги
Итак, учитывая популярность предшественника от Connectix и большой потенциал технологии, Microsoft Virtual Server 2005, по всей вероятности, станет привлекательным продуктом для Microsoft-ориентированных компаний, использующих масштабные инсталляции серверного ПО.
Если верить заявленным характеристикам, новый виртуальный сервер по производительности и возможностям управления не будет уступать таким признанным лидерам в этой области, как VMWARE GSX Server – разумеется, без учета его многоплатформенности.
С другой стороны, Microsoft Virtual Server не предоставляет возможности инсталляции на множество платформ, официально не предназначен для установок других ОС, кроме Windows, и не имеет средств объединения ресурсов нескольких компьютеров, как это делает VMWARE ESX, хотя, как можно предположить, такие возможности со временем могут появиться в последующих версиях.