Jak zmniejszyć rozmiar obrazu dysku maszyny wirtualnej KVM?

11

Jak zmniejszyć lub zmniejszyć rozmiar dysku maszyny wirtualnej KVM?

Przydzieliłem wirtualny dysk o pojemności 500 GB (przechowywany pod adresem /var/lib/libvirt/images/vm1.img) i stwierdzam, że to przesada, więc teraz chciałbym zwolnić część tego miejsca na inne wirtualne maszyny Wydaje się, że istnieje wiele odpowiedzi na pytanie, jak zwiększyć pamięć masową, ale jej nie zmniejszać. Znalazłem narzędzie do zmiany rozmiaru virt , ale wydaje się, że działa tylko z surowymi partycjami dysku, a nie z obrazami dysków.

Edycja: Używam LVM z partycją sformatowaną w Ext4.

Edycja: zrzut ekranu GParted pokazujący mój układ parowania LVM. Muszę zrobić znacznie więcej niż zmienić rozmiar systemu plików. Nie znam bezpiecznego sposobu zmiany rozmiaru LVM. I proszę, nie każ mi używać pvresize. Mimo swojej nazwy nie obsługuje zmiany rozmiaru LVM.

Zrzut ekranu z GPart

Próbowałem sudo pvresize /dev/vda5, ale to po prostu mówi, physical volume "/dev/vda5" changedale tak naprawdę nie zmniejsza rozmiaru.

Próbowałem zacząć partedręcznie ustawiać rozmiar partycji (bardzo niebezpieczne), ale robi to print allpo prostu błąd „/ dev / sr0 nierozpoznana etykieta dysku”.

Edycja: Postępując zgodnie z tymi instrukcjami , udało mi się zmniejszyć zarówno mój wolumin logiczny, jak i fizyczny (chociaż musiałem pamiętać, aby aktywować i dezaktywować lvm przed i po niektórych poleceniach, których instrukcje pomijają.

Teraz GParted pokazuje 250G nieprzydzielonego wolnego miejsca. Jak mogę usunąć to z obrazu dysku KVM i zwrócić z powrotem do hiperwizora?

Cerin
źródło
Czy faktycznie potrzebujesz zmniejszyć rozmiar dysku wirtualnego, czy może wystarczy go skompresować? Możesz zrobić to drugie z czymś takim qemu-img -O qcow2 vm1.img vm1-compact.qcow2.
Ansgar Wiechers
@AnsgarWiechers, Tak, nadal muszę korzystać z dysku i przeznaczyłem znacznie więcej miejsca niż kiedykolwiek będę potrzebować.
Cerin

Odpowiedzi:

10

Dzięki tym, którzy napisali, ale twoje odpowiedzi były zbyt niejasne, aby pomóc.

Po godzinach pracy w Google znalazłem w końcu przewodnik ( zredagowany link ) zawierający instrukcje krok po kroku dotyczące zmniejszania systemu plików, woluminów logicznych i fizycznych. Sztuczka, której brakuje większości przewodników, polega na tym, że trzeba faktycznie usunąć partycje fizyczne i odtworzyć je w odpowiednim rozmiarze, ponieważ parted nie może zmienić rozmiaru partycji lvm.

Następnie znalazłem tę dokumentację na qemu-img, która wyjaśnia, jak zmniejszyć obraz sformatowanego dysku wirtualnego w formacie raw, uruchamiając:

sudo qemu-img resize /var/lib/libvirt/images/myvm.img 255G
Cerin
źródło
qemu-img to świetne narzędzie do pracy z obrazami dysków dla KVM. 3 lata później twój link wydaje się zepsuty, tutaj strona podręcznika z die.net linux.die.net/man/1/qemu-img
Louis Loudog Trottier
A jeśli ktoś chce tej wygody i utknął (nie chce) z maszyną wirtualną .qcow2, najpierw ją przekonwertuj, qemu-img convert -f qcow2 -O raw image.qcow2 image.imga następnie uruchom powyższe polecenie.
oemb1905
4

Co musisz zrobić

  • Zrób kopię zapasową
  • Zmniejsz systemy plików * nie rób tego w systemie na żywo, zalecam użycie płyty CD na żywo.
  • Utwórz nowy obraz dysku o pożądanym rozmiarze.
  • Uruchom system operacyjny z nowymi i starymi obrazami dołączonymi jako (wirtualne) dyski twarde (niezamontowane)
  • Utwórz nowe partycje o tym samym rozmiarze co partycje o zmienionym rozmiarze na starym dysku
  • Użyj dd, aby skopiować dane do nowej partycji.
  • Być może będziesz musiał wyczyścić / zregenerować grub (2), aby pomyślnie uruchomić komputer.

Można tego dokonać zarówno poprzez GUI, jak i CLI

Zasoby

Przybory

  • gparted (link pominięty z powodu spamu, za mało powtórzeń)
daxroc
źródło
Najtrudniejsze jest „Zmniejszenie systemu plików”. Korzystam z LVM, którego żadne narzędzie nie znalazło wsparcia dla zmiany rozmiaru. Nie ma nawet Live CD z GParted.
Cerin
Myślę, że to obejmuje, nie użyłem go, więc zgłoś dobry lub zły tcpdump.com/kb/os/linux/lvm-resizing-guide/shrink.html
daxroc
Należy zwrócić uwagę na 2 główne punkty: 1) Wykonuj czynności w kolejności ( najpierw zmniejsz system plików, następnie zmniejsz partycję, a następnie zmniejsz dysk). 2) Procedura / narzędzia do zmiany rozmiaru systemu plików zależą w dużej mierze od rzeczywistego systemu plików (którego OP zdecydował się nie ujawniać). Artykuł opublikowany przez @daxroc nie będzie działał dla systemów plików innych niż ext [234].
Ansgar Wiechers
@daxroc, muszę zmniejszyć zarówno wolumin logiczny, jak i fizyczny. Twój link obejmuje tylko zmniejszenie objętości logicznej.
Cerin,
Zgoda. tworzenie kopii zapasowych, nowy dysk, przywracanie jest najbezpieczniejsze i najłatwiejsze
dyasny
0

