Віртуальні машини другого покоління в Windows Server 2012 R2.
Одним з нововведень в Windows Server 2012 R2 стала можливість створення віртуальних машин другого покоління. Тема досить цікава, я думаю варто детальніше з'ясувати, що з себе представляє це нове покоління віртуальних машин і чим воно відрізняється від попереднього.
Почнемо з теорії.
В Hyper-V є два види віртуальних пристроїв:
1) емульованого, або застарілі (legacy) - віртуальні пристрої, адаптовані певні фізичні пристрої, такі як BIOS, системні шини ISA і PCI, IDE-контролер, Ethernet адаптер і т.п .;
2) Синтетичні - повністю віртуальні пристрої, які не адаптовані реальні залізяки.Синтетичні пристрої можуть використовуватися тільки при встановлених в гостьовій системі компонентах інтеграції, які є (у числі іншого) і драйверами для цих пристроїв.
При використанні емуляції гостьова операційна система вважає, що вона звертається до реальних фізичних пристроїв, а гипервизор перехоплює звернення ОС і перенаправляє їх до емульованого пристроїв, які емулюються робочим процесом віртуальної машини.Синтетичні пристрої звертаються до апаратних компонентів сервера простішим способом, використовуючи провайдерів служб віртуалізації, розташованих на хості. Звернення здійснюється через віртуальну шину VMBus, що набагато швидше, ніж емуляція фізичних пристроїв.
Емуляція вимагає певних накладних витрат, знижуючи продуктивність і ускладнюючи роботу гипервизора. Однак далеко не всі операційні системи підтримують технології віртуалізації, і для того, щоб запустити їх усередині віртуальних машин потрібно піти на обман, створивши видимість запуску на реальному фізичному обладнанні.Саме тому в віртуальних машинах першого покоління частково емулюється якась абстрактна конфігурація обладнання часів Pentium II - биос AMI, чіпсет Intel 440BX, відеокарта S3 і т.п. Переконатися в цьому можна, відкривши диспетчер пристроїв у віртуальній машині 1 покоління і відсортувавши пристрою з підключення.
Але часи змінюються і на даний момент є операційні системи, в яких можливість роботи в віртуальному середовищі закладена спочатку. Таким ОС не потрібні милиці у вигляді емульованого пристроїв, вони можуть визначити, що запущені всередині віртуальної машини і використовувати відповідні ресурси хостовой системи безпосередньо, як при завантаженні так і в процесі роботи.
Саме для таких ОС і призначене друге покоління віртуальних машин в Hyper-V. У другому поколінні ВМ розробники повністю відмовилися від використання емулюючий пристроїв, залишивши тільки синтетичні пристрої, підключені до віртуальної шині VMBus. І якщо ми заглянемо в Device Manager в машині 2 покоління, то картина буде зовсім інший.
Для того, щоб краще оцінити масштаб змін, порівняємо властивості віртуальних машин різних поколінь.
Ось вікно налаштувань ВМ першого покоління.
А це налаштування ВМ другого покоління .
Як бачите, дещо змінилося:
• Замість стандартного BIOS використовується firmware на основі Unified Extensible Firmware Interface (UEFI).Це дає можливість використовувати для ВМ технологію безпечного завантаження (Secure Boot);
• Друге покоління ВМ не має legacy пристроїв і для завантаження по мережі може використовувати стандартний мережевий адаптер, тоді як в першому поколінні мережева завантаження можливе тільки з використанням legacy network adapter;
• Виключений IDE-контролер, замість нього залишився SCSI-контролер з можливістю завантаження;
• Прибрано застарілі пристрої, такі як floppy-дисковод і COM-порти.
Все це виглядає досить переконливо, але що ми отримаємо в результаті? Наведу основні плюси при використанні 2 покоління ВМ.
Швидкість розгортання
Відмова від емульованого пристроїв позитивно позначається на швидкості установки операційної системи. При рівних умовах розгортання віртуальних машин другого покоління відбувається в середньому на 50% швидше, ніж першого.
Швидкість завантаження
Відсутність необхідності емулювати пристрої при запуску впливає і на швидкість завантаження операційної системи, на одному і тому ж обладнанні ВМ другого покоління стартують приблизно в 1,5 - 2 рази швидше. Варто відзначити, що після завантаження в справу вступають компоненти інтеграції, що дозволяють ВМ працювати більш ефективно, тому на працюючій системі різниці в продуктивності практично немає.
Завантаження по мережі
Завантаження по мережі (PXE) з використанням стандартного мережевого адаптера проходить швидше, ніж при використанні legacy network adapter в ВМ першого покоління.
Можливість завантаження з SCSI
Друге покоління ВМ може завантажуватися з віртуального жорсткого диска або DVD, підключеного до SCSI контролеру, тоді як перше покоління в якості завантажувального диска могло використовувати тільки IDE диски.
Зміна розміру завантажувального диска
Ще одна особливість ВМ другого покоління, безпосередньо котра пов'язана з попередньою - можливість зміни розміру завантажувального диска на льоту. Так як в першому поколінні завантаження ВМ можлива тільки з IDE-диска, а інтерфейс IDE в принципі не підтримує гарячу заміну, то для зміни розміру системного диска необхідно було зупиняти ВМ.Виртуалки другого покоління вміють завантажуватися з SCSI, що дає можливість збільшувати \ зменшувати розмір завантажувального диска без зупинки машини.
Створення віртуальної машини другого покоління
Для отримання віртуальної машини другого покоління треба при її створенні вибрати потрібний пункт в консолі Hyper-V Manager, або скористатися командлети New-VM з параметром -Generation 2.При цьому треба врахувати, що покоління віртуальної машини вибирається тільки при її створенні, змінити цей вибір для існуючої машини і конвертувати ВМ одного покоління в інше неможливо.
Також треба пам'ятати, що конфігурацію обладнання, необхідну для 2 покоління ВМ, підтримують не всі операційні системи.На даний момент в якості гостьової ОС в ВМ другого покоління можна використовувати тільки:
• Windows Server 2012 і Windows Server 2012 R2;
• Windows 8 або Windows 8.1, тільки 64-бітові версії.
як же хостовой системи можна використовувати Windows Server 2012 R2, а також 64-бітові версії Windows 8.1 Pro або Enterprise.
Висновок
Поява другого покоління віртуальних машин в Hyper-V, на мій погляд, є цілком логічним кроком. Нове покоління ВМ звільнився від застарілих емульованого пристроїв, в замін яких використовуються повністю синтетичні віртуальні пристрої. Це забезпечує приріст продуктивності на етапі розгортання і запуску машини, а також надає деякі додаткові можливості.
З недоліків же хіба що вкрай обмежений (на даний момент) коло підтримуваних гостьових ОС. Втім, перше покоління ВМ як і раніше є для всіх інших систем, а ми при створенні ВМ можемо вільно вибирати між ними. До того ж обидва покоління мирно уживаються на одному сервері і без проблем працюють один з одним.П>.