Выбор типа виртуализации

Введение

Зададим вам вопрос на миллион долларов: что означает термин «виртуализация» в современном мире IT-технологий? Само это понятие уже не ново: виртуализация вычислительных сред существовала с момента появления первых мейнфреймов. Однако в последнее время термин «виртуализация» стал настолько повсеместен, что им называют любой сложный процесс, который тем или иным образом выводится за рамки аппаратной среды. Из-за своей многозначности виртуализация может применяться практически во всех компонентах IT-инфраструктуры. К примеру, эмуляторы мобильных устройств являются формой виртуализации, поскольку аппаратная платформа, необходимая для работы мобильной операционной системы, была эмулирована, что устранило привязку ОС к оборудованию, для которого она была написана. Однако это всего лишь один пример отдельно взятого вида виртуализации. Существует же множество определений термина «виртуализация», циркулирующих в нашем лексиконе, и все они (по крайней мере, большая их часть) являются верными, что может вызывать абсолютную путаницу.

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

Виртуализация операционной системы

Самая распространенная в наши дни форма виртуализации, виртуальные операционные системы (или виртуальные машины), быстро становится ключевым компонентом IT-инфраструктуры. В сущности, эта та виртуализация, которая лучше всего знакома конечным пользователям. Виртуальные машины представляют собой, как правило, совмещение стандартных операционных систем, таких как Windows Vista или RedHat Enterprise Linux, работающих одновременно на одном аппаратном оборудовании. Диспетчеры виртуальных машин (VMM) управляют отдельно каждой машиной. На ОС никак не отражается, что 1) они виртуальны и 2) что другие виртуальные ОС могут работать или работают одновременно с ними. Лидерами в области устранения физических связей между операционными системами и родным оборудованием, а также переноса моделей их работы в ЦОД являются такие компании как Microsoft, VMware, Intel и AMD. Консолидация ЦОДов привносит плюсы виртуальных машин на рынок IT, позволяя организациям сокращать количество физических машин без изменения количества используемых приложений. Это существенно понижает их расходы на оборудование и его размещение, электроэнергию, кабельные сети и т.д.

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

Виртуализация серверов приложений началась с появления первых балансировщиков нагрузки, чем объясняется частое использование понятия «виртуализация приложений» в качестве синонима интеллектуальным балансировщикам нагрузки. Суть виртуализации сервера приложений лучше всего просматривается на балансировщике нагрузки для обратного прокси: устройстве или процессе, который предоставляет прозрачный доступ к множеству различных сервисов приложений. В обычных условиях обратный прокси выполняет роль виртуального интерфейса, доступного конечному пользователю лишь с «внешней» стороны. С «внутренней» обратный прокси выполняет балансировку нагрузки различных серверов и приложений, например web-сервера. Виртуальный интерфейс – его часто называют виртуальный IP или VIP – работает как настоящий web-сервер, обеспечивая необходимые двусторонние соединения к web-приложениям. Это позволяет балансировщику нагрузки одновременно управлять несколькими web-серверами или приложениями как единой системой, обеспечивая более безопасную и быстродействующую схему работы, чем та, при которой пользователи имеют прямой доступ к индивидуальным web-серверам. Такой вид виртуализации называется «один ко многим»: для пользователей доступен один сервер, в котором за обратным прокси скрывается функционал нескольких серверов. Виртуализация сервера приложений может применяться ко всем типам приложений и архитектур: от простых клиентских приложений и до распределения нагрузки между несколькими платформами web-серверов, а также в ЦОДах для связи виртуальных приложений с серверами баз данных.

Виртуализация приложений

Хоть понятия «виртуализация приложений» и «виртуализация сервера приложений» и звучат похоже, их суть в корне различна. То, что мы подразумеваем под виртуализацией приложений, ранее называлось «тонкие клиенты». Однако технология осталась той же, изменили лишь сам термин для удобства использования в сфере IT. Отличным примером виртуализации приложений является Softgrid компании Microsoft. Вы можете работать с Microsoft Word 2007 на вашем локальном компьютере, но данные, персональная информация и запущенное состояние будут храниться и управляться с помощью Softgrid. Для работы программы необходимы CPU и RAM локального компьютера, но на самой машине никакое оборудование не устанавливается. Среди других типов виртуализации приложений можно назвать Microsoft Terminal Services и приложения, основанные на доступе через браузер. Работа таких решений состоит из виртуального приложения, запущенного на локальном компьютере, и удаленной управляющей программы.

Виртуализация управления

Возможно, вы уже применяете виртуализацию управления в вашей IT-организации, но, скорее всего, вы не называете это понятие таким термином. Если вы используете разные пароли для административных аккаунтов web- и mail-серверов, и администраторы почтовых систем не знают пароли администраторов web-серверов (и наоборот), то это значит, что у вас установлена виртуализация управления в ее чистом виде. В качестве примера можно также привести сегментирование административных ролей на одной платформе или блоке, при котором сегментированное администрирование становится «виртуальным». Пользовательские и групповые политики в Microsoft Windows XP, 2003 или Vista являются также примером виртуализации административных прав: рядовой пользователь может быть помещен в группу резервного копирования 2003 Active Directory server, а не в группу «администраторы». У него есть права на чтение всех файлов, которые необходимо резервировать, но нет прав на добавление новых файлов или установку программ. Хотя он подключается к тому же серверу, что и администратор, его пользовательские права несопоставимы с правами администратора. Виртуализация управления также является ключевым аспектом общего управления ЦОДом. Важно, чтобы сетевые администраторы имели доступ ко всему оборудованию сети, такому как центральные маршрутизаторы и коммутаторы, но не имели административных прав на доступ к серверам.

