Гіпервізор – що це? Як працює віртуалізація

Що таке гіпервізор і для чого він потрібний? У цій статті ми пояснюємо принципи роботи віртуалізації, розповідаємо про види цієї технології та розглядаємо приклади конкретних рішень.

Системи віртуалізації та гіпервізор

Віртуалізація – це технологія створення уявлення кількох комп'ютерів чи серверів із урахуванням одного фізичного комп'ютера, сервера чи серверного кластера. Ця фізична машина називається хостом; у неї є певна конфігурація процесора, оперативної та дискової пам'яті тощо. Фізичні ресурси за допомогою спеціалізованого програмного забезпечення розподіляються таким чином, щоб розгорнути кілька незалежних один від одного віртуальних машин.

Іншими словами, віртуалізація – ілюзія присутності кількох окремих комп'ютерів, тобто віртуальних машин, на тому самому фізичному обладнанні. А створюється ця ілюзія за допомогою гіпервізора.

Гіпервізор – це програма, яка керує фізичними ресурсами обчислювальної машини та розподіляє ці ресурси між декількома різними операційними системами, дозволяючи запускати їх одночасно.

Іншими словами, гіпервізор створює з одного фізичного комп'ютера кілька копій, клонів апаратних ресурсів, і кожен клон видно з боку користувача як окремий пристрій. На кожну віртуальну машину можна встановити гостьову операційну систему користувача, яка не прив'язана до «заліза» хоста.

Гіпервізор ізолює запущені ОС один від одного так, щоб кожна їх монопольно використовувала виділені їй ресурси. Але за необхідності гіпервізор дозволяє операційним системам віртуальних машин і взаємодіяти між собою. Механізмом зв'язку між ОС може бути загальний доступ до певних файлів та обмін даними по локальній мережі.

Схема роботи віртуальної машини (VM) Схема роботи віртуальної машини

Таким чином, замість одного комп'ютера начебто виходить кілька, і кожен із них працює зі своїм ПЗ незалежно від інших. Проте насправді втілення кожної такої віртуальної машини – лише набір файлів у пам'яті хоста. Зрозуміло, якщо вимкнути фізичний сервер - вся ілюзія одразу зникне, тому що перестане працювати гіпервізор.

Гіпервізори прийнято поділяти на два типи. Але є ще й, так званий, гібридний гіпервізор, який поєднує властивості обох типів.

Одна з найважливіших вимог до гіпервізору – безпека

У чому особливості роботи гіпервізорів 1 типу?

Гіпервізор першого типу називають ще мікроядром, тонким гіпервізором, автономним гіпервізором, що виконується на «голому залізі». Гіпервізор першого типу найпростіше сприймати як специфічну компактну операційну систему, яка встановлюється прямо на залізо (bare-metal server) і має основні ознаки ОС:

  • замість невпорядкованого набору апаратного забезпечення надає абстрактний набір ресурсів для прикладних програм (так званий, «погляд зверху»);
  • управляє набором ресурсів – розподіляє процесорний час, пам'ять, пристрої вводу-виводу між програмами, які претендують на використання ресурсів комп'ютера (так званий, «погляд знизу»).

Він надає гостьовим ОС, запущеним під його керуванням на верхньому рівні, абстракцію, тобто службу віртуальної машини. У результаті кожна гостьова операційна система отримує собі від гіпервізора ілюзію повноправного розпорядження всіма «нижчими» ресурсами комп'ютера – аналогічно тому, якби ОС працювала на реальному устаткуванні в привілейованому режимі ядра, режимі супервізора.

Гіпервізор 1 типу Принцип роботи гіпервізора 1 типу

Супервізор – центральний модуль, що управляє, ядро операційної системи. Може складатися з кількох частин: супервізора програм, диспетчера завдань, супервізора вводу-виводу та інших.

Більшість сучасних процесорів Intel і AMD для десктопів і серверів на апаратному рівні підтримує технологію віртуалізації та поділ роботи ОС на два рівні привілеїв: режим ядра (привілейований) та режим користувача. При цьому повноваження прикладної програми управління ресурсами комп'ютера істотно урізані.

