Qcow2 kvm-Gäste sichern

13

Ich kann keine guten Informationen zum Sichern von qcow2 kvm-Gästen finden. Mich interessiert nicht wirklich der laufende Status der Gäste, sondern nur das Dateisystem. In dieser Frage wird vorgeschlagen, die Option zu verwenden savevm, damit wird jedoch ein Snapshot erstellt. Ich möchte das Dateisystem remote sichern.

Gibt es einen besseren Weg als:

  1. suspend virt_machine # pause virtuelle Maschine
  2. rsync --sparse /home/vm/image.qcow2 /tmp/image.dec_14_2010.qcow2 # Kopieren Sie das Image auf dasselbe Laufwerk
  3. Wiederaufnahme virt_machine
  4. rsync --sparse /tmp/image.dec_14_2010.qcow2 ssh: // backup @ backupmachine: / vmbackups

Dies hat einige Nachteile. Erstens dauert das Kopieren einer großen Bilddatei (relativ) lange. Zweitens muss ich immer sicherstellen, dass ich genügend Speicherplatz habe, um meine Maschinen zu sichern. Das ist nicht ideal. Gibt es andere bessere Möglichkeiten zum Verwalten von KVM-Sicherungen?

Vielen Dank.

Achtundachtzig
quelle

Antworten:

7

Ich würde die Schnappschuss-Funktion von qemu-nbd vorschlagen:

qemu-nbd --snapshot --connect=/dev/nbd0 image.qcow2

dann mount / dev / nbd0p1 (Partition 1), rsync, unmount und schließlich disconnect:

qemu-nbd --disconnect / dev / nbd0

phhe
quelle
5

Verschmutztes Bild mit diesem (Ihre Pause kann wahrscheinlich helfen, ist aber immer noch nicht vollständig konsistent):

Erstellen Sie einen Snapshot im LVM-Dateisystem, in dem die QCOW2-Sparse-Datei gespeichert ist (wiederum unter der Annahme, dass Sie Platz für den LVM-Snapshot haben).

Hängen Sie den LVM-Snapshot ein.

Hängen Sie die Fernbedienung mit sshfs ein.

Kopieren Sie mit Sparse Copy auf den sshfs-Mountpoint (cp --sparse = always src dest)

Weniger Zeit zum Kopieren, aber es dauert immer noch bis zur vollen Zeit, wenn das Bild größtenteils voll ist.

Sicherungen von Daten innerhalb der VM sind wahrscheinlich eine bessere Idee (weniger Platz / Zeit). Behandeln Sie die einzelnen VMs als reguläre Hosts, die gesichert / wiederhergestellt werden sollen. Holen Sie sich also einfach das, was Sie benötigen, und bewahren Sie eine Reihe von VM-Stubs auf, ohne dass die Daten für eine schnelle Wiederherstellung erforderlich sind.

ax25
quelle
Interessant, danke. Ich habe LVM der Einfachheit halber nicht auf meinem Dateisystem. Ich würde es vorziehen, das gesamte Image zu kopieren, da ich auf diese Weise ein Standby-Failover einrichten kann, falls der Computer zu irgendeinem Zeitpunkt ausfällt.
Achtundachtzig
1
Kein Problem. Der LVM erspart Ihnen lediglich das Anhalten der VM und ermöglicht Ihnen das Erstellen eines Snapshots, während die VM weiter ausgeführt wird.
ax25
3

Persönlich hatte ich eine SEHR schwierige Zeit mit diesem Problem und stellte fest, dass die Backups der Gäste, selbst wenn sie sich im Ruhezustand befanden, oft unzuverlässig waren. Denken Sie daran: Wenn Sie nicht regelmäßig versuchen, diese Sicherungen wiederherzustellen, wissen Sie wirklich nicht, ob sie funktionieren.

