Виртуализация за последние несколько лет стала играть важную роль во всех сферах ИТ-индустрии, но особенно бурно развивается то ее направление, которое связано с виртуализацией серверных ресурсов. О подходе к серверной виртуализации, предлагаемом Sun Microsystems, научному редактору PC Week/RE Льву Левину рассказывают директор по корпоративным решениям московского офиса корпорации Виктор Буряков и представитель одного из ведущих российских партнеров Sun, заместитель начальника отдела проектирования вычислительных комплексов компании “Инфосистемы Джет” Валерий Безруков.
PC Week: Какие плюсы дает применение виртуализации для серверной инфаструктуры?
Виктор Буряков: Согласно статистике, средний уровень загрузки процессорных мощностей Windows-серверов не превышает 10%, а Unix-систем —20%. Низкая эффективность использования серверов объясняется широко применяемым с начала 90-х годов подходом “одно приложение — один сервер”, т. е. каждый раз для развертывания нового приложения компания приобретает новый сервер. Естественным решением проблемы является переход на схему консолидации “несколько приложений — один сервер”. Но если просто запустить на сервере несколько приложений вместо одного, то они будут постоянно конфликтовать между собой из-за ресурсов машины (процессоров, оперативной памяти, подсистемы ввода-вывода и внутренних дисков сервера), а значит, их производительность упадет.
Кроме того, возникают и проблемы с безопасностью информации, поскольку одно приложение может свободно обратиться к области оперативной памяти и дискового пространства, где размещены данные другого. Наконец, на большинстве крупных предприятий используется несколько серверных операционных систем (обычно Windows, Linux и коммерческая Unix).
Виртуализация ресурсов физического сервера позволяет гибко распределять их между приложениями, причем каждое из которых “видит” только выделенные ему ресурсы и “считает”, что ему выделен отдельный сервер. Кроме того, решения виртуализации дают возможность запускать в разделах разные ОС (например, Windows и Linux) с помощью эмуляции их системных вызовов к аппаратным ресурсам сервера.
Валерий Безруков: При этом необходимо помнить, что виртуализация — всего лишь технология, а не бизнес-процесс. Ее внедрение само по себе не гарантирует автоматического улучшения эффективности использования ресурсов ИТ-инфраструктуры компании и, как следствие, улучшения работы бизнеса. Поэтому успешное внедрение виртуализации требует детальной оценки существующей инфраструктуры серверов и приложений. Только на основе этой информации можно выбрать оптимальный вариант виртуализации.
PC Week: Какие варианты виртуализации предлагает в своих решениях Sun?
Виктор Буряков: Когда в середине прошлого десятилетия на рынок вышел 64-процессорный Unix-сервер Sun Enterprise 10000, то в нем впервые для открытых систем была реализована концепция аппаратных разделов (динамических доменов), которая до того применялась только в мэйнфреймах. Этот сервер, оборудованный внутренним высокоскоростным коммутатором, поддерживал до 16 системных плат, из которых и строились динамические домены. У каждого из них есть свои копии Solaris (причем могут использоваться разные версии этой ОС), процессоры, оперативная память, устройства ввода-вывода, сетевые карты и загрузочный диск. Фактически любой домен работает как независимый физический компьютер (виртуализация в динамических доменах осуществляется на уровне системных плат), и даже аппаратный сбой одного домена — такой, скажем, как выход из строя плат ввода-вывода, — не может повлиять на работу приложений других доменов.
В начале 2000-х годов Sun реализовала поддержку динамических доменов и в своих Unix-серверах среднего класса и продолжает постоянно совершенствовать эту технологию. Сейчас флагманская модель SPARC Enterprise M9000 поддерживает до 24 динамических доменов, причем их можно создавать внутри одной системной платы на уровне отдельных процессоров, хотя при этом домены не будут электрически изолированы между собой.
Валерий Безруков: Добавлю, что хотя такой вариант виртуализации и не обеспечивает полного абстрагирования приложений от аппаратуры, в связи с чем его нельзя рассматривать как полноценную виртуализацию, каждое приложение тем не менее “видит” свой домен как выделенный ему отдельный компьютер. И в случае необходимости (допустим, при наличии признаков сбоя в системной плате, на которой организован домен) можно перемещать домен и его приложение на другую плату. Это достаточно сложная процедура — сначала нужно выделить домену еще одну системную плату, а затем отключить его старую плату.
PC Week: Но механизм “динамических доменов” требует, чтобы в сервере было минимум две системные платы…
Виктор Буряков: Да, в серверах начального уровня с одним — четырьмя процессорами, в частности в младших моделях Sun Fire на базе процессоров x86, у которых есть только одна системная плата, данную технологию применить нельзя. Для этих машин самым популярным вариантом виртуализации остается применение виртуальных машин (ВМ), которые запускаются на сервере под его основной (хостовой) операционной системой, но сами используют “гостевые” ОС.
Наиболее известным решением такого типа являются продукты ESX Server компании VMware для серверов на базе процессоров x86. По реселлерскому соглашению Sun поставляет их вместе со своими серверами Sun Fire X64. Хотя виртуализация на базе виртуальных машин дает больше гибкости в распределении физических ресурсов, чем динамические домены (ВМ может состоять всего лишь из одного физического процессора), и позволяет запускать на одном сервере разные ОС, она сравнительно редко используется при развертывании критически важных приложений. Объясняется это тем, что виртуализация не обеспечивает электрическую изоляцию между ВМ, а при сбое хостовой ОС будут перезагружены все виртуальные машины и их приложения. В то же время виртуализация на базе VMware очень удобна для миграции на новые серверы устаревших Windows-приложений.
Развитием технологии ВМ является предложенная Sun “паравиртуализация”, когда используются “гостевые” ОС, для которых не нужно эмулировать обращение к аппаратным ресурсам сервера, за счет чего уменьшается нагрузка на сервер. Пример паравиртуализации — логические домены LDom, применяемые в серверах Sun Fire T на базе многоядерных и многопоточных процессоров UltraSPARC T2 и T2 Plus, работающих под управлением зашитого в микрокод гипервизора. Логические домены помимо Solaris поддерживают Linux и FreeBSD Unix. Их можно независимо друг от друга запускать, останавливать, перегружать, а если они работают под управлением Solaris, то в онлайновом режиме можно перераспределять между ними виртуальные процессоры.
Следующий тип виртуализации серверов — это виртуализация на уровне ОС с помощью механизма изолированных контейнеров, который Sun реализовала в десятой версии Solaris. При такой виртуализации каждому из приложений выделяется отдельный контейнер и на сервере работает только одна копия ОС, благодаря чему можно обойтись без эмуляции оборудования. К тому же при этом практически не создается дополнительная нагрузка на ресурсы сервера (правда, один контейнер выделяется под глобальную зону для операций администрирования, установки обновлений и управления ресурсами других контейнеров), а также значительно упрощается обновление ОС по сравнению с другими вариантами виртуализации. Хотя сбой одного из приложений не приводит к нарушению работы остальных, однако при сбое ОС сервера будет нарушена работа всех контейнеров и их приложений. Для дополнительной изоляции между контейнерами и приложениями используется расширение Solaris Trusted Extension. Контейнеры имеют доступ ко всем ресурсам системы, и если нагрузка на какое-то приложение возрастет, то его контейнер сразу же получает дополнительную процессорную мощность.
Валерий Безруков: Если сравнить три варианта виртуализации, которые используются в серверах Sun, то видно, что наибольшую надежность и безопасность работы приложений в консолидированной среде обеспечивают динамические домены, а гибкость распределения ресурсов между приложениями — контейнеры Solaris. Выбор конкретного варианта виртуализации зависит от того, насколько эти параметры важны для конкретного заказчика. Так, на крупном предприятии для развертывания модулей ERP-системы SAP на серверах SPARC Enterprise корпоративного класса, безусловно, целесообразнее использовать динамические домены; для хостинга на установленных у интернет-провайдера серверах Sun с процессорами UltraSPARC T2 и T2 Plus таких приложений, как Web-сайты или электронная почта, больше подойдут LDom или контейнеры Solaris, а для консолидации Windows-приложений лучше прибегнуть к виртуализации на основе виртуальных машин VMware на серверах стандартной архитектуры Sun Fire X64.
PC Week: Как российские клиенты Sun используют серверную виртуализацию?
Валерий Безруков: Ряд крупных заказчиков компании “Инфосистемы Джет” в качестве основы своей ИТ-инфраструктуры использовали многопроцессорные Unix-серверы Sun предыдущего поколения на базе UltraSparc III/IV. По мере устаревания этих машин резко увеличиваются их эксплуатационные расходы, что в первую очередь объясняется необходимостью продлевать контракт на сервисное обслуживание после окончания периода действия стандартной гарантии, поэтому их владельцам часто выгоднее приобрести новый сервер.
Некоторые наши заказчики установили новые Sun SPARC Enterprise T5xx0 с многоядерными процессорами Sun UltraSPARC T2 и T2 Plus и с помощью виртуализации смогли консолидировать на них несколько приложений, раньше работавших на отдельных серверах. Эти приложения запускаются в контейнерах Solaris 10, хотя для виртуализации тех или иных приложений иногда применяется механизм LDOM.
В результате несколько старых серверов старшего класса, каждый из которых занимал отдельную стойку, заменили на один стоечный сервер Sun SPARC Enterprise T5xx0 высотой не более 4U. Это не только упростило обслуживание серверной инфраструктуры и сэкономило затраты на техническую поддержку, но и позволило освободить место в ЦОДе и значительно сократить нагрузку на его подсистему энергообеспечения (с нескольких киловатт до приблизительно одного киловатта). Наши заказчики, консолидировав приложения с применением технологий виртуализации Sun, смогли добиться значительного улучшения коэффициента загруженности серверных ресурсов: если прежде он не превышал 20—30% (ранее выбор конфигурации сервера производился в расчете на пиковые нагрузки), то теперь вырос до 70—80%, поскольку запас по мощности доступен всем приложениям, консолидированным на сервере.
Хотелось бы подчеркнуть, что некоторые чувствительные к задержкам приложения (например, некоторые модули SAP R/3 или пакеты Business Intelligence) плохо распараллеливаются, поэтому их не имеет смысла переносить в многопоточную среду. В подобных случаях мы переносим такие приложения на серверы SPARC Enterprise с процессорами SPARC64 либо на серверы Sun Fire X64 с процессорами Xeon или Opteron, работающие под управлением варианта Solaris 10 для платформы x86.
Для того чтобы наши заказчики смогли свести к минимуму риски при внедрении виртуализации, компания “Инфосистемы Джет” предлагает им бесплатные услуги по обследованию их серверной инфраструктуры, подготовке рекомендаций относительно применения виртуализации в конкретной ситуации и по оценке эффекта от предлагаемого варианта виртуализации.
PC Week: Спасибо за беседу.