Технологии виртуализации – что это такое
Тема виртуализации на современном этапе развития ИТ обозначилась еще в начале нынешнего десятилетия, но довольно долгое время представляла собой довольно узкое, специализированное технологическое направление. Перелом в ее актуальности обозначился два-три года назад, когда стало понятно – по крайней мере на уровне заявлений и планов, – что за это дело решили всерьез взяться признанные лидеры ИТ-рынка. А прошедший год стал очевидным важнейшим рубежом в истории виртуализации, когда, если воспользоваться теорией маркетологии, произошел переход от "раннего рынка энтузиастов и последователей» к «массовому рынку прагматиков и консерваторов".
Идея виртуализации овладела массами; сейчас можно совершенно определенно сказать, что эта концепция превратилась в мэйнстрим современных корпоративных ИТ. Практически все мировые ведущие ИТ-поставщики говорят о своей приверженности идеям виртуализации, о разработке таких решений или об их поддержке в своих продуктах, как обычно, делая акцент на том, что именно виртуализаци поможет заказчикам решить все их ИТ-проблемы. Аналитики в один голос утверждают, что бум применения средств виртуализации уже начался, и взрывообразный рост этого сегмента ИТ мы сможем наблюдать в самом ближайшем будущем.
В этом потоке информации отследить логику развития событий не так-то просто. В условиях маркетинговой шумихи очень трудно понять, где речь идет о действительно чем-то новом, а где – о традиционной смене названий давно известных продуктов. Ведь сейчас слово "виртуализация" используется применительно практически ко всем ИТ – виртуальные машины, виртуальные хранилища данных, виртуальные сети, виртуальные ЦОД и т. д.
Короче говоря, сейчас самое время разобраться с тем, что же такое виртуализация, структурировать множество технологий и продуктов, включаемых сегодня в это обширное понятие, и на основе этого оценить множество "виртуализационных" предложений от расширяющегося круга поставщиков.
Виртуализация применительно к ИТ
Начнем с того, что термин “виртуализация” имеет довольно широкое толкование и в общем случае означает отделение логического процесса от физического способа его реализации. Отсюда понятно, что виртуализация — это одна из ключевых изначальных концептуальных идей ИТ. В упрощенном виде она подразумевает, что пользователь отделен от реальных вычислительных процессов и имеет с ними дело в удобном для себя виде, а не в том, в каком они происходят на самом деле.
Из этого определения следует очевидная вещь – все компьютерные технологии изначально относятся к категории виртуализационных. А раз так, получается, что использование термина «виртуализация» в ИТ вообще бессмысленно, это "масло масленое". На самом же деле это не совсем так, потому что применительно к ИТ виртуализация используется в более узком понимании. Вот, в частности, определение, которое дает русская «Википедия»:
"Виртуализация в вычислениях — процесс представления набора вычислительных ресурсов или их логического объединения, который дает какие-либо преимущества перед оригинальной конфигурацией".
Обратите внимание: виртуализация – это нечто новое, что дает преимущества перед традиционными технологиями. Из этого можно сделать важный и парадоксальный на первый взгляд философский вывод: любая технология относится к категории виртуализационных ровно до того момента, когда пока она не становится традиционной.
Теперь сформулируем более конкретное определение виртуализации:
"Виртуализация – это дополнительный уровень изоляции вычислительных процессов по сравнению с тем, что предоставляют сегодня операционные системы".
Операционные системы в такой формулировке появились, конечно, не случайно – это как раз ключевой компонент, отвечающий в ИТ за " отделение логического процесса от физического способа его реализации". Именно в этом определении при внимательном изучении можно увидеть проявление ключевого диалектического закона "единства и борьба противоположностей", который определяет важный внутренний механизм развития виртуализационных технологий и конкурентной борьбы за лидерство на этом рынке. К этому вопросу мы постараемся еще вернуться, а пока остановимся на варианте современной классификации виртуализационных задач, который еще год назад предложила 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, поскольку, на наш взгляд, он представляет собой комплексное решение, использующее разные типы виртуализации.
Типы виртуализационных технологий
Виртуализация серверных ОС | Виртуализация настольных ОС | Виртуализация приложений | Виртуализация представлений |
Ключевая идея | |||
---|---|---|---|
Консолидация нагрузок для более эффективного использования серверных ресурсов | Использование дополнительных изолированных операционных сред на стандартном ПК | Отделение приложений от настольных ОС, использование приложений по запросу | Разделение процессов исполнения приложения и визуализации пользовательского интерфейса, централизованная обработка и хранение данных, использование тонкого клиента |
Эффект применения | |||
Снижение операционных расходов (оборудование, площадь, электричество)
Увеличение доступности и полезного времени Простота аварийного восстановления Уменьшение перерывов в обслуживании Упрощение решения задач масштабирования и балансировки нагрузки |
Поддержка унаследованных приложений, несовместимых с новыми ОС
Поддержка приложений, не отвечающих корпоративным требованиям Сокращение конфликтов приложений с ОС Ускорение процесса замены ОС |
Снижение конфликтов приложений между собой
Сокращение затрат на проведение регрессивного тестирования приложений на совместимость Централизация управления процессом обновления приложений |
Сокращение конфликтов приложений с ОС
Упрощение обеспечения конфиденциальности данных и соответствия нормативным требованиями Снижение затрат на администрирование настольных систем Возможность использования унаследованного клиентского оборудования |