Zainstalowałem gościa Ubuntu na hoście CentOS KVM z początkowo 6 GB miejsca na dysku. Jak mogę zwiększyć przestrzeń dyskową gościa Ubuntu z wiersza poleceń?
EDYCJA 1: Używam pliku obrazu dysku (qemu).
Zainstalowałem gościa Ubuntu na hoście CentOS KVM z początkowo 6 GB miejsca na dysku. Jak mogę zwiększyć przestrzeń dyskową gościa Ubuntu z wiersza poleceń?
EDYCJA 1: Używam pliku obrazu dysku (qemu).
Odpowiedzi:
qemu-img resize vmdisk.img +10G
aby zwiększyć rozmiar obrazu o 10 Gbźródło
start the VM, resize the partitions and LVM structure within it normally
Jak to zrobić? Proszę wyjaśnij to.Metoda online (przy użyciu qemu, libvirt i virtio-block)
Na lepsze lub gorsze, poniższe polecenia będą działać, nawet jeśli docelowy dysk wirtualny zostanie podłączony. Może to być przydatne w środowiskach, w których nie można odmontować dysku (takich jak partycja root), maszyna wirtualna musi pozostać włączona, a właściciel systemu jest gotów podjąć ryzyko uszkodzenia danych . Aby usunąć to ryzyko, musisz najpierw zalogować się do maszyny wirtualnej i odmontować dysk docelowy, co nie zawsze jest możliwe.
Wykonaj następujące czynności z hiperwizora KVM.
Zwiększ rozmiar samego pliku obrazu dysku (określ kwotę, którą chcesz zwiększyć):
Uzyskaj nazwę urządzenia virtio za pośrednictwem powłoki libvirt (
drive-virtio-disk0
w tym przykładzie):Wyślij sygnał do sterownika virtio, aby wykrył nowy rozmiar (określ całkowitą nową pojemność):
Następnie zaloguj się do maszyny wirtualnej. Uruchomiony
dmesg
powinien zgłosić, że dysk virtio wykrył zmianę pojemności. W tym momencie przejdź do zmiany rozmiaru partycji i struktury LVM w razie potrzeby.źródło
Te pytania o awarię serwera są podobne, ale bardziej szczegółowe, zmiana rozmiaru dysku online KVM? & Centos Xen zmienia rozmiar partycji DomU i grupy woluminów . Pierwszy pyta o to, jak zwiększyć gościa KVM, gdy jest on online, natomiast drugi dotyczy XEN przy użyciu LVM. Pytam, jak to zrobić, gdy KVM jest offline.
UWAGA: Ten link był przydatny dla METODY nr 1 i pokazuje, jak osiągnąć zwiększenie przestrzeni dyskowej KVM (na podstawie ext3), HOWTO: Zmiana rozmiaru obrazu maszyny wirtualnej KVM .
Jedną z rzeczy, o których należy pamiętać w przypadku gości KVM, jest to, że partycje, których używają w środku, mogą wpływać na metodę, której można użyć do zwiększenia ich miejsca na dysku.
METODA 1: Partycje oparte są na ext2 / ext3 / ext4
Nakrętki tej metody są następujące:
Teraz, mając w ręku większy plik mykvm.img, uruchom partycję gpart i rozszerz istniejącą partycję na nowo dodane miejsce na dysku. Ten ostatni krok zasadniczo rozszerza partycję systemu operacyjnego, aby mogła ona wykorzystać dodatkową przestrzeń.
METODA 2: Partycje są oparte na LVM
Oto kroki, które z grubsza wykonałem, aby zmienić rozmiar gościa KVM, który używał LVM wewnętrznie.
uruchom fdisk wewnątrz VM i usuń i ponownie utwórz partycję LVM
Uruchom ponownie maszynę wirtualną
Zmień rozmiar woluminu fizycznego LVM
Zmień rozmiar woluminu logicznego LVM
Rozwijaj system plików
Powyższy przykład jest moim przykładem, ale podążyłem za krokami na tej stronie
źródło
virt-manager
i używałem metod # 1 i # 2 intensywnie, zanim przeprowadziłem migrację naszych serwerów KVM do nowszej wersji KVM (CentOS 5 -> CentOS 6). Teraz również używam tejqemu-img resize
metody.lvextend /dev/Volgroup/lvname /dev/vda2
(wszystko w jednym wierszu, gdzie / dev / vda2 będzie twoim woluminem fizycznym). Bez innych opcji użyje maksymalnego rozmiaru w tej grupie woluminów.Zmień rozmiar i rozszerz wewnętrzne partycje w jednym kroku
Miałem hosta Ubuntu z obrazem pliku gościa qcow2 i chciałem zmienić rozmiar dysku i rozwinąć odpowiednie partycje w jednym kroku. Wymaga to skonfigurowania narzędzi systemu plików gościa libvirt, ale i tak warto je mieć.
Inspiracja tutaj: http://libguestfs.org/virt-resize.1.html
Kluczowe polecenie tutaj to:
virt-resize
Przygotowanie:
Teraz wykonaj następujące czynności:
1) zamknij gościa:
2) Sprawdź bieżące rozmiary i wyświetl nazwę partycji, którą chcesz rozwinąć za pomocą narzędzia libvirt:
sudo virt-filesystems --long --parts --blkdevs -h -a name-of-guest-disk-file
3) Utwórz nowy dysk wyjściowy (40G):
4) Skopiuj stary do nowego, a następnie rozwiń odpowiednią partycję (zakładając, że twoja partycja dysku z kroku 2 to / dev / sda1):
5) Zmień nazwę pliku indisk na kopię zapasową, zmień nazwę przestarzałego na indisk (lub zmodyfikuj XML gościa)
6) Uruchom ponownie gościa i dokładnie przetestuj nowy plik dysku przed usunięciem oryginalnego pliku
7) Zysk!
źródło
-o preallocation=metadata
tworzy rzadki plik. Dzięki tej opcji wstępnie przydziela cały rozmiar.-o preallocation=metadata
a jeśli nie, powinieneś pominąćtruncate
krok.virt-resize
i tak powiększy plik.Jeśli używasz LVM w maszynie wirtualnej, najprostszym sposobem na to jest dodanie nowego dysku wirtualnego do maszyny wirtualnej i rozwinięcie grupy woluminów i woluminów logicznych.
Aby sprawdzić, czy używasz LVM run
sudo pvs; sudo vgs; sudo lvs
, otrzymasz coś takiego:jeśli system operacyjny maszyny wirtualnej korzysta z LVM. W powyższym przykładzie maszyna wirtualna ma dysk VDisk o pojemności 30 GB, skonfigurowany przy użyciu LVM z jedną grupą woluminów o nazwie vgWWW zawierającą dwa woluminy logiczne, jeden do wymiany i jeden do wszystkiego innego.
Jeśli LV jest używany na maszynie wirtualnej:
sudo pvcreate /dev/vdb
sudo vgextend vgWWW /dev/vdb
sudo lvextend --extents +100%FREE /dev/vgWWW/root
(lub coś takiego,sudo lvextend --size +8G /dev/vgWWW/root
jeśli nie chcesz go powiększać do końca, ten przykład dodałby 8 GB do woluminu)resize2fs /dev/vgWWW/root
Uwaga: powyższe zakłada, że nazwy vg / lv są takie same jak w moim przykładzie, co jest mało prawdopodobne, zmień odpowiednio, również jeśli maszyna wirtualna miała już dysk wirtualny o nazwie
vdb
nowy, będzie to coś innego (vdc
i tak dalej)Uwaga:
resize2fs
działa tylko w systemie plików ext2, ext3 i ext4. Jeśli używasz czegoś innego, spowoduje to błąd i nic nie zrobisz.Uwaga: ponieważ podczas zmiany rozmiaru systemu plików na żywo
resize2fs
nie pojawi się monit o uruchomieniefsck
go, tak jak w przypadku odmontowanego systemu plików, po prostu pójdzie dalej. Przed kontynuowaniem może być konieczne sprawdzenie systemu plików tylko do odczytu. Nie ma żadnych problemów.źródło
Można zmienić rozmiar online. libvirtd obsługuje to natywnie:
Znajdź nazwę urządzenia blokowego. Powinno być coś w stylu „vda”
Zmień rozmiar urządzenia wirtualnego:
Oto przykład gdybym rozszerzyć
vda
dysk od50GB
celu51GB
dlaundercloud
VM.Teraz spójrz na szczegóły pliku obrazu .qcow2:
Teraz zmieńmy rozmiar urządzenia blokującego VDA:
I potwierdź:
Następnie możesz użyć tego skryptu w maszynie wirtualnej, aby wyświetlić polecenia zmiany rozmiaru urządzeń blokowych i fs: https://github.com/mircea-vutcovici/scripts/blob/master/vol_resize.sh .
źródło
Istnieje możliwość zwiększenia rozmiaru dysku maszyny wirtualnej bez ponownego uruchamiania maszyny wirtualnej, jeśli używasz napędu virtio i LVM.
(Opcjonalnie) Utwórz partycję podstawową za pomocą fdisk, aby uzyskać / dev / vdb1, a następnie użyj kpartx -a / dev / vdb, aby ponownie odczytać tablicę partycji
Użyj vgextend vg_name / dev / vdb1 (lub / dev / vdb, jeśli nie utworzyłeś partycji)
Jesteś skończony.
źródło
W ten sposób możesz rozwinąć żądaną partycję:
Zobacz więcej przykładów tutaj .
źródło
Kolejny sposób to zrobić
wejdź w make res dysku i po tym, jak możesz zmienić rozmiar lvm.
źródło
Jeśli masz LVM na maszynie wirtualnej, jest to szalenie łatwe i szybkie.
sudo system-config-lvm
terminal) *.Znalazłem GUI dość intuicyjny, ale jeśli masz problemy, wykonaj kolejne kroki.
Uwaga! Przynajmniej GUI CentOS 6 LVM nie jest domyślnie instalowany, ale można go zainstalować za pomocą
yum install system-config-lvm
.źródło
Zmiana rozmiaru obrazu:
zwiększa rozmiar obrazu o 16 GB.
Jeśli twój obraz ma GPT (tabelę partycji GUID), to rozmiar dysku użyty w GPT będzie się różnić od nowego rozmiaru, musisz to naprawić za pomocą
gdisk
:lub z
parted
:Z jakiegoś powodu
parted
poprawka nie działa, gdy nie jest prezentowane tty (na przykład podczas udostępniania z Vagrant), więc używamgdisk
.Zwiększ rozmiar partycji, aby wypełnić całą dostępną przestrzeń:
Ta
x a 2 <Enter>
część jest opcjonalna i potrzebna, jeśli używasz starszego systemu BIOS.MY_PARTITION_GUID=...
ac $MY_PARTITION_GUID
części są również opcjonalne i potrzebne tylko, jeśli używasz UUID partycji w/etc/fstab
lub gdzie indziej.Uruchom ponownie lub ponownie przeczytaj partycje za pomocą
partx -u $MY_DRIVE
lubpartprobe
.Rozszerzyć partycji, na przykład
ext2
,ext3
lubext4
:źródło
Możesz użyć Solus VM z zamontowanym gparted. Po użyciu z gparted możesz łatwo uruchomić system i dostosować przestrzeń. Upewnij się, że masz ustawiony prawidłowy priorytet rozruchu. Jako odniesienie zapoznaj się z poniższym adresem URL, który może się przydać. https://greencloudvps.com/knowledgebase/11/How-to-Extend-the-Hard-drive-on-KVM-after-upgrading-VPS.html
źródło