Virtuelle Maschine und Backup

Virtuelle Maschine und Backup

Ich habe eine virtuelle Maschine (CentOS), auf der ein Dateidienst für kleine Dateien läuft. Welche Backup-Methode wird empfohlen? Soll ich die Festplatte/Datei der virtuellen Maschine sichern (von außerhalb der virtuellen Maschine) oder soll ich einen Backup-Agenten innerhalb der virtuellen Maschine ausführen, damit ich den Inhalt sichere und nicht die ganze virtuelle Festplatte?

Antwort1

TLDR: Installieren Sie einen Backup-Agenten innerhalb der VM.

Das Sichern des Disk-Images von außerhalb der VM ist sicherlich verlockend, nicht wahr? Insbesondere wenn Sie mehrere VMs haben, können Sie dem Host-Computer einfach sagen, dass er alle Disk-Images sichern soll, und fertig, ohne jede VM einzeln für die Sicherung konfigurieren zu müssen.

Das Problem bei diesem Ansatz ist jedoch, dass der Host-Rechner nicht weiß, was das Betriebssystem der VM intern tut. Er weiß nicht, ob irgendwelche Schreibvorgänge auf der Festplatte ausstehen oder gerade ausgeführt werden. Er kennt keine Schreib-Caches oder Ausgabepuffer innerhalb des VM-Prozesses. Und deshalb kann er nicht garantieren, dass das Disk-Image, das er sichert, einkonsistentImage zum Zeitpunkt der Sicherung. Die gesicherte Image-Datei ist mit ziemlicher Sicherheit noch verwendbar, aber es besteht eine hohe Wahrscheinlichkeit, dass Sie zuerst eine Dateisystemreparatur durchführen müssen, um sie zu bereinigen.

Der andere große Nachteil bei der Erstellung von Full-Disk-Image-Backups von außen besteht darin, dass solche Backups in erster Linie für die Wiederherstellung des gesamten Systems nützlich sind. Wenn Sie nur die Version einer verlorenen Datei vom letzten Donnerstag wiederherstellen müssen, sind sie dafür nicht so gut geeignet – Sie müssen das gesamte Image aus dem Backup vom Donnerstag wiederherstellen und dann andere Tools verwenden, um diese eine Datei aus der zweiten Kopie des Images zu extrahieren, was viel mehr Zeit und Platz in Anspruch nimmt, als wenn Sie ein Backup innerhalb der VM erstellt und nur die eine gewünschte Datei wiederherstellen könnten.

Damit verbunden ist auch, dass Vollimage-Backups (bestenfalls) schwieriger inkrementell durchzuführen sind, was bedeutet, dass Sie bei jedem Backup eine vollständige Kopie des gesamten Images erstellen müssen. Mit einem inhaltsbasierten Backup innerhalb der VM können Sie regelmäßig Vollbackups durchführen und zwischendurch nur geänderte Dateien sichern, was wesentlich häufigere Backups bei gleichem Speicherplatz ermöglicht.

Wenn Sie ein Image der gesamten VM für die Notfallwiederherstellung erstellen oder es als Master zum Klonen anderer VMs verwenden möchten, ist das Herunterfahren der VM und das Kopieren des vollständigen Disk-Images eine gute Vorgehensweise. Für routinemäßige Backups eines laufenden Systems ist dies jedoch kein guter Ansatz.

Antwort2

TL;DR mache einen Snapshot von außerhalb der VM

Alle VM-Host-Software, die ich je gesehen habe (einschließlich Cloud-Dienste und Container-Hosts), verfügt über eine Snapshot-Funktion. Dies ist die bevorzugte Methode zum Sichern eines laufenden Systems, daSchnappschüssesind garantiert konsistente und atomare Kopien einer ganzen Festplatte zu einem einzigen Zeitpunkt. VM-Host-Software verfügt normalerweise über Gastbetriebssystem-Tools, die das Dateisystem vor einem Snapshot in den Ruhezustand versetzen, obwohl es immer am besten ist, den Snapshot zu einem Zeitpunkt zu erstellen, an dem nicht viele Schreibvorgänge stattfinden, beispielsweise nachts. Die meisten Systeme werden kurz angehalten, während der Snapshot-Status gespeichert wird.

Snapshots sind normalerweise ebenfalls inkrementell. Es gibt auch erweiterte Snapshot-Funktionen wie Deduplizierung.

Wenn das System heruntergefahren ist (nicht angehalten oder suspendiert), können Sie einfach eine Kopie der VM-Dateien erstellen, da Sie wissen, dass keine Schreibvorgänge stattfinden können und alle Daten auf die Festplatte geschrieben worden sein müssen.

Wenn Sie einzelne Dateien wiederherstellen müssen, können Sie einfach die Festplatte wiederherstellen und sie an ein anderes System anschließen und mounten.

Wenn Sie eine Sicherung der Dateien in einem Dateisystem ausführen, treten einige Probleme auf:

Die Dateien sind möglicherweise nicht konsistent, da während der Sicherung Schreibvorgänge stattfinden können, da sie nicht atomar ist. Tar warnt Sie beispielsweise, dass während der Sicherung in eine Datei geschrieben wurde. Ein weiteres Beispiel: Ich würde niemals einer Kopie einer Datenbank vertrauen, deren Dateien gesichert wurden. Das Datenbanksystem ist möglicherweise widerstandsfähig gegen die Wiederherstellung nach Inkonsistenzen, aber möchten Sie dieses Risiko eingehen? Sie sollten besser eine separate, externe Datenbanksicherung mit dem entsprechenden Systemtool durchführen.

Ein weiteres Problem ist, dass es schwierig wäre, nur aus den Dateien ein bootfähiges System zu erstellen. Andere Dinge wie der Bootsektor und die Partitionstabelle sind erforderlich, um ein bootfähiges System zu erstellen. Das bedeutet, dass zusätzlich der Wiederherstellungsschritt der Installation dergenau das gleicheBetriebssystem vor der Dateiwiederherstellung. Selbst dann wäre ich äußerst skeptisch, ob ich ihm vertrauen könnte, selbst wenn es booten würde.

verwandte Informationen