Набирающие популярность технологии виртуализации несут с собой целый ряд выгод для бизнеса — они позволяют консолидировать вычислительные ресурсы и более оперативно реагировать на изменения объемов данных для обработки, упрощают тестирование, внедрение и разработку новых систем и, конечно, сокращают расходы. По оценкам IDC, в 2007 году 40% серверов будут поддерживать функции виртуализации, а объем рынка серверной виртуализации в 2009 году достигнет отметки в 15 млрд. долл.


Три основных модели использования виртуализации: консолидация (вверху), резервирование (посередине), разграничение доступа (внизу)
Три основных модели использования виртуализации: консолидация (вверху), резервирование (посередине), разграничение доступа (внизу)

Неудивительно, что ведущие производители компонентной базы для наиболее распространенной х86-архитектуры, компании AMD и Intel, не оставили без внимания этот перспективный рынок и несколько лет назад начали кампанию по продвижению собственных аппаратных технологий виртуализации Pacifica и Intel Virtualization Technology (VT), известную ранее под кодовыми названиями Silvervale/Vanderpool.

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

Феномен виртуализации

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

Поскольку виртуализация подразумевает в конечном итоге агрегацию ресурсов, возникает идея использования в рамках одной платформы нескольких уникальных независимых друг от друга наборов приложений под управлением гостевой ОС или, другими словами, виртуальных машин. Для организации подобной модели в программно-аппаратном комплексе вычислительной системы необходимо наличие дополнительного слоя ПО — гипервизора или Virtual Machine Monitor (VMM). В его задачи входит выполнение четырех основных функций:

• эмуляция
В идеальном случае приложения и гостевая ОС ничего не подозревают о разделении физических ресурсов процессора, памяти, дисков и подсистемы ввода-вывода с другими программными средами.

• изоляция
Программная среда отдельно взятой виртуальной машины должна быть полностью отделена от всех остальных. Именно это свойство виртуализации позволяет поднять безопасность системы на качественно новый уровень.

• распределение
VMM следит за распределением аппаратных ресурсов в соответствии с запросами гостевых ОС.

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

Модели использования

Еще раз возвращаясь к определению понятия виртуализации, можно сказать, что речь идет о технологии, позволяющей “отвязать” ПО от аппаратной конфигурации отдельно взятой платформы. Отталкиваясь от этого определения, несложно представить возможные варианты применения технологий виртуализации.

Консолидация и стандартизация

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

Безопасность и надежность

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

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

Миграция

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

Тестирование и разработка

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

Гибкость

Очевидно, гораздо проще, быстрее и дешевле изменить параметры виртуального раздела, нежели приобретать отдельную аппаратную платформу. Таким образом, технологии виртуализации позволяют оперативно и с минимальными затратами реагировать на нужды бизнеса. Конечно, в этом случае речь идет об эксплуатации нескольких физических платформ, объединенных в одну или несколько виртуальных.

Программная или аппаратная виртуализация?

Классическая система предусматривает работу одной ОС, которая напрямую взаимодействует с ее аппаратными ресурсами и управляет запросами работающих в ее среде приложений. В виртуальной системе приходится обеспечивать одновременное функционирование нескольких ОС с одним и тем же набором физических ресурсов. Технически проще это сделать чисто программным путем, добавив в систему приложение “переводчик” между основной ОС и локальными ОС. Такое ПО доступно на рынке, это, например, Microsoft Virtual PC 2004, VMware Workstation, GSX Server.

Недостаток описанного подхода очевиден: на трансляцию запросов уходит большое количество процессорного времени, и производительность виртуальных машин ощутимо падает. Более эффективна виртуализация на уровне ОС, которую реализуют такие продукты, как Microsoft Virtual Server 2005 или VMware ESX Server. Однако и в этом случае менеджмент по перераспределению аппаратных ресурсов ложится на ПО и в результате очень загружает центральный процессор.

В свою очередь, аппаратная виртуализация на уровне платформы позволяет существенно упростить ПО виртуализации, повысить его надежность, а главное — значительно ускорить перераспределение ресурсов между гостевыми ОС. Системы, поддерживающие виртуализацию на аппаратном уровне, достаточно давно присутствуют на рынке, но они не рассчитаны на массовое применение. В их числе Freescale MPC8641D, IBM System/370, System/390, мейнфреймы zSeries.

Виртуализацию в массы

Примерно такой лозунг выдвинули компании AMD и Intel, каждая из которых несколько лет назад приступила к разработке собственной технологии аппаратной виртуализации. Учитывая широкую распространенность архитектуры х86, у виртуализации действительно есть все шансы стать по-настоящему массовой технологией. Тем более что для этого уже обозначились технологические предпосылки — по оценкам специалистов, количество ядер в процессорах будет удваиваться примерно каждые 1,5–2 года.

Несмотря на то, что технологии виртуализации Intel VT и Pacifica обоих производителей преследуют схожие цели, они используют различные мнемоники, что не позволяет их считать полностью совместимыми между собой. Кроме того, Pacifica дополнительно содержит две ключевые особенности, связанные непосредственно с архитектурой AMD64 и поэтому недоступные для VT. Первая связана с интегрированным на кристалле у чипов AMD контроллером памяти, вторая — с организацией прямого доступа к памяти. Не исключено, что последняя возможность присутствует и в VT, но производитель пока не объявил о ней официально.

Расположение контроллера памяти непосредственно на кристалле процессора дает AMD технологический выигрыш в плане виртуализации ресурсов памяти. Другими словами, Pacifica — в большей степени аппаратная технология, нежели VT. Однако у этой медали есть и обратная сторона, которая состоит в существенном усложнении интеграции технологии виртуализации в чип в сравнении с концепцией конкурента.

Видимо, это и стало причиной того, что Intel объявила о своей технологии виртуализации еще на весеннем IDF (Intel Developer Forum) в 2005 году. В настоящее время компания предлагает целый ряд продуктов с ее поддержкой — процессоры Pentium 4 6x2, Pentium D 9xx, Xeon 7xxx и Core Duo (в последнем случае VT не всегда поддерживает BIOS/EFI). Во второй половине года Intel обещает появление технологии VT также в процессорах Itanium 2 на основе архитектуры EPIC.

Отставание AMD от ближайшего конкурента, очевидно, продлится недолго — компания намерена в ближайшее время представить первые модели Athlon 64, Athlon 64 Х2 и Opteron с поддержкой Pacifica. В частности, речь идет о процессорах для нового гнезда Socket M2 с интегрированным контроллером памяти DDR2.

Перспективы

Востребованность технологий виртуализации не вызывает никаких сомнений, однако их массовое принятие со стороны индустрии будет всецело зависеть от заинтересованности разработчиков в адаптации своих программных продуктов. Можно сказать, что производители процессоров пока только готовят благодатную почву для культивирования виртуализации, но последнее слово по-прежнему остается за программными продуктами. Если они окажутся удобными и надежными, нет никаких сомнений — х86-архитектура наконец станет виртуальной.