Одним из главных нововведений в гипервизоре 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 и освобождено от необходимости поддержки эмуляции устаревшего оборудования.
Прекрасный обзор отличной новости. Спасибо
Автор жжет 🙂 «Новое поколение виртуальных машин отличается от предыдущего одним главным принципом – оно разработано специально для виртуальных машин»
Виртуальные машины разработаны для виртуальных машин ))))
Ну да, как-то кривовато… немного поправил текст.
Ребята… спасите.. мне надо вирт.машинку из Hyper-V под 2008 виндой перенести в Hyper-V под 2012 (( обычный импорт не катит, как я понимаю…
А чем нативный импорт виртуальных не устраивает? По-моему в редакциях Standard и Datacenter он работает на ура.
Или вы в обоихслучаях используете бесплатный сервер Hyper-V?
Справился )) Оказалось все очень просто. Создал новую машину на 2012, Gen 1 и просто прицепил VHD
Подскажите:
Какое количество виртуальных процессоров поддерживает windows 2003 server R2 standard?
Есть
windows 2012 R2 standard(Хост)
+ windows 2003 server R2 standard (виртуальная машина)
Сервер двух-процессорный на Intel X5570
При назначении 16 процессоров ,виртуалка видит только 8
Говорят надо настроить NUMA(А я там чего только не ставил,все равно 8).
Это ограничение именно на первое поколение виртуальных машин или ограничение для 2003 server.
Или все таки можно заставить видеть все процессоры?
на сайте ms пишут,что 1 или 2 виртуальных процессора
Как тогда 8 получается?
В первую очередь смотрите на ограничения гостевой ОС:
Windows Server 2003 Standard поддерживает до 4 CPU
Windows Server 2003 Enterprise — до 8 CPU
Теперь поясните пожалуйста!
Одно ядро — это один виртуальный процессор?так?
Если ограничения гостевой ОС 4,то получается что он должен видеть только 4 процессора?У меня видит 8
Ставил даже Enterprise и DATACENTER видит только 8
Под логическим (виртуальным) процессором может понимается все доступные яжра физического процессора с учетом Hyper-Threading. Т.е. для сервера с двумя шестиядерными процессорами Xeon, с учетом Hyper-threading будет доступно 24 виртуальных процессора.
В вашем примере для 2 ядерного Intel X5570 — имеется 16 виртуальных процессоров.
Т.е. гостевая ОС (виртуальная) Win 2003 x86 standart у вас видит (работает) на 8 процессорах?
Извините у меня был Ent(а я думал Standatd,это был — факап).
В заблуждение меня вводил DataCenter который больше 8 не видел и не виит!
на сайте ms пишут,что 1 или 2 виртуальных процессора
Как тогда 8 получается?
Сразу предупреждаю, виртуальная ОС работает без звука, нет поддержки звуковых карт как это исправить ?
Какая версия Hyper-V, гостевой ОС? На хосте Hyper-v звук работает?
Вроде бы раньше как-то решалось через виртуальную звуковую карту у гостя.
Добрый день! Подскажите как конвертировать gen2 to gen1, мне нужно мигрировать вм (linux) в Azure, а он принимает только первую генерацию!
Вроде уже и вторую может:
_https://learn.microsoft.com/en-us/azure/virtual-machines/generation-2
Если нужно сконвертировать в gen1, наверно быстрее всего через v2v миграцию в новую ВМ с gen1