Зачем виртуализация в центрах обработки данных (ЦОД)?

7 сентябрь, 2008 - 19:58Игорь Шаститко

Я регулярно отслеживаю через статистику Microsoft adCenter, какие страницы наиболее популярны, что ищут и что пишут в комментариях посетители этого моего блога (и личного, впрочем, тоже). Кстати, в связи с особенной популярностью запросов типа "схема внедрения iSCSI", "настройка iSCSI", "iSCSI для Windows Server 2008" (все это упоминается в статье о Hyper-V Quick Migration) - планирую написать пару постов о том, как же заставить работать iSCSI на Windows Server 2008. :)

Но сейчас я пишу по другому поводу - в не менее популярном посте о виртуализации Microsoft своих сайтов MSDN и Technet появился очень интересный коммент:

Игорь, а можете пояснить зачем нужна виртуализация в для крупных корпоративных ЦОДов (не для Web Hostin'a а именно для нужд крупной компании), если стоимость серверов почти линейна вычислительной мощности и они наличествуют от самых младших до самых больших? не проще ли и не надежнее ли иметь сервера удовлетворяющие по вычислительной мощности своей задаче?

На него я решил ответить коротким постом - поскольку, я так полагаю, не только один читатель заинтересуется таким вопросом. Итак, зачем нужна виртуализация крупных корпоративных ЦОДов?

Предлагаю сначала следует посмотреть на проблемы крупных ЦОД, и не только с точки зрения производительности, вернее, даже - совсем не с нее. Главными проблемами современных ЦОД считаются как раз обратные проблемы:
Во-первых, недостаточная востребованность мощностей серверного "железа" программными продуктами и, следовательно, возврат инвестиций в сервера (ROI),
Во-вторых, нехватка площадей серверных залов, места в стойках, кабельных каналов, высокие требования к энергопотреблению при нехватки мощностей линий,
В-третьих, низкие сроки внедрения и модернизации серверных мощностей и связанных с ними сервисов, сложности резервного копирования и восстановления на "зоопарке" железа и т.п.,
и, наконец, в-третьих, неэффективный анализ нагрузки (только на начальном этапе, при закупке) и сама парадигма "сервера", как "сервиса".

Как раз эти проблемы и предлагается решить в процессе внедрения виртуализации. Бесплатный компонент виртуализации в Windows Server 2008 - Hyper-V - позволяет весьма эффективно решить вопрос консолидации (объединения) нескольких сервисов под одной "железной" крышей физического сервера в виде изолированных друг от друга экземпляров виртуалиных машин. Как показывает статистика, в среднем процессорные ресурсы ЦОД утилизируются примерно на 10%. При консолидации сервисов в виде нескольких виртуальных серверов на одном физическом, кроме повышения эффективности использования процессорных ресурсов и памяти и повышения ROI на каждый сокет (что явно показал пример с виртуализацией сайтов MSDN/TechNet), снижается также и потребность в дополнительных физических серверах, что, следовательно, экономит место в шкафах (или целые шкафы, если ЦОД действительно большой) и приводит к экономии электроэнергии, что для ЦОД, которые, кстати, потребляют целых 5% электроэнергии в мире - весьма существенно.

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

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

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

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

Такие механизмы, позволяющие реализовать ЦОД как представление сервисов, работа которых гарантируется неким динамическим набором виртуальных машин, представлены в продуктах Microsoft System Center - Virtual Machine Manager 2008 и Operations Manager 2007.

Собственно, вот чем может быть полезен Hyper-V и SC VMM/OM для корпоративных ЦОД - консолидация, эффективная утилизация, динамическое управление физическими ресурсами серверов.

И в заключение хотелось бы привести для всех, кто интересуется тематикой виртуализации, пару линков - собственно, сайт, посвященный технологиям виртуализации Microsoft и документы из набора Infrastructure Planning and Design (IPD) - Selecting the Right Virtualization Technology и Windows Server Virtualization - которые помогут в вопросах выбора и внедрения технологий виртуализации (и не только, если говорить об IPD в целом).

Виртуализируемся! :)