У ПЗ гіпервізора першого типу є дуже важлива особливість – розмір коду на два порядки (тобто в сотні разів) менше, ніж у більшості сучасних операційних систем. Це забезпечує так само меншу кількість можливих помилок, що призводять до зависання всієї системи. Збій у роботі ОС на одній із віртуальних машин користувача не повинен вплинути на роботу всіх сусідніх машин на тому самому фізичному обладнанні.

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

  • блокувати переривання;
  • модифікувати таблиці відображення сторінок віртуальної пам'яті на фізичну для комп'ютера;
  • змінювати дані в осередках пам'яті, виділених інших запущених процесів (крім випадків, коли це заздалегідь передбачено логікою роботи, обміну даними між ними).

Системні виклики також перехоплюються та виконуються всередині гіпервізора, але з боку кожної гостьової ОС все виглядає так, як має бути при звичайному виконанні інструкцій у її режимі ядра. Іншими словами, гіпервізор створює «ілюзію» для гостьової операційної системи, що її код виконується хостом на рівні заліза, у привілейованому режимі, хоча де-факто вона функціонує в режимі користувача. Якщо відбудеться крах однієї з гостьових систем, робота решти триватиме.

Гіпервізор виявляється єдиним програмним забезпеченням, яке запущене в режимі максимальних привілеїв. Така властивість гіпервізора називається еквівалентністю – поведінка програм користувача не відрізняється під час роботи на віртуальній машині та на фізичному обладнанні за винятком тимчасових характеристик.

При цьому час виконання коду суттєво відрізняється – гіпервізор забирає частину процесорного часу для своїх потреб та перехоплення й аналізу інструкцій гостьової ОС, а також емуляції виконання деяких із них. Крім того, ресурси фізичного обладнання зазвичай розділені між декількома віртуальними машинами і кожна з них отримує на вимогу лише частину процесорного часу. Однак цього достатньо для повноцінної роботи більшості процесів, оскільки не всі вони постійно і рівномірно завантажені. Частина може простоювати в очікуванні дій користувача або завершення роботи повільного периферійного устаткування. Цей час ефективно використовується, оскільки система перерозподіляє його для інших активних процесів у багатозадачному режимі.

Типи гіпервізорів

До першого типу гіпервізорів можна віднести Xen, VMware ESXi, Hyper-V та низку інших.

Xen (Xenserver, Citrix Hypervisor)

Тонкий гіпервізор Xen був розроблений у рамках дослідницького проекту лабораторії Кембриджського університету, і в 2003 році компанією XenSource випущено перший публічний реліз. Із 2007 року XenSource поглинена Citrix, внаслідок чого частина продуктів отримала нові назви. Xen являє собою кросплатформенний гіпервізор, що підтримує апаратну віртуалізацію та паравіртуалізацію. Містить мінімальний обсяг коду, оскільки більшість компонентів винесено за межі гипервизора. Xen – гіпервізор із повністю відкритим кодом ліцензії GNU GPL 2, що дає необмежені можливості модифікувати продукт. За рахунок підтримки паравіртуалізації та апаратної віртуалізації Xen відносять також до гібридного типу гіпервізорів.

VMWARE ESXI

Автономний гіпервізор VMware ESXi – це рішення для віртуалізації класу Enterprise, розроблене компанією VMware. Як і в інших продуктів VMware, ESXi доступний у безкоштовній версії, з обмеженим функціоналом, і платною – з розширеними можливостями, наприклад централізоване управління всіма віртуальними машинами на всіх хостах проекту за допомогою платформи vCenter. Але навіть безкоштовна версія гіпервізора успішно реалізує обов'язкові функції гіпервізора. Користувачі відзначають високу стабільність продукту, простоту в адмініструванні, мінімальний код, широкий спектр гостьових систем, що підтримуються, – основні версії ОС, які використовуються в корпоративному секторі.

HYPER-V

