В представляемой статье приведено описание различных типов виртуализации, как наиболее значимой характеристики средств виртуализации. Рассмотрен ряд технологий виртуализации, в частности OpenVZ, Parallels Virtuozzo Containers, Xen и KVM. А также, произведено сравнение данных технологий по ряду параметров.
Введение
То время, когда виртуализация являлась диковинной технологией прошло. Сейчас она уже превратилась в обыденный, широко используемый инструмент, применяемый в различных сценариях, для решения различных задач. Как и в большинстве случаев, рост спроса вызвал и рост предложений, как качественный, так и количественный. Появились новые решения, различающиеся по своим возможностям. В данной статье произведен обзор и сравнение наиболее популярных технологий виртуализации по ряду характеристик, приведены их сильные и слабые стороны.
Типы виртуализации
Основные различия между рассматриваемыми технологиями определяются типом виртуализации, к которой она относится. Поэтому, эта тема является очень значимой в рамках данной статьи. Рассмотрим основные типы виртуализации.
Виртуализация на уровне ядра операционной системы (ОС): все виртуальные машины используют общее модифицированное ядро сервера. При этом для пользователя каждая виртуальная машина выглядит как отдельный сервер. Поскольку используется общее ядро, ОС на виртуальных машинах могут использовать только это ядро.
Достоинства данного вида виртуализации высокая скорость работы виртуальных машин, малые издержки на процесс виртуализации, экономия ресурсов за счет загрузки одного, общего для всех ядра ОС.
Основным недостатком является невозможность запуска виртуальной машины с ОС отличной от базовой.
Аппаратная виртуализация: виртуализация с поддержкой специальной процессорной архитектуры. Обеспечивает производительность, сравнимую с производительностью реальной машины, что дает виртуализации возможность ее практического использования. Каждая виртуальная машина полностью изолирована от соседних, лимитируются практически все ресурсы.
Основным преимуществом является возможность виртуализации любой ОС. Также данная технология делает возможным виртуализацию 64-битных ОС на 32-битных.
Недостаток — необходимость аппаратной поддержки, в частности, процессор должен поддерживать либо технологию Intel VT, либо AMD-V.
Обзор технологий виртуализации
OpenVZ
Технология виртуализации на уровне ядра ОС, базирующаяся на ядре Linux. Состоит из модифицированного ядра и пользовательских утилит. OpenVZ является бесплатной открытой технологией, разрабатываемой сообществом. Распространяется на условиях лицензии GNU GPL v.2.
Каждая виртуальная машина имеет свои собственные файлы, процессы, пользователей, IP адрес и, благодаря виртуальному сетевому устройству, правила маршрутизации. Администратор сервера может дать доступ к реальным устройствам, таким как сетевые адаптеры, разделы дисков и т. д.
OpenVZ обладает гибкой системой управления ресурсами. Имеется набор из примерно 20 параметров, которые выбраны для того, чтобы покрыть все аспекты работы виртуальной машины так, чтобы никакая из них не могла злоупотребить каким-либо ресурсом, ограниченным для всего сервера, и таким образом помешать другим виртуальным машинам. Ресурсы, которые считаются и контролируются, — это, в основном, оперативная память и различные объекты в ядре, например, разделяемые сегменты памяти IPC, сетевые буферы и т. п. Возможно изменение лимитов на ресурсы во время работы виртуальных машин.
Виртуализация на уровне операционной системы в OpenVZ даёт лучшую производительность, масштабируемость, плотность размещения, динамическое управление ресурсами, а также лёгкость в администрировании. Накладные расходы на виртуализацию очень малы, и падение производительности составляет всего 1–3 %, по сравнению с обычными Linux-системами. OpenVZ позволяет производить “живую” миграцию виртуальных машин, то есть без остановки их работы.
К сожалению, данная платформа может устанавливаться и виртуализировать только ОС, основанные на Linux (Debian, Ubuntu и др.).
Parallels Virtuozzo Containers
Решение для виртуализации на уровне операционной системы, является проприетарной коммерческой технологией, разрабатываемой компанией Parallels. Рассматриваемая технология позволяет на одном физическом сервере запускать множество изолированных копий операционной системы. Существуют версии Parallels Virtuozzo Containers для работы в средах Linux и Windows. Версия для Linux базируется на проекте OpenVZ. Основным преимуществом Parallels Virtuozzo Containers по сравнению с OpenVZ является простота использования благодаря наличию удобных инструментов для управления и конфигурации виртуальных машин.
Xen
Бесплатная открытая технология аппаратной виртуализации, распространяемая на условиях лицензии GNU GPL. Xen начинался как исследовательский проект Кембриджского университета, в настоящее время разрабатывается компанией Citrix.
Каждая виртуальная машина является полностью изолированной, обладает собственной файловой системой, виртуальным сетевым адаптером. Хорошо поддерживаются различные аппаратные средства.
В Xen имеется система управления ресурсами, в частности процессорное время, оперативная память и т. д.
Xen поддерживает миграцию виртуальных машин по сети. Миграция может происходить с выключением гостевой системы, либо прямо в процессе работы, так называемая «живая» миграция без потери доступности. Необходимо, чтобы оба физическиx сервера Xen видели одно и то же хранилище, на котором находятся данные виртуальной машины. Это требуется потому, что при миграции виртуальной машины её файловая система не копируется, так как для этого необходимо слишком много времени даже в случае быстрой сети.
Отличительной особенностью данной технологии виртуализации является паравиртуализация. Паравиртуализация — адаптация ядра исполняемой ОС для работы совместно с Xen. Позволяет достичь очень высокой производительности за счёт отсутствия эмуляции, простоты интерфейсов и учёта существования гипервизора при выполнении системных вызовов в коде ядра. В большинстве случаев изменения при портировании ОС затрагивают только ядро ОС.
Xen позволяет создавать виртуальные машины с различными ОС, такими как Linux, FreeBSD, Windows и т. д.
KVM
Бесплатное открытое программное обеспечение для аппаратной виртуализации. Состоит из загружаемого модуля ядра, предоставляющего базовый сервис виртуализации и компонентов пользовательского режима.
Программное обеспечение KVM создано, разрабатывается и поддерживается фирмой Qumranet, которая впоследствии была куплена RedHat.
Сам по себе KVM не выполняет эмуляции. Вместо этого программа, работающая в пространстве пользователя, использует интерфейс /dev/kvm для настройки адресного пространства гостя виртуальной машины, через него же эмулирует устройства ввода-вывода и видеоадаптер.
KVM позволяет виртуальным машинам использовать немодифицированные образы дисков QEMU, VMware и других, содержащих операционные системы. Каждая виртуальная машина имеет своё собственное виртуальное аппаратное обеспечение: сетевые карты, диск, видеокарту и т. д.
KVM позволяет устанавливать лимиты на ресурсы для виртуальных машин.
Как и в других технологиях, в KVM имеется возможность “живой” миграции.
KVM требует наличия x86-совместимого процессора с поддержкой одной из технологий аппаратной виртуализации — Intel VT либо AMD SVM. На данный момент KVM в состоянии запускать в качестве гостевых ОС GNU/Linux (32-битные и 64-битные), Windows (32-битные и 64-битные) и другие системы.
Таблица сравнения виртуальных машин.
Название |
Создатель |
ОС хост-машины |
Поддерживаемые гостевые ОС |
Принцип действия |
Лицензия |
OpenVZ |
Проект сообщества, Parallels, Inc. |
Linux |
Различные дистрибутивы Linux |
Виртуализация на уровне ОС |
GPL |
Parallels Virtuozzo Containers |
Parallels, Inc. |
Windows, Linux, Mac OS X (Intel version) |
Windows, Linux, FreeBSD, OS/2, eComStation, MS-DOS, Solaris |
Виртуализация на уровне ОС |
Проприетарная |
Xen |
Кембриджский университет, Intel, AMD |
NetBSD, Linux |
Linux, NetBSD, FreeBSD, OpenBSD, Windows XP & 2003 Server (требует версию не ниже 3.0 и процессор, поддерживающий технологию Vanderpool или Pacifica) |
Аппаратная виртуализация |
GPL |
KVM |
Red Hat |
Linux |
Linux, HURD, Windows, xBSD, Darwin, QNX, MINIX, Haiku, Amiga Research OS, ReactOS, Plan 9, MS DOS, Free DOS, Solaris |
Аппаратная виртуализация |
GPL2 |
Выводы.
За последнее десятилетие технологии виртуализации сделали значительный рывок вперед, благодаря чему стали массово использоваться при решении различных задач. Необходимо отметить следующее:
1. Потери производительности на виртуализацию незначительны.
2. Большинство технологий работают на операционных системах семейства Linux.
3. Большинство технологий доступны бесплатно и являются открытыми проектами.
Все это делает данные технологии легкодоступными для изучения и использования. Средства виртуализации получили широкое распространение в сфере предоставления хостинга, тестирования ПО, внутрикорпоративных сервисов.
Литература:
1. M. Tim Jones Cloud Computing with Linux — Mercury Learning & Information, 2012
2. Matthew Portnoy. Virtualization Essentials — Sybex, 2012
3. Медведев Ю. В. Что такое виртуализация≤ URL: http://pcmag.ru/reviews/detail.php≤ID=9291
4. Леонид Черняк. Виртуализация серверов стандартной архитектуры: //Открытые системы. 2008. № 7. URL: http://www.osp.ru/os/2008/03/5015349/