|ГЛАВНАЯ|   |О ЖУРНАЛЕ|    |ПОДПИСКА|   |ФОРМЫ СОТРУДНИЧЕСТВА|  |КОНТАКТЫ|   |СОДЕРЖАНИЕ НОМЕРА|  |НОВОСТИ|    |ВАКАНСИИ|     |АРХИВ|  |IT-СТРАНСТВИЯ|

1 (62) 2012

 

 

 
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Игорь КИРИЛЛОВ

 

 

О виртуализации сказано немало. Огромный поток информации
предоставляет широкое поле для спекуляций в рамках этого

модного нынче термина. Что же такое виртуализация на самом

деле и что, собственно, «виртуализируется»?
 

 

 

Лет шесть-семь назад компания Іntel любила показывать на различных конференциях интересный «фокус». Некий «условный специалист» сидит за несколькими мониторами и выполняет сразу несколько задач: программирует, что-то считает, запускает программный сервер и т.д. Возле каждого дисплея находится системный блок. Задачи все разные и работают под различными ОС. В процессе демонстрации специалист выборочно перезагружает ПК, поскольку они периодически «зависают». Через некоторое время демонстратор открывает крышки системных блоков, а под ними, оказывается, ничего нет! Все действия выполнялись на одном единственном ПК, который был спрятан под столом «специалиста». Именно так работает виртуализация на практике.


Пионеры компьютерной абстракции

Сегодня даже если вы не используете сознательно средства виртуализации, они все равно присутствуют на любом домашнем ПК, не говоря уже о серверах. В широком смысле под вирту-

 

 

ализацией подразумевают маскировку настоящих ресурсов (физических, реже программных, которые действительно выполняют поставленные задачи) и представление их в удобном и понятном для пользователя виде. Например, современный ПК — это сложнейший комплекс взаимосвязанных микроэлектронных компонентов. Обычный смартфон сегодня более технологичен, чем, ска¬жем, первый мейнфрейм. Тем не менее коммуникатором может легко пользоваться даже средний школьник. Это результат виртуализации, когда аппаратные ресурсы скрыты за программной прослойкой. Пользователь же, не имея понятия о том, как там все на самом деле работает, видит только удобный интерфейс и доступный набор команд или приложений (такой подход, строго говоря, называется «инкапсуляцией»). Но это, скажем так, виртуализация «бессознательная», воспринимаемая как данность. Мы же поговорим о вполне осознанном подходе.

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

При этом каждая виртуальная машина имеет свою собственную независимую операционную систему и набор приложений, на ней выполняемых. Каждой такой ВМ выделяется необходимый аппаратный ресурс (производительность процессора, оперативная память, с внешним миром и пр.). Но об этом чуть позже.

Отметим, что первые виртуальные машины появились еще в 60-х годах, то есть до появления микропроцессоров, и работали только на мейнфреймах IBM — компания была монополистом в мире виртуализации вплоть до 90-х годов (рис. 1).

 

 

Однако в 1992-м Intel выпустила первый микропроцессор (Pentium) с поддержкой виртуализации, затем ее примеру последовала AMD.

К концу 90-х появились и развитые программные платформы для массового рынка — Virtual PC (разработанная Connectix), ПО VMware, а позже Xen (открытый проект, начатый Кембриджским университетом в начале нового века). Вскоре, однако, Connectix была куплена Microsoft (которая се¬годня является одним из лидеров сегмента виртуализации), VMware перешла к EMC, а разработки на базе Xen стали использовать многие мировые компании (в том числе Citrix, Oracle и другие). Уже в начале 2000-х виртуализация стала доступна широкому кругу потребителей, перестав быть чем-то эксклюзивным и сверхдорогим.


Как работает виртуализация

Если произвести определенную редукцию, то окажется, что по сути виртуализации подлежат всего три типа аппаратных ресурсов: регистры процессора, порты ввода-вывода и оперативная память. Если немного детализировать, то ко второй группе можно отнести дисковую память, ЛВС, интерфейсы взаимодействия с периферийными устройствами (в т.ч. USB-порты). Часть каждого из этих ресурсов выделяется для работы виртуальных машин. При этом пользователь и даже операционная система воспринимают ВМ как физический компьютер (хотя и не всегда, см. врезку «Виды виртуализации») с определенными характеристиками — процессором, жестким диском, оперативной памятью, сетевыми интерфейсами и т.д. Между пользовательской ОС и оборудованием существует специальный
 

 

программный слой — гипервизор (монитор виртуальных машин), позволяющий «гостю» напрямую обращаться к аппаратным ресурсам сервера (рис. 2).

 

 

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

 

 

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

Что касается оперативной памяти, то первым простейшим решением, известным еще со времен 286-х процессоров, была «сегментированная модель» — разделение физической памяти на участки адресов, в каждом из которых запускался тот или иной процесс. Однако в современных компьютерах используется уже виртуальная память, без жесткой привязки к конкретным физическим ячейкам. В результате выполняемая программа видит некий абстрактный пул адресов памяти и не имеет представления о том, где реально эта память расположена. За обеспечение данного процесса отвечает специальный программный модуль, работающий в рамках операционной системы, который так и называется — менеджер виртуальной памяти.

Виртуализация дискового пространства развивается с конца 50-х годов и на сегодняшний день может быть реализована на трех уровнях: серверов, подсистем хранения и сети хранения данных. В первом случае речь идет о дисках, установленных в один сервер. Специальная программа формирует из всех доступных «винчестеров» общий пул и разделяет его на логические номера (LUN), которые распределяет между ВМ. Во втором случае в виде «общего диска» представляется уже внешняя СХД, ее ресурсы разделяются специальным ПО на виртуальные тома (Virtual Volume). Когда же речь идет о целой сети хранения данных (SAN), состоящей из нескольких СХД, то за «абстрактное» представление дисковых ресурсов отвечает уже специальный физический сервер.

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

 

 

В этом случае, естественно, обмен данными происходит локально, без использования физических сетевых каналов.

 

Виртуализация вычислительных систем имеет сегодня множество форм и областей применения. Технологии в этом направлении развиваются очень активно, становясь более удобными, эффективными и экономичными. Более того, в последние годы виртуализация шагнула за пределы конкретных устройств и локальных сетей, став основой глобальных «облачных» технологий.
 

 

 

 

 

Игорь КИРИЛЛОВ,

СиБ 

№ 1 (март) 2012