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

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

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

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

Виртуализация применительно к ИТ

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

Из этого определения следует очевидная вещь – все компьютерные технологии изначально относятся к категории виртуализационных. А раз так, получается, что использование термина «виртуализация» в ИТ вообще бессмысленно, это "масло масленое". На самом же деле это не совсем так, потому что применительно к ИТ виртуализация используется в более узком понимании. Вот, в частности, определение, которое дает русская «Википедия»:

"Виртуализация в вычислениях — процесс представления набора вычислительных ресурсов или их логического объединения, который дает какие-либо преимущества перед оригинальной конфигурацией".

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

Теперь сформулируем более конкретное определение виртуализации:

"Виртуализация – это дополнительный уровень изоляции вычислительных процессов по сравнению с тем, что предоставляют сегодня операционные системы".

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

Зачем нужна виртуализация

Впервые термин «виртуальзация» стал широко использоваться в 70-е годы: корпорация IBM предложила механизм исполнения виртуальных машин (ВМ) на мэйнфреймах System 360/370, который был нужен для поддержки работы различных версий ОС (в том числе устаревших на тот момент) в системах коллективного пользования.

Появление ПК, реализующих подход "каждому экземпляру OC — по выделенному компьютеру" сделал эту проблему неактуальной, но ненадолго. В конце 90-х обозначился спрос на возможность параллельного запуска на одном компьютере нескольких разных ОС. Сначала это требовалось для поддержки работы на ПК довольно узкой, но важной категории ИТ-специалистов: разработчиков ПО, тестеров, специалистов по технической поддержке, экспертов по софту.

Потом такая же возможность понадобилась для серверов, но уже не только для разработки-тестирования, но и для выполнения унаследованных приложений, которые не хотели работать в новых версиях ОС.

Концу 90-х серверы архитектуры x86 начинали доминировать в системах централизованной обработки данных, количество компьютеров стремительно росло и столь же стремительно начала расти актуальность задач более эффективного использования серверного оборудования и снижения затрат на их обслуживание. Так появилась новая тенденция развития ИТ-рынка, которая главенствует на нем и сегодня – консолидация серверов. Поначалу задача решалась простым перемещением серверов в один центр (физическая консолидация), но потом – уже в первой половине нынешнего десятилетия – стало понятно, что нужно заниматься повышением эффективности использования каждого отдельного сервера. Действительно, средняя загрузка процессора отдельного сервера составляла не более 5–10%, при том что он вполне был в состоянии "потянуть" 50–60%.

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

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

Вкратце ответ на эти вопросы таков: на самом деле многозадачность ОС для архитектуры x86 весьма и весьма условна. По большому счету к ним скорее стоит относиться как к однозадачным системам. Запускать в их среде несколько приложений можно, но с точки зрения надежности и балансировки нагрузки – не нужно или по крайней мере нецелесообразно. Именно поэтому сегодняшние информационные системы организованы так, что для работы каждого отдельного ИТ- или бизнес-сервиса (электронная почта, Web-сайт, бухгалтерия и т.п.) требуется отдельный физический сервер, даже если загрузка процессора в нем составляет от 3 до 10%.

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

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

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

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

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

Итак, фокус задач виртуализации в середине текущего десятилетия почти полностью сосредоточился на проблеме повышения эффективности серверных вычислений. Однако в последние 3–4 года стала расти и актуальность повышения уровня изоляции приложений на ПК, в частности, для поддержки их надежной работы в условиях постоянных обновлений. А выпуск Windows Vista, которая не обеспечивает полной совместимости с Windows предыдущих версий, с новой остротой обозначил проблему поддержки унаследованных приложений. Развитие же модели мобильной работы сотрудников выявило сейчас еще одну актуальную задачу – возможность работы на одном ПК в двух разных операционных средах, домашней и корпоративной.

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

И наконец, нужно сказать еще об одной важном виртуализационном течении, которое сформировалось в результате слияния направлений виртуализации ОС и терминального доступа – создание инфраструктуры виртуальных ПК (virtual desktop infrastructure, VDI, или hosted virtual desktops, HVD). Основная идея VDI заключается в том, что пользовательская настольная среда (приложения и ОС) запускается на сервере в виде виртуальной машины, доступ которой выполняется с удаленного терминала.

Сценарии применения

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

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

При этом в рамках этих сценариев решаются такие задачи:

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

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

Типы виртуализационных технологий

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

Увеличение доступности и полезного времени

Простота аварийного восстановления

Уменьшение перерывов в обслуживании

Упрощение решения задач масштабирования и балансировки нагрузки

Поддержка унаследованных приложений, несовместимых с новыми ОС

Поддержка приложений, не отвечающих корпоративным требованиям

Сокращение конфликтов приложений с ОС

Ускорение процесса замены ОС

Снижение конфликтов приложений между собой

Сокращение затрат на проведение регрессивного тестирования приложений на совместимость

Централизация управления процессом обновления приложений

Сокращение конфликтов приложений с ОС

Упрощение обеспечения конфиденциальности данных и соответствия нормативным требованиями

Снижение затрат на администрирование настольных систем

Возможность использования унаследованного клиентского оборудования