Гипервизор – что это? Как работает виртуализация

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

Системы виртуализации и гипервизор

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

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

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

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

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

Схема работы виртуальной машины (VM) Схема работы виртуальной машины

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

Гипервизоры принято делить на два типа. Но есть еще и так называемый гибридный гипервизор, сочетающий в себе свойства обоих типов.

Одно из важнейших требований к гипервизору – безопасность

В чем особенности работы гипервизоров 1 типа?

Гипервизор первого типа называют еще микроядром, тонким гипервизором, автономным гипервизором, исполняемым на «голом железе». Гипервизор первого типа проще всего воспринимать как специфическую компактную операционную систему, которая устанавливается прямо на «железо» (bare-metal server) и имеет основные признаки ОС:

  • вместо неупорядоченного набора аппаратного обеспечения предоставляет абстрактный набор ресурсов для прикладных программ (т.н. «взгляд сверху»);
  • управляет набором ресурсов – распределяет процессорное время, память, устройства ввода-вывода между программами, которые претендуют на использование ресурсов компьютера (т.н. «взгляд снизу»).

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

Гипервизор 1 типа Принцип работы гипервизора 1 типа

Супервизор – центральный управляющий модуль, ядро операционной системы. Может состоять из нескольких частей: супервизора программ, диспетчера задач, супервизора ввода-вывода и других.

Большинство современных процессоров Intel и AMD для десктопов и серверов на аппаратном уровне поддерживает технологию виртуализации и разделение работы ОС на два уровня привилегий: режим ядра (привилегированный) и пользовательский режим. При этом полномочия прикладной программы по управлению ресурсами компьютера существенно урезаны.

У ПО гипервизора первого типа есть очень важная особенность – размер его кода на два порядка (т.е. в сотни раз) меньше, чем у большинства современных операционных систем. Это обеспечивает настолько же меньшее количество возможных ошибок, приводящих к зависанию всей системы. Сбой в работе ОС на одной из виртуальных машин пользователя не должен повлиять на работу всех соседних машин на том же физическом оборудовании.

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

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

Системные вызовы также перехватываются и выполняются внутри гипервизора, но со стороны каждой гостевой ОС все выглядит так, как должно быть при обычном выполнении инструкций в ее режиме ядра. Иными словами, гипервизор создает «иллюзию» для гостевой операционной системы, что ее код выполняется хостом на уровне железа, в привилегированном режиме, хотя де-факто она функционирует в режиме пользователя. Если произойдет крах одной из гостевых систем, работа остальных будет продолжаться.

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

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

Типы гипервизоров

К первому типу гипервизоров можно отнести Xen, VMware ESXi, Hyper-V и ряд других.

Xen (Xenserver, Citrix Hypervisor)

Тонкий гипервизор Xen был разработан в рамках исследовательского проекта лаборатории Кембриджского университета и в 2003 году компанией XenSource выпущен первый публичный релиз. С 2007 года XenSource поглощена Citrix, в результате чего часть продуктов получила новые названия. Xen представляет собой кроссплатформенный гипервизор, поддерживающий аппаратную виртуализацию и паравиртуализацию. Содержит минимальный объем кода, поскольку большая часть компонентов вынесена за пределы гипервизора. Xen – гипервизор с полностью открытым кодом, лицензии GNU GPL 2, что дает неограниченные возможности модифицировать продукт. За счет поддержки паравиртуализации и аппаратной виртуализации Xen относят также к гибридному типу гипервизоров.

VMWARE ESXI

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

HYPER-V

Системное решение Microsoft для аппаратной виртуализации, предназначенное для x64-систем. Существует в двух вариантах – как роль в серверных ОС семейства Windows (Windows Server 2008, Windows Server 2012 и др., а также в x64-битной Pro- и Enterprise-версии систем Windows 8, Windows 8.1, Windows 10) и в виде отдельного продукта Microsoft Hyper-V Server. Многие из тех, кто привык работать с Microsoft, считают Hyper-V самым удобным и юзабильным решением, если речь заходит о виртуализации. К слову, облако Azure полностью построено на нативных продуктах корпорации MS.

Гипервизор второго типа работает как один из процессов, выполняемых основной ОС

Как работают гипервизоры 2 типа?

Гипервизор второго типа называется также хостовым (hosted). Он представляет собой дополнительный программный слой, расположенный поверх основной операционной системы.

Фактически гипервизор второго типа работает как один из процессов, выполняемых основной ОС, чаще всего – Linux. В этом случае полномочия гипервизора значительно скромнее: он управляет гостевыми операционными системами, а эмуляцию и управление физическими ресурсами берет на себя хостовая ОС.

Гипервизор 2 типа Принцип работы гипервизоров 2 типа

Наиболее популярные гипервизоры второго типа – Oracle VM VirtualBox, VMware Workstation, KVM.

ORACLE VM VIRTUALBOX

