Скорочення диска не працює для гостей ESXi


11

EHLO всі! Моє перше повідомлення в мережі StackOverflow :)

Ми запускаємо деяку інфраструктуру ESXi 5.0 / vCenter для розміщення в основному гостьових систем Debian 6 / amd64 з розділами ext3 та open-vm-toolsкомпільованими з джерела на дебін-помилку 471784 .

Потрапило питання, яке, як видно, порушується по всьому Інтернету, але без переконливої ​​відповіді ніде

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

root@linux64:~# vmware-toolbox-cmd disk list
Shrink disk is disabled for this virtual machine.

Shrinking is disabled for linked clones, parents of linked clones,
pre-allocated disks, snapshots, or due to other factors.
See the User's manual for more information.

(До речі, що таке "інші чинники", а який з тонни довідок та технічних посібників - це посібник користувача? :)

Я знаю, що я можу заповнити розділи нулями (насправді я використовую shred -fuzn0під час видалення великих файлів), а потім вимкніть відповідного гостя і використовую різні методи, наприклад vmkfstools, клонування чи диска vMotioning в режимі тонкого забезпечення тощо, але всі з них або накладається штраф за простой за гостя, коли він зменшується, або призводить до необґрунтованого переміщення даних між сховищами даних та / або хостами.


І відповідь: Немає скорочення в ESX / ESXi (станом на версію 5).

Документація говорить:

ВАЖЛИВО Стискання дисків заборонено за таких обставин:

  1. Віртуальна машина розміщується на сервері ESX / ESXi. Сервер ESX / ESXi може зменшити розмір віртуального диска лише тоді, коли експортується віртуальна машина. Місце, яке займає віртуальний диск на сервері ESX / ESXi, однак, не змінюється.

  2. Віртуальна машина має гостьову операційну систему Mac .

  3. Ви створили весь дисковий простір на віртуальному диску, коли створили його.

  4. Віртуальна машина містить знімок .

  5. Віртуальна машина - це зв'язаний клон або батьківський зв'язаний клон.

  6. Віртуальний диск - це незалежний диск в нестійкому режимі.

  7. Файлова система - це файлова система журналу , така як файлова система ext4, xfs або jfs .

Тож не дивно , що НЕ варіант стискатися в VMWare Workstation , але не в Vsphere клієнта , підключеного до примірника ESXi або VCENTER.


2
ви можете показати значення ключа isolation.tools.diskShrink.disable, яке можна знайти у файлі vmx?
cikuraku

1
Його там не було. Додавання isolation.tools.diskShrink.disable = "false" нічого не змінило.
NekojiruSou

Відповіді:


3

http://www.vmware.com/pdf/vmware-tools-cli.pdf Сторінка 13:

Усунення дисків заборонено за таких обставин:

Віртуальна машина розміщується на сервері ESX / ESXi. Сервер ESX / ESXi може зменшити розмір віртуального диска лише тоді, коли експортується віртуальна машина. Місце, яке займає віртуальний диск на сервері ESX / ESXi, однак, не змінюється.


Сумно, але правда ...
NekojiruSou

18

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

  1. Нульовий весь невикористаний простір всередині VM:

    dd if=/dev/zero bs=1048576 of=/zero ; sync ; rm /zero

  2. Зробіть те ж саме з іншими точками кріплення, замініть перегородки тощо.

  3. Вимкніть ВМ.

  4. SSH в ESXi і видайте цю команду:

    vmkfstools -K /vmfs/volumes/volumename/vmname/vmname.vmdk

Це займе певний час ... vmkfstools "пробиває дірки" у вашому VMDK, наприклад, розміщує всі блоки, заповнені нулями, ефективно зменшуючи ваш VMDK.


6
Для Windows можна захопити копію Virtual Server 2005 , витягнути з неї файл Precompact.iso , він містить програму Procompact.exe, яка занулює весь невикористаний темп диска в Windows.
Chris S

vmkfstools не працює, коли VM знаходиться на сховищі NFS.
Свен 31415

0

Єдиним способом зменшити VMDK в vSphere ESXi буде експорт або міграція / зберігання vMotion в інший сховище даних. Я це багато роблю з живими серверами, які можуть обробляти міграцію (не SQL або Exchange). Попередній адміністратор сервера створив усі VM з товстими дисками. Я переміщую VM з однієї сховища даних в іншу і змінюю VMDK на тонкий доступ.

Ви також можете зробити vmkfstools, якщо сервер перебуває в автономному режимі.


-1

У ESXi можливе скорочення дисків.

  1. Знайдіть великий файл і видаліть їх.

    find / -type f -size +50M

  2. Дефрагментація (не потрібно нічого знімати / перезавантажувати). Ігноруйте будь-які помилки. Деякі файли, такі як символьні посилання та файли пристрою, не можуть бути дефрагментовані.

    sudo e4defrag /

  3. Нуль заповніть весь невикористаний простір, щоб VMware знав, що він справді не використовується:

    dd if=/dev/zero of=wipefile bs=1M; sync; rm wipefile

  4. Запустіть операцію зменшення: якщо 4 не вдалося, перейдіть до 5.

    sudo vmware-toolbox-cmd disk shrinkonly

  5. Перезавантажте систему Linux з параметром спробу і відредагуйте таблицю розділів з gparted. Стисніть кореневу файлову систему та видаліть і перемістіть розділ swap поблизу кореневого розділу.

  6. SSH в ESXi і видайте цю команду:

    vmkfstools -K /vmfs/volumes/volumename/vmname/vmname.vmdk

  7. Нам потрібно відредагувати файл * .vmdk. Після літер RW визначає розмір віртуального диска VMware (VMDK)

    * 40 ГБ = 40 * 1024 * 1024 * 1024/512 = 83886080 *

  8. Перенесіть його в інший сховище даних для відображення нового розміру.

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