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

Примітка. Відзначимо, що в останній версії гипервизора Microsoft – є технологія динамічного зміни (як розширення, так і стиснення) віртуальних дисків під назвою Hyper -V Online VHDX Resize.

Важливо. Дана інструкція не є офіційно підтримуваним рішенням зі стиснення vmdk дисків, проте автором статті у продуктивній середовищі застосовувалася вже не раз. При написанні цієї статті використовувався версія ESXi 5.1.

Зміна розміру віртуального vmdk диска в vmware esxi
Перед здійсненням процедури зменшення розміру віртуального диска на 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). Якщо цього не зробити, після стиснення віртуального диска можна отримати непрацездатну файлову систему.

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

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

нерозмічена область диска в гостьовій ОС на vmware

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

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

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

    Каталог з файлами віртуальної машини vmware

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

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

  5. Ми хочемо зменшити розмір vmdk диска з 40 до 20 Гб. Це означає, що в секції Extent description потрібно вказати значення: 41943040 (20 Гб * 1024 * 1024 * 1024/512). Задайте новий розмір віртуального диска за допомогою текстового редактора (vi або nano). Зменшуємо розмір vmdk диска на vmware
  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

    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
  • джерело не поламається при помилку в призначенні параметрів завдання конвертації

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

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

Саме вимкнена.
Тобто, перед конвертацією, на вихідної віртуальній машині необхідно виконати: Закрити або Вимкніть живлення, а не Призупинити.

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

vm-конвертер-1Вибираємо вихідну ВМ.

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

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

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

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

vm-конвертер-6vm-конвертер-7vm-конвертер87

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

Leave a Reply

Your email address will not be published. Required fields are marked *