`

СПЕЦИАЛЬНЫЕ
ПАРТНЕРЫ
ПРОЕКТА

Архив номеров

Как изменилось финансирование ИТ-направления в вашей организации?

Best CIO

Определение наиболее профессиональных ИТ-управленцев, лидеров и экспертов в своих отраслях

Человек года

Кто внес наибольший вклад в развитие украинского ИТ-рынка.

Продукт года

Награды «Продукт года» еженедельника «Компьютерное обозрение» за наиболее выдающиеся ИТ-товары

 

Виртуализация: программные решения

0 
 

Виртуализация (в любом смысле) давно не является новостью. Еще во времена комплексов VM/CMS эта технология воспринималась как должное и, в принципе, была неотъемлемой частью тогдашней парадигмы компьютинга. Однако мир ПК и малых серверов диктует свои законы, и здесь виртуализация понимается несколько иначе, отчего, впрочем, не становится менее полезной.

С чего же все начиналось? Возможно, и не IBM первой стала широко применять технологии виртуализации в своих системах, но тандем VM/CMS, по крайней мере, является одним из первых подобных решений, корни которого прослеживаются и в современных продуктах. Во времена оны виртуализация использовалась для обеспечения квазимногозадачности, по сути, в однозадачных операционных системах на машинах класса мэйнфрейм. Эмулятор аппаратной части IBM 360 и 370, изначально известный как CP/67 и только позже получивший более лаконичное название VM, был способен запускать на одной машине несколько экземпляров различных ОС, и, в некотором роде, походил на современные продукты от VMware или Microsoft. В результате системы DOS (оригинальная ОС для IBM 360), MVS, CMS и даже UNIX могли функционировать одновременно, хотя и с определенными ограничениями. К примеру, было довольно непросто установить связь между отдельными ОС, и пользователям приходилось довольствоваться эмулируемыми, или «виртуальными», устройствами чтения/записи перфокарт, НГМД и другими «маленькими радостями».

Подсистема VM и поныне присутствует в инсталляциях S/390 и z/OS, хотя она уже не настолько актуальна (впрочем, многие до сих пор используют ее для создания полностью изолированных тестовых сред), ряд наработок IBM в области виртуализации нашли применение в кластерных системах. Однако компания не собирается ограничиваться видавшей виды VM. На текущий момент в разработке находится сразу несколько проектов, например rhype – одновременно и инструмент виртуализации для архитектур Power[PC], и эмулятор процессора Power для платформы x86, позволяющий запускать на ней, скажем, немодифицированное ядро Linux/Power и ОС K42 (также разрабатываемую IBM). Кроме того, это решение представляет собой Open Source реализацию технологий, используемых в коммерческих продуктах IBM.

Однако rhype и его старшие собратья – далеко не единственные актеры на сегодняшней сцене виртуализации. И надо признать, что наиболее энергично «представление» разворачивается именно на рынке недорогих x86-систем – помимо практически всем известных игроков вроде Microsoft или VMware, здесь появилось еще несколько компаний, в частности, весьма многообещающе выглядят разработки Parallels. Но прежде чем рассматривать конкретные продукты, попробуем разобраться с термином «виртуализация» и скрывающимися за ним технологиями и решениями.

Попытка классификации

Сам по себе термин «виртуализация» подразумевает целое семейство подходов, направленных на моделирование некоторого количества вычислительных ресурсов в пределах одной физической машины. В зависимости от глубины охвата их можно условно разделить на несколько классов, хотя нередко применяются и комбинированные методики:

0) имитация отдельных характеристик целевой среды (simulation). Собственно, это именно виртуализация отдельных ресурсов, а не всей вычислительной системы, поэтому данный пункт приведен здесь отчасти вне конкурса;

1) полная эмуляция целевой среды (emulation). Самый медленный из подходов, однако и самый живучий, поскольку обеспечивает хорошую переносимость между разными архитектурами.

2) эмуляция только периферийных устройств с исполнением программного кода непосредственно на физической машине (этот метод сегодня чаще всего и подразумевают под более общим термином «виртуализация», хотя сам по себе он имеет несколько подвидов). В настоящее время является наиболее распространенным;

3) разграничение физических ресурсов между несколькими запущенными ОС без эмуляции процессора либо периферии – технология, носящая название hypervisor. Ее преимущества по сравнению с остальными методами – более высокая производительность и стабильность;

4) комбинирование подходов 2 и 3. Обеспечивает дополнительную гибкость в плане выбора периферийных устройств, доступных гостевой ОС;

5) комбинирование подходов 1 и 3 – эмуляция процессора в сочетании с прямым физическим доступом к некоторым устройствам. Достаточно редкий подход, обычно призван высвободить процессорное время либо организовать доступ гостевой ОС к оборудованию, эмуляция которого не представляется возможной.

Несомненно, наиболее перспективным выглядит подход, описанный в пункте 3. Его центральным звеном является собственно hypervisor (основы данной технологии были заложены еще IBM) – по сути, рудиментарная ОС, задачи которой – запуск нескольких ОС и разграничение ресурсов. Hypervisor исполняется непосредственно на физическом оборудовании, как правило, не имея никаких программных надстроек, однако способы его реализации могут весьма разниться.

В идеале именно hypervisor должен заниматься диспетчеризацией и выделением системных ресурсов – благодаря ему можно достичь максимальной производительности, а также получить возможность запускать немодифицированные версии различных ОС. В то же время далеко не все современные вычислительные архитектуры позволяют реализовать это с приемлемыми накладными расходами. Поэтому на платформе x86 чаще поступают иначе, а именно перекладывают заботы о разграничении доступа к оборудованию на одну из ОС (так называемую привилегированную). Остальные должны пользоваться специальными драйверами, взаимодействующими не с физическим оборудованием, а с программной прослойкой привилегированной ОС. Таким образом, все же имеет место эмуляция периферийных устройств, хоть и частичная, поскольку виртуализируются не конкретные, а абстрактные – блочные, символьные, сетевые и т. д. – устройства.

Однако более распространен в мире x86 способ виртуализации, состоящий в запуске кода гостевой ОС непосредственно на процессоре, но в сочетании с эмуляцией (с помощью, к примеру, механизма исключений архитектуры x86) определенного набора прототипов реально существующих устройств (пункты 2 и 4 нашей классификации). В этом случае драйвер немодифицированной ОС обращается к виртуальным устройствам, как если бы они являлись физическими, но вместо последних на его запросы «отвечает» обработчик исключительных ситуаций, установленный программным обеспечением виртуальной машины. Такой подход требует гораздо больших затрат, чем любые варианты с использованием hypervisor, поэтому создатели коммерческих продуктов, вроде VMware или Microsoft, часто предоставляют для поддерживаемых гостевых ОС специальный набор драйверов, позволяющий избежать полной эмуляции и несколько повысить производительность отдельных подсистем.

Виртуализация программные решения
Виртуализация программные решения
Внешне VMware Server не особо отличается от, скажем, VMware Workstation – за основу взят давно знакомый пользователям интерфейс. Однако под ним скрывается поддержка SMP, VT-x, большего спектра операционных систем и удалЈнного управления

Данный подход реализован во многих современных инструментах виртуализации, – помимо целого ряда решений от VMware и Microsoft, в частности, в продуктах Parallels и, с определенной натяжкой, даже в технологии Classic, известной пользователям как Mac OS X. К слову, Parallels Workstation уже доступна и для платформы Mac OS X/Intel, что дает возможность запускать ОС от Microsoft на новых машинах Apple с минимальными накладными расходами. И это не оговорка. Как показывает практика, Windows, выполняющаяся непосредственно на «железе» Apple с помощью Boot Camp, работает даже несколько медленнее, чем в виртуальной машине от Parallels.

По-прежнему представляют интерес и методы полной эмуляции целевой системы, включая центральный процессор. Помимо кросс-платформенной разработки, подобные продукты также находят применение в сфере поддержки снятых с производства морально устаревших, но все еще использующихся «унаследованных» технологий. В ряде случаев эмуляция legacy-архитектуры комбинируется с прямым доступом к физическому оборудованию (SCSI-устройствам, сетевым контроллерам и т. д.), если ОС эмулируемой системы способна работать с ним напрямую. Пример – сохранившиеся экземпляры ленточных накопителей старого образца, необходимые для доступа к собранным за долгое время массивам данных, перенесение которых на более современные носители требует значительных затрат. Также зачастую обеспечивается возможность прямого доступа к устройствам, снятым с производства, но еще способным работать на современной платформе, вроде Ethernet-контроллеров семейства DEC Tulip, популярных в свое время и поддерживаемых практически всеми современными ОС, – благодаря этому с эмулятора удается снять дополнительную нагрузку.

В качестве примера коммерческих реализаций данного подхода можно назвать продукты Charon-VAX и Charon-PDP11, продлевающие жизнь производственным системам, некогда построенным на платформах VAX и DEC PDP-11, – как правило, виртуальная машина при этом оказывается в несколько раз быстрее ее физического аналога. На самом деле подобных разработок довольно много. Скажем, IBM/360 и IBM/370 могут быть программно воссозданы как «официальным» эмулятором от IBM, так и некоммерческим пакетом Hercules (с определенной степенью достоверности), а комплект SIMH реализует достаточно широкий набор уже почти забытых архитектур. Подобные продукты чаще всего представляют историческую, а не коммерческую ценность, но есть и противоположные примеры. Так, эмулятор архитектуры Cisco 7200, способный запускать немодифицированные образы ОС Cisco IOS и обеспечивать коммуникации между несколькими запущенными экземплярами, дает возможность подготовиться к сертификационным экзаменам Cisco, не расходуя средства на лабораторный комплект дорогостоящего оборудования.

Программные реализации для x86

Можно смело утверждать, что на платформе x86 виртуализация сегодня переживает второе рождение. Причем этот процесс протекает достаточно бурно, и не только с технологической, но и с маркетинговой точки зрения. Достаточно зрелые и еще недавно не такие уж дешевые продукты становятся бесплатными, открываются спецификации прежде закрытых интерфейсов и форматов и т. д. Все это делает применение виртуализации еще более заманчивым и оправданным.

Microsoft – относительно новый игрок, вышедший на рынок после покупки Virtual PC компании Connectix. Сегодня это решение поставляется в двух версиях, значительно отличающихся по реализации для Windows и Mac. Соответственно, первая представляет собой в основном эмулятор периферии (пункт 2 нашей классификации), тогда как вторая является полным эмулятором (пункт 1) ввиду того, что подавляющая часть ее аудитории все еще работает на PowerPC. Обе поддерживают набор эмулируемых устройств, имеющих реально существующие аналоги, а также предоставляют специальные упрощенные драйверы для ОС от Microsoft, о которых мы упоминали выше. В любом случае Virtual PC рассчитан на конечных пользователей, которым, по тем или иным причинам, необходимо иметь на машине несколько одновременно запущенных ОС без оглядки на быстродействие.

Виртуализация программные решения
Web-консоль Microsoft Virtual Server более уместна для управления сервером в целом, нежели для взаимодействия с индивидуальными машинами – для этого предназначен специальный клиент

Второй продукт компании – Virtual Server – в соответствии со своим названием позиционируется как средство виртуализации серверных систем. По принципу работы он похож на Virtual PC для Windows, однако значительные улучшения в производительности делают возможным его использование в сетевой среде. Способствует этому и характерный метод управления – посредством Web-интерфейса, вплоть до подключения к терминалу виртуальной машины с помощью интегрированного ActiveX-компонента. В комплекте поставки предусмотрен также специальный, «облегченный» клиент, обеспечивающий только подсоединение к виртуальным машинам, без возможности их конфигурирования либо просмотра статистики. В списке гостевых ОС сегодня присутствуют Windows и Linux, причем о полноценной поддержке последней объявлено совсем недавно – естественно, прежде всего имеется в виду предоставление оптимизированных драйверов. Однако поскольку Virtual Server эмулирует более-менее стандартный набор оборудования (Ethernet-контроллер DEC Tulip, «безымянный» IDE, SCSI-адаптер от Adaptec), то в нем вполне можно запустить, скажем, FreeBSD, хотя сопроводительная документация недвусмысленно предупреждает о неминуемых потерях быстродействия.

Виртуализация программные решения
Довольно подробный журнал событий – неотъемлемая часть многих продуктов Microsoft, и Virtual Server – не исключение
Виртуализация программные решения
Механизм распределения физических ресурсов между виртуальными машинами достаточно удобен, нагляден и является незаменимым инструментом для сложных конфигураций

Нынешняя версия Virtual Server 2005 R2 с недавних пор распространяется совершенно бесплатно, и в первую очередь отличается тесной интеграцией с другим ПО от Microsoft – начиная с ОС Windows Server 2003 R2 и заканчивая семейством продуктов System Center. Сегодня в распоряжении Microsoft нет готовых продуктов класса hypervisor, однако подобная (гибридная) технология должна быть встроена в будущий релиз Longhorn Server.

VMware – старый игрок на рынке виртуализации. Компания предлагает значительно более широкий спектр продуктов и сегодня является бесспорным лидером. Тем не менее о напряженности конкурентной борьбы свидетельствует несколько фактов, в частности выпуск бесплатного VMware Player и обещание сделать таковым VMware Server, призванный заменить VMware GSX Server и пока находящийся в стадии бета-тестирования. В этом контексте не вполне понятна судьба VMware Workstation, однако то же самое, видимо, касается и прочих «виртуальных машин» пользовательского класса. Архитектурно все эти продукты напоминают конкурирующие разработки Microsoft и в целом обеспечивают соизмеримые производительность (различные тестирования нередко показывают полностью противоположные результаты) и функциональность, хотя каждый имеет и сильные, и слабые стороны. Естественно, «плюсом» VMware является полная поддержка Linux.

Однако в арсенале компании есть и более веский аргумент – VMware ESX Server, полноценный hypervisor. Он позиционируется для серьезных применений в корпоративной среде, поддерживает ряд технологий, отсутствующих у конкурентов (вроде виртуальной многопроцессорности) и оснащен рядом сопутствующих продуктов для управления. Строго говоря, на данный момент это чуть ли не единственный hypervisor для x86 коммерческого класса и качества.

Кроме того, в продуктах VMware немало внимания уделяется реализации некритичных, но довольно полезных функций: undo-дисков, средств миграции и пр., – способных существенно упростить развертывание и обслуживание решений.

Xen – довольно интересный продукт для платформы x86, способный работать со многими открытыми ОС (Linux, NetBSD/FreeBSD, Plan 9, Minix, Solaris). В нем использована технология, метко названная разработчиками «паравиртуализацией» и состоящая из hypervisor и специальной программной прослойки, эмулирующей аппаратные ресурсы. Однако для обеспечения тесного взаимодействия с hypervisor и высокой производительности данный подход предполагает модификацию кода гостевых ОС, что, очевидно, исключает из рассмотрения Windows. В то же время текущая версия Xen 3.x допускает использование ОС от Microsoft – благодаря технологиям аппаратной поддержки виртуализации от Intel и специальным системным драйверам, что и было продемонстрировано на прошлогоднем IDF. Вообще на фоне прочих решений для x86 подход Xen выглядит достаточно элегантно, а основанные на нем продукты обеспечивают самые современные возможности, в том числе многопроцессорность и 64-разрядность виртуальной среды.

Еще недавно несколько менее известной была компания Parallels, сосредоточившаяся на решениях пользовательского класса, аналогичных VMware Workstation и Microsoft Virtual PC. Сегодня, однако, она на слуху – благодаря выпуску (пока доступна только бета-версия) Parallels Workstation для Mac OS X/Intel. Как уже упоминалось, данный продукт интересен тем, что обеспечивает на новых Mac не худшую производительность, чем обычная инсталляция Windows, организованная с помощью Boot Camp. Возможно, причина такого неожиданного явления – в особенностях реализации дисковой подсистемы в Parallels Workstation.

К слову, ни один из продуктов виртуализации сегодня не обеспечивает прямого доступа к 3D-функциям видеокарты, исключение составляет разве что экспериментальная поддержка Direct3D в текущей версии VMware Workstation, однако реализована она с многочисленными ограничениями и без какой-либо оптимизации быстродействия, что делает ее практически бесполезной.

В заключение отметим следующее: все современные коммерческие средства виртуализации уже достигли уровня, достаточного для их использования в реальных условиях и проектах. Более того, постоянная «гонка вооружений» привела к тому, что различия и преимущества одних продуктов над другими выглядят незначительными, т. е. при их выборе стоит руководствоваться скорее личными предпочтениями или второстепенными факторами. Соответственно и основные направления развития все поставщики заявляют сходные – реализация hypervisor-продуктов, поддержка Intel Virtualization Technology и AMD Pacifica, а также x64, SMP и т. д. Все это, безусловно, позволит вывести решения виртуализации (в первую очередь серверные) на качественно новый уровень и сделать их действительно удобными, эффективными, надежными.

0 
 

Напечатать Отправить другу

Читайте также

 
 
IDC
Реклама

  •  Home  •  Рынок  •  ИТ-директор  •  CloudComputing  •  Hard  •  Soft  •  Сети  •  Безопасность  •  Наука  •  IoT