Одним из главных нововведений в гипервизоре Windows Server 2012 R2 – возможность создавать виртуальные машины второго поколения (Generation 2). Какова же цель разработки второго поколения виртуальных машин Hyper-V, в чем их преимущества и в каких случаях предпочтительно их использовать? В этой статье мы попробуем ответить на все эти вопросы.
В Hyper-V на Windows Server 2012 R2 теперь поддерживаются два поколения виртуальных машин: поколение 1 (Generation 1) и поколение 2 (Generation 2). Виртуальные машины первого поколения (Generation 1) являлись единственным типом виртуальных машин, доступных в предыдущих версиях Hyper-V. В Hyper-V на базе Windows Server 2012 R2 при создании новой виртуальной машины теперь можно указать к какому поколению будет относиться создаваемая виртуальная машина.
Исторические предпосылки разработки второго поколения виртуальных машин
Новое поколение виртуальных машин отличается от предыдущего одним главным принципом – оно разработано специально для оптимизации работы ОС исключительно (и только) в виртуальном окружении Hyper-V. Поколение виртуальной машины определяет набор виртуального «железа» и функционал виртуальной машины. И если предыдущее поколение содержало в себе эволюционные анахронизмы, вытекающие из изначально «физической» архитектуры компьютеров, то виртуальные машины Gen 2 избавлены от этой необходимости, что дает ряд преимуществ.
Главная задача при создании любой виртуальной машины – создание надежной программной эмуляции физического оборудования, которое изначально проектировалось и разрабатывалось без учета возможностей виртуализации. Со временем в архитектуру ОС и аппаратного обеспечения компьютеров вносилось все больше и больше изменений. В результате разработчикам виртуальных платформ для того, чтобы запустить ОС в среде виртуализации, приходилось прибегать к эмуляции различного (в том числе морально устаревшего) оборудования: это BIOS, стандартные порты ввода-вывода (COM, LPT, PS/2), IDE-контроллеры, контроллеры флоппи дисков, контроллеры прерываний, мосты PCI-to-ISA и многое другое.
Эмуляция различного оборудования приводит к увеличению накладных расходов процессорного времени, необходимости поддержки довольного сложного кода и, как следствие этого факта, повышенной поверхности для атак злоумышленников.
Современные ОС, которые проектируются с учетом возможностей работы в виртуальной среде, и уже на этапе загрузки могут понять, что работают внутри ВМ, и не ожидать появления контроллера прерываний или чипсета определенного типа, а напрямую общаться с гипервизором через шину VMBus. Основываясь на этих концепциях, Microsoft решила рискнуть и отказаться от необходимости эмуляции унаследованных устройств и создать для эмуляции оборудования новую платформу с минимальным набором компонентов.
Вот каким образом могут выглядеть списки эмулируемых устройств в Device Manager на ВМ Hyper-V:
1 поколения виртуальных машин Hyper-V:
2 поколения виртуальных машин Hyper-V:
Возможности виртуальных машин Hyper-V второго поколения
Какие же базовые изменения внесены в виртуальные машины Hyper-V Generation 2:
- Поддержка UEFI— стандартный BIOS замен на firmware на базе UEFI
- Secure Boot – как следствие первого пункта, поддержка технологии безопасной загрузки (Secure Boot), позволяющий защитить систему от руткитов и буткитов в процессе загрузки (по умолчанию, Secure Boot активна)
- Отказ от эмуляции IDE контроллеров – взаимодействие с файлами виртуальных машин VHDX осуществляется с помощью нативных команд SCSI, что приводит к значительному увеличению производительности виртуальных машин.
- Загрузка с виртуального SCSI или SCSI-DVD диска – виртуальный IDE-контроллер полностью «выпилен».
- Возможность сетевой PXE загрузки с использованием синтетического сетевого адаптера, которая происходит быстрее чем при использовании Legacy Network Adapter в первом поколении виртуальных машин
- Отсутствие Legacy устройств – остались только синтетические устройства
- Enhanced Session Mode – новый функционал консоли управления Hyper-V, позволяющий подключаться к рабочему столу виртуальной машины непосредственно из консоли через шину VMBus (даже без наличия подключения виртуальной машины к сети). При этом администратор получает в свое распоряжение все преимущества RDP-сеанса: возможность выбора разрешения экрана, поддержку буфера обмена, смарт-карт, перенаправления USB-устройств (подробности есть тут).
За счет отказа от эмуляции устаревших типов оборудования существенно увеличилась скорость загрузки виртуальной машины и уменьшилось время на установку гостевой ОС. В различных тестах разница в скорости загрузки и развертывания ВМ 1 и 2 поколения достигает 20% и 50% соответственно, что особенно интересно в различных VDI сценариях.
Требования и ограничения виртуальных машин 2 поколения
В качестве гостевых ОС в виртуальных машинах Hyper-V второго поколения поддерживаются:
- Windows Server 2012
- Windows Server 2012 R2
- Windows 8 x64
- Windows 8.1 x64
Судя по всему данное ограничение связано с тем, что именно эти версии ОС поддерживают спецификацию UEFI 2.3.1 с Secure Boot.
2-ое поколение виртуальных машин Hyper-V в Windows Server 2012 R2 обеспечивает прирост производительности виртуальных машин, особенно на этапах установки и загрузки, обладает повышенной безопасностью, работает на UEFI и освобождено от необходимости поддержки эмуляции устаревшего оборудования.