No history yet

Механізми розподілу ресурсів

Розподіл потужності процесора

Уявіть собі фізичний сервер з потужним процесором (CPU) як шахового гросмейстера. Віртуальні машини (VM) — це його супротивники, що сидять за різними дошками. Гросмейстер не грає одну повну партію, а потім переходить до наступної. Замість цього він швидко переміщується від дошки до дошки, роблячи один хід у кожній грі. Цей процес настільки швидкий, що кожному гравцеві здається, ніби він грає проти гросмейстера один на один.

Гіпервізор робить щось подібне з процесором. Він нарізає час роботи процесора на крихітні шматочки, які називаються "часовими квантами", і розподіляє їх між різними віртуальними машинами. Це називається часовим мультиплексуванням. Кожна VM отримує свою чергу для виконання інструкцій, і перемикання відбувається тисячі разів на секунду. Через таку швидкість кожна VM працює так, ніби має власний процесор.

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

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

Керування пам'яттю

Пам'ять (RAM) — це робочий простір для будь-якого комп'ютера. У віртуалізованому середовищі гіпервізор виділяє кожній VM частину фізичної пам'яті хоста. Проблема полягає в тому, що сума пам'яті, яка потрібна всім VM, може перевищувати обсяг фізичної пам'яті сервера.

Для вирішення цієї проблеми гіпервізори використовують кілька розумних технік:

Надлишкове виділення пам'яті (Memory Overcommitment): Гіпервізор обіцяє віртуальним машинам більше пам'яті, ніж є фізично. Це працює, тому що більшість VM рідко використовують всю виділену їм пам'ять одночасно. Це схоже на те, як авіакомпанії продають більше квитків, ніж є місць у літаку, розраховуючи, що хтось не прийде на рейс.

А що, якщо всім VM раптом знадобиться пам'ять? Тут в гру вступає балонування пам'яті (memory ballooning). У кожній VM працює невеликий драйвер, схожий на повітряну кульку. Коли гіпервізору потрібно забрати пам'ять у однієї VM, щоб віддати іншій, він "надуває" кульку всередині гостьової ОС. Операційна система VM бачить, що пам'яті стає менше, і віддає найменш важливі дані. Потім гіпервізор "здуває" кульку і передає звільнену пам'ять тій VM, яка її потребує більше.

Віртуальні диски та мережі

Віртуалізація поширюється не лише на процесор і пам'ять, але й на сховище та мережеві з'єднання.

Віртуалізація сховища: Гіпервізор бере великий фізичний жорсткий диск (або масив дисків) і створює на ньому файли, які для віртуальних машин виглядають як повноцінні жорсткі диски. Ці файли (наприклад, з розширеннями .vmdk або .vhd) містять усе: операційну систему VM, програми, дані. Це дозволяє легко копіювати, переміщувати та створювати резервні копії цілих віртуальних машин, просто працюючи з одним файлом.

Lesson image

Віртуалізація мережі: Щоб VM могли спілкуватися між собою та із зовнішнім світом, гіпервізор створює віртуальний комутатор (vSwitch). Це програмний аналог фізичного мережевого комутатора. Кожна VM отримує власну віртуальну мережеву карту (vNIC), яка підключається до цього віртуального комутатора. vSwitch направляє трафік між VM на одному хості і може підключати їх до фізичної мережевої карти сервера для виходу в інтернет.

Балансування навантаження

У великих хмарних середовищах на одному фізичному сервері можуть працювати десятки VM. Якщо деякі з них стають занадто "гарячими" — тобто споживають занадто багато ресурсів, — це може сповільнити роботу інших. Щоб цього уникнути, використовується балансування навантаження.

Сучасні системи віртуалізації постійно відстежують використання процесора, пам'яті та мережі кожною VM. Якщо система виявляє, що один фізичний сервер перевантажений, а інший має вільні ресурси, вона може автоматично виконати "живу міграцію" — перемістити VM з одного сервера на інший без зупинки її роботи. Користувачі навіть не помітять, що їхній застосунок тепер працює на іншому обладнанні.

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

Quiz Questions 1/5

Який основний принцип використовує гіпервізор для розподілу ресурсів центрального процесора (CPU) між кількома віртуальними машинами?

Quiz Questions 2/5

Яку технологію використовує гіпервізор для динамічного перерозподілу оперативної пам'яті (RAM) між віртуальними машинами, коли одна з них потребує більше ресурсів?

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