14.02.2011 07:55 Darts-smb

Hyper-V и визуализация 1-го типа

Hyper-V реализует то, что обычно называют Type-1 Hypervisor virtualization (виртуализация 1-го типа) В этом случае, гипервизор работает непосредственно на аппаратном обеспечении хост-системы и отвечает за обмен ресурсами физического оборудования с несколькими виртуальными машинами . Эта концепция иллюстрируется на следующей диаграмме:

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


Hardware Assisted Virtualization

Hyper-V работает только на процессорах, которые поддерживают hardware assisted virtualization. Прежде чем взглянуть на Hyper-V в деталях, стоит представить краткий обзор того, что hardware assisted virtualization на самом деле означает.

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

В Hyper-V виртуализации программа, известная как гипервизор работает непосредственно на аппаратном обеспечении хост-системы в кольце-0. Задача гипервизора состоит в обработке задач, таких как распределение ресурсов CPU и памяти для виртуальных машин в дополнение к интерфейсам для администрирования и мониторинга.

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

Другое решение заключается в привлечении функций hardware assisted virtualization нового поколения процессоров от Intel и AMD. Эти технологии, известные как Intel VT и AMD-V соответственно, обеспечивают расширения, необходимые для запуска немодифицированных гостевых виртуальных машин. В упрощенном смысле эти новые процессоры обеспечивают дополнительный режим привилегий (относящийся к кольцу -1) над кольцом-0, в котором гипервизор может работать, по сути, оставив кольцо-0 для немодифицированных гостевых операционных систем.


Корневые и дочерние разделы Hyper-V

Работающие на основе гипервизора разделы - это корневой раздел (root partition) (так же известный как родительский раздел) и нулевые или дочерние разделы(child partition)(по одному для каждой виртуальной машины), как показано ниже:

Корневой раздел, по существу, виртуальная машина, которая запускает копию 64-битной Windows Server 2008, которая, в свою очередь, выступает в качестве хоста для ряда специальных компонентов Hyper-V. Корневой раздел отвечает за обеспечение драйверов для устройств виртуальных машин, работающих в дочерних разделах, управляя жизненным циклом дочернего раздела, распределением энергии и регистрацией событий. Операционная система корневого раздела является хостом для стека виртуализации, который несет ответственность за выполнение широкого спектра функций виртуализации (стек виртуализации - virtualization stack и другие компоненты корневого раздела будут рассмотрены более подробно далее в этой главе).

Дочерние разделы являются хостом для виртуальных машин, в которых запускаются гостевые операционные системы. Hyper-V поддерживает Hyper-V Aware и Hyper-V Unaware гостевых операционных систем.


The Virtualization Stack и другие компоненты корневого раздела

Как отмечалось ранее, корневой раздел содержит стек виртуализации (virtualization stack). Это набор компонентов, которые обеспечивают большой объем функциональности Hyper-V. Следующая диаграмма представляет абстрактные контуры стека:


Следующая таблица представляет обзор каждого компонента стека виртуализации:
Virtual Machine Management Service (VMM Service) Управляет состоянием виртуальных машин, работающих в дочерних разделах, и контролирует задачи, которые могут быть выполнены на виртуальной машине, на основе текущего состояния (например, создавая снимки). Также управляет добавлением и удалением устройств, когда виртуальная машина запускается. Служба отвечает также за создание соответствующего рабочего процесса виртуальной машины.
Virtual Machine Worker Processes Рабочие процессы виртуальной машины запускаются службой VMM, после запуска виртуальной машины. Рабочий процесс (называемый vmwp.exe) создается для каждой виртуальной машины и несет ответственность за большую часть управления взаимодействием между родительским разделом Windows Server 2008 и системой виртуальных машин в дочерних разделах. В обязанности рабочего процесса виртуальной машины входит создание, настройка, управление, паузы, возобновления, сохранения, восстановления и мгновенные снимки виртуальной машины. Он также работает с IRQ, памятью и вводом/выводом отображения портов через виртуальную материнскую плату (ВМП).
Virtualization Infrastructure Driver Работает в режиме ядра (т.е. в привилегированном кольце процессора) и управляет разделами диска, памятью и процессорами виртуальных машин, работающих в дочерних разделах. Драйвер виртуальной инфраструктуры (Vid.sys) также предоставляет канал для компонентов стека виртуализации для их общения с гипервизором.
Virtual Devices Виртуальные устройства управляются виртуальной материнской платой (ВМП). Виртуальные платы находятся внутри рабочих поцессов виртуальной машины, по одной для каждой виртуальной машины. Виртуальные устройства делятся на две категории, Core VDevs и Plug-in VDevs. Core VDevs могут быть как Emulated, так и Synthetic устройства.
Windows Hypervisor Interface Library DLL (называемый WinHv.sys) располагается в родительском разделе Windows Server 2008, и в гостевых операционных системах Hyper-V aware . Дает драйверам операционной системы доступ к гипервизору с использованием стандартных Windows API calls вместо hypercalls.

В дополнение к компонентам, содержащимся в стеке виртуализации (virtualization stack), корневой раздел так же содержит следующие компоненты: VMBus ,Virtualization Service Providers, Virtualization Service Clients.

VMBus Будучи частью Hyper-V Integration Services, VMBus способствует оптимизированной связи между дочерним и родительский разделами.
Virtualization Service Providers Находится в родительском разделе и обеспечивает поддержку синтетических устройств (synthetic devices) через VMBus на Virtual Service Clients (VSCS), работающих в дочерних разделах.
Virtualization Service Clients Virtualization Service Clients являются синтетическими устройствами, которые находятся в дочерних разделах. Они общаются с VSPs в родительском разделе через VMBus для того, чтобы выполнить запросы на доступ устройства в дочернем разделе.

Типы гостевых операционных систем в Hyper-V

Hyper-V поддерживает различные типы гостевых операционных систем, работающих в дочерних разделах. Это Hyper-V Aware Windows Operating Systems, Hyper-V Aware non-Windows Operating Systems и Non Hyper-V Aware Operating Systems.


Hyper-V Aware Windows Operating Systems - (так же упоминается как продвинутая операционная система) Такие системы способны обнаружить, что они работают на гипервизоре Hyper-V и изменить поведение для достижения максимальной производительности (например, использовать hypercalls). Кроме того, эти операционные системы могут использовать Integration Services для работы с Virtual Service Clients (VSCs), которые общаются через VMBus с Virtual Service Providers (VSP) для прямого доступа к физическим устройствам.

Hyper-V Aware Non-Windows Operating Systems – такие системы также могут запускать Integration Services, а через использование VSCS, поставляемых третьими лицами, иметь доступ к устройствам через VSPs корневого раздела. Продвинутые операционные системы способны изменить поведение, чтобы оптимизировать производительность и общаться непосредственно с гипервизором посредством использования hypercalls.

Non Hyper-V Aware Operating Systems - эти операционные системы не знают, что они работают на гипервизоре и им не удается запустить Integration Services. Для поддержки этих операционных систем, гипервизор Hyper-V использует эмуляцию для обеспечения доступа к устройствам и ресурсам центрального процессора. Хотя этот подход позволяет таким операционным системам функционировать в Hyper-V , расходы ресурсов, присущие процессу эмуляции могут быть существенным.

Наши Партнеры

 
spinner