Nach vielen Experimenten habe ich mich ganz auf die Sicherung von Images konzentriert und mich für eine herkömmliche Netzwerksicherungslösung entschieden, die man für Bare-Metal-Server verwenden könnte. In meinem Fall haben wir uns für BackupPC entschieden, der zwar alt, aber sehr zuverlässig ist. Auf jedem Server habe ich die Sicherungslösung für die jeweilige (n) verwendete (n) Anwendung (en) konfiguriert. Zum Beispiel sqldump für MySQL, Plugin für Joomla usw.

Es ist eine PIA, aber es ist viel schneller und sehr zuverlässig.

hdave
quelle
Danke @hdave. Ich habe das Gefühl, dass ich mit diesem Ansatz einen der Hauptvorteile von VMs, die Eindämmung, verliere. Zum Wiederherstellen müsste ich alles manuell neu installieren und konfigurieren. Nicht wirklich der Ansatz, den ich verfolgen möchte. Trotzdem, danke, es ist eine gültige Technik.
Achtundachtzig
100% stimmen zu, dass es ein königlicher Schmerz ist. Wenn Sie jemals diese Nuss knacken, lassen Sie uns alle wissen, wie Sie es getan haben!
hdave
@EightyEight: Ich empfehle dringend eine Konfigurationsverwaltungssoftware wie Chef oder Puppet. Es ist viel flexibler und auch weniger schmerzhaft, wenn Sie einen identischen zweiten Server einrichten möchten (physisch oder virtuell, spielt keine Rolle). Chef hat Plugins für fast alle Hypervisor und kann Ihnen helfen, einen Host bereitzustellen und zu konfigurieren. Auf diese Weise haben Sie den Vorteil, dass Sie weniger Speicherplatz für Sicherungen benötigen (eine ganze VM ist im Vergleich zu bestimmten Datensätzen größer) und die Bereitstellungszeit in neuen Umgebungen verkürzt wird. Darüber hinaus ist CM wie eine Infrastrukturdokumentation in Code.
Rafael Bugajewski
2

Unabhängig davon, wo Sie den Snapshot erstellen - LVM oder qcow2 -, muss die VM vor dem Aufnehmen in den Ruhezustand versetzt werden. Andernfalls gehen Daten verloren und Bilder können beschädigt werden.

dyasny
quelle
nicht mehr als Sie, wenn Sie das Netzkabel ziehen würden?
1
nicht mehr und nicht weniger natürlich :)
dyasny
Wenn ich noch etwas darüber nachdenke, wird durch das Stilllegen der Domain nichts hinzugefügt - so oder so ist der Snapshot "crash-konsistent", nicht mehr und nicht weniger, habe ich Recht?
Errr, definiere "crash-konsistent". Das Gastbetriebssystem verfügt möglicherweise über einige In-Flight-Daten für die V-Disk, die verloren gehen, wenn Sie den Stecker ziehen. Theoretisch werden diese Daten möglicherweise in den Snapshot geschrieben, nachdem sie live aufgenommen wurden, aber es gibt einen guten Grund, warum Live-Snapshots auf allen virtuellen Plattformen das Stilllegen / Auftauen in den Gastagenten beinhalten. Außerdem, wenn die Daten nicht verloren gehen, werden sie immer noch im Schnappschuss anstatt im
Basisbild gespeichert
"Absturz-konsistent" bedeutet nur "so konsistent, wie Sie es bei einem Absturz erwarten" iiuc - dh sich auf Journale usw. verlassen und Datenverluste aufgrund fehlender zeitnaher fsync hinnehmen. "Es gibt einen guten Grund, warum Live-Snapshots auf allen virtuellen Plattformen das Stilllegen / Auftauen der Gastagenten beinhalten." Wie ich verstehe, ist der gute Grund genau der gleiche wie das Erstellen eines LVM-Snapshots - kennen Sie sich aus? KVM scheint vor dem Stillstand nicht mehr zu synchronisieren als ein LVM-Snapshot? Wenn Sie LVM nicht für Schnappschüsse verwenden, wäre es natürlich dumm, Sie nicht stillzulegen - aber das ist anders und nicht das, was Sie sagen.