Hyper-V
Hyper-V | |
---|---|
Деталі | |
Тип | Гіпервізор |
У комплекті з |
|
Замінює | Windows Virtual PC |
Пов'язані компоненти | |
App-V, Віддалений робочий стіл |
Hyper-V, кодова назва Viridian[1] (також відомий як Windows Server Virtualization) — це вбудований гіпервізор, який здатен створювати віртуальні машини в системах під керуванням ОС Windows. Hyper-V прийшов на заміну Windows Virtual PC починаючи з Windows 8. Серверний комп'ютер на якому запущено Hyper-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 поширюється в двох варіантах:
- Компонент Windows: Hyper-V є опціональним компонентом Windows Server 2008 і пізніших версій. Він також доступний у форматі x64-розрядного SKU для випусків Pro та Enterprise ОС Windows 8, Windows 8.1, Windows 10 і Windows 11.
- Hyper-V Server: Це freeware-версія Windows Server з обмеженою функціональністю та компонентом Hyper-V.
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.
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, в порівнянні з іншими ОС, яким потрібна більш повільна емуляція апаратного забезпечення:
- Windows Server 2008 та пізніші[2]
- Windows Vista та пізніші[2]
- Linux з ядром версії 3.4 чи вище[3]
- FreeBSD[4]
Роль 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. У будь-якому випадку, хост-комп'ютер повинен відповідати наступним вимогам:
- Центральний процесор з підтримкою технологій:
- Не менше 2 ГБ пам'яті, не враховуючи тих, які виділяються віртуальним машинам.
Обсяг пам'яті, призначений для віртуальних машин, залежить від операційної системи:
- 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]
У вересні 2020 року у LKML з'явилася перша серія патчів, що дозволяє роботу Hyper-V лише з операційною системою Linux.[13] Основною причиною запропонованої підтримки є те, що більшість віртуальних машин у хмарному сервісі Microsoft Azure працює саме під Linux.
- ↑ Microsoft to ship Windows Server 2008, over time, in eight flavors. Архів оригіналу за 24 вересня 2010. Процитовано 13 листопада 2007.(англ.)
- ↑ а б Craig, Thomas (2015). Optimizing Citrix® XenDesktop® for High Performance (Англ.) . Packt Publishing Ltd. с. 42—43. ISBN 9781785288760. Архів оригіналу за 9 лютого 2019. Процитовано 9 лютого 2019.
- ↑ Staging: hv: storvsc: Move the storage driver out of the staging area. Процитовано 28 Грудня 2015.(англ.)
- ↑ FreeBSD and Microsoft Windows Server Hyper-V support. Архів оригіналу за 18 липня 2014. Процитовано 10 Лютого 2015.(англ.)
- ↑ Thurott, Paul. Q: Will Windows Server 2012 require the processor to support SLAT?. Архів оригіналу за 9 серпня 2017. Процитовано 9 Лютого 2019.(англ.)
- ↑ Memory Limits for Windows Releases. docs.microsoft.com. Архів оригіналу за 10 лютого 2019. Процитовано 9 лютого 2019.(англ.)
- ↑ Microsoft Windows Server 2008 System Requirements. Microsoft.com. Архів оригіналу за 12 червня 2011. Процитовано 7 жовтня 2012. [Архівовано 2011-06-12 у Wayback Machine.](англ.)
- ↑ Microsoft Hyper-V Server: System Requirements. Microsoft.com. Microsoft. Архів оригіналу за 14 березня 2010.(англ.)
- ↑ а б Microsoft Hyper-V Server 2008 R2: Frequently Asked Questions. Microsoft.com. Microsoft. Архів оригіналу за 14 Серпня 2011.(англ.)
- ↑ Microsoft Hyper-V Server: Overview. Microsoft.com. Microsoft. Архів оригіналу за 22 березня 2012. Процитовано 3 червня 2019.(англ.)
- ↑ Hyper-V Server whitepaper (PDF). Архів оригіналу (PDF) за 7 листопада 2013. Процитовано 3 червня 2019.(англ.)
- ↑ Plan for Hyper-V scalability in Windows Server 2016. Microsoft.com. Процитовано 4 червня 2019.(англ.)
- ↑ 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