Ich richte einen Ubuntu-Gast auf einem CentOS KVM-Host mit anfänglich 6 GB Festplattenspeicher ein. Wie kann ich den Festplattenspeicher des Ubuntu-Gasts über die Befehlszeile erhöhen?
EDIT # 1: Ich verwende eine Disk-Image-Datei (qemu).
Ich richte einen Ubuntu-Gast auf einem CentOS KVM-Host mit anfänglich 6 GB Festplattenspeicher ein. Wie kann ich den Festplattenspeicher des Ubuntu-Gasts über die Befehlszeile erhöhen?
EDIT # 1: Ich verwende eine Disk-Image-Datei (qemu).
Antworten:
qemu-img resize vmdisk.img +10G
, um das Bild um 10 GB zu vergrößernquelle
start the VM, resize the partitions and LVM structure within it normally
Wie es geht? Bitte erkläre es.Online Methode (mit qemu, libvirt und virtio-block)
Ob gut oder schlecht, die folgenden Befehle werden ausgeführt, auch wenn das virtuelle Ziellaufwerk aktiviert ist. Dies kann in Umgebungen nützlich sein, in denen der Datenträger nicht abgehängt werden kann (z. B. eine Root-Partition), die VM eingeschaltet bleiben muss und der Systembesitzer bereit ist, das Risiko einer Datenbeschädigung zu übernehmen . Um dieses Risiko auszuschließen, müssen Sie sich zuerst bei der VM anmelden und die Bereitstellung des Zieldatenträgers aufheben. Dies ist nicht immer möglich.
Führen Sie im KVM-Hypervisor die folgenden Schritte aus.
Erhöhen Sie die Größe der Image-Datei selbst (geben Sie den zu erhöhenden Betrag an):
Rufen Sie den Namen des virtio-Geräts über die libvirt-Shell ab (
drive-virtio-disk0
in diesem Beispiel):Signalisieren Sie dem virtio-Treiber, die neue Größe zu erkennen (geben Sie die gesamte neue Kapazität an):
Melden Sie sich dann bei der VM an. Beim Ausführen
dmesg
sollte gemeldet werden, dass die virtuelle Festplatte eine Kapazitätsänderung festgestellt hat. An dieser Stelle können Sie die Größe Ihrer Partitionen und der LVM-Struktur nach Bedarf ändern.quelle
Diese Fragen zu Serverfehlern sind ähnlich, aber spezifischer. Ändern Sie die Größe der KVM-Online-Festplatte. & Centos Xen ändert die Größe von DomU-Partition und Volume-Gruppe . Der erste stellt die Frage, wie ein KVM-Gast erhöht werden kann, wenn er online ist, während der zweite mit LVM XEN-spezifisch ist. Ich frage, wie dies erreicht werden soll, während der KVM offline ist.
ANMERKUNG: Dieser Link war nützlich für METHODE 1 und zeigt, wie Sie den Speicherplatz eines KVM (ext3-basiert) erhöhen können .
Bei KVM-Gästen ist zu beachten, dass sich die verwendeten Partitionen auf die Methode auswirken können, mit der Sie den Festplattenspeicher erhöhen können.
Methode 1: Partitionen basieren auf ext2 / ext3 / ext4
Die Muttern dieser Methode sind wie folgt:
Starten Sie nun mit der größeren Datei mykvm.img gparted und erweitern Sie die vorhandene Partition in den neu hinzugefügten Speicherplatz. Dieser letzte Schritt erweitert im Wesentlichen die Betriebssystempartition, sodass der zusätzliche Speicherplatz genutzt werden kann.
Methode 2: Partitionen sind LVM-basiert
Hier sind die Schritte, die ich grob ausgeführt habe, um die Größe eines KVM-Gasts zu ändern, der LVM intern verwendet.
Führen Sie fdisk in der VM aus und löschen Sie die LVM-Partition und erstellen Sie sie neu
Starten Sie die VM neu
Ändern Sie die Größe des physischen LVM-Volumes
Ändern Sie die Größe des logischen LVM-Volumes
Erweitern Sie das Dateisystem
Das Obige ist mein Beispiel, aber ich habe die Schritte auf dieser Website befolgt
quelle
virt-manager
habe die Methoden 1 und 2 ausgiebig verwendet, bevor ich unsere KVM-Server auf eine neuere Version von KVM (CentOS 5 -> CentOS 6) migriert habe. Ich benutze jetzt auch dieqemu-img resize
Methode.lvextend /dev/Volgroup/lvname /dev/vda2
(alles in einer Zeile, wobei / dev / vda2 Ihr physisches Volume wäre). Ohne weitere Optionen wird die maximale Größe in dieser Datenträgergruppe verwendet.Ändern Sie die Größe und erweitern Sie interne Partitionen in einem Schritt
Ich hatte einen Ubuntu-Host mit einem qcow2-Gastdateibild und wollte die Größe der Festplatte ändern und die entsprechenden Partitionen in einem Schritt erweitern. Es erfordert, dass Sie die Dienstprogramme für das libvirt-Gastdateisystem einrichten, diese sind jedoch trotzdem nützlich.
Inspiration von hier: http://libguestfs.org/virt-resize.1.html
Der Schlüsselbefehl lautet hier:
virt-resize
Vorbereitung:
Nun mache folgendes:
1) Fahren Sie den Gast herunter:
2) Überprüfen Sie die aktuelle Größe und zeigen Sie den Partitionsnamen an, den Sie mit dem Dienstprogramm libvirt erweitern möchten:
sudo virt-filesystems --long --parts --blkdevs -h -a name-of-guest-disk-file
3) Erstellen Sie die neue (40G) Ausgabediskette:
4) Kopieren Sie die alte in die neue, während Sie die entsprechende Partition erweitern (vorausgesetzt, Ihre Festplattenpartition aus Schritt 2 war / dev / sda1):
5) Benennen Sie die Indisk-Datei als Backup um, benennen Sie die Outdisk als Indisk um (oder ändern Sie das Gast-XML)
6) Starten Sie den Gast neu und testen Sie die neue Festplattendatei sorgfältig, bevor Sie die ursprüngliche Datei löschen
7) Gewinn!
quelle
-o preallocation=metadata
erstellt eine Sparse-Datei. Mit dieser Option wird die gesamte Größe vorab zugewiesen.-o preallocation=metadata
und wenn Sie dies nicht tun, sollten Sie auch dentruncate
Schritt überspringen .virt-resize
Die Datei wird trotzdem entsprechend vergrößert.Wenn Sie LVM in der VM verwenden, ist dies am einfachsten, wenn Sie der VM ein neues virtuelles Laufwerk hinzufügen und die Volume-Gruppe und die logischen Volumes darauf erweitern.
Um zu überprüfen, ob Sie LVM-Run verwenden
sudo pvs; sudo vgs; sudo lvs
, erhalten Sie Folgendes :Wenn das Betriebssystem der VM LVM verwendet. Im obigen Beispiel verfügt die VM über eine 30-GByte-virtuelle Festplatte, die mithilfe von LVM mit einer Datenträgergruppe namens vgWWW konfiguriert wurde und zwei logische Datenträger enthält, einen für den Austausch und einen für alles andere.
Wenn LV in der VM verwendet wird:
sudo pvcreate /dev/vdb
sudo vgextend vgWWW /dev/vdb
sudo lvextend --extents +100%FREE /dev/vgWWW/root
(oder so ähnlich ,sudo lvextend --size +8G /dev/vgWWW/root
wenn Sie nicht wollen , es den ganzen Weg zu wachsen, dieses Beispiel würde hinzufügen 8Gb auf das Volumen)resize2fs /dev/vgWWW/root
Hinweis: Die oben die vg übernimmt / lv Namen die gleiche wie mein Beispiel sind die unwahrscheinlich ist, ändern Sie gegebenenfalls auch , wenn die VM bereits ein virtuelles Laufwerk genannt hatte
vdb
der neue sein etwas anderes (vdc
und so weiter)Hinweis: Funktioniert
resize2fs
nur mit den Dateisystemen ext2, ext3 und ext4. Wenn Sie etwas anderes verwenden, tritt ein Fehler auf und es wird nichts unternommen.Hinweis: Wenn Sie die Größe eines Live-Dateisystems ändern,
resize2fs
werden Sie nichtfsck
wie bei einem nicht gemounteten Dateisystem zur Ausführung aufgefordert . Möglicherweise möchten Sie eine schreibgeschützte Dateisystemprüfung durchführen, bevor Sie fortfahren.quelle
Es ist möglich, die Größe online zu ändern. libvirtd unterstützt dies nativ:
Suchen Sie den Blockgerätenamen. Sollte so etwas wie "vda" sein
Ändern Sie die Größe des virtuellen Geräts:
Hier ist ein Beispiel, wo ich den
vda
Datenträger für VM von50GB
bis erweitere .51GB
undercloud
Schauen Sie sich jetzt die Details der .qcow2-Image-Datei an:
Nun ändern wir die Größe des VDA-Block-Geräts:
Und bestätigen Sie:
Anschließend können Sie dieses Skript in der VM verwenden, um die Befehle zum Ändern der Größe der Blockgeräte und fs anzuzeigen: https://github.com/mircea-vutcovici/scripts/blob/master/vol_resize.sh .
quelle
Es besteht die Möglichkeit, die Größe der VM-Festplatte zu erhöhen, ohne die VM neu zu starten, wenn Sie virtio drive und LVM verwenden.
(Optional) Erstellen Sie eine primäre Partition mit fdisk, um / dev / vdb1 abzurufen, und verwenden Sie dann kpartx -a / dev / vdb, um die Partitionstabelle erneut zu lesen
Verwenden Sie vgextend vg_name / dev / vdb1 (oder / dev / vdb, wenn Sie keine Partition erstellt haben)
Sie sind fertig.
quelle
Auf diese Weise können Sie die gewünschte Partition erweitern:
Weitere Beispiele finden Sie hier .
quelle
Ein anderer Weg, es zu tun
Gehen Sie in das Fenster Make a Disk Rescan und nachdem Sie Ihre Lvm-Größe ändern können.
quelle
Wenn Sie LVM in Ihrer VM haben, ist dies einfach und schnell verrückt.
sudo system-config-lvm
Terminal ein) *.Ich fand die GUI recht intuitiv, folge aber den nächsten Schritten, wenn du Probleme hast.
Hinweis! Zumindest unter CentOS 6 ist LVM GUI nicht standardmäßig installiert, aber Sie können es mit installieren
yum install system-config-lvm
.quelle
Bildgröße anpassen:
erhöht die Bildgröße um 16 GB.
Wenn Ihr Image über GPT (GUID-Partitionstabelle) verfügt, weicht die in GPT verwendete Laufwerksgröße von der neuen Größe ab. Sie müssen dies folgendermaßen beheben
gdisk
:oder mit
parted
:Aus irgendeinem Grund
parted
funktioniert Fix nicht, wenn kein Tty angezeigt wird (zum Beispiel bei der Bereitstellung mit Vagrant), also verwende ichgdisk
.Erhöhen Sie die Partitionsgröße, um den gesamten verfügbaren Speicherplatz auszufüllen:
Der
x a 2 <Enter>
Teil ist optional und wird benötigt, wenn Sie ein älteres BIOS verwenden.MY_PARTITION_GUID=...
undc $MY_PARTITION_GUID
Teile sind ebenfalls optional und nur erforderlich, wenn Sie die Partitions-UUID in/etc/fstab
oder an einem anderen Ort verwenden.Starten Sie die Partitionen neu oder lesen Sie sie erneut mit
partx -u $MY_DRIVE
oderpartprobe
.Extend Partition Beispiel für
ext2
,ext3
oderext4
:quelle
Sie können Solus VM mit Gparted Mounted verwenden. Einmal mit dem gparted verwendet, können Sie das System einfach booten und den Speicherplatz anpassen. Stellen Sie sicher, dass Sie die richtige Startpriorität eingestellt haben. Als Referenz verwenden Sie bitte die unten stehende URL, die nützlich sein könnte. https://greencloudvps.com/knowledgebase/11/How-to-Extend-the-Hard-drive-on-KVM-after-upgrade-VPS.html
quelle