В последние годы технологии виртуальных машин все шире охватывают серверные платформы архитектуры x86, решая задачи работоспособности унаследованных приложений, поддержки неоднородных вычислительных сред и оптимизации используемого оборудования. До недавнего времени безусловным лидером на этом рынке была компания VMWare, в начале 2004 г. вошедшая в состав корпорации EMC. Однако сейчас конкуренция резко обострилась: в конце 2003 г. Microsoft (http://www.microsoft.com) выпустила продукт Virtual PC 2004 для настольных компьютеров, а в начале нынешней осени был представлен пакет для создания виртуальных серверных вычислительных сред — Microsoft Virtual Server 2005 (MVS), реализованный в двух редакциях: Standard и Enterprise.

Photo

Применение серверных VM-технологий чаще всего ассоциируется с необходимостью параллельной работы нескольких различных ОС на одном центральном компьютере. Но есть и другие варианты: например, когда нужно использовать разные ОС в последовательном режиме эксплуатации или параллельно несколько экземпляров одной и той же ОС. В целом можно выделить следующие основные сценарии применения MVS.

Консолидация для разработки и тестирования ПО. Разработчики ПО при использовании виртуальной машины (VM) будут иметь гарантии, что фатальные ошибки при отладке приложений не приведут к зависанию других приложений. Кроме того, это позволит им быстро создавать различные конфигурации ОС, а также тестировать программы, спроектированные для различных ОС. Индивидуальные разработчики могут развертывать на отдельном компьютере распределенные приложения, а специалисты служб технической поддержки — оперативно моделировать ситуации, возникающие у пользователей различных ОС.

Поддержка и миграция унаследованных приложений. Чаще всего эта проблема возникает при замене оборудования, когда используемое в организациях ПО нужно переносить на новые серверы, работающие под управлением современных ОС. К концу года Microsoft представит специальный набор Virtual Server Migration Toolkit, упрощающий перенос приложений с физических машин на виртуальные (кандидат-релиз набора уже сейчас доступен на корпоративном сайте).

Демонстрации и изучение нового ПО. Эксперты, изучающие новые продукты (особенно в их бета- или ознакомительных версиях), могут не опасаться, что их установка и последующее удаление повлияют на работоспособность основной системы и приведут к заполнению внешней памяти информационным мусором.

Консолидация серверов. Это наиболее динамично развивающееся направление применения VM-технологий, нацеленное на повышение эффективности использования ИТ-ресурсов. Выигрыш здесь получается за счет как экономии аппаратуры, так и снижения затрат на администрирование и управление систем. Такой вариант часто применяется в случае параллельной работы нескольких экземпляров одной и той же ОС, когда каждая VM выполняет отдельную функцию (почтовый сервер, сервер базы данных и т.п.) или обслуживает разные группы пользователей.

С точки зрения архитектуры MVS — это многопотоковое приложение, запускаемое в виде службы основной (host) ОС, в которой каждая виртуальная машина под управлением гостевой ОС работает в своем отдельном потоке. Его основной компонент — Virtual Machine Monitor, который обеспечивает управление виртуальными машинами и их взаимодействием с системными аппаратно-программными ресурсами. В качестве основных ОС в MVS могут применяться все редакции Windows Server 2003, а для целей тестирования — Windows XP Professional. В качестве гостевых могут выступать практически все основные x86-совместимые серверные ОС, но служба Microsoft Product Support Services распространяет поддержку только на Windows Server версий 2000 и 2003, а также Windows NT 4.0.

Максимальное число виртуальных машин на одном MVS ограничивается в основном аппаратными ресурсами компьютера, но не может быть более 64. Самый критичный ресурс — оперативная память: MVS использует до 64 Гбайт ОЗУ. Каждая виртуальная машина задействует до 3,6 Гбайт оперативной памяти и до четырех виртуальных сетевых адаптеров. MVS обеспечивает поддержку многопроцессорных систем (версия Standard — четыре процессора, Enterprise — 32), но отдельная VM работает пока только на одном процессоре, многопроцессорный режим обещан в следующих версиях MVS.

С позиции MVS каждая VM рассматривается как отдельное серверное приложение, под которое после инсталляции гостевой ОС создается собственное виртуальное программно-аппаратное окружение. Пользователь может загружать нужные ему виртуальные машины по мере необходимости, а также выгружать, запоминая их текущее состояние. Все настройки VM хранятся в файлах формата XML, что облегчает создание идентичных конфигураций VM на различных компьютерах. Следует также отметить совместимость виртуальных машин, создаваемых для настольных Virtual PC и серверных Virtual Server, хотя есть ряд нюансов, которые нужно учитывать при совместном использовании двух продуктов.

Механизм виртуальных жестких дисков (Virtual Hard Disk, VHD) используется для создания внешней памяти виртуальной машины, которая с точки зрения хост-системы представлена в виде отдельного файла. Каждый VHD создается с помощью Virtual Server Virtual Disk Manager, и для этого используются любые устройства хранения памяти, доступные основной файловой системе компьютера, включая IDE, SCSI, RAID, SAN, NAS и т. п.

Средства поддержки виртуальных сетей обеспечивают взаимодействие VM с внутренними и внешними сетями. Virtual Networking Manager позволяет создавать неограниченное число виртуальных сетей на базе различных топологических схем.

Для администрирования MVS используются стандартные серверные инструменты управления, а также специализированная MVS-консоль с Web-интерфейсом — Virtual Server Administration Website. С помощью программного набора COM API (42 программных интерфейса и несколько сотен функций) можно создавать различные сценарии для автоматического развертывания и конфигурирования подключенных виртуальных машин.