Hyper-V, кодова назва Viridian[1] (також відомий як Windows Server Virtualization) — це вбудований гіпервізор, який здатен створювати віртуальні машини в системах під керуванням ОС Windows. Hyper-V прийшов на заміну Windows Virtual PC починаючи з Windows 8. Серверний комп'ютер на якому запущено Hyper-V може бути налаштований як декілька віртуальних серверів, на кожному з яких буде функціонувати своя операційна система і різні додатки.
Hyper-V | |
---|---|
Деталі | |
Тип | Гіпервізор |
У комплекті з |
|
Замінює | 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 поширюється в двох варіантах:
- Компонент 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.
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.
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. У будь-якому випадку, хост-комп'ютер повинен відповідати наступним вимогам:
- Центральний процесор з підтримкою технологій:
- NX bit
- x86-64
- Апаратна віртуалізація (Intel VT або AMD-V)
- Second Level Address Translation[en] (починаючи з Windows Server 2012)[5]
- Не менше 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.
Wikiwand in your browser!
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.