Hyper-V

Гіпервізор від компанії Microsoft

Hyper-V, кодова назва Viridian[1] (також відомий як Windows Server Virtualization) — це вбудований гіпервізор, який здатен створювати віртуальні машини в системах під керуванням ОС Windows. Hyper-V прийшов на заміну Windows Virtual PC починаючи з Windows 8. Серверний комп'ютер на якому запущено Hyper-V може бути налаштований як декілька віртуальних серверів, на кожному з яких буде функціонувати своя операційна система і різні додатки.

Hyper-V
Компонент Microsoft Windows
Диспетчер Hyper-V в Windows 10
Деталі
Тип Гіпервізор
У комплекті з
Замінює Windows Virtual PC
Пов'язані компоненти
App-V, Віддалений робочий стіл

Hyper-V вперше з'явився в Windows Server 2008 в 64-бітній версії. Автономний сервер Microsoft Hyper-V Server є безкоштовним, однак постачається без GUI, керування відбувається з командного рядка.

Історія ред.

Бета-версія Hyper-V була включена в деякі версії Windows Server 2008 x64. Фінальна версія була випущена 26 червня 2008 року та розповсюджувалась через Windows Update. З тих пір Hyper-V випускають з кожною версією Windows Server.

Hyper-V поширюється в двох варіантах:

  1. Компонент Windows: Hyper-V є опціональним компонентом Windows Server 2008 і пізніших версій. Він також доступний у форматі x64-розрядного SKU для випусків Pro та Enterprise ОС Windows 8, Windows 8.1, Windows 10 і Windows 11.
  2. Hyper-V Server: Це freeware-версія Windows Server з обмеженою функціональністю та компонентом Hyper-V.

Hyper-V Server ред.

1 жовтня 2008 року на конференції «Technologies to Change Your Business» (укр. Технології для зміни вашого бізнесу) в Лондоні генеральний директор Microsoft Стів Балмер оголосив про реліз Hyper-V Server 2008. Він включав Windows Server 2008 Server Core і Hyper-V ролі; інші ролі Windows Server 2008 відключені, а служби Windows обмежені. Налаштування ОС, фізичного обладнання та програмного забезпечення виконуються через інтерфейс командного рядка. Підтримується віддалений доступ через підключення до віддаленого робочого стола. Адміністрування та конфігурація ОС і гостьових віртуальних машин, як правило, виконуються через мережу, використовуючи або Консоль керування Microsoft на іншому комп'ютері з Windows, або System Center Virtual Machine Manager. Це дозволяє набагато простіше налаштовувати, а також контролювати Hyper-V Server.

Архітектура ред.

 
Windows7 запущена в Hyper-V під Windows 10

Hyper-V реалізує ізоляцію віртуальних машин з точки зору розділу. Розділ є логічною одиницею ізоляції, що підтримується гіпервізором, в якому виконується кожна гостьова операційна система. Гіпервізор обов'язково має принаймні один батьківський розділ, який запускає підтримувану версію Windows Server (2008 та пізнішої версії) або Windows 8 (та пізніші). Програмне забезпечення віртуалізації працює у батьківському розділі та має прямий доступ до апаратних пристроїв. Батьківський розділ створює дочірні розділи, на яких розміщуються гостьові ОС. Батьківський розділ створює дочірні розділи за допомогою Hypercall API, який є інтерфейсом прикладного програмування, що надається Hyper-V. Hypercall API надає методи за допомогою яких батьківські розділи обмінюються даними з дочірніми.

Дочірній розділ не має доступу до фізичного процесора, а також не обробляє його реальні переривання. Замість цього він має віртуальне представлення процесора і виконується в Гостьовій віртуальній адресі (англ. Guest Virtual Address), який, в залежності від конфігурації гіпервізора, може бути не обов'язково неперервним віртуальним адресним простором. Гіпервізор обробляє переривання процесора і перенаправляє їх до відповідного розділу за допомогою логічного Контролера синтетичних переривань (англ. Synthetic Interrupt Controller або SynIC). Апаратне забезпечення Hyper-V може прискорити трансляцію адрес гостьових віртуальних адресних просторів за допомогою Second Level Address Translation (SLAT), наданого процесором, який називається EPT в Intel та RVI (раніше NPT) в AMD. З приходом Windows Server 2016 для використання ролі Hyper-V підтримка процесором SLAT є обов'язковою (раніше це була лише рекомендація).

Дочірні розділи не мають прямого доступу до апаратних ресурсів, вони мають віртуальний вигляд ресурсів з точки зору віртуальних пристроїв. Будь-який запит на віртуальні пристрої переадресовується через VMBus, який керує запитами, на пристрої батьківського розділу. VMBus є логічним каналом, який забезпечує взаємодію між розділами. Відповідь також перенаправляється через VMBus. Якщо пристрої у батьківському розділі також є віртуальними пристроями, вони будуть перенаправлені далі, поки не досягнуть батьківського розділу, де буде отримано доступ до фізичних пристроїв. Батьківські розділи запускають Virtualization Service Provider (VSP), який підключається до VMBus і обробляє запити доступу до пристроїв з дочірніх розділів. Віртуальні пристрої дочірнього розділу запускають Virtualization Service Client (VSC), який перенаправляє запит до VSP у батьківському розділі через VMBus. Весь цей процес є прозорим для гостьової ОС.

