Самоучитель
системного администратора

8. Виртуализация

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

Экономические аспекты виртуализации

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

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

Эффективность управления комплексом виртуальных машин в наших условиях редко можно оценить в цифрах, поскольку штатных изменений среди ИТ-специалистов предприятия (например, сокращения числа системных администраторов) после внедрений решений по виртуализации не происходит, а расходы на электроснабжение серверных предприятия обычно не учитываются отдельной строкой.

В итоге внедрение виртуализации часто приводит только к дополнительным затратам на содержание ИТ-инфраструктуры.

Основные термины

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

Операционную систему, работающую под управлением гипервизора, принято называть гостевой операционной системой.

Жесткие диски гостевых операционных систем являются файлами на уровне гипервизора. Их принято называть виртуальными жесткими дисками. Соответственно сетевые адаптеры, память в гостевых системах называют виртуальными адаптерами, виртуальной памятью и т. д.

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

Как правило, разработчики гипервизоров подготавливают специальные пакеты обновления, оптимизирующие работу гостевых операционных систем. Например, в гостевые ОС добавляются сетевые адаптеры, работающие на скорости внутренней шины гипервизора. При этом появляется возможность обмениваться данными между гостевыми ОС через буфер памяти, подключать папки хоста в качестве сетевых папок в гостевые ОС и т. д. Такое ПО принято называть расширениями виртуальных машин (virtual machine additions). Если нет специальных требований, то для повышения производительности систем расширения должны быть установлены в гостевой ОС (обычно команды установки расширений присутствуют в меню окна виртуальной машины).

    Примечание

    Расширения для гипервизора Microsoft, предназначенные для установки в некоторых Linux-системах (они называются Linux Integration Services/Components for Hyper-V), следует дополнительно загрузить со страниц http://www.microsoft.com/download/en/details.aspx?id=26837 и http://www.microsoft.com/download/en/details.aspx?id=11674.

Захватом курсора мыши (клавиатуры) называют передачу контроля над соответствующими устройствами виртуальной машине. В этом случае, например, курсор мыши будет работать только в пределах окна виртуальной машины. Чтобы "передвинуть" курсор за пределы гостевой ОС, его необходимо освободить, нажав специальную клавишу. Обычно такой клавишей является правая клавиша <Crtl>.

VDI (Virtual Desktop Infrastructure, инфраструктура виртуальных рабочих столов) — так называют ПО, позволяющее управлять большим количеством виртуальных рабочих станций. Особенности данной технологии описаны далее в разд. "Виртуальные рабочие станции".

Разработчики виртуальных решений

