![Wie kann ich die Größe der KVM-Gastfestplatte erhöhen, indem ich LVM VG als Speicherpool verwende?](https://rvso.com/image/632736/Wie%20kann%20ich%20die%20Gr%C3%B6%C3%9Fe%20der%20KVM-Gastfestplatte%20erh%C3%B6hen%2C%20indem%20ich%20LVM%20VG%20als%20Speicherpool%20verwende%3F.png)
Auf dem KVM-Hostserver läuft CentOS 6.5 und eine LVM-Volume-Gruppe „storage_pool“ wird als Hauptspeicherpool für KVM verwendet.
Ein Ubuntu-Gast wird mit einem ext4-Dateisystem installiert und mountet das gesamte /dev/vda1 als /. Dies ist die Festplattenkonfiguration des Gastes:
<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>
Was wäre der beste Ansatz, um die Größe der Gastfestplatte zu erhöhen? Die VG hat viel freien Speicherplatz.
Ich habe einige Beispiele gefunden, aber die meisten verwenden LVM auch innerhalb der Gäste oder waren nicht vollständig anwendbar. Soweit ich weiß, besteht die übliche Methode darin, ein größeres LV in derselben VG zu erstellen, den Gast herunterzufahren, die Daten zu übertragen und die Konfiguration zu bearbeiten, um das neue LV zu verwenden?
Vielen Dank im Voraus für alle Vorschläge oder Hinweise
Antwort1
Es besteht keine Notwendigkeit, den Gast herunterzufahren (zumindest nicht mehr im Jahr 2019).
Einfach
lvextend -L+<size>G /dev/<group>/<volume>
Dann
virsh blockresize <domain> /dev/<group>/<volume> --size <newsize>
und gehen Sie schließlich in Ihr Gastzimmer und tun Sie dort alles Notwendige, um den zusätzlichen Platz zu nutzen.
In einem Windows-Gast können Sie Folgendes tun
diskpart
list volume
select volume <n>
extend
Dies sind die genauen Schritte, die ich befolgt habe, um das Laufwerk C: eines Windows 10-Gastbetriebssystems zu erweitern, das als KVM-Domäne unter Ubuntu 19.04 mit qemu 3.1.0 ausgeführt wird
Antwort2
Dies ist das Verfahren, das ich angewendet habe:
Erweitern Sie das logische Volume des KVM-Gastes
# lvextend -L+50G /dev/storage_pool/guest.img
Fahren Sie den KVM-Gast herunter und deaktivieren Sie das logische Volume
# virsh shutdown guest # lvchange -a n /dev/storage_pool/guest.img
Listen Sie die Partitionsinformationen des KVM-Gastes auf und notieren Sie sie, vor allem den ersten Sektor. Wenn keine Sektoren angezeigt werden, müssen Sie möglicherweise den Schalter „-u“ oder „-u Sektoren“ hinzufügen.
# fdisk -l /dev/storage_pool/guest.img
Löschen Sie die Partition und erstellen Sie sie neu, um den gesamten erweiterten Speicherplatz auszufüllen. Stellen Sie sicher, dass Sie Sektoren als Einheiten verwenden und dass Sie denselben ersten Sektor auswählen (normalerweise 2048, wenn die Partition ausgerichtet ist). Sie können den fdisk-Befehl „u“ verwenden, um zwischen den Einheiten zu wechseln.
# fdisk /dev/storage_pool/guest.img Command (m for help): d Partition number (1-4): 1 Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First sector (...): 2048 Last sector...: hit enter and use the default last sector Command (m for help): a Partition number (1-4): 1 Command (m for help): w
Legen Sie das ext3/4-Dateisystem frei und ändern Sie seine Größe
# 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
Aktivieren Sie das logische Volume und starten Sie den KVM-Gast
# lvchange -a y /dev/storage_pool/guest.img # virsh start guest
Antwort3
Als ich nach dem gleichen Thema gesucht habe, habe ich Ihre Frage gefunden, auf die noch keine Antworten vorliegen. Bei mir hat Folgendes funktioniert:
Fahren Sie den Gast (in meinem Fall ein Debian 7.0) auf die übliche Weise herunter.
das "originale" LV (natürlich im VG des Hosts) erweitern, z.B. um 5G. Dazu muss man auf dem Host root/sudo sein:
lvextend -L +5G /dev/IhrSpeicherpoolVG/IhrezuerweiterndenvirtuellenMaschinenVG
Öffnen Sie das neu erweiterte LV (also die „Festplatte“ Ihrer VM) in gparted:
gparted /dev/mapper/IhrSpeicherpoolVG-IhreVirtualMachinesVGToExtend
- Hinweis: Siemussverwenden Sie den Pfad "/dev/mapper/...", nicht„/dev/dm-77“ oder „/dev/YourStoragePoolVG/…“ oder anderes (das scheint ein Fehler/Feature von LVM zu sein)!
- Spielen Sie mit den Partitionen auf dem geänderten Volume herum (verwenden Sie wie gewohnt die GUI).
- Hinweis: Beachten Sie die Warnungen zu Datenverlust, Dateitypen etc.!
- Hinweis: Seien Sie vorsichtig.
- Ingpartedkönnen Sie die Größe von Partitionen ändern und sie in der Partitionstabelle verschieben, die auf der Virtio-Festplatte innerhalb des LV gespeichert ist.
- Das Erweitern einer oder mehrerer Partitionen ist meiner Meinung nach kein Problem. Zum Verkleinern von Partitionen/FS verwenden Sie Google ...
- gparted passt auch die Dateisysteme auf den Partitionen an (nicht nur die Partitionen selbst).
- Starten Sie Ihre VM neu. Sie erkennt jetzt die geänderten Partitionen.
Wie gesagt, bei mir hat das funktioniert (ich könnte das ohne Risiko bei einer Spielzeuginstallation ausprobieren). Könnte bitte jemand die obige Anleitung überprüfen und kommentieren, ob das im Allgemeinen funktioniert? Danke.
Antwort4
Es ist ganz einfach: Nach dem Ausführen von LVEXTEND|LVRESIZE auf dem Host booten Sie die VM von einer LiveCD-ISO mit integriertem GPARTED. Sobald der CD-Boot abgeschlossen ist, führen Sie GPARTED mit dem Namen der Root-Partition aus, der INNERHALB der VM verwendet wird:
$ gparted /dev/vda1" # for VirtIO /dev/vda
oder
$ gparted /dev/sda1" # for SATA emulated /dev/sda
und führen Sie die Größenänderung der Partition wie bei GPARTED durch