Налаштування розподілу ресурсів для ВМ. Пули ресурсів

Спочатку поговоримо про налаштування, які дозволять гарантувати або обмежити кількість ресурсів, що виділяється для однієї ВМ або групи ВМ в пулі ресурсів

Для процесорів і памяті віртуальних машин ми можемо задавати налаштування limit, reservation і shares По-русски їх можна обізвати як «максимум», «мінімум» і «частка» відповідно Поговоримо про них по порядку Наприкінці наведені мої міркування і рекомендації з планування цих налаштувань

Якщо ви зайдете в налаштування ВМ ⇒ закладка Resources, То побачите настройки

ресурсів для цієї ВМ Виділимо налаштування процесорної підсистеми (рис 61)

Reservation – Це кількість мегагерц гарантовано закріплюється за даної ВМ в момент її включення Зверніть увагу: резерв – це блокуюча настройка Якщо у сервера недостатньо мегагерц, щоб забезпечити резерв ВМ, то віртуальна машина не включиться з відповідним повідомленням про помилку (рис 62)

Рис 61 Налаштування ресурсів для процесорів ВМ

Рис 62 Повідомлення про брак ресурсів для забезпечення резерву процесора ВМ

Limit Для процесорів це – максимальна кількість мегагерц, що може бути виділено для цієї ВМ на всі її процесори За замовчуванням варто прапорецьUnlimited – Це означає, що штучно ми не обмежуємо процесорні ресурси ВМ, вони обмежені тільки фізично Один віртуальний процесор не може отримати мегагерц більше, ніж надає одне ядро процесора фізичного

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

Shares Проте як бути в ситуації, коли ресурсів сервера достатньо для покриття резервів всіх працюючих ВМ, однак недостатньо для задоволення вироб ня їхніх апетитів (і вони не вперлися у свої ліміти) У таких ситуаціях працює настройка Shares (Частка) Яку частку складає кількість shares однієї ВМ щодо суми shares всіх претендують на ресурс ВМ – таку частку цього ресурсу ВМ і отримає Shares – це саме частка, це безрозмірна величина

Приклад: на одному ядрі сервера виявилися три однопроцесорні ВМ Shares у них однаковий, по 1000 Всього 3000 = 1000 × 3, значить, частка будь ВМ – одна

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

Ще раз нагадаю: механізм shares працює, коли ВМ:

Q вже перевищила свій резерв

Q ще не досягла свого ліміту

Q ресурсів не вистачає на все претендують на них ВМ

Якщо для якоїсь ВМ збільшити або зменшити shares – їй негайно збільшать або зменшать частку ресурсу, вимикання ВМ для цього не потрібно

У полі shares ви можете вибрати одну з трьох констант – Low, Normal або High, відповідні 500, 1000 або 2000 shares Або вибрати Сustom і вказати довільне їх число Дані константи введені для вашої зручності – адже все одно у вас будуть типові, більш і менш важливі ВМ

Зверніть увагу на мій приклад: «На одному ядрі виявилися три ВМ .. » Це важливий нюанс – процесорний ресурс дискретний Реально боротися за ресурси процесора ВМ будуть, лише опинившись на одному ядрі Також для ВМ з одним віртуальним процесором максимально доступна продуктивність – це продуктивність одного ядра Задирати резерв або ліміт вищий – безглуздо

Міркування з приводу використання цих налаштувань див п 613 «Рекомендації з налагодження Limit, Reservation і Shares»

Якщо ви зайдете в налаштування ВМ ⇒ закладка Resources, То побачите настройки

ресурсів для цієї ВМ Виділимо налаштування памяті (рис 63)

На перший погляд, все точно так само, як і для процесора, але є нюанс

Рис 63 Налаштування ресурсів для памяті ВМ

Reservation – Це кількість мегабайт гарантовано закріплюється за даної ВМ в момент її включення Зверніть увагу: резерв – це блокуюча настройка Якщо у сервера недостатньо мегабайт, щоб забезпечити резерв ВМ, то ВМ не увімкнеться з відповідним повідомленням про помилку

Limit – Це максимальна кількість мегабайт, що може бути виділено для цієї ВМ Але що означає стоїть за замовчуванням прапорець Unlimited