Существует несколько технологий виртуализации, разработанных различными вендорами. Мы приведем только краткий список наиболее активно, на взгляд автора, используемых на практике решений по виртуализации. Желающие получить дополнительную информацию могут обратиться к свободной онлайн-энциклопедии "Википедия" (http://en.wikipedia.org/wiki/Comparison_of_platform_virtual_machines).

Лидером рынка виртуализации сегодня являются продукты компании VMware (www.vmware.com). Решения от VMware обеспечивают виртуализацию практически всей линейки операционных систем (Windows, Linux, Apple Macintosh и т. д.), ПО компании тесно интегрировано с аппаратными возможностями многих платформ, реализованы технологии отказоустойчивых решений и т. п. Линейка ПО представлена как свободно распространяемыми (гипервизор ESXi), так и коммерческими продуктами.

XEN (www.xensource.com, www.virtualiron.com,http://www.xen.org/) представляет собой гипервизор на основе открытого кода, ставший предшественником многих открытых решений.

На базе этого гипервизора компанией Citrix созданы серверы XenServer, которые также являются бесплатными решениями. Правда, ПО централизованного управления серверами XenServer является коммерческим продуктом.

Компанией Sun (ныне Oracle) выпущена виртуальная машина VirtualBox. Это решение бесплатно и может быть загружено с сайта Oracle (http://www. oracle.com/us/technologies/virtualization/index.html). У компании Oracle есть и решение по VDI — Oracle Virtual Desktop Infrastructure (VDI), причем в варианте до 10 виртуальных рабочих столов оно может бесплатно тестироваться в течение неограниченного времени.

В составе серверных операционных систем Windows 2008 присутствует гипервизор — HyperV, который может быть загружен с сайта Microsoft и в качестве отдельного продукта и может быть использован полностью бесплатно.

Продукты открытого кода в последнее время активно начинают использовать решение по виртуализации с названием KVM (например, этот гипервизор включен в состав Ubuntu, RedHat и т. д.). Гипервизор KVM реализует виртуализацию на Linux-системах и доступен как в составе соответствующих дистрибутивов, так и через пакеты установки.

Распределение ресурсов в *nix

В *nix-системах решения по распределению ресурсов между приложениями, по изоляции процессов давно используются в производственных системах. Сегодня одной из популярных операционных систем, предназначенных для применения в производственных условиях, является Oracle Solaris. Она может быть установлена на компьютеры х86 или RISC-архитектуры и включает в себя специальную технологию — создание зон, позволяющую тонко настраивать выделение ресурсов под различные задачи, обеспечивая полную изоляцию процессов.

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

Рис. 8.1.
Пример разбиения Solaris-сервера на зоны

Особенности выбора ПО гипервизора

Идеального решения по виртуализации на сегодня не существует. Выбор технологии будет зависеть от многих факторов. Во-первых, от поддержки оборудованием технологий виртуализации. Аппаратная виртуализация позволяет гостевой ОС работать с ресурсами "железа" напрямик, без эмуляции, причем объем данного функционала зависит от выбранного ПО гипервизора. Технологии аппаратной поддержки постоянно дорабатываются, поэтому необходимые требования следует уточнять по описаниям программ гипервизора. При этом некоторые гипервизоры требуют в качестве обязательного условия наличия аппаратной виртуализации (например, XenServer). Часть гипервизоров может быть установлена только на х64-платформы (XenServer, Hyper-V) и т. д.

Во-вторых, у многих гипервизоров существуют ограничения по типам гостевых ОС. Так, Hyper-V поддерживает весьма ограниченный список Linux-подобных ОС. И если вы хотите работать с виртуальными Linux, то лучше остановить свой выбор на XenServer, KVM или Oracle VM. А для виртуализации MacOS — установить сервер VMware.

В третьих, гипервизоры имеют ограничения по максимальному числу поддерживаемых виртуальных процессоров, по объему памяти, по числу одновременно запускаемых гостевых систем, типам устройств хранения и т. п. Хотя, если смотреть с практической точки зрения, разница в максимально поддерживаемом числе нод кластера в 16 или 32 единицы для большинства случаев значения не имеет.

Сегодня наиболее популярными гипервизорами являются решения от компании VMware (VMware vSphere, это коммерческие решения, на рис. 8.2 показан пример логической организации сети с использованием решений vSphere), Microsoft (бесплатный Hyper-V R2, прежде всего для гостевых операционных систем Windows), KVM (open-source-решение, включается в поставку современных Linux-дистрибутивов).

Рис. 8.2.
Вариант логической структуры решения на продуктах компании VMware

Если рассматривать решения виртуализации для рабочих станций, то автор предпочитает решения Oracle VirtualBox: данное ПО позволяет тестировать все основные ОС, не предъявляет особых требований к хостовому компьютеру и не создает на нем излишней нагрузки.

Гипервизоры бывают двух типов: первый устанавливается непосредственно на компьютер и не требует наличия операционной системы (ESX, XenServer и др.), второй — интегрируется в существующую ОС (Oracle VirtualBox, KVM, Hyper-V). На практике оба типа демонстрируют примерно одинаковые параметры, так что выбор ПО более зависит от предпочтений администратора.

Какое ПО можно использовать в виртуальной среде

Виртуальная машина, естественно, отличается от реальной системы. Поэтому возможны случаи, когда использовать виртуальную машину для запуска определенных приложений невозможно.

При возникновении проблем с использованием программного обеспечения в виртуальной среде можно порекомендовать обратиться к онлайновой документации по соответствующим продуктам. Что касается решений от Microsoft, то в документе

KB897614 отмечается, что с Microsoft Virtual Server несовместимы следующие продукты самого изготовителя: Microsoft Speech Server, Microsoft ISA Server 2000/2004, Microsoft SharePoint Portal Server, Microsoft Identity Lifecycle Manager 2007, Microsoft Identity Integration Server 2003, Microsoft Identity Integration Feature Pack. Часть продуктов (см. документ KB897613) поддерживается только после установки определенного пакета обновлений: Microsoft Certificate Services, Microsoft Exchange Server, Microsoft Systems Management Server и т. д.

Особенности сетевых подключений виртуальных машин

Хостовая машина имеет один или несколько сетевых интерфейсов, подключенных к реальной сети передачи данных. Число же сетевых интерфейсов, которые могут быть созданы для виртуальной машины, может быть произвольно: и больше, и меньше реальных сетевых адаптеров. При этом программное обеспечение гипервизоров позволяет настроить для виртуальных машин несколько сетей.

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

Если виртуальные машины должны работать с внешней сетью и наоборот, то для такого случая необходимо выбирать вариант сетевого моста. Сетевой мост предполагает, что пакеты, формируемые интерфейсом виртуальной машины, будут передаваться реальным физическим интерфейсом. Как будто все интерфейсы — физические и виртуальные — подключены в один коммутатор. Вы можете присвоить виртуальным интерфейсам любые сетевые настройки; взаимодействие систем будет происходить по стандартам IP-сетей.

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

Подключения можно комбинировать в зависимости от потребностей. Например, одним интерфейсом подключиться к реальной сети в режиме мост, а другой включить во внутреннюю сеть.

К одному физическому интерфейсу можно подключить любое количество виртуальных интерфейсов. Практическое ограничение связано только с параметрами сетевой активности виртуальных систем: суммарные потребности виртуальных интерфейсов не должны превышать возможностей реального сетевого адаптера.

Последние версии ПО виртуализации включают в себя и виртуальные коммутаторы, реализованные программным способом. Эти коммутаторы по своим возможностям идентичны "обычным" коммутаторам 2 и 3 уровней.

    Примечание

    Сегодня эти решения доступны уже не только для коммерческих решений (VMware), но и для ПО открытого кода. Например, виртуальный коммутатор может быть добавлен в Oracle VirtualBox, хотя пока данный компонент реализован только в Linux-хостовой системе (подробности установки виртуального коммутатора и его настроек доступны в онлайновой справке продукта).

Лицензирование программного обеспечения виртуальных машин

При лицензировании программного обеспечения, используемого на виртуальных машинах, возникает много сложностей, особенно с лицензиями от Microsoft, применение которых не очевидно и в обычных условиях. Эта книга не посвящена вопросам практики лицензирования ПО, поэтому конкретные разъяснения необходимо уточнять на сайте разработчика (например, http://www.microsoft.com/ licensing/highlights/virtualization.mspx).

Главное, что необходимо отметить — использование виртуальных сред не всегда требует приобретения дополнительных лицензий (см., например, документ Microsoft "Licensing Microsoft Server Products in Virtual Environments" (http://download.microsoft.com/download/F/C/A/FCAB58A9-CCAD-4E0A-A673-88A5EE74E2CC/Licensing Microsoft Server Products Virtual Environments.docx). Так, лицензия на Windows Server Enterprise Edition позволяет в один момент времени иметь один работающий физический сервер и 4 виртуальных. А лицензия на SQL Server (в варианте Server/CAL) Workgroup Edition, Standard Edition and Enterprise Edition разрешает запускать любое количество инстанций на сервере. Таких примеров можно привести много, лучше всего особенности лицензирования уточнять по документам изготовителя ПО.

    Примечание

    Обратите внимание, что формально миграция физического сервера в виртуальную среду (как описано ниже) не разрешена OEM-лицензией (если мигрируемый сервер или рабочая станция приобретены вместе с ПО — с OEM-лицензией).


Рейтинг@Mail.ru