To działało dla mnie naprawdę dobrze. Kompresuje i zmniejsza 0 bloków obrazu dysku. Obraz będzie się powiększał w miarę upływu czasu, ponieważ jest ponownie zapisywany.

qemu-img convert -c -O qcow2 vmdisk.qcow2 vmdisk-comp.qcow2
Greg
źródło
-4

Zalecam, aby przed zrobieniem tego zrobić pełną kopię obrazu dysku w takiej postaci, w jakiej jest, a kiedy wszystko się zepsuje, możesz po prostu skopiować go ponownie, aby zacząć od nowa.

Musisz zrobić 3 rzeczy:

1) Powiększ obraz dysku. W twoim hoście:

qemu-img zmień rozmiar foo.qcow2 + 32G

Teraz twój gość widzi większy dysk, ale wciąż ma stare partycje i systemy plików.

2) Zwiększ partycję wewnątrz obrazu dysku. W tym celu musisz uruchomić dysk LiveCD w swoim gościu, ponieważ nie będziesz mógł zadzierać z zamontowaną partycją. Jest to dość zaangażowana i prawdopodobnie najbardziej niebezpieczna część. Tutaj jest dużo do skopiowania, więc na razie po prostu link. Chcesz zrobić coś takiego:

http://www.howtoforge.com/linux_resizing_ext3_partitions_p2

LUB 2b) utworzenie nowej partycji byłoby prostsze (i bezpieczniejsze), jeśli potrzebujesz tylko więcej miejsca do przechowywania. Użyj fdisk lub cfdisk lub czegokolwiek, z czym czujesz się komfortowo - powinieneś teraz zobaczyć całą masę nieprzydzielonego miejsca na dysku gościa.

3) Wreszcie, jeśli zmieniłeś rozmiar istniejącej partycji, powiększ system plików w nowej, większej partycji (tak w rzeczywistości jest to w powyższym przewodniku). Wewnątrz twojego gościa:

Ankur Dholakiya
źródło
6
Próbuje zrobić obraz mniejszy , a nie większy.
Michael Hampton