Контакти

Зменшення розміру віртуального диска VHD (X). Як в Hyper-V зменшити розмір диска Зменшення розміру віртуального диска

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

Примітка

Відзначимо, що в останній версії гипервизора 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.

    Вимкніть віртуальну машину, розмір віртуального диска якій ви хочете зменшити

    Підключіться по SSH до консолі гипервизора ESXi, на якому зареєстрована ВМ

    Перейдіть в каталог, в якому зберігається 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-flat.vmdk

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

7. Залишилося запустити гостьову ОС і упевнитися, що нерозмічена область зникла.

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

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

На роботі є кілька віртуальних машин, під керуванням гіпервізіра ESXi 5, коли створював диски зробив їх тонкими, на якомусь етапі розмір займаного диска виріс, хоч я і видаляв дані в віртуальнойм сервері, диск залишається того ж розміру, як можна стиснути диск?

Тонкі (thin) диски VMWare дозволяють істотно заощадити місце на файлової системі VMFS сховища при створенні віртуальної машині. Такі vmdk диски при створенні практично не займають місце на файлову систему і поступово розростаються до максимального розміру в міру накопичення інформації. Однак основна проблема при використанні thin диски полягає в тому, що вони з часом розростаються навіть в тому випадку, якщо ви звільнили місце всередині гостьової операційної системи.

Примітка. При видаленні даних в ОС Windows (і Linux це також стосується) система не заповнює освоїти місце нулями, а просто позначає області як віддалені в метаданих розділу (їх можна використовувати для запису). Виходить, що ESXi сервер не може самостійно визначити які з відданих їй блоків насправді вільні

Стандартного засоби стиснення тонких дисків в ESXi немає, а сама система віртуалізації нічого не знає про особливості зберігання даних всередині гостьової ОС.

У цій статті ми опишемо простий спосіб стиснення тонкого vmdk диска в ESXi.

  1. На першому етапі необхідно допомогти Гіпервізор, заповнивши весь вільний місце на дисках всередині гостьової ОС нулямі.Обнуліть вільні блоки в Windows можна за допомогою утиліти Марка Русиновича SDelete (на момент написання статті остання доступна версія SDelete v1.61, якщо ви використовуєте більш ранню версію SDelete , майте на увазі, в ній можуть використовуватися трохи інші параметри). Завантажити SDelete можна тут: http://technet.microsoft.com/en-us/sysinternals/bb897443.aspx.

    Розпакуйте архів на диск, відкрийте командний рядок (природно, з правами адміністратора) і виконайте наступну команду

    Sdelete -z c:

    В даному випадку c: - це віртуальний тонкий vmdk диск, який ми плануємо стиснути.

    У Linux цю операцію можна виконати з допомогу dd

    Dd if \u003d / dev / zero bs \u003d 64k of \u003d zero.temp; rm zero.temp

  2. Вимикаємо гостьову ОС (Shutdown).

    Примітка. Стиснути диск можна і за допомогою міграції віртуальної машини на інше сховище (Storage VMotion). Однак зазначимо, що даний спосіб не є універсальним і працює тільки при дотриманні певних умов.

  3. Підключаємося до ESXi сервера по SSH під root-ом (не забудьте включити службу SSH і дозволити вхідний трафік на файервол ESXi). Переходимо в каталог c файлами віртуальної машини:
    cd vmfs / volumes / storage1 / vm1

    де storage1 - ім'я сховища, а vm1 - каталог, в якому зберігаються файли з vmdk дисками віртуальної машини

  4. Виведемо «повний» розмір віртуального диска.
    ls -lh * .vmdk

    "Реальний" розмір віртуального диска, який він займає на файлову систему можна дізнатися так:

    Du -h * .vmdk

    Як ви бачите, thin диск займає на сховище 33 Гб (максимальний його розмір 40 Гб). Причому всередині гостьової ОС Windows зайнято всього 15 Гб.

  5. Стискаємо vmdk диск за допомогою vmkfstools. Команда стиснення диска thin буде виглядати так:
    vmkfstools --punchzero /vmfs/volumes/storage1/vm1/vm1.vmdk

    Процедура стиснення в нашому прикладі зайняла близько 5 хвилин (швидкість від розміру диска і швидкості і завантаженості сховища і мережі SAN). Після закінчення процедури стиснення перевіримо поточний розмір vmdk файлу.

    Як ви бачите vmdk диск стиснувся до 15 Гб!

Примітка. Якщо дисків кілька, дану процедуру необхідно виконати для кожного.

Яким би великим не було сховище, місце рано чи пізно на ньому закінчується.

Досить тривалий час маю справу з «Варею» і виробив для себе ось таке правило: Створюємо віртуальну машину мінімального розміру, далі завжди встигнемо розширити диски. Зменшити диски потім буде значно складніше.

Але одного разу настає момент, коли зробити це доводиться.

І зробити це можна кількома способами:

1) виконати Shrink або Compact. Для VMware ESXi можна зробити Shrink через інтерфейс Vmware Tools встановлених на ВМ. Або через інтерфейс засобів адміністрування vSphere. Для VMware Workstation можна зробити Compact у властивостях ВМ у властивостях диска.

Може не спрацювати.

2) Зменшити розмір диска через його клонування:

- додати ще один диск потрібного розміру (меншого) на ВМ для якої хочемо зменшити диск.

- завантажуємо ВМ з завантажувального диска сторонніх програм для клонування дисків (Acronis True Image або Ghost32 (Symantec Norton Ghost) або їм подібні).

- клонуємо вміст великого диска на маленький.

- видаляємо великий диск з ВМ

3) Зменшити розмір диска через конвертацію ВМ за допомогою VMware vCenter Converter. При конвертації можна вказати розмір одержуваного диска менше ніж вихідного.

13.03.2014

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

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


  • Видалити всі снапшоти віртуальної машини, в іншому випадку ви можете пошкодити віртуальний диск

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

    Cp vmname-flat.vmdk backup_vmname-flat.vmdk


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




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

В першу чергу необхідно зменшити розмір дискового розділу всередині гостьової операційної системи. Це можна зробити з диспетчера управління дисками (операція 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 -\u003e Edit)


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


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


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

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

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

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

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

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

В першу чергу необхідно зменшити розмір дискового розділу всередині гостьової операційної системи. Це можна зробити з диспетчера управління дисками (операція, підтримувана починаючи з 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 - скористатися безкоштовним конвертером -.

недолік:

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

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

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

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

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

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

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

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

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

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



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



Сподобалася стаття? поділіться їй