LVM-Snapshots sollen das Dateisystem in einem eingefrorenen Zustand erfassen. Sie sind nicht als Backup für sich selbst gedacht. Sie sind jedoch nützlich, um Backup-Images zu erhalten, die konsistent sind, da sich das eingefrorene Image während des Backup-Prozesses nicht ändern kann und wird. Während Sie sie also nicht direkt für langfristige Sicherungen verwenden, sind sie für jeden Sicherungsvorgang, für den Sie sich entscheiden, von großem Wert.
Es gibt ein paar Schritte, um einen Schnappschuss zu implementieren. Das erste ist, dass ein neues logisches Volume zugewiesen werden muss. Der Zweck dieses Volumes ist es, einen Bereich bereitzustellen, in dem Deltas (Änderungen) am Dateisystem aufgezeichnet werden. Auf diese Weise kann das ursprüngliche Volume fortgesetzt werden, ohne dass der Lese- / Schreibzugriff unterbrochen wird. Der Nachteil dabei ist, dass der Snapshot-Bereich eine begrenzte Größe hat, was bedeutet, dass er auf einem System mit vielbeschäftigten Schreibvorgängen ziemlich schnell voll werden kann. Bei Volumes mit erheblicher Schreibaktivität sollten Sie die Größe Ihres Snapshots erhöhen, damit genügend Speicherplatz für alle Änderungen vorhanden ist. Wenn Ihr Schnappschuss überläuft (sich füllt), werden beide Schnappschüsse angehalten und als unbrauchbar markiert. In diesem Fall möchten Sie Ihren Snapshot freigeben, damit Sie das ursprüngliche Volume wieder online stellen können. Sobald die Veröffentlichung abgeschlossen ist, werden Sie
Das zweite, was passiert, ist, dass LVM jetzt die wahren Zwecke der fraglichen Volumes "vertauscht". Sie würden denken, dass der neu zugewiesene Schnappschuss der Ort ist, an dem Sie nach Änderungen am Dateisystem suchen können, schließlich werden dort alle Schreibvorgänge ausgeführt, oder? Nein, es ist umgekehrt. Dateisysteme werden auf LVM - Volume montiert Namen , so das Auslagern Namen von unter dem Rest des Systems wäre ein no-no (da der Snapshot verwendet einen unterschiedlichen Namen). Die Lösung hier ist also einfach: Wenn Sie auf den ursprünglichen Datenträgernamen zugreifen, bezieht sich dieser weiterhin auf die Live- Version (Lese- / Schreibzugriff) des Datenträgers, von dem Sie den Snapshot erstellt haben. Das von Ihnen erstellte Snapshot-Volume bezieht sich auf das eingefrorene(schreibgeschützte) Version des Volumes, das Sie sichern möchten. Anfangs etwas verwirrend, aber es wird Sinn machen.
All dies geschieht in weniger als 2 Sekunden. Der Rest des Systems merkt es nicht einmal. Es sei denn, Sie geben den Schnappschuss nicht frei, bevor er überläuft ...
Irgendwann möchten Sie Ihren Snapshot freigeben, um den belegten Speicherplatz wiederherzustellen. Sobald die Freigabe abgeschlossen ist, wird das Snapshot-Volume wieder auf dem Volume freigegeben, und das Original bleibt erhalten.
Ich empfehle dies nicht als langfristige Sicherungsstrategie. Sie hosten immer noch Daten auf demselben physischen Laufwerk, bei dem ein Fehler auftreten kann, und die Wiederherstellung Ihres Dateisystems von einem ausgefallenen Laufwerk ist überhaupt keine Sicherung.
Also, auf den Punkt gebracht:
- Snapshots eignen sich gut zur Unterstützung von Backups
- Snapshots sind an sich keine Form der Sicherung
- Schnappschüsse halten nicht ewig
- Ein vollständiger Schnappschuss ist keine gute Sache
- Schnappschüsse müssen irgendwann veröffentlicht werden
- LVM ist dein Freund, wenn du es weise verwendest.
LVM-Snapshots eignen sich hervorragend, um Ihren Server zu sichern, ohne ihn offline zu schalten. Wie bereits erwähnt, handelt es sich bei LVM-Snapshots fast um Sofortkopien. Sie erstellen sie mit dem
lvcreate
Befehl so, wie Sie die LV selbst erstellen würden. Nur Sie geben ihr die--snapshot
Option und die ursprüngliche LV anstelle der VG. Zum Beispiel:Auf diese Weise wird ein Snapshot des angegebenen LV mit dem angegebenen Snapshot-Namen erstellt, den Sie mounten und verwenden können, um Ihre Sicherungskopie zu erstellen, ohne sich Gedanken darüber zu machen, ob Dateien aktiv verwendet werden. Dies ist besonders hilfreich, wenn Sie versuchen, einen aktiven Datenbankserver zu sichern.
Nachdem Sie mit dem Sichern von dem Snapshot fertig sind, möchten Sie ihn entfernen, um zusätzlichen E / A-Aufwand oder andere Leistungsprobleme zu verringern, wie von anderen erwähnt:
LVM-Snapshots können für die Erstellung einer zuverlässigen Sicherung von Systemen wie Datenbanken von unschätzbarem Wert sein, sodass Sie normalerweise die Sicherung beenden möchten, um Dateikonflikte zu vermeiden. Sie eignen sich jedoch nicht für den langfristigen Betrieb als schnelle Wiederherstellung.
quelle
Keine gute Idee, IMO.
Die Snapshots werden beim Schreiben kopiert, sodass Sie jeden Schreibvorgang in einen Lesevorgang und zwei Schreibvorgänge umwandeln (der Block, auf den Sie aktualisieren, wird zuerst vom Haupt-Volume gelesen und auf dem Snapshot-Volume gespeichert, bevor Sie neue Daten speichern Wenn auf den VMs häufig geschrieben wird, kann dies zu Leistungseinbußen führen.
Auch IIRC, wenn das Snapshot-Volume voll wird, wird es einfach kurzerhand gelöscht. Dies ist nicht gut für Sicherungszwecke! Wenn Sie dies als Sicherungsmethode versuchen, stellen Sie sicher, dass das Snapshot-Volume groß genug ist, um alle Änderungen zu verarbeiten, die während der Nutzungsdauer des Snapshots auftreten. Wenn Sie das Größenproblem kennen und überwachen und das Leistungsproblem für Sie kein Problem darstellt, ist das, was Sie vorschlagen, möglicherweise eine nützliche Ergänzung zu anderen vorhandenen Sicherungsprozessen.
LVM-Snapshots sind sehr nützlich als Teil eines Sicherungsprozesses (Erstellen eines Snapshots, Sichern des Snapshots an einem anderen Ort, um sicherzustellen, dass das Backup konsistent ist, ohne dass Aktualisierungen des "echten" Volumes deaktiviert werden müssen, und Löschen des Snapshots danach). Sie sind jedoch nicht als eigenständige Backup-Einrichtung gedacht.
quelle
Sie müssen sicherstellen, dass sich die Daten auf der Festplatte in einem konsistenten Zustand befinden, bevor der Snapshot erstellt wird. Zum Beispiel kann es sein, dass in mysql Daten zwischengespeichert sind, die auf die Festplatte kopiert werden müssen, indem die Datenbank entleert oder heruntergefahren wird. Einzelheiten finden Sie in Ihren Anwendungshandbüchern.
quelle
LVMs sind nicht nur ein Trick für Geräte-Mapper. Das Erstellen eines Snapshots mit lvcreate ist nicht viel mehr als ein Wrapper für einige Dmsetup-Dinge. Der Wrapper erstellt ein neues Gerät (das Snapshot-Volume) aus einem alten (dem Original-Volume) und einem neuen (dem Copy-on-Write-Volume). Zusammen damit wird die ursprüngliche LV in -real umbenannt (siehe unten, dmsetup ls --tree output). Diese echte LV wird sowohl dem Snapshot-Volume als auch dem Original-Volume zugeordnet, sodass sie an beiden Orten verwendet werden kann. Das Copy-on-Write-Volume fungiert als Overlay für das echte LV. Der -snap LV zeigt Ihnen die Kombination des Copy-on-Write-Volumes und des -real-Volumes. Dies verursacht in der Tat einen gewissen Leistungsaufwand.
Beim Entfernen des Schnappschusses kommt es erneut zu Umbenennungen und Zuordnungen. Danach sieht die Situation wieder so aus
Dies ist eine gute Methode zum Sichern von Daten: Wenn Sie berücksichtigen, dass dies (1) nicht für den Arbeitsspeicher der virtuellen Maschinen hilfreich ist, (2) eine Leistungsbeeinträchtigung verursacht und (3) erforderlich ist um Bilder des Schnappschusses an einer anderen Stelle zu speichern.
VMware VCB funktioniert auch mit Snapshots, allerdings nicht mit LVM.
quelle
Auch wenn Snapshots keine Auswirkungen auf die Leistung hatten, müssen Sie wissen: Snapshots sind keine Sicherungskopien mehr als eine Kopie in einen anderen Ordner auf derselben Festplatte.
Wenn die Festplatte bremst, gehen Ihre Daten und Ihre Sicherung verloren. Auch wenn Sie den Snapshot-Bereich einem anderen PE in der VG zuweisen, enthält er nur die Daten, die seit dem Snapshot geändert wurden.
Sichern bedeutet mindestens eine Kopie auf ein vollständig separates Laufwerk.
quelle
Ich benutze ein solches Setup für Snapshots von VMware-Servern und MySQL-Datenbanken. funktioniert soweit gut es gab ein paar restaurierungen - alles ohne probleme. eine sache, die beachtet werden muss - beim laufen mit snapshot wird lvm für i / o-operationen erheblich leistungsfähiger. schau hier . Ignorieren Sie die Tatsache, dass sie über MySQL sprechen, I / O-Operationen sind I / O-Operationen ... egal, welche Art von Daten sich auf LVM befinden.
quelle
Ich benutze lvm-Snapshots nur, um die DomU Lv einer anderen in eine separate Vg zu kopieren, wobei jeder Domain drei Backup- "Nodes" zur Verfügung stehen.
Danach wird der Snapshot zerstört und die Backup-Lvs bleiben bis zur nächsten Runde erhalten. Wenn ich eine Wiederherstellung durchführen muss, muss ich nur eine Quell-Lv aus der Sicherungs-Vg auswählen und in die Domain-Lv kopieren.
Hin und wieder wird ein Backup-Lv in eine Image-Datei auf einem separaten Server gespeichert.
All dies wird per Skript automatisiert, mit einem Backup alle zwei Tage und einem Dump jede Woche.
Ich hatte sogar einen "Panik" -Modus im Sinn, in dem die Domain Lv wiederhergestellt, aber von einem Schnappschuss aus ausgeführt und alle 2 Stunden zurückgesetzt wurde, um die Site im Falle schwerwiegender Hacks online zu halten, bis eine ordnungsgemäße Verteidigung organisiert werden konnte .
quelle
Was wurde aus der Idee der Verteidigungslinie „Panikmodus“?
quelle