KVM-Virt-Clone während die VM läuft

KVM-Virt-Clone während die VM läuft

Ist es möglich, eine laufende KVM-Maschine ohne Tools wie Virt-Clone zu klonen?

Sie haben die ursprüngliche VM bereits in Betrieb, ich kann sie nicht herunterfahren. Wenn mir die temporäre Datenbeschädigung (die durch ein anfängliches fsck behoben werden kann) auf dem Klon egal ist, kann ich dann einfach die qcow-Image-Datei unter einem neuen Namen kopieren, eine neue VM-Definition erstellen, die diese Festplatte verwendet, und die Maschine starten?

Antwort1

Wenn Sie sich nicht für die Daten im Arbeitsspeicher interessieren, können Sie einen Snapshot des Sicherungsgeräts erstellen und eine Kopie dieses Snapshots anfertigen.

Dies erfordert natürlich einen Speicherpool mit Snapshot-Unterstützung (meistens LVM oder ZFS, da BTRFS für die Speicherung virtueller Maschinen unglaublich langsam ist).

Antwort2

Ich vermute, es istnurEs ist möglich, eine Festplatte zu klonen, indem man die Verwendung von virt-clone vermeidet, da (wie bereits erwähnt) virt-clone sich weigert, mit einer laufenden VM zu arbeiten. Sie müssten also etwas anderes verwenden, um eine Kopie des tatsächlichen Festplattenabbilds zu erstellen.

Ich denke, die grundlegende Antwort lautet: Sie können es versuchen und hoffen, dass Sie Glück haben.

Einen „Schnappschuss“ der Konfiguration des Gasts zu erstellen ist ganz einfach ( virsh dumpxml NAMEdas funktioniert). Wenn Sie mehr als eine Festplatte haben (d. h. wenn Sie eine Betriebssystemfestplatte und n+1 Datenfestplatten haben), würde ich versuchen, das Klonen der Betriebssystemfestplatte zu vermeiden und zu prüfen, ob ich stattdessen eine Neuinstallation durchführen kann.

Wenn es jedochbeliebigandere Methode als das Kopieren von Disk-Images, würde ich wahrscheinlich bevorzugen. Wenn sich das alles beispielsweise auf einen Datenbankserver beziehen würde, würde ich wahrscheinlich die eigenen Funktionen der Datenbank verwenden, um die Daten sicher zwischen Instanzen zu kopieren. Wenn Sie direkt mit einem Dateisystem arbeiten würden, wäre es möglicherweise lohnenswert zu prüfen, ob etwas wie DRBD helfen könnte oder ob etwas Einfaches wie rsync helfen würde.

Grundsätzlich würde ich sorgfältig überlegen, was Sie tatsächlich tun müssen, und versuchen, keine Zeit mit Dingen wie dem Kopieren eines Disk-Images zu verschwenden, das gerade verwendet wird (abgesehen davon, wie die Kopie aussehen könnte, hätte ich Bedenken hinsichtlich der möglichen Auswirkungen des Kopiervorgangs auf das Original).

Antwort3

Ich hatte eine funktionierende VM. Während ich darin war, habe ich per SSH auf die KVM-Basismaschine zugegriffen und deren Sicherungsdiskette und Snapshot mit auf ein NVMe-Laufwerk kopiert cp -ar. Ich habe auch das erwähnte NVMe vor dem Kopieren formatiert und partitioniert ... Dann verwendet

virsh edit mykvm 

habe die ID, die Datenträgerspeicherorte und den Namen geändert …

und habe meinen Rechner heruntergefahren und den neuen neugestartet. Das Einzige, was weg war, waren offene Fenster und die Chrome-Sitzung ...

Es scheint zu funktionieren, sofern Sie nicht gerade System- oder Anwendungsdateien schreiben ...

Ich werde das natürlich nicht verwenden. Ich werde damit experimentieren und nach dem Experimentieren werde ich die Ergebnisse in die Originaldatei implementieren.

Wenn ich es jedoch jemals als Haupt-OS-Snapshot verwenden müsste, würde ich einfach eine Dateisystemprüfung und dann eine Systemdateiprüfung (sha1sum) durchführen oder einen der integrierten Befehle zur Prüfung der Systemdateien verwenden.

Antwort4

Mit dem RAW-Disk-Image-Format ist das durchaus machbar. Über qcow2 weiß ich nichts ...

Debian.img: x86-Bootsektor; Partition 1: ID=0x83, aktiv, Starthead 32, Startsektor 2048, 497664 Sektoren; Partition 2: ID=0x5, Starthead 59, Startsektor 501758, 104353794 Sektoren, Code-Offset 0x63

Debian2.img: x86-Bootsektor; Partition 1: ID=0x83, aktiv, Starthead 32, Startsektor 2048, 497664 Sektoren; Partition 2: ID=0x5, Starthead 59, Startsektor 501758, 104353794 Sektoren, Code-Offset 0x63

Zum Testen habe ich ein laufendes Linux-Mint-System mit allem kopiert. Dann habe ich mit dem neuen Image eine neue VM erstellt, die beim Booten nicht einmal Dateisysteminkonsistenzen aufwies. Obwohl dies nur eine kleine Desktop-VM war, wollte ich einen laufenden LAMP-Server in der Produktion mit hohem I/O auf der Datenbank „klonen“.

Inkonsistenzen würden mich wirklich nicht stören, ich wollte nur etwas Zeit sparen, um die LAMP-Umgebung neu einzurichten. Ich schätze, es wäre eine gute Idee gewesen, zu Beginn ein Basis-Image zu erstellen oder einen Snapshot des ersten Webservers zu machen, aber nachdem es vollständig konfiguriert und getestet war, war es zu spät, sie begannen sofort damit, es in der Produktion zu verwenden.

verwandte Informationen