Jak zwiększyć rozmiar dysku gościa KVM, używając LVM VG jako puli pamięci?


Na serwerze hosta KVM działa CentOS 6.5, a pula_magazynu LVM jest używana jako główna pula pamięci dla KVM.
Gość Ubuntu instaluje się przy użyciu systemu plików ext4 i montuje cały/dev/vda1 jako/. Oto konfiguracja dysku gościa:
<disk type='block' device='disk'>
<driver name='qemu' type='raw' cache='none' io='native'/>
<source dev='/dev/storage_pool/kvmguest.img'/>
<target dev='vda' bus='virtio'/>
<alias name='virtio-disk0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
</disk>

Jaki jest najlepszy sposób na zwiększenie rozmiaru dysku gościa? VG ma dużo wolnego miejsca.
Znalazłem kilka przykładów, ale większość z nich używa również LVM wewnątrz gości lub nie ma ich w pełni zastosowania. Jak rozumiem, powszechną metodą jest utworzenie większego LV w tym samym VG, zamknięcie gościa, przesłanie danych, edycja konfiguracji w celu użycia nowego LV?
Z góry dziękuję za wszelkie sugestie i wskazówki
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Nie ma potrzeby wyłączania gościa (przynajmniej w 2019 roku).
Właśnie
         lvextend -L+<size>G/dev/<group>/<volume>
następnie
         virsh blockresize <domain>/dev/<group>/<volume> --size <newsize>
a na koniec zaloguj się do gościa i zrób wszystko, aby wykorzystać dodatkową przestrzeń.
W systemie gościa Windows możesz to zrobić
         diskpart
         list volume
         select volume <n>
         extend
Oto dokładne kroki, które wykonałem, aby rozszerzyć dysk C: gościa systemu Windows 10 działającego jako domena KVM pod Ubuntu 19.04 z Qemu 3.1.0.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Oto procedura, którą zastosowałem:
  • Rozwiń wielkość logiczną gościa kvm
    # lvextend -L+50G/dev/storage_pool/guest.img
  • Zamknij gościa KVM i odmontuj wolumin logiczny
    # virsh shutdown guest# lvchange -a n/dev/storage_pool/guest.img
  • Wypisz i zaznacz informacje o sekcjach gościnnych KVM, zwłaszcza o pierwszym sektorze. Jeśli nie wyświetla sektorów, może być konieczne dodanie przełącznika „-u” lub „-u sektory”.
    # fdisk -l/dev/storage_pool/guest.img
  • Usuń i ponownie utwórz partycję, aby wypełnić całe rozszerzone miejsce, upewnij się, że używasz sektorów jako jednostek, a aby wybrać ten sam pierwszy sektor (zwykle 2048, jeśli partycja jest wyrównana), możesz użyć polecenia fdisk 'u', aby przełączać się między jednostkami
    # fdisk/dev/storage_pool/guest.imgCommand (m for help): dPartition number (1-4): 1Command (m for help): nCommand action      e   extended      p   primary partition (1-4)pPartition number (1-4): 1First sector (...): 2048Last sector...: hit enter and use the default last sectorCommand (m for help): aPartition number (1-4): 1Command (m for help): w
  • Otwórz system plików ext3/4 i zmień jego rozmiar
    # kpartx -a -v/dev/storage_pool/guest.img# e2fsck -p -f/dev/mapper/storage_pool-guest.img1# resize2fs/dev/mapper/storage_pool-guest.img1# e2fsck -p -f/dev/mapper/storage_pool-guest.img1# kpartx -d -v/dev/storage_pool/guest.img
  • Aktywuj wolumin logiczny i uruchom kvm gościa
    # lvchange -a y/dev/storage_pool/guest.img# virsh start guest
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Próbując znaleźć to samo, znalazłem twoje pytanie, na które nie ma jeszcze odpowiedzi. Pracowały dla mnie:
  • zamknij gościa (w moim przypadku - debian 7.0) w zwykły sposób.
  • rozszerzyć „oryginalny” LV (oczywiście w VG hosta), na przykład do 5G. Aby to zrobić, musisz być rootem/sudo na hoście: lvextend -L + 5G/dev/YourStoragePoolVG/YourVirtualMachinesVGToExtend
  • Otwórz nowy rozszerzony lv (tj. "Dysk" twojej maszyny wirtualnej) w gparted: gparted/dev/mapper/YourStoragePoolVG-YourVirtualMachinesVGToExtend
  • Uwaga: ty musieć użyj ścieżki "/ dev/mapper/...", nie „/ dev/dm-77” lub „/ dev/YourStoragePoolVG/...” lub inny (wygląda na to, że jest to błąd/funkcja LVM)!
<ol start="4">
[*]
Graj z partycjami na zmodyfikowanym woluminie (używaj graficznego interfejsu użytkownika jak zwykle)
[/*]
[/list]
  • Uwaga. Zwróć uwagę na ostrzeżenia o utracie danych, typach systemów plików itp.!
  • Uwaga: uważaj.
  • W gparted , możesz zmieniać rozmiar i przenosić partycje w tablicy partycji przechowywanej na dysku virtio w LV.
  • Rozwijanie jednej lub więcej sekcji - IMHO to nie problem. Aby skompresować partycję/fs, użyj Google ...
  • gparted dostosowuje również systemy plików na partycjach (nie tylko same partycje.
<ol start="5">
[*]
Uruchom ponownie maszynę wirtualną. Teraz widzi zmienione partycje.
[/*]
[/list]
Jak powiedziałem, u mnie zadziałało (mogłem go wypróbować na jakimś zestawie zabawkowym bez ryzyka). Czy ktoś może przejrzeć powyższą instrukcję i skomentować, czy to ogólnie działa? Podziękować.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Każdy, kto szuka odpowiedzi na to pytanie, powinien sprawdzić to:
Gość KVM nie rozpoznaje nowego surowego rozmiaru dysku po lvresize
https://serverfault.com/questi ... 39444
myśleć
         virsh blockreisze
o wiele lepszy niż
         fdisk
lub
         parted
.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

To proste - po pobraniu LVEXTEND | Host LVRESIZE do maszyny wirtualnej z obrazem ISO LiveCD z GPARTED na pokładzie. Po zakończeniu rozruchu z płyty CD uruchom GPARTED z nazwą partycji głównej używaną wewnątrz maszyny wirtualnej:
$ gparted/dev/vda1" # for VirtIO/dev/vda

lub
$ gparted/dev/sda1" # for SATA emulated/dev/sda

i zmień rozmiar partycji w zwykły sposób GPARTED

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się