Einrichten von LVM Snapshot als Sicherungs- / Wiederherstellungspunkt in Ubuntu.
Warum?
Meines Erachtens liegt der größte Nachteil von Linux bei der großen Nützlichkeit in der durcheinandergewürfelten Installation von Apps. Alle DLLs gehen in ein Verzeichnis. Alle Konfigurationsdateien auf eine andere. Und die Binaries sind auch in einem Haufen. Ja, Windows funktioniert mehr oder weniger auf die gleiche Weise, aber aufgrund der Art der auf Linux installierten System- / Server-Software ist der größte Teil der installierten Software zu einem bestimmten Zeitpunkt nur zu 95% ausgereift und bringt Ihr System zweimal im Monat durcheinander sehr wahrscheinlich ..
Natürlich können wir das System vor und nach jeder Installation sichern, aber das dauert eine Million Jahre. Bei Systemsicherungen (im Gegensatz zur reinen Datensicherung) müssen Sie den Computer ausschalten und eine bootfähige Live-CD sowie ein Sicherungsmedium verwenden. Wenn das Laufwerk zu mehr als 15% voll ist, kann die Sicherung selbst mit moderner Hardware sehr lange dauern.
Also, wie kann das gemacht werden?
Antworten:
Die Alternative - LVM-Snapshots - Informationen zu LVM-Snapshots finden Sie hier: http://www.tutonics.com/2012/12/lvm-guide-part-2-snapshots.html
Kurz gesagt, Snapshots sind eine Möglichkeit, die verwendeten Sektoren auf der Festplatte einzufrieren und dem System mitzuteilen, dass Änderungen / Löschungen / Ergänzungen an einem reservierten Teil der Festplatte, einem so genannten Snapshot-Volume, vorgenommen werden sollen, um die Entscheidung zu verschieben, die Änderungen beizubehalten / zu verwerfen auf dem Laufwerk zu einem späteren Zeitpunkt, soweit der Snapshot-Volume-Speicherplatz bietet. Wenn Sie die Änderungen rückgängig machen (oder beibehalten) möchten, können Sie dies mit einer Zeile tun.
Es mag auf den ersten Blick komplex erscheinen, aber ich kann Ihnen versichern, dass nach der ersten Anstrengung nur zwei Zeilen Skripte erforderlich sind, um den Snapshot-Mechanismus zu verwenden (Downloads bereitgestellt!).
Garantie - Für die folgenden Anweisungen wird keine Garantie übernommen. Benutzung auf eigene Gefahr!
Wie?
Wenn Sie keine vorkonfigurierte Volume-Gruppe haben, müssen Sie wahrscheinlich ein neues sauberes Ubuntu installieren. In diesem Fall müssen Sie einige Anstrengungen unternehmen, um das System zum ersten Mal richtig zu konfigurieren. Ab diesem Zeitpunkt wird der Schnappschuss jedoch mühelos . Und mit mühelos meine ich One-Liner-Befehle mit vorkonfigurierten Skripten.
Wir werden die Festplatte räumen! Bitte sichern Sie alles Wichtige, bevor Sie diese Phase durchlaufen.
Entfernen wir zunächst die vorhandenen Partitionen:
Erstellen Sie die Startpartition und den Rest des Laufwerks als die andere Partition
So überprüfen Sie, ob die Änderungen erfolgreich waren:
Sie sollten so etwas bekommen:
Entfernen Sie alle vorherigen Datenträgergruppen / logischen Datenträger:
Zeigt die logischen Datenträger an, die möglicherweise auf dem System vorhanden sind
Wenn eine Volume-Installation, die diese Installation beeinträchtigen könnte, entfernt werden muss.
Zeigt alle vorhandenen Volume-Gruppen auf dem System an
Gleich wie für die Volumengruppen.
Erstelle die Volume Group 'vgsnap'
Sollte ergeben mit:
Erstellen Sie das logische Volume
Das logische Root-Volume, beginnend mit 100% des Geräts.
Damit werden 30 G für Swap- und Snapshot-Volumes entfernt. Natürlich - Sie können kleinere Größen für den Swap / Snapshot wählen.
Und erstellen Sie das Swap-Volume:
Hinweis: Wir belassen jetzt 15 GB freien Speicherplatz auf dem Laufwerk, der für den zukünftigen Snapshot reserviert ist.
Ubuntu installieren
Schließen Sie das Terminal und starten Sie den Installer.
Wählen Sie "Use LVM ..." (Sie können auch die Verschlüsselung der gesamten Festplatte aktivieren, aber ich habe es nicht getestet.)
Wählen Sie "Etwas anderes" und drücken Sie Weiter. Zu diesem Zeitpunkt finden Sie alle definierten / dev / mapper / ... -Volumes. Einige davon werden automatisch generiert (lvsnap- *) - Sie können sie vorerst ignorieren.
Wählen Sie: / dev / mapper / vgsnap-lvroot volume. Wähle "ext4" als Format und mounte als '/'
Wählen Sie: / dev / mapper / vgsnap-lvswap volume, und wählen Sie "Swap area"
Wenn Sie ein verschlüsseltes Laufwerk erstellen möchten (ich habe keine Ahnung, ob dies mit den Snapshots funktionieren würde?), Möchten Sie wahrscheinlich / dev / sda2 auswählen und das "Volume für die Verschlüsselung" markieren. Habe es aber nicht getestet ..
Hinweis: Die nicht verwendeten 15G bleiben für das Snapshot-Volume frei.
Wählen Sie: / dev / sda1 partition. Formatiere es als 'ext2' und mounte es als '/ boot'
Unten - wähle: / dev / sda1 Partition als Boot
Installieren!
Verwenden des Schnappschusses
Die folgenden Schritte zeigen, wie der Schnappschuss zu einem bestimmten Zeitpunkt verwendet wird:
Schnappschuss mounten:
Erstellen Sie das Snapshot-Volume
Erstellen Sie das Mount-Verzeichnis
Hängen Sie den Snapshot als Nur-Lese-Mount ein
Schnappschuss ist an!
An diesem Punkt können Sie anfangen, Ihr System durcheinander zu bringen, Betatreiber zu installieren und sogar (Nein! Das ist einfach unangemessen).
Von nun an können Sie jederzeit (soweit die Größe des Schnappschusses dies zulässt) zum vorherigen Status zurückkehren oder, wenn Sie mit dem neuen Look zufrieden sind, diesen beibehalten.
Automatische Überwachung des freien Speicherplatzes des Snapshot-Volumes: Mit einer optimierten Version des hier bereitgestellten Skripts: http://blog.rimuhosting.com/2012/02/20/cron-script-for-checking-disk-space/ Ich habe das Skript monitor_snapshot erstellt .
Wie benutzt / installiert man es? - Ziemlich genau wie mit dem obigen Link:
Bevor Sie es zum ersten Mal ausführen, sollten Sie die darin enthaltenen Werte wie Ihre E-Mail-Adresse (an die die Benachrichtigungen gesendet werden sollen usw.) besser bearbeiten. Bei korrekter Konfiguration führt der Cron-Daemon das Skript alle X Stunden / Tage aus. wie Sie sich entscheiden - und benachrichtigen Sie, sobald der Schnappschuss voll ist.
So testen Sie den Skriptlauf:
Es wird der Prozentsatz (die Anzahl) des freien Speicherplatzes im Schnappschuss gedruckt.
Wichtig! Sobald Sie mit Ihren Tests / Installationen fertig sind - führen Sie ein Rollback durch oder behalten Sie die Änderungen bei - und laden Sie den Snapshot herunter!
Änderungen rückgängig machen : (Siehe Skript rollback_snapshot mit den folgenden Anweisungen am Ende des Dokuments.)
Dadurch wird auch der Schnappschuss umgemountet, aber alle Ihre Änderungen werden verworfen. Außerdem wird eine Warnung angezeigt, die darauf hinweist, dass die Wiederherstellung erst bei der nächsten Aktivierung erfolgt.
Hinweis: Wenn Sie das Zusammenführen überspringen, werden Ihre Änderungen festgeschrieben, sobald Sie den Snapshot umounten.
Festschreiben von Änderungen - Bereitstellen des Snapshots: (Siehe commit_snapshot- Skript mit den folgenden Anweisungen - Link am Ende des Dokuments)
Erneutes Mounten des Snapshots: (Siehe Skript zum erneuten Mounten mit den folgenden Anweisungen - Link am Ende des Dokuments) So ziemlich wie zuvor:
Wenn Sie den monitor_snapshot in Ihrem Home- Verzeichnis gespeichert haben , können Sie ihn wiederherstellen:
Das war's Leute! Die folgenden Anweisungen gelten nur für Drücker;)
Verwerfen des Snapshot-Volumes (falls nicht mehr erforderlich)
(Möglicherweise möchten Sie auch die Größe der Root-Partition ändern oder austauschen, um die fehlenden 15G zu belegen, die für den Austausch reserviert sind.)
Verwerfen der Volume-Gruppe - Nur möglich, indem die Volumes der Volume-Gruppe entfernt werden. Dies bedeutet wahrscheinlich, dass die Installation des Betriebssystems gelöscht wird. Aber natürlich muss die Volume-Gruppe nicht wirklich entfernt werden ...
So entfernen Sie die Volumengruppe:
Wichtige Notiz! - Beim Formatieren / Ausführen von fdisk und Entfernen aller Partitionen werden weder die Volumes noch die Gruppe entfernt, da diese auf einem anderen Teil des Laufwerks geschrieben sind. Befolgen Sie einfach die oben angegebenen Anweisungen zum Entfernen und entfernen Sie die Volumes und die Gruppe, falls erforderlich.
quelle
Erstellen eines Cronjobs zum Sichern mithilfe der
lvcreate -s -L <size> -n <snapshot_name> <volume_name>
Hier ist der Name des Volumes der Name des Volumes, dessen Snapshot Sie erstellen möchten. Für weitere Details können Sie auch dieses Tutorial durchgehen
quelle