Виртуализация сети

Виртуализация сети может быть самым неоднозначным видом виртуализации. Если говорить кратко, рассмотрим управление и сегментацию виртуального IP. Простым примером виртуализации IP является виртуальная локальная сеть: один Ethernet-порт может поддерживать множество виртуальных соединений с разных IP-адресов и сетей, однако они виртуально сегментированы при помощи VLAN-тегов. Виртуальные IP-соединения, осуществляемые через этот порт, независимы и не ощущают существование друг друга, но свитч работает со всеми соединениями и обрабатывает каждое по отдельности. Другой пример – виртуальные таблицы маршрутизации. Обычно таблица маршрутизации и IP-порт работают по схеме «один к одному», даже несмотря на тот факт, что этот порт может выполнять роль ведущего узла для нескольких виртуальных интерфейсов (таких как VLAN или виртуальные сетевые адаптеры “eth0:1”, поддерживаемые Linux). В одной таблице маршрутизации будет содержаться множество маршрутов для каждого виртуального соединения, но все они будут сведены воедино. Виртуальные таблицы маршрутизации меняют эту схему на «один ко многим», при которой любой физический интерфейс может обеспечивать множество таблиц маршрутизации с множеством записей каждая. Это дает интерфейсу возможность загружать (и разрывать) маршрутные сервисы для одной сети, не прерывая другие сервисы и маршрутные таблицы на этом же устройстве.

Виртуализация аппаратных средств

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

Другой пример аппаратной виртуализации – так называемое «нарезание», при котором отдельные части системы выделяются в «особую группу». Сюда относится, например, выделение 25% ресурса центрального процессора на групповое шифрование. Если нет такого процесса, которому необходим ЦП для блочного шифрования, то 25% его ресурса будут просто не использоваться. Если же количество процессов, одновременно нуждающихся в проведении вычислительных операций, слишком велико, и 25% ресурса ЦП им не хватает, то они будут обрабатываться в порядке очередности, поскольку выделение большего ресурса ЦП не допускается. Такой вид аппаратной виртуализации иногда называют «предварительное распределение».

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

Виртуализация систем хранения

Следующий вид проверенной временем технологии, получившей название «виртуализация» - это виртуализация систем хранения, которую можно разделить на два общих класса: виртуализация блоков и виртуализация файлов. Блочная виртуализация лучше всего прослеживается на примере архитектур типа «сервер-хранилище данных» (SAN) или сетевых устройств хранения данных (NAS), т.е. сетях распределенного хранения, в реальности представляющих собой отдельные устройства. Устройства типа SAN сами обычно используют технологию виртуализации хранения RAID. Интерфейс iSCSI также является распространенным видом блочной виртуализации, который позволяет операционной системе или приложению распределить виртуальное блочное устройство (например, съемный накопитель) на локальный сетевой адаптер (программный или аппаратный), а не на физический дисковый контроллер. Сетевой адаптер iSCSI переводит блочные запросы приложений в распознаваемые SAN сетевые пакеты и обратно, что представляет собой, в сущности, виртуальный жесткий диск.

Виртуализация файлов подводит к более используемым структурным уровням: файлам и каталогам. В основном решения по виртуализации файлов устанавливаются при системах хранения, где они ведут запись того, на каких накопителях находятся какие файлы и каталоги, обеспечивая общую схему расположения файлов. Когда пользователь делает запрос на чтение файла, он может полагать, что данный файл статично находится на его личном удаленном диске, P:\My Files\budget.xls; однако решение по файловой виртуализации «знает», что этот файл на самом деле хранится на сервере SMB в удаленном ЦОДе по адресу //10.0.16.125/finance/ivanov/budget-document/budget.xls. Виртуализация файла отделяет статичный указатель виртуального нахождения файла (в данном случае на диске Р:\) от его физического местоположения, обеспечивая динамичность вычислительной сети. Если необходимо изменить IP-адрес сервера SMB или перенаправить соединение в другой ЦОД, то потребуется обновить лишь адресную карту средства виртуализации и не придется перенастраивать каждого пользователя, обращающегося к диску Р:\.

Виртуализация сервисов

Виртуализация сервисов представляет собой обобщение всех вышеуказанных определений в единое и универсальное понятие. Она объединяет компоненты, используемые при передаче приложения по сети, и запускает работу всех частей приложения вне зависимости от того, где они располагаются физически. Поэтому виртуализация сервисов применяется в основном для обеспечения доступности приложений. К примеру, web-приложение обычно состоит из множества частей: языка HTML; сервера приложений, обрабатывающего вводимые пользователем данные; средств SOA, определяющих доступность сервисов и данных для каждого компонента; базы данных для пользователей, приложений и данных SOA; сети, передающей компоненты приложения; и сети хранения кода и данных приложения. Виртуализация сервисов позволяет каждой из этих частей работать независимо и «собирает» их при необходимости для нормального функционирования всего приложения. Если присмотреться к отдельным составляющим приложения более внимательно, то видно, что нагрузка web-сервера распределяется на 15 виртуальных машин, запросы SOA проходят через любой из XML-шлюзов сети, а сервера баз данных могут находиться в одном из пяти мировых дата-центров. Виртуализация сервисов объединяет эти разрозненные куски и представляет их пользователю как единое и неделимое приложение.

Заключение

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