что такое гипервизор и для чего он нужен
Что такое гипервизор?
Гипервизор – это функция, которая абстрагирует (изолирует) операционные системы (ОС) и приложения от базового компьютерного оборудования. Эта абстракция позволяет базовому оборудованию хост-машины независимо управлять одной или несколькими виртуальными машинами в качестве гостевых, позволяя нескольким гостевым виртуальным машинам эффективно совместно использовать физические вычислительные ресурсы системы, такие как циклы процессора, пространство памяти и пропускная способность сети.
Гипервизор может использовать тот, кто хочет консолидировать пространство на сервере или запускать несколько изолированных приложений на одном сервере. Гипервизоры обычно поддерживаются в программном обеспечении виртуализации, таком как vCenter Server.
Типы гипервизоров
Гипервизоры традиционно реализуются как программный уровень, например VMware vSphere или Microsoft Hyper-V, но гипервизоры также могут быть реализованы в виде кода, встроенного во встроенное ПО системы. Существует два основных типа гипервизоров: гипервизоры типа 1 и типа 2.
Гипервизоры 1-го типа
Гипервизоры типа 1 развертываются непосредственно на аппаратном обеспечении системы без каких-либо базовых операционных систем или другого программного обеспечения. Такие гипервизоры называются «голыми» гипервизорами и являются наиболее распространенным и популярным типом гипервизоров для корпоративных центров обработки данных. Примеры включают vSphere и Hyper-V.
Гипервизоры 2-го типа
Гипервизоры типа 2 работают как программный уровень поверх ОС хоста и обычно называются размещенными гипервизорами, такими как VMware Workstation Player или Parallels Desktop. Размещенные гипервизоры часто встречаются на конечных точках, таких как персональные компьютеры.
Для чего используются гипервизоры?
Гипервизоры важны для любого системного администратора или системного оператора, потому что виртуализация добавляет важный уровень управления и контроля над центром обработки данных и корпоративной средой. Сотрудникам необходимо не только понимать, как работает соответствующий гипервизор, но и как выполнять связанные задачи управления, такие как конфигурация виртуальных машин, миграция и снимки файловой системы.
Роль гипервизора также расширяется. Гипервизоры хранилища, например, используются для виртуализации всех ресурсов хранения в среде для создания централизованных пулов хранения, которые администраторы могут выделять, не заботясь о том, где физически расположено хранилище. Сегодня гипервизоры хранилища являются ключевым элементом программно-определяемых хранилищ. Сети также виртуализируются с помощью гипервизоров, что позволяет создавать, изменять, управлять и уничтожать сети и сетевые устройства полностью с помощью программного обеспечения, не касаясь физических сетевых устройств. Как и в случае с хранилищем, виртуализация сети появляется в более широких программно-определяемых сетях или платформах программно-определяемых центров обработки данных.
История
В начале-середине 1960-х и 1970-х годов были созданы самые ранние формы гипервизоров. В 1966 году IBM выпустила свою первую производственную компьютерную систему – IBM System/360-67, которая была способна к полной виртуализации. IBM также начала производство своей системы CP-40 в 1967 году. Эта система работала на базе модифицированной системы S/360-40, которая обеспечивала возможности виртуализации. Эта система также позволяла запускать несколько пользовательских приложений одновременно, что раньше было невозможно. Система Control Program/Cambridge Monitor System от IBM была выпущена в 1968 году и просуществовала до 1970-х годов.
В 1970 году IBM выпустила System/370, которая добавила поддержку виртуальной памяти два года спустя, в 1972 году. С тех пор виртуализация стала функцией всех систем. Примерно в это же время больше членов сообщества начали использовать проекты с открытым исходным кодом для дальнейшей разработки виртуальных систем с гипервизорами.
В 1985 году IBM представила гипервизор Processor Resource/System Manager, который мог управлять логическими разделами. В середине 2000-х годов многие операционные системы, такие как Linux, Unix и Windows, начали поддерживать гипервизоры. Примерно в это же время началась премьера гипервизоров с лучшим оборудованием, стоимостью и возможностями консолидации. В 2005 году поставщики начали поддерживать виртуализацию продуктов x86.
Преимущества гипервизоров
Гипервизоры предоставляют корпоративным центрам обработки данных ряд преимуществ. Во-первых, способность физической хост-системы запускать несколько гостевых виртуальных машин может значительно улучшить использование базового оборудования. Если на физических (невиртуализированных) серверах может размещаться только одна ОС и одно приложение, гипервизор виртуализирует сервер, позволяя системе размещать несколько экземпляров виртуальных машин, каждый из которых работает с независимой ОС и приложением, в одной физической системе, используя гораздо больше доступных вычислительных ресурсов системы.
Виртуальные машины также очень мобильны. Абстракция, которая имеет место в гипервизоре, также делает виртуальную машину независимой от базового оборудования. Традиционное программное обеспечение может быть тесно связано с базовым серверным оборудованием – это означает, что перенос приложения на другой сервер требует длительной и подверженной ошибкам переустановки и перенастройки приложения. Для сравнения, гипервизор делает детали базового оборудования несущественными для виртуальных машин. Это позволяет перемещать или переносить виртуальные машины между любыми локальными или удаленными виртуализированными серверами – при наличии достаточных вычислительных ресурсов – практически по желанию с практически нулевым нарушением работы виртуальной машины; эту особенность часто называют живой миграцией.
Виртуальные машины также логически изолированы друг от друга, даже если они работают на одной физической машине. По сути, виртуальная машина не имеет собственных знаний или зависимости от других виртуальных машин. Ошибка, сбой или атака вредоносного ПО на одной виртуальной машине не распространяется на другие виртуальные машины на той же или других машинах. Это делает технологию гипервизора чрезвычайно безопасной.
Наконец, снимки файловой системы (снапшоты) позволяют мгновенно вернуть виртуальную машину в предыдущее состояние. Хотя снапшоты – или контрольные точки, как их называет Microsoft – не предназначены для использования в качестве замены резервных копий, они могут действовать как защитный механизм, особенно при выполнении обслуживания виртуальной машины. Если администратор собирается обновить ОС виртуальной машины, он может сделать снапшот перед выполнением обновления. В случае сбоя обновления администратор может восстановить моментальный снимок, чтобы мгновенно восстановить виртуальную машину в ее предыдущее состояние.
Таким образом, основные преимущества гипервизоров включают в себя:
Контейнеры и гипервизоры
Контейнеры могут показаться гипервизорами. Однако на гипервизорах размещаются виртуальные машины на основе ядра, предназначенные для создания среды, имитирующей набор физических машин. Каждая виртуальная машина содержит свою независимую ОС. Напротив, контейнеры могут совместно использовать ядро ОС, известное как базовый образ. Каждый контейнер запускает отдельное приложение или микросервис, но зависит от базового образа.
Microsoft предлагает два разных варианта контейнера. Можно построить традиционную контейнерную архитектуру поверх Windows Server, но есть также возможность создать развертывание контейнера Hyper-V, которое действует как гибридная среда. Он использует виртуальную машину в качестве основы для контейнерной инфраструктуры.
Kubernetes стал стандартным инструментом для управления контейнерами Linux в частных, общедоступных и гибридных облачных средах. Kubernetes – это система с открытым исходным кодом, созданная Google и первоначально запущенная в 2015 году. Kubernetes может автоматизировать планирование, развертывание, масштабирование и обслуживание контейнеров на узлах кластера.
Проблемы безопасности
Процесс безопасности гипервизора включает обеспечение безопасности гипервизора на протяжении всего его жизненного цикла, в том числе во время разработки и внедрения. Если злоумышленник получает несанкционированный доступ к гипервизору, управляющему программному обеспечению или программному обеспечению, которое управляет виртуальной средой, то этот злоумышленник потенциально может получить доступ ко всем данным, хранящимся на каждой виртуальной машине. Другие возможные уязвимости включают общие аппаратные кэши, сеть и потенциальный доступ к физическому серверу.
Вот общие методы обеспечения безопасности гипервизоров:
Поставщики гипервизоров и рынок
Сегодня доступно несколько основных гипервизоров, от бесплатных платформ до дорогих продуктов корпоративного уровня. Это самые распространенные гипервизоры:
Интернет-предприниматель, специалист по SEO и SMM, E-commerce, вебмастер, блогер.
Типы гипервизоров – сравнительный анализ
Выбор между двумя типами гипервизоров в значительной степени зависит от того, что контролируют ИТ-администраторы – корпоративный ЦОД или системы конечных пользователей.
Главное отличие между гипервизорами 1-го и 2-го типа заключается в том, что 1-й тип работает на bare metal, а 2-й – поверх операционной системы. У каждого есть свои особенности и конкретные варианты применения.
Виртуализация подразумевает абстрагирование физического оборудования и устройств от приложений, работающих на этом оборудовании; управляет и резервирует ресурсы системы, включая процессор, память, хранилище, сетевые ресурсы. Это позволяет размещать в системе одновременно несколько рабочих нагрузок, обеспечивая более экономичное использование доступных серверов в рамках всей организации.
Что такое гипервизор
Гипервизор – это программное обеспечение, которое создает и запускает виртуальные машины, изолируя операционную систему и ресурсы системы от аппаратного обеспечения. Физическое оборудование, на котором работает гипервизор, называется хост-машиной, а виртуальные машины, создаваемые и поддерживаемые гипервизором, в совокупности называются гостевыми машинами.
Гипервизор позволяет оборудованию хоста работать с несколькими виртуальными машинами независимо друг от друга и совместно использовать абстрагированные ресурсы этих виртуальных машин. Виртуализация с гипервизором повышает эффективность центра обработки данных по сравнению с физическим хостингом.
Есть два типа гипервизоров: тип 1 и тип 2. Оба могут виртуализировать основные элементы – процессор, память и сеть, но, исходя из своего расположения в стеке, гипервизор виртуализирует эти элементы по-разному.
Гипервизор первого типа
Работает непосредственно на физическом аппаратном обеспечении хост-машины и называется «bare-metal гипервизор». Гипервизор типа 1 не должен загружать базовую операционную систему. Он использует прямой доступ к исходному оборудованию и никакому другому программному обеспечению (ОС и драйверы), и считается самым эффективным и наиболее производительным.
Гипервизоры, которые выполняются непосредственно на физическом оборудовании, также отличаются высокой степенью безопасности. Виртуализация снижает риск атак, направленных на уязвимости и недостатки в безопасности операционной системы, поскольку каждая гостевая ОС имеет свою собственную. Это гарантирует, что атака на гостевую виртуальную машину будет логически изолирована от этой ВМ и не сможет распространиться на другие машины, работающие на том же оборудовании.
ИТ-организации используют гипервизоры первого типа для рабочих нагрузок производственного уровня, которые требуют большего времени безотказной работы, расширенных возможностей восстановления и других функций необходимых в разработке. Стандартный гипервизор первого типа может масштабироваться для виртуализации рабочих нагрузок на несколько терабайт оперативной памяти и сотни ядер CPU.
Кроме того, гипервизоры типа 1 часто поддерживают программно-определяемые системы хранения данных и сети, что создает дополнительную безопасность и портативность для виртуализированных рабочих нагрузок. Однако такие функции предполагают высокие стартовые вложения.
Для получения максимума возможностей гипервизор 1-го типа требует дополнительного внешнего управления. Например у VMware это платформа централизованного управления виртуальной инфраструктурой VMware vCenter.
Гипервизор второго типа
Устанавливается поверх существующей ОС. Иногда его называют хостируемым гипервизором, потому что он зависит от существующей ОС хост-машины для управления вызовами к процессору, памяти, хранилищу и сетевым ресурсам.
Гипервизор второго типа ведет свою историю с ранних времен виртуализации x86, когда он добавлялся поверх ОС существующих систем. Хотя назначение и цели обоих типов идентичны, наличие базовой ОС с гипервизорами типа 2 приводит к неизбежным задержкам; вся деятельность и работа каждой ВМ должна проходить через ОС хоста. Кроме того, любые дефекты безопасности или ошибки в операционной системе хоста могут потенциально скомпрометировать все ВМ, запущенные над ней.
Следовательно, гипервизоры типа 2 обычно не используются в центрах обработки данных и зарезервированы для клиентских систем или систем конечных пользователей – иногда их называют клиентскими гипервизорами – в тех случаях, когда производительность и безопасность вызывают меньшие опасения. Они также стоят дешевле, чем гипервизоры первого типа и представляют собой идеальную платформу для тестирования. Например, разработчики программного обеспечения могут использовать гипервизор типа 2 для создания ВМ, чтобы протестировать программный продукт перед выпуском. Также они подходят для создания виртуальных рабочих столов. Гипервизоры типа 2 могут поддерживать большие и сложные кластерные среды.
Аппаратная поддержка гипервизоров типа 1 и типа 2
Для задач виртуализации широко доступны технологии аппаратного ускорения. К таким технологиям относятся Intel Virtualization для процессоров Intel и AMD Virtualization для процессоров AMD. Существует множество других расширений и функций на базе виртуализации, включая трансляцию адресов второго уровня и поддержку вложенной виртуализации.
Технологии аппаратного ускорения выполняют многие процессороемкие задачи, необходимые для создания виртуальных ресурсов на компьютере и управления ими. Аппаратное ускорение повышает производительность виртуализации, а количество виртуальных машин на компьютере превосходит то, что может сделать гипервизор в одиночку.
В гипервизорах Type 1 и Type 2 есть поддержка аппаратного ускорения, но в разной степени. Гипервизоры первого типа не работают без этих технологий. Гипервизоры второго типа, как правило, способны использовать технологии аппаратного ускорения при наличии таких возможностей, но обычно в них можно задействовать программную эмуляцию при отсутствии встроенной аппаратной поддержки.
Гипервизоры VMware
Тип 1 – VMware vSphere. Включает в себя гипервизор ESXi и программное обеспечение для управления vCenter, предоставляющее продукты для виртуализации, такие как vSphere Client, наборы для разработки программного обеспечения vSphere, Storage vMotion, распределенный планировщик ресурсов и средства обеспечения отказоустойчивости. VMware vSphere ориентирована на корпоративные ЦОД.
Fusion – это альтернатива Workstation. VMware Fusion предлагает многие из тех же возможностей, что и Workstation, но совместима с MacOS и снабжена меньшим количеством функций.
При выборе гипервизора системные администраторы должны учитывать тип и объем рабочих нагрузок. Для крупной организации, где нужно развернуть сотни ВМ, подойдет гипервизор типа 1. Если развертывание не такое масштабное или требуется тестовая среда, то гипервизоры типа 2 – менее сложные, дешевле стоят, а использовать их можно по мере необходимости.
Архитектура Hyper-V: Глубокое погружение
Что же такое – Hyper-V?
Hyper-V – это одна из технологий виртуализации серверов, позволяющая запускать на одном физическом сервере множество виртуальных ОС. Эти ОС именуются «гостевыми», а ОС, установленная на физическом сервере – «хостовой». Каждая гостевая операционная система запускается в своем изолированном окружении, и «думает», что работает на отдельном компьютере. О существовании других гостевых ОС и хостовой ОС они «не знают».
Эти изолированные окружения именуются «виртуальными машинами» (или сокращенно — ВМ). Виртуальные машины реализуются программно, и предоставляют гостевой ОС и приложениям доступ к аппаратным ресурсам сервера посредством гипервизора и виртуальных устройств. Как уже было сказано, гостевая ОС ведет себя так, как будто полностью контролирует физический сервер, и не имеет представления о существовании других виртуальных машин. Так же эти виртуальные окружения могут именоваться «партициями» (не путать с разделами на жестких дисках).
Впервые появившись в составе Windows Server 2008, ныне Hyper-V существует в виде самостоятельного продукта Hyper-V Server (де-факто являющегося сильно урезанной Windows Server 2008), и в новой версии – R2 – вышедшего на рынок систем виртуализации Enterprise-класса. Версия R2 поддерживает некоторые новые функции, и речь в статье пойдет именно об этой версии.
Гипервизор
Термин «гипервизор» уходит корнями в 1972 год, когда компания IBM реализовала виртуализацию в своих мэйнфреймах System/370. Это стало прорывом в ИТ, поскольку позволило обойти архитектурные ограничения и высокую цену использования мэйнфреймов.
Гипервизор – это платформа виртуализации, позволяющая запускать на одном физическом компьютере несколько операционных систем. Именно гипервизор предоставляет изолированное окружение для каждой виртуальной машины, и именно он предоставляет гостевым ОС доступ к аппаратному обеспечению компьютера.
Гипервизоры можно разделить на два типа по способу запуска (на «голом железе» или внутри ОС) и на два типа по архитектуре (монолитная и микроядерная).
Гипервизор 1 рода
Гипервизор 1 типа запускается непосредственно на физическом «железе» и управляет им самостоятельно. Гостевые ОС, запущенные внутри виртуальных машин, располагаются уровнем выше, как показано на рис.1.
Рис.1 Гипервизор 1 рода запускается на «голом железе».
Гипервизор 2 рода
В отличие от 1 рода, гипервизор 2 рода запускается внутри хостовой ОС (см. рис.2).
Рис.2 Гипервизор 2 рода запускается внутри гостевых ОС
Виртуальные машины при этом запускаются в пользовательском пространстве хостовой ОС, что не самым лучшим образом сказывается на производительности.
Примерами гипервизоров 2 рода служат MS Virtual Server и VMware Server, а так же продукты десктопной виртуализации – MS VirtualPC и VMware Workstation.
Монолитный гипервизор
Гипервизоры монолитной архитектуры включают драйверы аппаратных устройств в свой код (см. рис. 3).
Рис. 3. Монолитная архитектура
Микроядерная архитектура
При микроядерной архитектуре драйверы устройств работают внутри хостовой ОС.
Хостовая ОС в этом случае запускается в таком же виртуальном окружении, как и все ВМ, и именуется «родительской партицией». Все остальные окружения, соответственно – «дочерние». Единственная разница между родительской и дочерними партициями состоит в том, что только родительская партиция имеет непосредственный доступ к оборудованию сервера. Выделением памяти же и планировкой процессорного времени занимается сам гипервизор.
Рис. 4. Микроядерная архитектура
Архитектура Hyper-V
На рис.5 показаны основные элементы архитектуры Hyper-V.
Рис.5 Архитектура Hyper-V
Как видно из рисунка, гипервизор работает на следующем уровне после железа – что характерно для гипервизоров 1 рода. Уровнем выше гипервизора работают родительская и дочерние партиции. Партиции в данном случае – это области изоляции, внутри которых работают операционные системы. Не нужно путать их, к примеру, с разделами на жестком диске. В родительской партиции запускается хостовая ОС (Windows Server 2008 R2) и стек виртуализации. Так же именно из родительской партиции происходит управление внешними устройствами, а так же дочерними партициями. Дочерние же партиции, как легко догадаться – создаются из родительской партиции и предназначены для запуска гостевых ОС. Все партиции связаны с гипервизором через интерфейс гипервызовов, предоставляющий операционным системам специальный API. Если кого-то из разработчиков интересуют подробности API гипервызовов — информация имеется в MSDN.
Родительская партиция
Рис.6 Компоненты родительской партиции Hyper-V
Стек виртуализации
Рабочий процесс виртуальной машины (VMWP)
Для управления виртуальной машиной из родительской партиции запускается особый процесс – рабочий процесс виртуальной машины (VMWP). Процесс этот работает на уровне пользователя. Для каждой запущенной виртуальной машины служба VMMS запускает отдельный рабочий процесс. Это позволяет изолировать виртуальные машины друг от друга. Для повышения безопасности, рабочие процессы запускаются под встроенным пользовательским аккаунтом Network Service.
Процесс VMWP используется для управления соответствующей виртуальной машиной. В его задачи входит:
Создание, конфигурация и запуск виртуальной машины
Пауза и продолжение работы (Pause/Resume)
Сохранение и восстановление состояния (Save/Restore State)
Создание моментальных снимков (снапшотов)
Кроме того, именно рабочий процесс эмулирует виртуальную материнскую плату (VMB), которая используется для предоставления памяти гостевой ОС, управления прерываниями и виртуальными устройствами.
Виртуальные устройства
Драйвер виртуальной инфраструктуры (VID)
Драйвер виртуальной инфраструктуры (vid.sys) работает на уровне ядра и осуществляет управление партициями, виртуальными процессорами и памятью. Так же этот драйвер является промежуточным звеном между гипервизором и компонентами стека виртуализации уровня пользователя.
Библиотека интерфейса гипервизора
Библиотека интерфейса гипервизора (WinHv.sys) – это DLL уровня ядра, которая загружается как в хостовой, так и в гостевых ОС, при условии установки компонент интеграции. Эта библиотека предоставляет интерфейс гипервызовов, использующийся для взаимодействия ОС и гипервизора.
Провайдеры служб виртуализации (VSP)
Провайдеры служб виртуализации работают в родительской партиции и предоставляют гостевым ОС доступ к аппаратным устройствам через клиент служб виртуализации (VSC). Связь между VSP и VSC осуществляется через виртуальную шину VMBus.
Шина виртуальных машин (VMBus)
Назначение VMBus состоит в предоставлении высокоскоростного доступа между родительской и дочерними партициями, в то время как остальные способы доступа значительно медленнее из-за высоких накладных расходах при эмуляции устройств.
Если гостевая ОС не поддерживает работу интеграционных компонент – приходится использовать эмуляцию устройств. Это означает, что гипервизору приходится перехватывать вызовы гостевых ОС и перенаправлять их к эмулируемым устройствам, которые, напоминаю, эмулируются рабочим процессом виртуальной машины. Поскольку рабочий процесс запускается в пространстве пользователя, использование эмулируемых устройств приводит к значительному снижению производительности по сравнению с использованием VMBus. Именно поэтому рекомендуется устанавливать компоненты интеграции сразу же после установки гостевой ОС.
Как уже было сказано, при использовании VMBus взаимодействие между хостовой и гостевой ОС происходит по клиент-серверной модели. В родительской партиции запущены провайдеры служб виртуализации (VSP), которые являются серверной частью, а в дочерних партициях – клиентская часть – VSC. VSC перенаправляет запросы гостевой ОС через VMBus к VSP в родительской партиции, а сам VSP переадресовывает запрос драйверу устройства. Этот процесс взаимодействия абсолютно прозрачен для гостевой ОС.
Дочерние партиции
Вернемся к нашему рисунку с архитектурой Hyper-V, только немного сократим его, поскольку нас интересуют лишь дочерние партиции.
Рис. 7 Дочерние партиции
ОС Windows с установленными компонентами интеграции
ОС не из семейства Windows, но поддерживающая компоненты интеграции
Существуют так же ОС, не относящиеся к семейству Windows, но поддерживающие компоненты интеграции.На данный момент – это только SUSE Linux Enterprise Server и Red Hat Enterprise Linux. Такие ОС при установке компонент интеграции используют VSC сторонних разработчиков для взаимодействия с VSC по VMBus и доступа к оборудованию. Компоненты интеграции для Linux разработаны компанией Microsoft совместно с Citrix и доступны для загрузки в Microsoft Download Center. Поскольку компоненты интеграции для Linux были выпущены под лицензией GPL v2, ведутся работы по интеграции их в ядро Linux через Linux Driver Project, что позволит значительно расширить список поддерживаемых гостевых ОС.
Вместо заключения
На этом я, пожалуй, закончу свою вторую статью, посвященную архитектуре Hyper-V. Предыдущая статья вызвала у некоторых читателей вопросы, и надеюсь, что теперь я на них ответил.
Надеюсь, что чтение не было слишком скучным. Я достаточно часто использовал «академический язык», но это было необходимо, поскольку тематика статьи предполагает очень большой объем теории и практически нуль целых нуль десятых практики.
Выражаю огромную благодарность Mitch Tulloch и Microsoft Virtualization Team. На основе их книги Understanding Microsoft Virtualization Solutions и была подготовлена статья.