Зменшення розміру віртуального диска на ESXi

На відміну від процедури розширення диска віртуальної машини VMWare, яку можна виконати прямо "на-льоту", процедура зменшення розміру vmdk файлу на гіпервізора VMWare ESXi завдання більш складна, і виконати її безпосередньо через графічний інтерфейс vSphere Client в принципі неможливо - вказати менший розмір просто не вийде.

зміст:
  • Зменшення розділу всередині гостьової ОС
  • Зменшення розміру VMDK файлу віртуальної машини VMware
  • Зменшення розміру віртуального диска через конвертацію за допомогою VMware vCenter Converter Standalone
Примітка. Відзначимо, що в останній версії гипервизора Microsoft - є технологія динамічного зміни (як розширення, так і стиснення) віртуальних дисків під назвою Hyper -V Online VHDX Resize. важливо. Дана інструкція не є офіційно підтримуваним рішенням зі стиснення vmdk дисків, проте автором статті у продуктивній середовищі застосовувалася вже не раз. При написанні цієї статті використовувався версія ESXi 5.1.


Перед здійсненням процедури зменшення розміру віртуального диска на VMWare ESXi необхідно обов'язково:

  • Видалити всі снапшоти віртуальної машини, в іншому випадку ви можете пошкодити віртуальний диск
  • Створіть повну резервну копію віртуальної машини або ж просто зробіть копію зменшуваного vmdk файлу за допомогою команд:
    cp vmname.vmdk backup_vmname.vmdk
    cp vmname-flat.vmdk backup_vmname-flat.vmdk

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

  • Зменшення розділу всередині гостьової ОС
  • Зменшення розміру VMDK файлу віртуальної машини VMware

Зменшення розділу всередині гостьової ОС

В першу чергу необхідно зменшити розмір дискового розділу всередині гостьової операційної системи. Це можна зробити з диспетчера управління дисками (операція Shrink Volume, підтримувана починаючи з Windows Vista) або за допомогою сторонніх утиліт (наприклад, Acronis Disk Director). Якщо цього не зробити, після стиснення віртуального диска можна отримати непрацездатну файлову систему.

Припустимо, ми хочемо зменшити розмір диска на 19, 5 Гб. Значить розмір тому повинен бути зменшений на 19968 Мб (19.5 Гб x 1024). Саме це значення потрібно ввести в поле майстра Shrink Volume. Після зменшення розміру розділу на нашому диску залишиться деяка кількість нерозміченого простору (в нашому прикладі 19,5 Гб)

Зменшення розміру VMDK файлу віртуальної машини VMware

Переходимо до другої операції - безпосередньо зраджую розміру VMDK файлу на файлової системи VMWare VMFS.

  1. Вимкніть віртуальну машину, розмір віртуального диска якій ви хочете зменшити
  2. Підключіться по SSH до консолі гипервизора ESXi, на якому зареєстрована ВМ
  3. Перейдіть в каталог, в якому зберігається vmdk файл ВМ (шлях можна дізнатися у властивостях віртуального диска в графічному клієнта vSphere):
    cd / vmfs / volumes / datastore / VM-name

  4. Переглянемо вміст конфігураційного файлу з розширенням * .vmdk за допомогою команди cat:
    cat VM-name.vmdk

    Розмір vmdk диска задається в секції #Extent description (Після символів RW). В даному випадку вказана цифра 83886080 (40 Гб * 1024 * 1024 * 1024/512)

  5. Ми хочемо зменшити розмір vmdk диска з 40 до 20 Гб. Це означає, що в секції Extent description потрібно вказати значення: 41943040 (20 Гб * 1024 * 1024 * 1024/512). Задайте новий розмір віртуального диска за допомогою текстового редактора (vi або nano).
  6. Залишилося склоніровать або смігріровать (Storage VMotion) віртуальну машину на інше сховище (datastore). Після переміщення файлів віртуальної машини в її властивості відобразиться новий розмір віртуального диска.

    Порада. Якщо vCenter відсутня, або VMFS сховище одне, ці операції недоступні. В такому випадку можна склоніровать vmdk диск командою:

    vmkfstools -i vmname.vmdk vmname-new-size.vmdk

    Видалити оригінальний диск і ще раз склоніровать vmdk диск, повернувши йому колишнє ім'я:

    rm vmname.vmdk
    rm vmname-flat.vmdk
    vmkfstools -i vmname-new-size.vmdk vmname.vmdk

  7. Залишилося запустити гостьову ОС і упевнитися, що нерозмічена область зникла.Порада. Якщо на попередньому кроці використовувалася утиліта vmkfstools, можливо знадобиться перепідключити віртуальний диск в настройках ВМ, тому що його новий розмір може відображатися некоректно.

Отже, ми розглянули один з варіантів виконання операції зменшення розміру віртуальних vmdk дисків на VMWare ESXi. Якщо вимагає зменшити розмір тонкого диска VMWare за рахунок невикористаного місця, рекомендуємо скористатися цією інструкцією.

Примітка. Як поширених альтернативних методик стиснення віртуальних vmdk дисків часто використовуються такі схеми:

  • Зменшення розміру віртуального диска шляхом конвертації віртуальної машини за допомогою VMware vCenter Converter (при конвертації вказується розмір одержуваного диска менший, ніж вихідний)
  • Клонування вмісту віртуального диска за допомогою сторонніх програм (наприклад, Acronis True Image або Symantec Ghost32). Операція виконується шляхом додавання в віртуальну машину нового диска меншого розміру і клонування на нього вмісту більшого диска. Після чого великий диск видаляється.

Зменшення розміру віртуального диска через конвертацію за допомогою VMware vCenter Converter Standalone

Ще один спосіб зменшення розміру віртуальних дисків у ВМ на VMWare з допомогти GUI - скористатися безкоштовним конвертером - VMware vCenter Converter Standalone.

недолік:

  • Спосіб не швидкий

плюси:

  • не потрібно відкривати в консоль vCenter або ESXi хоста
  • створюється точна копія VM
  • джерело не поламається при помилку в призначенні параметрів завдання конвертації

Нижче покрокові інструкції

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

Саме вимкнена.
Тобто, перед конвертацією, на вихідної віртуальній машині необхідно виконати: Shut down або  Power Off, а не Suspend.

Вказуємо адресу ESXi хоста.

Вибираємо вихідну ВМ.

Вказуємо параметри нової ВМ.

Переходимо в режим редагування диска (Data to copy -> Edit)

Вибираємо режим копіювання: Select volumes to copy

Вказуємо бажаний розмір диска в новій ВМ. Як ви бачите, на диску в гостьовій зайнято 48 гб, а розмір самого диска - 150. Ми зменшимо його до 60 Гб.

Запускаємо процес конвертації, відключаємо вихідну ВМ, включаємо нову. Перевіряємо, що розмір диска зменшився, після чого вихідну ВМ можна видалити.