Чому знімки VM впливають на продуктивність?


27

В одній із статей VMware KB я читав, що знімки безпосередньо впливатимуть на роботу VM.

Але моя команда постійно запитує мене, як знімки можуть вплинути на продуктивність.

Я хотів би дати їм грунтовну причину за твердженням, що знімки - це вбивці продуктивності.

Чи може хтось трохи пояснити теорію про те, як знімки насправді впливають на продуктивність? Це лише тому, що швидкість дискового вводу / виводу жорсткого диска буде повільною?


2
Не впевнений, чи читаєте ви цю статтю про КБ, чи ні. Я думав, що додам це як орієнтир.
Аарон Коплі

Відповіді:


28

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


2
Найкраще пояснення. Ви не тільки збільшуєте подвоєння IOPS, але є і центральні витрати при обчисленні різниці на рівні блоку.
Аарон Коплі

3
Прочитавши цю статтю, пов'язану Аароном Коплі ( kb.vmware.com/selfservice/microsites/… ), це здається гіршим. Знімок не є диференційованим зображенням, це журнал змін, тому якщо ви запишете ті самі дані на одне і те ж місце в 10 разів, знімок збільшить його розмір на 10, помноживши розмір написаних вами даних. Натомість диференціальне зображення повинно бути більш ефективним, оскільки воно повинно перезаписувати дані, переписані в одному місці.
Макс

1
@zespri Проблема стосується всіх платформ віртуалізації, що використовують цей вид знімкової технології, включаючи Hyper-V.
Ansgar Wiechers

1
Це явно неправильно. Дивіться коментар @Falcon Momot для правильної відповіді. Навіть пов’язана стаття просто стверджує, що диск "може не вистачити місця", що зрозуміло, коли місця, яке залишилося перед тим, як зробити знімок, менше, ніж у дискового знімка, і дельтадиск не має можливості розширюватися.
Даніель

2
@AnsgarWiechers Ця відповідь, безумовно, неправильна. Пов'язана стаття ( kb.vmware.com/s/article/1015180 ) констатує; "Дочірній диск, створений з допомогою знімка, - це розріджений диск. На розріджених дисках використовується механізм копіювання на запис (COW), у якому віртуальний диск місцями не містить даних, доки він не буде скопійований записом." Слідом за цим; "Якщо віртуальна машина закінчує знімок, вона вносить зміни до дочірнього або розрідженого диска. Чим більше операцій запису на цьому диску, тим більше він зростає, до верхньої межі розміру базового диска плюс а невелика кількість накладних витрат ».
Steve365

5

Коли ви створюєте знімок на VM, це створює Delta Disk, і операційна система записує в цей файл замість оригінального VMDK. Цей файл називається VM_Name-Delta.VMDK, але якщо системі потрібно послатись на файл перед знімком, він буде посилатися на VM_Name.VMDK, збільшуючи введення / вивід цієї операції. Якщо ви робите кілька знімків, ви посилаєтесь на останній дельта-файл останнього знімка, а не на оригінальний VMDK, таким чином збільшуючи введення-вивід.

Приклад.

ОС ---> Знімок (створено файл A) ---> (Файл знімка B створено)

Якщо мені потрібно посилатись на файл A, він буде переглядати 3 VMDK, щоб знайти це.

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

Створюється файл, у якому перераховані всі файли, створені під час процесу знімка


2

Наскільки я можу сказати, VMWare використовує логіку копіювання при записі для реалізації своїх знімків. Отже, коли ви створюєте його, кожна операція, виконана на вашому VM (наприклад, майже все під час виконання), спричинить копіювання невеликого розміру VM, поки вся справа не буде по суті клонована.

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

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


-2

Від значень High co-stop (% CSTP), які видно під час знімків віртуальної машини :

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.