І що за память тоді налаштовується на закладці Hardware (Рис 64)

Рис 64 Налагодження «Hardware» памяті

Що означає Reservation, якщо гостьова ОС в будь-якому випадку бачить весь виділений їй обсяг памяті

З памяттю ситуація наступна

Верхньою межею, тобто кількістю памяті, яке бачить гостьова ОС, є налагодження памяті на закладціHardware Я її надалі буду називати «hardware memory», і таку назву вам може зустрітися документа ції Таким чином, якщо ви хочете обмежити ВМ зверху, мене не настройкуLimit, А кількість памяті на закладці Hardware

Reservation – Стільки мегабайт памяті гарантовано виділяється з фі-

зической оперативної памяті Все, що більше резерву, може бути виділено з файлу підкачки

Limit – Більше цієї кількості мегабайт НЕ буде виділено з фізичної оперативної памяті Залишок до hardware memory обовязково буде виданий з файлу підкачки, навіть якщо на сервері немає недоліку в вільної оперативної памяті

Швидше за все, ви не будете використовувати настройкуLimit на рівні ВМ Якщо вам необхідно виділити для ВМ менше памяті – зменшуйте значення настройки Hardware memory Ситуацій, в яких вам може знадобитися зміна налаштування Limit, небагато Наприклад, стоїть завдання протестувати додаток Х, у якого жорсткі системні вимоги, і вона відмовляється запускатися, якщо вважає, що компютер їм не задовольняє (у нього менше А гігабайт ОЗУ) Якщо у сервера ESX (i) мало ресурсів, то можна налаштуванням hardware memory вказати достатню для запуску програми X кількість памяті А налаштуванням Limit обмежити реальне споживання оперативної памяті сервера цієї ВМ Або, як варіант, ви зараз не хочете виділяти якийсь ВМ багато памяті, але в майбутньому це може знадобитися Для збільшення Hardware memory потрібно вимикання ВМ (за винятком випадку використання тих гостьових ОС, які підтримують гаряче додавання памяті), для збільшення Limit – Ні

Shares Проте як бути в ситуації, коли ресурсів сервера достатньо для покриття резервів всіх працюючих ВМ, однак недостатньо для задоволення вироб ня їхніх апетитів (і вони не вперлися у свої ліміти) У таких ситуаціях працює настройка Shares («частка») Яку частку складає кількість shares однієї ВМ щодо суми shares всіх претендують на ресурс ВМ – таку частку цього ресурсу ВМ і отримає Shares – Це саме частка, це безрозмірна величина Зверніть увагу: якщо для процесора константи Low, Normal і High відповідають 500, 1000 або 2000 shares на ВМ, то для памяті це не так Для памяті Low, Normal або High відповідають 5, 10 або 20 shares на кожен мегабайт памяті ВМ

Приклад: на сервері виявилися три ВМ Обєм памяті у двох дорівнює 500 Мб, у третьої – 1000 Мб Shares у них однаковий, Normal, тобто по 10 на мегабайт Див рис 65

Всього shares 20 000 Віртуальні машини А і Б мають право на до чверті від усієї памяті ВМ В – на половину, при такій же налаштуванні shares І це логічно, оскільки апетити ВМ В вдвічі вище кожної з інших

Рис 65 Опис прикладу розподілу часток памяті

Ще раз нагадаю – механізм shares працює, коли ВМ:

Q вже перевищила свій резерв

Q ще не досягла свого ліміту

Q памяті не вистачає на все претендують на неї ВМ

Якщо для якоїсь ВМ збільшити або зменшити shares, їй негайно збільшать або зменшать частку ресурсу, вимикання ВМ для цього не потрібно

Зверніть увагу: якщо ВМ НЕ задіє память – ESX (i) не адресою її для цієї ВМ Подивитися це можна на закладціSummary для віртуальної машини (рис 66)

Рис 66 Інформація про обсяги виділеної і використовуваної памяті

