Роль диска ВМ виконує пара файлів -
Саме в останньому міститися ті дані, що лежать на диску виртуалки.
Притому, цей файл за умовчанням створюється предразмеченним - тобто під нього резервується все місце, яке він може зайняти. Т.ч. якщо ви створили диск для ВМ і його розмір вказали в 40 ГБ, все 40 ГБ на VMFS розділі у виявляться зайнятими відразу.
(Відступ в сторону - якщо vmdk створюється на NFS розділі, то саме на NFS він відразу створюється в форматі "thick" - "зростаючий" за фактом, з нульовим початковим розміром. Так само, можемо в цьому форматі створювати vmdk і на VMFS - але зараз тільки за допомогою командного рядка, не з GUI. Детальніше тут - Типи дисків (vmdk файлів))
Так ось. Тепер, з ВМ ми можемо зробити снапшот. Це - знімок стану, фіксація поточного стану цієї ВМ, на яке можна повернутися потім.
Технічно це означає наступне:
файл
створюється файл
Якщо ще через якийсь час зробити ще один снапшот, то тепер в режим тільки читання перекладається і
файл
У моєму прикладі це 40 ГБ.
ВАЖЛИВО!
Для функціонування ВМ потрібні всі vmdk файли - і основний, -flat.vmdk, і всі файли-дельта. Чи не вподібнюйтеся персонажу звідси.
На що варто звернути увагу:
ВМ з диском в 40 ГБ реально на VMFS розділі може займати до 40 * (к-ть снапшотов + 1) гігабайт місця. Кожна така ВМ.
Притому, є думка, що в деяких випадках файли дельти можуть рости досить активно при практично нульовій активності з диском ВМ. Адже навіть тоді, коли ви або додаток нічого не міняєте на диску виртуалки, там є файл підкачки, наприклад - який змінюється => зростає дельта.
Так само вкрай не рекомендується робити дефрагментацію ВМ зі снапшотов - бо виросте дельта, і вирости вона може сильно.
Видалення снапшотов розміром в 100 ГБ може займати 3-6 годин.
Розширювати диск ВМ має снапшоти - погана ідея. Збільшення розміру диска можна командою vmkfstools -X або з GUI (починаючи з 3.5 версії ESX). Так ось, швидше за все, ВМ більше не стартує, якщо розширення диска було вироблено при наявних снапшотов. Як лагодити - Top Support Issues and How to Solve Them - Batch 2.
Якщо є бажання, щоб диск ВМ був неподвержен снапшотов, то в його властивостях виберіть "Independent". До речі, якщо ВМ має "Independent" диски, то в снапшот не може бути включена її пам'ять.
Наступна проблема. яка може перед вами встати - це видалення снашотов.
Якщо у ВМ є кілька снапшотов, і ви натиснули кнопку "Delete all", то
спочатку послідовно зіллються всі дельти, потім вони добавяться до
приклад:
у вас є кілька снапшотов, тобто кілька файлів. Приблизно так:
Тобто для застосування всіх снапшотов вам може знадобитися місце понад зайнятого - близько до 5ГБ в моєму прикладі. Після закінчення застосування воно звільнитися.
Якщо такий варіант вам не підходить, тому що від снапшотов треба позбутися терміново, а місця на Місяці взяти ніде, то можна піти іншим шляхом:
- Клонувати ВМ в інше сховище (Datastore). Якщо у вас версія нижче, ніж VI 3.5 Update 2, це зажадає її виключення. У клону снапшотов не буде.
Правда, іноді буває глюк, і при клонуванні все снапшоти коректно не застосовуються (для клону). Але ця ситуація описана в KB VMware:
If a clone through the VMware Infrastructure 3 client did not commit the snapshots; you can try to export the disk with vmkfstools to recreate the virtual machine:
1. Run the following command to create a directory for the new disk:
[Root @ bs-tse-d06 RHEL5] # mkdir / vmfs / volumes / openfiler-iscsi / new_RHEL5
2. Run the following command to point vmkfstools at the last snapshot file:
[Root @ bs-tse-d06 RHEL5] # vmkfstools -i RHEL5-000001.vmdk / vmfs / volumes / openfiler
iscsi / new_RHEL5 / new_RHEL5.vmdk
Destination disk format: VMFS thick
Cloning disk 'RHEL5-000001.vmdk' ...
Clone: 3% done
[Root @ bs-tse-d06 RHEL5] #
3. Recreate the machine. Select Use an existing virtual disk.
Ще при створенні снапшотов створюються:
* .vmsd файл - файл з описом цього снапшота.Содержіт snapshot display name, unique identifier (UID), disk file name, і т.д.
* .vmsnфайл - файл з оперативкою ВМ на момент зняття снапшотов (якщо вона була включена, і ви вказали що пам'ять потрібно зберегти). Якщо пам'ять збережена, то при поверненні до цього снапшотов ВМ виявиться в працюючому стані.
Важливо. якщо обсяг пам'яті ВМ дорівнює 3 ГБ, у неї зроблено 4 снашота зі збереженням пам'яті - то це ще 12 ГБ місця на VMFS розділі.
Можна створювати снапшоти з командного рядка, командою "vmware-cmdcreatesnapshot".
Синтаксис приблизно такий:
"Vmware-cmd myvm1.vmx createsnapshot snap1 'before upgrade' 1 + 1"
Дві останні позиції - це відповіді на питання - чи робити "quiesce" дисків ВМ, і зберігати її пам'ять. 1 = так, 0 = немає.
Так само є команди "vmware-cmdremovesnapshots" і "vmware-cmdrevertsnapshot".