История технологий виртуализации насчитывает уже более сорока лет. Однако после периода их триумфального применения в 70--80-х годах прошлого века, в первую очередь на мэйнфреймах IBM, эта концепция отошла на второй план при создании корпоративных информационных систем. Дело в том, что сама концепция виртуализации связана с созданием вычислительных центров коллективного пользования, с необходимостью применения единого комплекса аппаратных средств для формирования нескольких различных логически независимых систем. А с середины 80-х в компьютерной отрасли начала доминировать децентрализованная модель организации информационных систем на базе мини-компьютеров, а потом x86-серверов.
Виртуализация для архитектуры x86
В появившихся со временем персональных компьютерах проблема виртуализации аппаратных ресурсов, казалось бы, не существовала по определению, поскольку каждый пользователь получал в свое распоряжение весь компьютер со своей ОС. Но по мере повышения мощности ПК и расширения сферы применения x86-систем ситуация быстро поменялась. “Диалектическая спираль” развития сделала свой очередной виток, и на рубеже веков начался очередной цикл усиления центростремительных сил по концентрации вычислительных ресурсов. В начале нынешнего десятилетия на фоне растущей заинтересованности предприятий в повышении эффективности своих компьютерных средств стартовал новый этап развития технологий виртуализации, который сейчас преимущественно связывается именно с использованием архитектуры x86.
Нужно сразу подчеркнуть, что хотя в идеях x86-виртуализации в теоретическом плане вроде бы ничего неизвестного ранее не было, речь шла о качественно новом для ИТ-отрасти явлении по сравнению с ситуацией 20-летней давности. Дело в том, что в аппаратно-программной архитектуре мэйнфреймов и Unix-компьютеров вопросы виртуализации сразу решались на базовом уровне. Система же x86 строилась совсем не в расчете на работу в режиме датацентров, и ее развитие в направлении виртуализации — это довольно сложный эволюционный процесс со множеством разных вариантов решения задачи.
Еще один и, возможно, даже более важный момент заключается в качественно разных бизнес-моделях развития мэйнфреймов и x86. В первом случае речь идет фактически о моновендорном программно-аппаратном комплексе для поддержки в общем-то довольно ограниченного круга прикладного ПО для не очень широкого круга крупных заказчиков. Во втором мы имеем дело с децентрализованным сообществом производителей техники, поставщиков базового ПО и огромной армией разработчиков прикладного софта.
Использование средств x86-виртуализации началось в конце 90-х с рабочих станций: одновременно с увеличением числа версий клиентских ОС постоянно росло и количество людей (разработчиков ПО, специалистов по технической поддержке, экспертов по софту), которым нужно было на одном ПК иметь сразу несколько копий различных ОС.
- Виртуализация для серверной инфраструктуры стала применяться немного позднее, и связано это было прежде всего с решением задач консолидации вычислительных ресурсов. Но тут сразу сформировалось два независимых направления: ·
- поддержка неоднородных операционных сред (в том числе для работы унаследованных приложений). Этот случай наиболее часто встречается в рамках корпоративных информационных систем. Технически проблема решается путем одновременной работы на одном компьютере нескольких виртуальных машин, каждая из которых включает экземпляр операционной системы. Но реализация этого режима выполняется с помощью двух принципиально разных подходов: полной виртуализации и паравиртуализации; ·
- поддержка однородных вычислительных сред, что наиболее характерно для хостинга приложений провайдерами услуг. Конечно, тут можно использовать и вариант виртуальных машин, но гораздо эффективнее создание изолированных контейнеров на базе одного ядра ОС.
Следующий жизненный этап технологий x86-виртуализации стартовал в 2004--2006 гг. и был связан с началом их массового применения в корпоративных системах. Соответственно если раньше разработчики в основном занимались созданием технологий исполнения виртуальных сред, то теперь на первый план стали выходить задачи управления этими решениями и их интеграции в общую корпоративную ИТ-инфрастуктуру. Одновременно обозначилось заметное повышение спроса со стороны персональных пользователей (но если в 90-х это были разработчики и тестеры, то сейчас речь уже идет о конечных пользователях -- как профессиональных, так и домашних).
Подводя итог сказанному, в целом можно выделить следующие основные сценарии применения технологий виртуализации заказчиками: ·
- разработка и тестирование ПО; ·
- моделирование работы реальных систем на исследовательских стендах; ·
- консолидация серверов с целью повышения эффективности использования оборудования; ·
- консолидация серверов в рамках решения задач поддержки унаследованных приложений; ·
- демонстрация и изучение нового ПО; ·
- развертывание и обновление прикладного ПО в условиях действующих информационных систем; ·
- работа конечных пользователей (преимущественно домашних) на ПК с разнородными операционными средами.
Базовые варианты виртуализации ПО
Мы уже говорили ранее, что проблемы разработки виртуализационных технологий во многом связаны с преодолением унаследованных особенностей программно-аппаратной архитектуры x86. И для этого существует несколько базовых методов.
Полная виртуализация (Full, Native Virtualization). Используются немодифицированные экземпляры гостевых операционных систем, а для поддержки работы этих ОС служит общий слой эмуляции их исполнения поверх хостовой ОС, в роли которой выступает обычная операционная система (рис. 1). Такая технология применяется, в частности, в VMware Workstation, VMware Server (бывший GSX Server, Parallels Desktop, Parallels Server, MS Virtual PC, MS Virtual Server, Virtual Iron. К достоинствам данного подхода можно причислить относительную простоту реализации, универсальность и надежность решения; все функции управления берет на себя хост-ОС. Недостатки — высокие дополнительные накладные расходы на используемые аппаратные ресурсы, отсутствие учета особенностей гостевых ОС, меньшая, чем нужно, гибкость в использовании аппаратных средств.
Паравиртуализация (paravirtualization). Модификация ядра гостевой ОС выполняется таким образом, что в нее включается новый набор API, через который она может напрямую работать с аппаратурой, не конфликтуя с другими виртуальными машинами (ВМ; рис. 2). При этом нет необходимости задействовать полноценную ОС в качестве хостового ПО, функции которого в данном случае исполняет специальная система, получившая название гипервизора (hypervisor). Именно этот вариант является сегодня наиболее актуальным направлением развития серверных технологий виртуализации и применяется в VMware ESX Server, Xen (и решениях других поставщиков на базе этой технологии), Microsoft Hyper-V. Достоинства данной технологии заключаются в отсутствии потребности в хостовой ОС -- ВМ устанавливаются фактически на “голое железо”, а аппаратные ресурсы используются эффективно. Недостатки — в сложности реализации подхода и необходимости создания специализированной ОС-гипервизора.
Виртуализация на уровне ядра ОС (operating system-level virtualization). Этот вариант подразумевает использование одного ядра хостовой ОС для создания независимых параллельно работающих операционных сред (рис. 3). Для гостевого ПО создается только собственное сетевое и аппаратное окружение. Такой вариант используется в Virtuozzo (для Linux и Windows), OpenVZ (бесплатный вариант Virtuozzo) и Solaris Containers. Достоинства — высокая эффективность использования аппаратных ресурсов, низкие накладные технические расходы, отличная управляемость, минимизация расходов на приобретение лицензий. Недостатки — реализация только однородных вычислительных сред.
Виртуализация приложений подразумевает применение модели сильной изоляции прикладных программ с управляемым взаимодействием с ОС, при которой виртуализируется каждый экземпляр приложений, все его основные компоненты: файлы (включая системные), реестр, шрифты, INI-файлы, COM-объекты, службы (рис. 4). Приложение исполняется без процедуры инсталляции в традиционном ее понимании и может запускаться прямо с внешних носителей (например, с флэш-карт или из сетевых папок). С точки зрения ИТ-отдела такой подход имеет очевидные преимущества: ускорение развертывания настольных систем и возможность управления ими, сведение к минимуму не только конфликтов между приложениями, но и потребности в тестировании приложений на совместимость. Фактически именно такой вариант виртуализации используется в Sun Java Virtual Machine, Microsoft Application Virtualization (ранее называлось Softgrid), Thinstall (в начале 2008 г. вошла в состав VMware), Symantec/Altiris.
Вопросы выбора виртуализационного решения
Сказать: “продукт A — это решение для виртуализации ПО” -- совсем не достаточно для понимания реальных возможностей “А”. Для этого нужно детальнее посмотреть на различные характеристики предлагаемых продуктов.
Первая из них связана с поддержкой различных ОС в качестве хостовых и гостевых систем, а также с обеспечением возможности работы приложений в виртуальных средах. При выборе виртуализационного продукта заказчику нужно также иметь в виду широкий набор технических характеристик: уровень потери производительности приложений в результате появления нового операционного слоя, необходимость дополнительных вычислительных ресурсов для работы механизма виртуализации, спектр поддерживаемой периферии.
Помимо создания механизмов исполнения виртуальных сред сегодня на передний план выходят задачи управления системами: преобразование физических сред в виртуальные и наоборот, восстановление системы в случае отказа, перенос виртуальных сред с одного компьютера на другой, развертывание и администрирование ПО, обеспечение безопасности и т. д.
И наконец, важны стоимостные показатели используемой виртуализационной инфраструктуры. При этом следует иметь в виду, что здесь в структуре расходов главной может быть не столько цена самих средств виртуализации, сколько возможность экономии на приобретении лицензий для базовых ОС или бизнес-приложений.
Основные игроки рынка x86-виртуализации
Рынок средств виртуализации начал формироваться менее десяти лет назад и сегодня приобрел вполне определенные очертания.
Созданная в 1998 г. компания VMware является одним из пионеров в использовании технологий виртуализации для компьютеров архитектуры x86 и занимает сегодня лидирующую позицию на этом рынке (по некоторым оценкам, ее доля составляет 70--80%). С 2004 г. она является дочерним предприятием корпорации ECM, но на рынке работает автономно под собственной торговой маркой. По данным EMC, штат сотрудников VMware вырос за это время с 300 до 3000 человек, а объемы продаж ежегодно увеличивались вдвое. Согласно официально объявленным сведениям, сейчас ежегодный доход компании (от продажи продуктов виртуализации и оказания сопутствующих услуг) приближается к 1,5 млрд. долл. Эти данные хорошо отражают общее повышение рыночного спроса на средства виртуализации.
Сегодня WMware предлагает комплексную виртуализационную платформу третьего поколения VMware Virtual Infrastructure 3, которая включает средства как для отдельного ПК, так и для центра обработки данных. Ключевым компонентом этого программного комплекса является гипервизор VMware ESX Server. Компании могут также воспользоваться бесплатным продуктом VMware Virtual Server, на базе которого предлагается выполнять пилотные проекты.
Parallels — это новое (с января 2008 г.) название компании SWsoft, которая также является ветераном рынка технологийвиртуализации. Ее ключевой продукт — Parallels Virtuozzo Containers, решение по виртуализации на уровне ОС, позволяющее запускать на одном Windows- или Linux-сервере множество изолированных контейнеров (виртуальных серверов). Для автоматизации бизнес-процессов хостинг-провайдеров предлагается средство Parallels Plesk Control Panel. В последние годы компания активно развивает направление средств виртуализации настольных систем — Parallels Workstation (для Windows и Linux) и Parallels Desktop for Mac (для Mac OS на компьютерах архитектуры x86). В 2008 г. она объявила о выпуске нового продукта — Parallels Server, поддерживающего серверный механизм виртуальных машин с использованием разных ОС (Windows, Linux, Mac OS).
Корпорация Microsoft вышла на рынок средств виртуализации в 2003 г. с приобретением компании Connectiх, выпустив свой первый продукт Virtual PC для настольных ПК. С тех пор она последовательно наращивала спектр предложений в этой области и на сегодня почти завершила формирование виртуализационной платформы, в состав которой входят следующие компоненты. ·
- Серверная виртуализация. Здесь предлагается два различных технологических подхода: с помощью Microsoft Virtual Server 2005 и нового решения Hyper-V Server (пока оно представлено бета-версией). ·
- Виртуализация для ПК. Выполняется с помощью бесплатно распространяемого продукта Microsoft Vitrual PC 2007. ·
- Виртуализация приложений. Для таких задач предлагается система Microsoft SoftGrid Application Virtualization (ранее называлась SoftGrid). ·
- Презентационная виртуализация. Реализуется с помощью Microsoft Windows Server Terminal Services и в целом представляет собой давно известный режим терминального доступа. ·
- Интегрированное управление виртуальными системами. В решении этих задач ключевая роль отводится выпущенному в конце прошлого года System Center Virtual Machine Manager.
Компания Sun Microsystems предлагает многоуровневый набортехнологий : традиционная ОС, управление ресурсами, виртуализация ОС, виртуальные машины и домены на уровне аппаратуры (hard partitions). Эта последовательность выстроена по принципу повышения уровня изоляции приложений (но одновременно снижается гибкость решения). Все виртуализационные технологии Sun реализованы в рамках операционной системы Solaris. В аппаратном плане везде есть поддержка архитектуры x64, хотя системы на базе UltraSPARC изначально лучше заточены на данные технологии. В качестве виртуальных машин могут использоваться и другие операционные системы, в том числе Windows и Linux.
Корпорация Citrix Systems является признанным лидером в сфере инфраструктур удаленного доступа к приложениям. Она серьезно усилила свои позиции в области виртуализационных технологий, купив в 2007 г. за 500 млн. долл. компанию XenSource, разработчика Xen -- одной из ведущих технологий виртуализации операционных систем. Как раз накануне этой сделки XenSource представила новую версию своего флагманского продукта XenEnterprise на базе ядра Xen 4. Данное приобретение вызвало некоторое смятение в ИТ-отрасли, поскольку Xen является открытым проектом и заложенные в него технологии лежат в основе коммерческих продуктов таких поставщиков, как, например, Sun, Red Hat и Novell. Определенная неясность в позиции Citrix в будущем продвижении Xen, в том числе в маркетинговом плане, сохраняется до сих пор. На первую половину 2008 г. запланирован выпуск первого продукта компании на базе технологии Xen — Citrix XenDesktop (для виртуализации ПК). Затем ожидается представление обновленного варианта XenServer.
В ноябре 2007-го о своем выходе на рынок средств виртуализации объявила Oracle, представив ПО под названием Oracle VM для виртуализации серверных приложений этой корпорации и других производителей. Новое решение включает серверный программный компонент с открытым исходным кодом и интегрированную консоль управления на базе браузера, предназначенную для создания и администрирования виртуальных пулов серверов, работающих в системах на базе архитектур x86 и x86-64. Эксперты усмотрели в этом нежелание Oracle поддерживать пользователей, которые запускают ее продукты в виртуальных средах других производителей. Известно, что решение Oracle VM реализовано на базе гипервизора Xen. Уникальность данного шага Oracle заключается в том, что это, кажется, первый случай в истории компьютерной виртуализации, когда фактически технология подстраивается не под операционную среду, а под конкретные приложения.
Рынок виртуализации глазами IDC
Рынок средств виртуализации архитектуры x86 находится на этапе бурного развития, и его структура еще не устоялась. Это усложняет проведение оценок его абсолютных показателей и сравнительного анализа представленных тут продуктов. Подтверждением данного тезиса служит опубликованный в ноябре прошлого года отчет IDC “Enterprise Virtualization Software: Customer Needs and Strategies” (“Корпоративное программное обеспечение виртуализации: потребности заказчиков и стратегии”). Наибольший интерес в этом документе представляет вариант структуризации серверного виртуализационного ПО, в котором IDC выделяет четыре основных компонента (рис. 5).
Платформа виртуализации. Ее основу составляют гипервизор, а также основные элементы управления ресурсами и программный интерфейс приложений (API). В качестве ключевых характеристик выделяются число сокетов и количество процессоров, поддерживаемых одной виртуальной машиной, число гостевых систем, доступных по одной лицензии, и спектр поддерживаемых ОС.
Управление виртуальными машинами. Включает средства управления хостовым ПО и виртуальными серверами. Сегодня здесь наиболее заметны различия в предложениях вендоров как по составу функций, так и по масштабированию. Но IDC уверена, что возможности инструментов ведущих поставщиков быстро выравниваются, управление физическими и виртуальными серверами будет выполняться через единый интерфейс.
Инфраструктура виртуальных машин. Широкий набор дополнительных средств, выполняющих такие задачи, как миграция ПО, автоматический перезапуск, балансировка нагрузки виртуальных машин и пр. По мнению IDC, именно возможности этого ПО будут решающим образом влиять на выбор поставщиков заказчиками, и как раз на уровне этих средств будет вестись борьба между вендорами.
Решения виртуализации. Набор продуктов, которые позволяют связать вышеупомянутые базовые технологии с конкретными типами приложений и бизнес-процессов.
В плане общего анализа ситуации на рынке IDC выделяет три лагеря участников. Первый водораздел проходит между теми, кто виртуализирует на верхнем уровне ОС (SWsoft и Sun) и на нижнем уровне ОС (VMware, XenSource, Virtual Iron, Red Hat, Microsoft, Novell). Первый вариант позволяет создавать самые эффективные с точки зрения производительности и дополнительных затрат на ресурсы решения, но реализующие только однородные вычислительные среды. Второй дает возможность запускать на одном компьютере несколько ОС разного типа. Внутри второй группы IDC проводит еще одну границу, разделяющую поставщиков автономных продуктов виртуализации (VMware, XenSource, Virtual Iron) и производителей операционных систем, в состав которых входят средства виртуализации (Microsoft, Red Hat, Novell).
С нашей точки зрения, предложенная IDC структуризация рынка является не очень точной. Во-первых, почему-то IDC не выделяет наличие двух принципиально разных типов виртуальных машин — с использованием хост-ОС (VMware, Virtual Iron, Microsoft) и гипервизора (VMware, XenSource, Red Hat, Microsoft, Novell). Во-вторых, если говорить о гипервизоре, то тут полезно отличать тех, кто использует собственные базовые технологии (VMware, XenSource, Virtual Iron, Microsoft), и тех, кто лицензирует чужие (Red Hat, Novell). И, наконец, нужно сказать, что SWsoft и Sun имеют в своем арсенале не только технологии виртуализации на уровне ОС, но и средства поддержки виртуальных машин.