EHLO wszystkim! Mój pierwszy post w sieci StackOverflow :)
Pracujemy na infrastrukturze ESXi 5.0 / vCenter do hostowania głównie systemów-gości Debian 6 / amd64 z partycjami ext3 i open-vm-tools
kompilowanych ze źródła na błąd debian 471784 .
Masz problem, który pojawia się w Internecie, ale nigdzie nie ma rozstrzygającej odpowiedzi.
Podczas próby zmniejszenia dysku alokowanego elastycznie w trybie niezależnym-trwałym, bez żadnych migawek, rodziców, klonów, konsekwentnie pojawia się następujący błąd:
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.
(Nawiasem mówiąc, jakie są „inne czynniki”, a która z wielu białych ksiąg i instrukcji technicznych jest instrukcją obsługi? :)
Wiem, że mogę wypchać partycje zerami (w rzeczywistości używam ich do shred -fuzn0
usuwania dużych plików), a następnie zamknąć danego gościa i użyć różnych metod, takich jak vmkfstools
klonowanie lub vMotioning dysków w trybie cienkiego przydzielania itp., Ale wszystkie z nich albo ponoszą karę za przestój gościa, która jest marszczona, albo powodują nieuzasadnione przenoszenie danych między magazynami danych i / lub hostami.
Odpowiedź brzmi: bez kurczenia się w ESX / ESXi (od wersji 5).
Dokumentacja brzmi:
WAŻNE Zmniejszanie dysków nie jest dozwolone w następujących okolicznościach:
Maszyna wirtualna jest hostowana na serwerze ESX / ESXi. Serwer ESX / ESXi może zmniejszyć rozmiar dysku wirtualnego tylko podczas eksportowania maszyny wirtualnej. Miejsce zajmowane przez dysk wirtualny na serwerze ESX / ESXi jednak się nie zmienia.
Maszyna wirtualna ma system operacyjny gościa Mac .
Ci zdefiniowanej przez całą przestrzeń dyskową do wirtualnego dysku, kiedy go stworzył.
Maszyna wirtualna zawiera migawkę .
Maszyna wirtualna jest połączonym klonem lub rodzicem połączonego klonu.
Dysk wirtualny jest niezależnym dyskiem w trybie nietrwałym .
System plików to system plików kronikowania , taki jak system plików ext4, xfs lub jfs .
Nic dziwnego, że jest opcja kurczyć w VMware Workstation, ale nie w vSphere klienta podłączonego do instancji ESXi lub vCenter.
Odpowiedzi:
http://www.vmware.com/pdf/vmware-tools-cli.pdf Page 13:
Zmniejszanie dysków nie jest dozwolone w następujących okolicznościach:
Maszyna wirtualna jest hostowana na serwerze ESX / ESXi. Serwer ESX / ESXi może zmniejszyć rozmiar dysku wirtualnego tylko podczas eksportowania maszyny wirtualnej. Miejsce zajmowane przez dysk wirtualny na serwerze ESX / ESXi jednak się nie zmienia.
źródło
W rzeczywistości istnieje sposób, aby zmniejszyć maszynę wirtualną w ESXi, chociaż musisz dla niej wyłączyć maszynę wirtualną. Oto jak:
Zeruj wszystkie nieużywane miejsce w maszynie wirtualnej:
dd if=/dev/zero bs=1048576 of=/zero ; sync ; rm /zero
Zrób to samo z innymi punktami montowania, partycjami wymiany itp.
Zamknij maszynę wirtualną.
SSH do ESXi i wydaj polecenie:
vmkfstools -K /vmfs/volumes/volumename/vmname/vmname.vmdk
To zajmie trochę czasu ... vmkfstools „dziurkuje dziury” w twoim VMDK, np. Zwalnia wszystkie bloki wypełnione zerami, skutecznie zmniejszając twój VMDK.
źródło
Jedynym sposobem na zmniejszenie VMDK w vSphere ESXi byłoby wyeksportowanie lub migracja / Storage vMotion do innego magazynu danych. Często to robię z serwerami na żywo, które mogą obsłużyć migrację (nie SQL ani Exchange). Poprzedni administrator serwera zbudował wszystkie maszyny wirtualne za pomocą dysków Thick Provisioned. Migruję maszyny wirtualne z jednego magazynu danych do drugiego i zmieniam VMDK na alokowane elastycznie.
Możesz także wykonać vmkfstools, jeśli serwer jest w trybie offline.
źródło
Zmniejszenie dysków jest możliwe w ESXi.
Znajdź duży plik i usuń go.
find / -type f -size +50M
Defragmentacja (nie trzeba niczego / ponownie montować). Zignoruj wszelkie błędy. Niektórych plików, takich jak dowiązania symboliczne i pliki urządzeń, nie można defragmentować.
sudo e4defrag /
Wypełnij zero nieużywanego miejsca, aby VMware wiedziało, że rzeczywiście jest nieużywane:
dd if=/dev/zero of=wipefile bs=1M; sync; rm wipefile
Uruchom operację zmniejszania: jeśli 4 się nie powiedzie, przejdź do 5.
sudo vmware-toolbox-cmd disk shrinkonly
Uruchom ponownie system Linux z opcją try i edytuj tablicę partycji za pomocą gparted. Zmniejsz główny system plików i usuń i przenieś partycję wymiany w pobliżu partycji głównej.
SSH do ESXi i wydaj polecenie:
vmkfstools -K /vmfs/volumes/volumename/vmname/vmname.vmdk
Musimy edytować plik * .vmdk. Po literach RW określa rozmiar wirtualnego dysku VMware (VMDK)
* 40 GB = 40 * 1024 * 1024 * 1024/512 = 83886080 *
Przeprowadź migrację do innego magazynu danych, aby odzwierciedlić nowy rozmiar.
źródło