Системне рішення Microsoft для апаратної віртуалізації призначене для x64-систем. Існує у двох варіантах – як роль у серверних ОС сімейства Windows (Windows Server 2008, Windows Server 2012 та ін., а також у x64-бітній Pro- та Enterprise-версії систем Windows 8, Windows 8.1, Windows 10) та у вигляді окремого продукту Microsoft Hyper-V Server. Багато з тих, хто звик працювати з Microsoft, вважають Hyper-V найзручнішим і найбільш юзабільним рішенням, якщо мова заходить про віртуалізацію. До речі, хмара Azure повністю побудована на нативних продуктах корпорації MS.

Гіпервізор другого типу працює як один із процесів, що виконуються основною ОС

Як працюють гіпервізори 2 типу?

Гіпервізор другого типу називається також хостовим (hosted). Він є додатковим програмним шаром, розташованим поверх основної операційної системи.

Фактично гіпервізор другого типу працює як один із процесів, що виконуються основною ОС, найчастіше – Linux. І тут повноваження гіпервізора значно скромніше: він управляє гостьовими операційними системами, а емуляцію і управління фізичними ресурсами перебирає хостова ОС.

Гіпервізор 2 типу Принцип роботи гіпервізорів 2 типу

Найбільш популярні гіпервізори другого типу - Oracle VirtualBox, VMware Workstation, KVM.

ORACLE VM VIRTUALBOX

Oracle VM VirtualBox – модульний кросплатформенний гіпервізор для операційних систем Linux, MacOS, Microsoft Windows, FreeBSD, Solaris/OpenSolaris, ReactOS, DOS та інших від корпорації Oracle. Був створений у 2007 р. у корпорації Sun Microsystems, потім після поглинання її Oracle робота над гіпервізором продовжилася. Вихідний код базової версії відкритий за ліцензією GNU GPL, тому гіпервізор користується популярністю та доступний для необмеженого модифікування. Цікаво, що VirtualBox здатний підтримувати 64-бітові гостьові системи, навіть якщо ОС хоста 32-бітна.

VMWARE WORKSTATION

Перша версія гіпервізора VMware Workstation, розробленого компанією VMware, що входить до EMC Corporation, побачила світ у 1999 році. Це пропрієтарне програмне забезпечення, що працює з x86-64 операційними системами хоста Microsoft Windows, Linux, Ubuntu, CentOS. Підтримує понад 200 гостьових ОС. Для тесту можна скористатися безкоштовною версією Workstation Player, яка сильно урізана у функціональності, порівняно з версією Pro.

KVM

Kernel-based Virtual Machine, KVM – гіпервізор, створений у жовтні 2006 року і майже відразу був інтегрований з основною гілкою ядра Linux версії 2.6.20., випущеної на початку 2007 року. Пізніше KVM був адаптований як модуль ядра в FreeBSD. У KVM включені завантажуваний модуль ядра kvm.ko, що відповідає за віртуалізацію, процесорно-специфічний завантажуваний модуль для AMD або Intel kvm-amd.ko, або kvm-intel.ko, та компоненти режиму користувача QEMU. KVM – повністю відкрите ПЗ за ліцензією GNU GPL та GNU LGPL. До речі, під час створення публічної хмари SIM-Cloud IaaS інженери використовували для віртуалізації KVM QEMU.

Гібридний гіпервізор управляє процесором та пам'яттю, а пристроями введення-виводу – через гостьові ОС

Що таке гібридні гіпервізори?

Гібридні гіпервізори мають частину ознак як першого, так і другого типів (поєднання "тонкого" гіпервізора і спеціальної, що працює "на залозі" службової ОС під його керуванням). Гіпервізор управляє безпосередньо процесором і пам'яттю, а через службову ОС гостьові отримують доступ до пристроїв вводу-виводу.

Технології постійно розвиваються, і виробники гіпервізорів шукають шляхи вдосконалення своїх продуктів, створюють нові версії, більш гнучкі, більш інтегровані до різних систем та умов. В останні роки гіпервізори Xen і Hyper-V все частіше відносять вже не до першого типу, а до гібридного, і це частково вірно. Сучасні версії цих гіпервізорів значною мірою поєднують у собі властивості обох типів.

Паравіртуалізація модифікує гостьові ОС для виконання у віртуалізованому середовищі

Що таке паравіртуалізація?