Віртуальні пристрої також підтримують технологію Windows Server Virtualization, що називається прогресивне введення-виведення (англ. Enlightened I/O), для накопичувачів, мережевих та графічних підсистем, зокрема. Enlightened I/O — це спеціалізована реалізація протоколів зв'язку високого рівня для віртуалізації, подібна SCSI, що дозволяє обходити будь-який шар емуляції пристроїв і працювати з VMBus безпосередньо. Це робить комунікацію більш ефективною, але вимагає, щоб гостьова ОС підтримувала Enlightened I/O.

Наразі Enlightened I/O підтримують такі операційні системи, що дозволяє їм працювати швидше як гостьові операційні системи під Hyper-V, в порівнянні з іншими ОС, яким потрібна більш повільна емуляція апаратного забезпечення:

Системні вимоги ред.

Роль Hyper-V доступна лише у варіантах x86-64 Standard, Enterprise, Datacenter і Essentials випусків Windows Server 2008 і пізніших версій, а також випуски Windows 8 і пізніші версій Pro, Enterprise і Education. На Windows Server він може бути встановлений незалежно від того, чи є установка повною або базовою. Крім того, Hyper-V може бути доступним як частина операційної системи Hyper-V Server, яка є безкоштовним випуском Windows Server. У будь-якому випадку, хост-комп'ютер повинен відповідати наступним вимогам:

Обсяг пам'яті, призначений для віртуальних машин, залежить від операційної системи:

  • Windows Server 2008 Standard підтримує до 31 ГБ пам'яті для запущеної VMs, плюс 1 ГБ для батьківської ОС.[6]
  • Windows Server 2008 R2 Standard підтримує до 32 ГБ пам'яті, але випуски Enterprise та Datacenter підтримують до 2 ТБ.[7] Hyper-V Server 2008 R2 підтримує до 1 ТБ.[8]
  • Windows Server 2012 підтримує до 4 ТБ.

Кількість ЦП, призначених для кожної віртуальної машини, також залежить від ОС:

  • Windows Server 2008 та 2008 R2 підтримують 1, 2, чи 4 ЦП на віртуальну машину; те ж саме стосується і Hyper-V Server 2008 R2.[9]
  • Windows Server 2012 підтримує до 64 ЦП на віртуальну машину.

Існує також обмеження на кількість одночасно активних віртуальних машин:

  • Windows Server 2008 та 2008 R2 підтримують 384 віртуальні машини на одному сервері;[10] Таке ж обмеження у Hyper-V Server 2008.[9]
  • Windows Server 2012 підтримує 1024 віртуальні машини на сервер; те ж саме стосується Hyper-V Server 2012.[11]
  • Windows Server 2016 підтримує 8000 віртуальних машин на кластер і на вузол.[12]

Підтримка Linux ред.

У вересні 2020 року у LKML з'явилася перша серія патчів, що дозволяє роботу Hyper-V лише з операційною системою Linux.[13] Основною причиною запропонованої підтримки є те, що більшість віртуальних машин у хмарному сервісі Microsoft Azure працює саме під Linux.

Див. також ред.

Примітки ред.

  1. Microsoft to ship Windows Server 2008, over time, in eight flavors. Архів оригіналу за 24 вересня 2010. Процитовано 13 листопада 2007.(англ.)
  2. а б Craig, Thomas (2015). Optimizing Citrix® XenDesktop® for High Performance (Англ.) . Packt Publishing Ltd. с. 42—43. ISBN 9781785288760. Архів оригіналу за 9 лютого 2019. Процитовано 9 лютого 2019.
  3. Staging: hv: storvsc: Move the storage driver out of the staging area. Процитовано 28 Грудня 2015.(англ.)
  4. FreeBSD and Microsoft Windows Server Hyper-V support. Архів оригіналу за 18 липня 2014. Процитовано 10 Лютого 2015.(англ.)
  5. Thurott, Paul. Q: Will Windows Server 2012 require the processor to support SLAT?. Архів оригіналу за 9 серпня 2017. Процитовано 9 Лютого 2019.(англ.)
  6. Memory Limits for Windows Releases. docs.microsoft.com. Архів оригіналу за 10 лютого 2019. Процитовано 9 лютого 2019.(англ.)
  7. Microsoft Windows Server 2008 System Requirements. Microsoft.com. Архів оригіналу за 12 червня 2011. Процитовано 7 жовтня 2012.[недоступне посилання — копія](англ.)
  8. Microsoft Hyper-V Server: System Requirements. Microsoft.com. Microsoft. Архів оригіналу за 14 березня 2010.(англ.)
  9. а б Microsoft Hyper-V Server 2008 R2: Frequently Asked Questions. Microsoft.com. Microsoft. Архів оригіналу за 14 Серпня 2011.(англ.)
  10. Microsoft Hyper-V Server: Overview. Microsoft.com. Microsoft. Архів оригіналу за 22 березня 2012. Процитовано 3 червня 2019.(англ.)
  11. Hyper-V Server whitepaper (PDF). Архів оригіналу (PDF) за 7 листопада 2013. Процитовано 3 червня 2019.(англ.)
  12. Plan for Hyper-V scalability in Windows Server 2016. Microsoft.com. Процитовано 4 червня 2019.(англ.)
  13. Microsoft submits Linux kernel patches for a 'complete virtualization stack' with Linux and Hyper-V (англ.). Архів оригіналу за 19 вересня 2020. Процитовано 18 вересня 2020. Linux on Azure might no longer need Windows

Посилання ред.