Diese kurze Anleitung erklärt, was Virt-Size ist Befehlszeilentool und wie wir die Festplattengröße der virtuellen KVM-Maschine mit dem Virt-Resize-Tool in Linux erweitern oder erweitern können.
Neulich bemerkte ich, dass einer meiner virtuellen KVM-Maschinen der Speicherplatz ausgeht. Ich konnte keine neuen Anwendungen installieren oder Dateien aufgrund von geringem Speicherplatz nicht speichern. Um dieses Problem zu beheben, habe ich einfach die Größe der Festplatte einer virtuellen KVM-Maschine mit virt-size
erhöht Befehl. Ich habe die unten angegebenen Schritte persönlich getestet, um die Festplattengröße einer virtuellen CentOS 8 KVM-Maschine zu erhöhen, und es hat wie erwartet funktioniert.
Virt-Resize-Tool
Virt-resize ist ein Befehlszeilentool zum Ändern der Größe einer Festplatte einer virtuellen Maschine. Mit virt-resize können wir die Größe der Festplatte einer virtuellen Maschine entweder vergrößern oder verkleinern. Wir können die Partitionen innerhalb der virtuellen Festplatte auch mit dem Befehl virt-resize löschen. Bitte beachten Sie, dass die Größe der Live-Maschinen virt-resize. Die Gastsysteme sollten ausgeschaltet werden, bevor die Größe ihrer Disk-Images geändert wird.
Um die Festplattengröße einer virtuellen Maschine zu erweitern, erstellen wir zunächst ein größeres Festplatten-Image als das Quell-Image. Und dann kopieren wir das Quellbild in das Zielbild und ändern schließlich die Größe.
Virt-resize ist der Teil der libguestfs-tools
Paket. Um das Paket libguestfs-tools auf Debian, Ubuntu und seinen Derivaten zu installieren, führen Sie Folgendes aus:
$ sudo apt install libguestfs-tools
Um das libguestfs-tools-Paket auf Fedora, RHEL und seinen Klonen zu installieren, führen Sie Folgendes aus:
$ sudo dnf install libguestfs-tools
In Fedora 34, guestfs-tools
Paket stellt ein Virt-Resize-Tool bereit. Wenn Sie also Fedora 34 verwenden, installieren Sie guestfs-tools
Paket wie unten:
$ sudo dnf install guestfs-tools
Lassen Sie uns nun sehen, wie die Festplattengröße der virtuellen Maschine mit virt-resize
erweitert wird Befehl.
Erweitern oder erweitern Sie die Festplattengröße der virtuellen KVM-Maschine in Linux
Für die Zwecke dieses Handbuchs verwende ich das Festplatten-Image der virtuellen CentOS 8-Maschine mit dem Namen centos8.qcow2
. Ich habe dieses Bild in meinem aktuellen Arbeitsverzeichnis gespeichert. Sie können virsh dumpxml
verwenden Befehl, um das Disk-Image zu finden, dessen Größe Sie ändern möchten.
Beispiel:
$ virsh dumpxml centos8
Ersetzen Sie im obigen Befehl centos8 durch Ihren VM-Namen.
Nachdem Sie das Disk-Image gefunden haben, dessen Größe Sie ändern möchten, überprüfen Sie die Partitionsdetails in diesem Disk-Image. Um die Partitionsdetails und ihre Größe eines Disk-Images zu drucken, führen Sie Folgendes aus:
$ virt-filesystems --long --parts --blkdevs -h -a centos8.qcow2
Beispielausgabe:
Name Type MBR Size Parent /dev/sda1 partition 83 1.0G /dev/sda /dev/sda2 partition 8e 19G /dev/sda /dev/sda device - 20G -