Oracle VM VirtualBox – модульный кроссплатформенный гипервизор для операционных систем Linux, macOS, Microsoft Windows, FreeBSD, Solaris/OpenSolaris, ReactOS, DOS и других от корпорации Oracle. Был создан в 2007 г. в корпорации Sun Microsystems, затем, после поглощения ее Oracle, работа над гипервизором продолжилась. Исходный код базовой версии открыт по лицензии GNU GPL, поэтому гипервизор пользуется популярностью и доступен для неограниченного модифицирования. Интересно, что VirtualBox способен поддерживать 64-битные гостевые системы, даже если ОС хоста 32-битная.

VMWARE WORKSTATION

Первая версия гипервизора VMware Workstation, разработанного компанией VMware, входящей в EMC Corporation, увидела свет в 1999 году. Это проприетарное ПО, работающее с x86-64 операционными системами хоста Microsoft Windows, Linux, Ubuntu, CentOS. Поддерживает более 200 гостевых ОС. Для теста можно воспользоваться бесплатной версией Workstation Player, которая сильно урезана в функциональности, по сравнению с версией Pro.

KVM

Kernel-based Virtual Machine, KVM, – гипервизор, созданный в октябре 2006 года и почти сразу был интегрированный с основной веткой ядра Linux версии 2.6.20., выпущенной в начале 2007 года. Позже KVM был адаптирован как модуль ядра в FreeBSD. В KVM включены загружаемый модуль ядра kvm.ko, отвечающий за виртуализацию, процессорно-специфический загружаемый модуль для AMD или Intel kvm-amd.ko, либо kvm-intel.ko, и компоненты пользовательского режима QEMU. KVM – полностью открытое ПО по лицензии GNU GPL и GNU LGPL. Кстати, при создании публичного облака SIM-Cloud IaaS инженеры использовали для виртуализации KVM QEMU.

Гибридный гипервизор управляет процессором и памятью, а устройствами ввода-вывода – через гостевые ОС

Что такое гибридные гипервизоры?

Гибридные гипервизоры обладают частью признаков как первого, так и второго типов (сочетание «тонкого» гипервизора и специальной, работающей «на железе» служебной ОС под его управлением). Гипервизор управляет напрямую процессором и памятью, а через служебную ОС гостевые получают доступ к устройствам ввода-вывода.

Технологии постоянно развиваются, и производители гипервизоров ищут пути совершенствования своих продуктов, создают новые версии, более гибкие, более интегрированные к разным системам и условиям. В последние годы гипервизоры Xen и Hyper-V все чаще относят уже не к первому типу, а к гибридному, и отчасти это верно. Современные версии этих гипервизоров в значительной степени сочетают в себе свойства обоих типов.

Паравиртуализация модифицирует гостевые ОС для исполнения в виртуализированной среде

Что такое паравиртуализация?

Популярным решением является паравиртуализация – установка специально подготовленной гостевой ОС, ядро которой изменяется для эффективной работы с гипервизором 2 типа. Конечно же, речь не может идти о модификации проприетарных систем с закрытым кодом, таких, как Windows. Зато для доработки большинства версий Linux разрешение владельца не требуется.

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

Контейнеры могут развернуть больше приложений на одном физическом сервере, чем гипервизоры

Что такое контейнерные решения?

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

Среди контейнеров широко распространен гипервизор OpenVZ, на котором основана платформа Virtuozzo. Преимуществом решения OpenVZ – хорошая производительность, максимальное использование ресурсов физического сервера за счет высокой плотности размещения ВМ.

Интересным также является контейнерное решение Jailhouse от Siemens. Этот гипервизор работает на «железе», но запускается на работающей системе Linux и обеспечивает ее разделение на изолированные «ячейки» – разделы системы для выполнения приложений пользователя.

Облачный сервер

Облачный сервер

Узнайте больше про высокодоступное публичное облако SIM-Cloud

Узнать больше

Какой гипервизор лучше выбрать?

Выбирая гипервизор, следует помнить основные задачи гипервизора любого типа:

  • эмуляция аппаратных ресурсов компьютера;
  • безопасное выполнение машинных инструкций;
  • предотвращение выполнения команд гостевых ОС режима супервизора на реальной хост-машине (без их перехвата и анализа, эмуляции выполнения).

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

При подготовке к работе с гипервизорами:

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

Если у вас возникли вопросы при выборе оптимальной технологии виртуализации, обращайтесь в службу Customer Care – мы с радостью вас проконсультируем.

Эта статья была полезной?

Тэги:

#сервер

Понравилась статья?

Согласие на использование файлов cookie

Нажимая «Я согласен», вы даете согласие на использование файлов cookie на нашем веб-сайте, чтобы предоставить вам наиболее релевантный опыт, запоминая ваши предпочтения и повторные посещения. Однако вы можете посетить «Управление файлами cookie», чтобы предоставить контролируемое согласие. Подробнее

Настройки файлов cookie

Функциональные

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

Аналитические

Аналитические файлы cookie используются для понимания того, как посетители взаимодействуют с веб-сайтом.

Рекламные

Рекламные файлы cookie используются для предоставления посетителям релевантной рекламы и маркетинговых кампаний.