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

В более узком понимании понятие виртуализации применяется к центральному элементу вычислительных систем - операционным системам - и связано с реализацией концепции виртуальных машин (VM). Именно эти вопросы мы подняли год назад в "Теме номера" нашего журнала ("BYTE/Россия" № 5'2005) и хотим подробнее обсудить сейчас. Они представляются весьма злободневными, поскольку прошедший год показал, что виртуализация ОС - это не просто магистраль развития ИТ корпоративного уровня, но и актуальное уже сегодня направление.

От мэйнфреймов к ПК и обратно

Как известно, концепция виртуальных машин была впервые реализована еще в начале 70-х годов прошлого столетия корпорацией IBM (http://www.ibm.com) на мэйнфреймах System 360/370. Тогда ее появление было связано в основном с необходимостью поддерживать работу различных версий ОС (в том числе устаревших на тот момент) в системах коллективного пользования. Казалось бы, прогресс в области аппаратных средств (недорогие, но достаточно мощные мини-компьютеры, потом ПК) сделал эту проблему неактуальной: подход "каждому экземпляру OC - по выделенному компьютеру" гораздо проще. Однако на рубеже веков обстоятельства сложились так, что идеи виртуализации оказались востребованы и доминирующей на компьютерном рынке платформой x86.

Как это ни странно, но спрос на использование VM-технологий проявился еще в начале 90-х на настольных ПК. Дело в том, что одновременно с увеличением числа версий клиентских ОС постоянно росло и число людей (разработчиков ПО, тестеров, специалистов по технической поддержке, экспертов по софту), которым в силу специфики их профессии нужно иметь на рабочей станции сразу несколько копий различных ОС. Ориентируясь именно на этот круг задач, сразу несколько небольших компаний приступили к созданию виртуальных систем для персональных ПК. Лидером тут довольно быстро стала VMware (http://www.vmware.com) со своим продуктом VMware Workstation.

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

Имея в виду эти цели, VMware еще в 2001 г. представила свои серверные продукты GSX Server и ESX Server и фактически приступила к формированию полномасштабной виртуальной софтверной платформы.

За дело берутся поставщики платформ

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

Первый звонок прозвенел в марте 2003 г., когда на рынок виртуализационного ПО вышла Microsoft (http://www.microsoft.com). Корпорация пошла здесь по традиционному для себя пути, купив технологию виртуальных машин у компании Connectix (она занимала в этой области вторую позицию после VMware). В конце года Microsoft выпустила продукт Microsoft Virtual PC 2004 для персональных ПК, а в начале осени 2004 г. представила серверное решение Microsoft Virtual Server 2005.

Вторым знаковым событием стало то, что в декабре 2003 г. VMware была куплена производителем систем хранения корпорацией EMC (http://www.emc.com), одним из крупнейших мировых ИТ-поставщиков, в первую очередь аппаратных средств. Примечательно и то, что VMware, став собственностью EMC, продолжает работать под своей торговой маркой.

А дальше события на фронте виртуализации стали развиваться весьма бурно. В 2004 г. о своем намерении вплотную заняться поддержкой виртуальных технологий объявила и Intel (http://www.intel.com), а на проходившей в марте 2005 г. в США конференции Intel Developers Forum корпорация представила прототип своей Virtualization Technology (ранее имевшей кодовое название Vanderpool Technology) на примере продуктов VMware, оптимизированных для этой платформы. Примерно тогда же о начале работ в этом направлении (проект Pacifica) объявила AMD (http://www.amd.com).

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

Технология Intel VT была в центре внимания мартовского IDF 2006 г., где представитель исследовательской компании Gartner назвал эту технологию "самым существенным изменением архитектуры ПК в нынешнем десятилетии".

В апреле 2004 г. вспомнила о своем "виртуальном" прошлом и корпорация IBM, представив предварительную версию новой технологии Virtualization Engine для виртуального представления ИТ-ресурсов серверных продуктов и систем хранения на уровне отдельных серверов, хранилищ и дополнительных служб с целью их объединения. Спустя год "Голубой гигант" заключил также партнерский договор с VMware, предусматривающий поставки ознакомительных версий виртуализационной программной инфраструктуры в составе серверов eServer BladeCenter.

Начали быстро набирать силу и проекты open source, связанные с созданием виртуализационных сред. В первую очередь это Xen компании XenSource (http://www.xensource.com) и проект OpenVZ (http://www.openVZ.org). А в марте 2006 г. о своих намерениях широко использовать виртуализационные технологии на уровне ОС (на базе Xen 3.0) заявили ведущие поставщики Linux - компании Red Hat и Novell. Эти средства появятся в ближайших выпусках ОС Red Hat Fedora 5.0 и SUSE Linux Enterprise 10.

Разумеется, не стоит на месте и Microsoft, которая еще прошлогодней весной объявила направление виртуализации одним из главных в развитии своей серверной платформы. Компания рассматривает его в контексте общей проблематики повышения эффективности управления ИТ-ресурсами в рамках своей концепции Dynamic Systems Initiative.

Отметим, что и Intel развивает Virtualization Technology вместе с другой своей технологией - Active Management Technology (Intel AMT). Недавно корпорация также объявила о расширении VT за счет поддержки новых спецификаций Intel Virtualization for Directed I/O (Intel VT-d), предназначенных для подключения устройств ввода-вывода к виртуальным машинам. Microsoft, со своей стороны, обещает включить поддержку технологий Intel в свои Windows-платформы с помощью пакета Virtual Server 2005 R2 Service Pack 1, бета-версия которого ожидается к концу нынешней весны.

Интересно и то, что осенью прошлого года Microsoft объявила о коррекции своей лицензионной политики для серверных решений. Так, для новой версии Windows Server 2003 R2 Enterprise Edition можно теперь без дополнительной оплаты лицензий запускать до четырех виртуальных экземпляров OC на одном физическом сервере, а для будущей Windows Server (Longhorn) Datacenter Edition число таких копий вообще не будет ограничиваться.

Виртуализация по-русски

В контексте этой статьи следует еще сказать о технологии Virtuozzo компании SWsoft (http://www.swsoft.ru). В общем случае виртуализация - это технология, позволяющая исполнять несколько операционных систем на одном и том же процессоре. Но при этом традиционно подразумевается поддержка работы ОС разных типов (именно на решение таких задач были изначально ориентированы решения IBM, VMware и Microsoft). Другое направление ориентировано на оптимизацию управления вычислительными ресурсами на базе моносистем. Именно этот подход представлен в технологии Virtuozzo, нацеленной на создание набора уникальных сред на основе одной копии ОС. Такой подход обеспечивает более эффективное использование ресурсов компьютера (одно ядро ОС для всех пользователей) и не требует эмуляции аппаратных средств, поэтому накладные расходы не превышают нескольких процентов. Именно поэтому такой подход часто называют Virtual Environment, в отличие от Virtual Machine.

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

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

Поначалу подобные технологии были востребованы главным образом быстрорастущим сегментом хостинг-провайдеров - именно поэтому SWsoft реализовала Virtuozzo применительно к Linux. Однако еще несколько лет назад руководство компании решило расширить спектр поддерживаемых ОС, рассчитывая, что ее подход будет пользоваться спросом и со стороны корпоративных заказчиков. Здесь в первую очередь имелась в виду Windows, но в силу обстоятельств, в том числе непростых технологических проблем, эта разработка несколько затянулась. Однако летом прошлого года SWsoft все же представила на рынке первую версию Virtuozzo для Windows.

Помимо оригинального подхода, реализованного в Virtuozzo, обратим внимание на еще один важный момент. SWsoft показывает пример того, как российская компания может стать технологическим мировым лидером в сфере "тяжелого" корпоративного серверного ПО. Компания была организована в конце 90-х годов группой отечественных специалистов с целью создания собственных технологий на уровне операционных систем. Изначально компания была ориентирована на зарубежный рынок, поэтому неудивительно, что она юридически зарегистрирована в США и ее штаб-квартира сейчас находится в Херндоне (шт. Вирджиния). Фирма имеет несколько офисов в других странах, но центры исследований и разработки остались "дома", в Москве и Новосибирске: здесь трудятся более 500 сотрудников, в основном высококвалифицированные инженеры-разработчики.

Отметим также, что SWsoft выступает технологическим и коммерческим спонсором открытого проекта OpenVZ, которым также руководят наши соотечественники. Для нас важно и то, что SWsoft существенно активизировала свою деятельность в России, в сотрудничестве, в частности, с одним из наших ведущих системных интеграторов, компанией "АйТи".

Все еще впереди

Говоря о развитии рынка, мы отметили, что Microsoft решила изменить свою лицензионную политику для серверных решений. Дело в том, что традиционная схема лицензирования виртуализационного ПО позволяет сократить расходы на аппаратуру и обслуживание, но не на приобретение самих программ: каждая копия устанавливаемой ОС требует отдельной оплаты. Но подход, реализованный в виртуальных средах (Virtuozzo), подрывает эту схему, позволяя создавать несколько VE на базе одного ядра OC. Иными словами, на одном Windows Server можно запустить фактически несколько его экземпляров, заплатив только не очень большие деньги за Virtuozzo.

Нет сомнений, что именно такое конкурентное предложение сыграло свою роль в "филантропическом" шаге Microsoft. Вот как новые технологии могут реально вести к снижению стоимости затрат на ИТ!

Подводя итоги, в целом можно выделить следующие основные сценарии применения технологий виртуализации.

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

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

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

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

Подчеркнем, тем не менее, что виртуализация - это лишь одна из нескольких технологий, позволяющих проводить консолидацию приложений и миграцию. Для снижения затрат на управление серверами в дополнение к виртуализации можно использовать и другие подходы, например, управление рабочими нагрузками (workload management) или изоляцию оборудования (hardware isolation).