Wie Sie in der obigen Ausgabe sehen können, hat mein Disk-Image nur zwei Partitionen, nämlich /dev/sda1
mit Größe 1 GB und /dev/sda2
mit 19gb. Die Gesamtgröße des Disk-Image beträgt 20 GB.
Jetzt werden wir,
- erhöhen Sie die Gesamtgröße des Disk-Images von 20 GB auf 30 GB ,
- erhöhen Sie die Größe der ersten Partition
/dev/sda1
von 1,0 GB auf 1,5 GB , - Erweitern Sie die zweite Partition
/dev/sda2
um den verbleibenden Platz zu füllen.
Virt-resize kann die Größe von Disk-Images nicht direkt ändern. Außerdem sollte Virt-resize nicht auf virtuellen Live-Maschinen verwendet werden. Bevor Sie die Größe des Disk-Images ändern, schalten Sie die virtuelle Maschine aus und erstellen Sie eine Sicherungskopie des ursprünglichen Disk-Images.
$ mv centos8.qcow2 centos8.qcow2.backup
Der obige Befehl benennt das aktuelle Disk-Image mit dem Namen centos8.qcow2
um zu centos8.qcow2.backup
.
Erstellen Sie ein neues Disk-Image mit demselben Namen und einer Größe von 30 GB mit dem Befehl:
$ qemu-img create -f qcow2 -o preallocation=metadata centos8.qcow2 30G
Beispielausgabe:
Formatting 'centos8.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off preallocation=metadata compression_type=zlib size=32212254720 lazy_refcounts=off refcount_bits=16
Stellen Sie sicher, dass die neu erstellte Festplatte 30 GB groß ist:
$ virt-filesystems --long --parts --blkdevs -h -a centos8.qcow2
Beispielausgabe:
Name Type MBR Size Parent /dev/sda device - 30G -

Erweitern/erweitern Sie nun die Festplatten-Image-Größe der virtuellen KVM-Maschine mit dem Befehl:
$ virt-resize --resize /dev/sda1=+500M --expand /dev/sda2 centos8.qcow2.backup centos8.qcow2
Hier,
--resize /dev/sda1=+500M
- erhöht die Größe von/dev/sda1
auf 500 MB partitionieren.- --expand /dev/sda2 - ändert die Größe von
/dev/sda2
partitionieren, um den gesamten verbleibenden Speicherplatz zu füllen. In meinem Fall wird die Größe von 19,0 G auf 28,5 G geändert. centos8.qcow2.backup
- Es ist das Original-Image der Eingabe-Festplatte.centos8.qcow2
- es ist das neu erstellte Ausgabe-Disk-Image.
Beispielausgabe des obigen Befehls ist:
[ 0.0] Examining centos8.qcow2.backup Summary of changes: /dev/sda1: This partition will be resized from 1.0G to 1.5G. The filesystem ext4 on /dev/sda1 will be expanded using the ‘resize2fs’ method. /dev/sda2: This partition will be resized from 19.0G to 28.5G. The LVM PV on /dev/sda2 will be expanded using the ‘pvresize’ method. [ 4.2] Setting up initial partition table on centos8.qcow2 [ 5.6] Copying /dev/sda1 100% ⟦▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒⟧ 00:00 [ 9.7] Copying /dev/sda2 100% ⟦▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒⟧ 00:00 [ 45.1] Expanding /dev/sda1 using the ‘resize2fs’ method [ 45.3] Expanding /dev/sda2 using the ‘pvresize’ method Resize operation completed with no errors. Before deleting the old disk, carefully check that the resized disk boots and works correctly.

Überprüfen Sie die Partitionen und ihre Größe mit virt-filesystems
Befehl:
$ virt-filesystems --long -h --all -a centos8.qcow2
Beispielausgabe:
Name Type VFS Label MBR Size Parent /dev/sda1 filesystem ext4 - - 1.4G - /dev/cl/root filesystem xfs - - 17G - /dev/cl/swap filesystem swap - - 2.0G - /dev/cl/root lv - - - 17G /dev/cl /dev/cl/swap lv - - - 2.0G /dev/cl /dev/cl vg - - - 29G /dev/sda2 /dev/sda2 pv - - - 29G - /dev/sda1 partition - - 83 1.5G /dev/sda /dev/sda2 partition - - 8e 29G /dev/sda /dev/sda device - - - 30G -

Wie Sie in der obigen Ausgabe sehen, wurde die Größe meines CentOS8-KVM-Festplatten-Images von 20 GB auf 30 GB geändert.
Starten Sie nun die virtuelle Maschine mit einem neuen Disk-Image. Sie können auch eine neue virtuelle Maschine mit dem Qcow2-Image erstellen, wie im folgenden Link beschrieben.
- Erstellen Sie eine virtuelle KVM-Maschine mit dem Qcow2-Image unter Linux
Wenn es ohne Probleme funktioniert, überprüfen Sie gründlich, ob alle Ihre Daten vorhanden sind. Wenn alles in Ordnung ist, löschen Sie die alte Backup-Festplatte.
Wenn es Probleme mit der neuen Festplatte gibt, fahren Sie die virtuelle Maschine herunter und benennen Sie die Backup-Festplatte in ihren ursprünglichen Namen um. Wiederholen Sie die obigen Schritte sorgfältig noch einmal. Vergessen Sie nicht, die Daten und das Disk-Image zu sichern.