Виділена настройка Memory = 1 Гб Стільки памяті бачить гостьова ОС, це настройка «Hardware memory» Праворуч показана «Active Guest Memory» – стільки памяті активно використовує гостьова ОС А «Consumed Host Memory »показує, скільки фізичної памяті ESX (i) виділив під дані цієї ВМ У спрощеній формулюванні це означає, що ESX (i) може зменшити Consumed Memory до Active Memory при необхідності, без шкоди для продуктивності ВМ

Якщо виділити пул ресурсів, vApp, сервер, кластер або дата-центр і перейти на закладкуVirtual Machines, То подібну інформацію можна отримати для всіх ВМ виділеного обєкта (рис 67)

Рис 67 Дані по використанню памяті для всіх ВМ на одному сервері

За замовчуванням ви побачите не зовсім той же набір стовпців Це налаштовується в контекстному меню даної закладки ⇒ View Column

Стовпець Memory Size – це «hardware memory» Стовпець Guest Mem% – який відсоток від виділеної памяті активно використовує гостьова ОС

Якщо у сервера недостатньо памяті для задоволення резерву ВМ, то ця ВМ не увімкнеться Якщо у сервера недостатньо памяті для задоволення апетитів ВМ понад резерву – то недолік фізичної оперативної памяті буде компенсований файлом підкачки Механізмів підкачки використовується два – файл підкачки гостьовий ОС і файл підкачки VMkernel, створюваний для кожної віртуальної машини при її включенні Далі про ці механізми я розповім трохи детальніше, тут же хочу зазначити – при включенні ВМ створюється файл Vswp Саме в цей файл ESX (i) адресує частина памяті ВМ, якщо памяті фізично не вистачає Як велика ця частина У найгіршому випадку це вся память понад резерву до hardware memory Розмір файлу підкачки якраз такий: «hardware memory» мінус reservation Таким чином, якщо залишити reservation рівним нулю, при включенні кожної ВМ створюється файл розміром з її оперативну память Висновків звідси два:

Q якщо на сховище для файлів підкачки (за замовчуванням файл підкачки

створюється в каталозі ВМ) недостатньо місця для створення цього файлу – ВМ не увімкнеться

Q якщо вам необхідно звільнити скількись місця на розділах VMFS,

один із способів – це збільшення reservation для памяті ВМ: чим більше резерв, тим менше місця резервується під файл vswp, файл підкачки VMkernel (альтернатива цьому – розташування файлів підкачки VMker nel на окремому сховищі)

Ситуація:

Q сервер, у сервера 16 Гб памяті Витрата памяті на сам ESX (i) як ОС, на накладні витрати опустимо для простоти

Q три ВМ Кожній виділено по 10 Гб памяті (hardware memory):

• у ВМ А shares = normal, reservation = 0

• у ВМ Б shares = normal, reservation = 5 Гб

• у ВМ В shares = high, reservation = 0

Крок 1 – рис 68 Велика окружність – память сервера, 16 Гб Три ВМ під маленькою навантаженням – А і Б активно використовують не більше 3 Гб памяті, ВМ В – не більше 6 Гб Ресурсів вистачає на всіх, тому настройки reservation і shares не роблять впливу на розподіл ресурсів

Рис 68 Ілюстрація використання ресурсів Крок 1

Тут пунктирними колами показані 10 Гб, які номінально виділені кожної ВМ

Крок 2 – рис 69 Навантаження на ВМ зростає, і памяті сервера на всіх вже не вистачає ESX (i) починає розраховувати частки ресурсів

Крок 3 – рис 610 Ресурси памяті розділені відповідно до reservation і shares За рахунок Shares віртуальні машини А і Б мають право на 4 Гб памяті кожна, а віртуальна машина В – на 8 Гб Але віртуальній машині Б дісталося 5 Гб, так як таке значення має настройка reservation для цієї ВМ Решта 11 Гб діляться між ВМ А і ВМ В з урахуванням їх shares Всю відсутню память ВМ отримують з файлів підкачки

Рис 69 Ілюстрація використання ресурсів Крок 2

Рис 610 Ілюстрація використання ресурсів Крок 3

Міркування з приводу використання пулів ресурсів см в п 613 «Рекомендації з налагодження Limit, Reservation і Shares»

Джерело: Міхєєв М О Адміністрування VMware vSphere 41 – М: ДМК Пресс, 2011 – 448 с: Ил

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*