Популярним рішенням є паравіртуалізація - установка спеціально підготовленої гостьової ОС, ядро якої змінюється для ефективної роботи з гіпервізором 2 типу. Звичайно ж, мова не може йти про модифікацію пропрієтарних систем із закритим кодом, таких як Windows. Натомість для доопрацювання більшості версій Linux дозвіл власника не потрібен.

При паравіртуалізації гостьові ОС модифікуються для виконання у віртуалізованому середовищі, тобто необхідна умова паравіртуалізації – відкритий вихідний код всіх компонентів операційних систем. Однак суттєве підвищення продуктивності, порівнянно з продуктивністю реальної, невіртуалізованої системи робить технологію паравіртуалізації затребуваною серед користувачів.

Контейнери можуть розгорнути більше програм на одному фізичному сервері, ніж гіпервізори

Що таке контейнерні рішення?

Останні кілька років гіпервізори стала відтісняти на другий план порівняно нова технологія контейнерів. Причина цього в тому, що контейнери можуть на одному фізичному сервері розгорнути більшу кількість програм порівняно з гіпервізорами. Контейнерні рішення віртуалізації ґрунтуються переважно на доопрацьованому ядрі Linux. У цьому випадку, коли на хост-машині використовується ядро Linux, гостьовими ОС можуть бути тільки представники сімейства Linux.

Серед контейнерів поширений гіпервізор OpenVZ, на якому заснована платформа Virtuozzo. Перевагою рішення OpenVZ – хороша продуктивність, максимальне використання ресурсів фізичного сервера за рахунок високої густини розміщення ВМ.

Цікавим є також контейнерне рішення Jailhouse від Siemens. Цей гіпервізор працює на "залізі", але запускається на працюючій системі Linux і забезпечує її поділ на ізольовані "комірки" - розділи системи для виконання програм користувача.

Хмарний сервер

Хмарний сервер

Дізнатися більше про високодоступну публічну хмару SIM-Cloud

Дізнатися більше

Який гіпервізор краще вибрати?

Обираючи гіпервізор, слід пам'ятати основні завдання гіпервізора будь-якого типу:

  • емуляція апаратних ресурсів комп'ютера;
  • безпечне виконання машинних вказівок;
  • запобігання виконання команд гостьових ОС режиму супервізора на реальній хост-машині (без їх перехоплення та аналізу, емуляції виконання).

Оптимальну технологію віртуалізації для кожного випадку користувача допоможуть вибрати профільні фахівці. Вони врахують побажання до проекту, наявне фізичне апаратне забезпечення, ціну ПЗ, наявність та доступність техпідтримки та низку інших важливих факторів. Наприклад, плануючи використання VMware ESXi та деяких інших гіпервізорів будьте готові до того, що доведеться платити за ліцензії та придбати якісне фізичне обладнання для встановлення системи віртуалізації.

Під час підготовки до роботи з гіпервізорами:

  • приділіть час ретельному вивченню інформації на сайті виробника ПЗ віртуалізації;
  • попередньо перевірте відповідність параметрів наявного фізичного обладнання мінімальним технічним вимогам гіпервізора;
  • проаналізуйте інші властивості вибраного ПЗ (щоб реальність збіглася з очікуваннями).

Якщо у вас виникли питання при виборі оптимальної технології віртуалізації, звертайтеся до служби Customer Care – ми з радістю вас проконсультуємо.

Чи була ця стаття корисною?

Теги:

#сервер

Сподобалася стаття?

Згода на використання файлів cookie

Натискаючи "Я згоден", ви даєте згоду на використання файлів cookie на нашому веб-сайті, щоб надати вам найбільш релевантний досвід, запам'ятовуючи ваші уподобання та повторні відвідування. Однак ви можете відвідати "Керування файлами cookie", щоб надати контрольовану згоду. Детальніше

Налаштування файлів cookie

Функціональні

Необхідні файли cookie мають важливе значення для основних функцій веб-сайту, і без них веб-сайт не буде працювати належним чином.

Аналітичні

Аналітичні файли cookie використовуються для розуміння того, як відвідувачі взаємодіють із веб-сайтом.

Рекламні

Рекламні файли cookie використовуються для надання відвідувачам релевантної реклами та маркетингових кампаній.