In einigen Projekten wird KVM für Linux-Virtualisierung evaluiert. Alles läuft soweit gut. Eine unserer Anforderungen ist jedoch die Möglichkeit, einem laufenden Gast Speicherplatz hinzuzufügen, ohne ihn neu zu starten oder offline zu schalten. Ist das mit KVM möglich?
Das einzige, was ich bisher gefunden habe (aber noch nicht getestet habe), ist die Fähigkeit, Festplatten in die Maschine zu stecken. Wenn ich diesen Weg gehe, könnte ich die neue Festplatte jederzeit einer LVM-Datenträgergruppe auf dem Gast hinzufügen und dann den ausgewählten logischen Datenträger erweitern. Der größte Nachteil dieses Ansatzes ist, dass im Laufe der Zeit Gäste mit einer variablen Anzahl virtueller Festplatten auftreten können. Der "echte" Festplattenspeicher wird dem Host über ein SAN zur Verfügung gestellt, sodass wir dem Host jederzeit mehr Speicherplatz hinzufügen können.
Antworten:
Ich denke, Sie tun nicht das, was Sie erwähnt haben, wenn Sie es tun möchten, ohne die Maschine herunterzufahren.
Warum geben Sie den virtuellen Maschinen nicht einfach die LUNs direkt aus dem SAN und verwalten den Speicherplatz dort? Dies funktioniert besser, wenn Sie ohnehin Funktionen wie Live-Migration verwenden möchten.
KVM basiert auf QEMU, daher stammt die gesamte Unterstützung für das Bildformat aus diesem Projekt. Hier erfahren Sie, wie Sie die Größe der verschiedenen von Qemu / KVM unterstützten Formate ändern können . Aber das Qemu-Forum wäre ein guter Ort, um diese Frage zu stellen, wenn Sie hier keine soliden Antworten erhalten.
Eine andere Option, die möglicherweise nicht ideal ist, ist die Verwendung von wirklich großem qcow2 oder einem anderen spärlichen Image-Format für die Laufwerke. So können Sie jeder Maschine ein kleines Laufwerk für das Betriebssystem und ein großes, spärliches Image für Daten unter LVM zuweisen. Dies würde zumindest die Anzahl der zu verwaltenden virtuellen Laufwerke / Images beibehalten. Diese Thin-Provisionierung könnte jedoch ein Problem darstellen, wenn Sie dies auf 1000 Computern ausführen und jeder Benutzer den freien Speicherplatz beansprucht, den er sieht.
XEN hat meiner Meinung nach derzeit die gleichen Einschränkungen.
quelle
Ich weiß, dass das eine alte Frage ist, aber ich habe sie gefunden, als ich nach der Lösung gegoogelt habe, und hoffe, dass sie jemand anderem hilft.
Was heute ist möglich , die Festplatte auf der Maschine zu ändern. Ich habe hier einen Weg gefunden:
https://bugzilla.redhat.com/show_bug.cgi?id=648594
Die folgenden Schritte müssen ausgeführt werden:
Ermitteln Sie den Dateinamen und den KVM-Gerätenamen der Festplatte, deren Größe Sie ändern möchten:
Das für uns interessante ist Scheibe. Sie sollten suchen
source
undalias
blockieren. Bei mir ist Dateinametest.img
und Aliasnamevirtio-disk0
. Um diesen Namen zu erhalten, müssen Sie demdrive-
Namen des QEMU-Laufwerks voranstellen .Jetzt ändern wir die Größe des Laufwerks mithilfe von qemu monitor:
Beachten Sie, dass der Dateiname ohne die Erweiterung .img verwendet wurde und Laufwerk-Alias hinzugefügt wurde. Das 100G ist die resultierende Größe des Laufwerks, das wir haben möchten
Melden Sie sich an der Maschine an und überprüfen Sie, ob die tatsächliche Größe geändert wurde:
Das ist es! Jetzt können Sie entweder neue Partitionen erstellen oder die Größe bestehender Partitionen ändern.
quelle
AFAIK, dies ist nicht möglich. Sie können neue Datenträgerabbilder hinzufügen. Sie weisen darauf hin, dass Sie einem LVM-Volume auch neue Abbilder hinzufügen können. Um jedoch die Größe eines aktiven, bootfähigen Datenträgerabbilds zu ändern, müssen Sie es schließen können nach unten und bearbeiten Sie die Partitionen.
Hier finden Sie eine gute Erklärung zum Erweitern eines Bildes. Obwohl das Herunterfahren erforderlich ist, könnten Sie wahrscheinlich nur ein paar Minuten Ausfallzeit haben, besonders wenn Sie die Option --nonsparse image vermeiden und die gparted-Festplatte in eine ISO-Datei konvertieren und im Voraus in Ihren KVM-Gast einbinden. Hoffe das hilft.
quelle
Es ist möglich, ein Linux-System während des Betriebs zwischen Festplatten zu verschieben. Die Einschränkung besteht darin, dass Sie keine Partitionen auf einem Datenträger ändern können, auf dem Partitionen verwendet werden.
Dazu muss sich Ihr Root-Dateisystem auf einem LVM befinden. Dies bedeutet häufig, dass Sie über ein separates Boot-Dateisystem verfügen müssen (dies ist jedoch nicht unbedingt erforderlich, es vereinfacht lediglich die Arbeit).
Nachdem Sie den neuen Datenträger angeschlossen haben, fügen Sie ihn mit vgextend zum LVM hinzu, verschieben die Rootfs mit pvmove auf den neuen Datenträger, erweitern mit lvextend und resize2fs das logische Volume bzw. das Dateisystem und entfernen den alten Datenträger mit vgreduce vom Volume Gruppe. Nach dem Entfernen kann das alte Volume vom Stromnetz getrennt werden.
Für den einfachen Fall haben Sie eine winzige Festplatte für das Boot-Dateisystem, die Sie nie berühren müssen. Aber wenn es von alleine ist, ist es einfach , es vom Computer zu trennen, ein neues einzustecken und die Bootdiskette neu zu erstellen, ohne das System anzuhalten. (nur nicht abstürzen, während du es tust)
Hinweis: resize2fs kann auch Dateisysteme verkleinern.
quelle
Nicht möglich atm, aber afaik es ist ein Feature in der Entwicklung. Sie können stattdessen eine Verbindung zu einem iSCSI-Ziel von der VM herstellen und den Speicherplatz auf diesem Ziel auf der SAN-Seite verwalten.
quelle