Друге покоління віртуальних машин Hyper-V

Одним з головних нововведень в гіпервізора 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-пристроїв (подробиці є тут).
Порада. За даний функціонал відповідає опція Enhanced Session Mode в настройках віртуальної машини Hyper-V.

За рахунок відмови від емуляції застарілих типів обладнання істотно збільшилася швидкість завантаження віртуальної машини і зменшився час на установку гостьовий ОС. У різних тестах різниця в швидкості завантаження і розгортання ВМ 1 і 2 покоління досягає 20% і 50% відповідно, що особливо цікаво в різних VDI сценаріях.

Примітка. В процес роботи ВМ підвищення швидкості роботи віртуальної машини малопомітно, тому що інтеграційні компоненти Hyper-V дозволяють віртуальної машини працювати на максимально ефективному рівні.

Вимоги та обмеження віртуальних машин 2 покоління

В якості гостьових ОС у віртуальних машинах Hyper-V другого покоління підтримуються:

  • Windows Server 2012
  • Windows Server 2012 R2
  • Windows 8 x64
  • Windows 8.1 x64

Судячи з усього це обмеження пов'язане з тим, що саме ці версії ОС підтримують специфікацію UEFI 2.3.1 з Secure Boot.

важливо. Після створення віртуальної машини змінити покоління безпосередньо неможливо, що не дивно, тому що в одному випадку використовується BIOS, а в іншому - UEFI (проте існують непрямі методи міграції за допомогою сторонніх утиліт або конвертацію V2V).

2-е покоління віртуальних машин Hyper-V в Windows Server 2012 R2 забезпечує приріст продуктивності віртуальних машин, особливо на етапах установки і завантаження, має підвищену безпекою, працює на UEFI і звільнено від необхідності підтримки емуляції застарілого обладнання.