Einrichten von LVM Snapshot als Sicherungs- / Wiederherstellungspunkt in Ubuntu

29

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?

reiben
quelle
3
Dies ist keine Frage ... auch ich denke, Sie haben nicht sehr genau hingeschaut; eine schnelle google für "ubuntu lvm snapshot" und das allererste was auftaucht ist wiki.ubuntu.com/Lvm
psusi
1
Nichts damit zu tun ... hast du es gelesen? Es deckt alles ab, was Sie hier gesagt haben.
Psusi
5
Natürlich können Sie eine Frage stellen und diese dann selbst beantworten. Beachten Sie jedoch, dass diese Site als Q & A-Site fungiert und nicht für kostenlose Tutorials gedacht ist.
guntbert
3
Das ist es. AskUbuntu bietet Tutorials an, aber ich konnte keinen einfachen Weg finden, um eins zu platzieren. Und da ich meine harte Arbeit mit allen teilen wollte, die davon profitieren könnten, habe ich mich dazu entschlossen, dies hier zu posten.
Rub
4
Die Abstimmung so wieder zu öffnen , dass wir dies in einem Q & A aufspalten
muru

Antworten:

11

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.

  1. Booten auf die Ubuntu Live-CD (noch keine Installation .. nur die Live-CD)
  2. Öffnen Sie Zubehör -> Terminal
  3. Wir werden die Festplatte räumen! Bitte sichern Sie alles Wichtige, bevor Sie diese Phase durchlaufen.

    Entfernen wir zunächst die vorhandenen Partitionen:

    # fdisk /dev/sda
      Enter 'd' to delete - enter for as many partitions you have 
    > d   
    > <enter>
      ...
      Enter 'w' to write down changes
    > w
    
  4. Erstellen Sie die Startpartition und den Rest des Laufwerks als die andere Partition

    # fdisk /dev/sda
    > n
      To create a new partition.
    > p
      For Boot Primary partition.
    > 1
      Press <enter> to accept the default start sector.
      Enter:
    > +512M
      To give the boot partition a size of 512MB
    > n
      To create (another) new partition.
    > p
      Should be Primary too.
    > <enter> 
      To accept the default value of 2 (the second partition)
    > <enter>
      To accept the default start sector
    > <enter>
      To accept the whole disk
    > t
      To change the type of the second partition to LVM
    > 2
      To choose the second partition
    > 8e
      To set the type to 'LVM Linux'
    > w
      To write changes and exit.
    

    So überprüfen Sie, ob die Änderungen erfolgreich waren:

    # fdisk --list
    

    Sie sollten so etwas bekommen:

      Device     Boot   Start    End        Blocks     Id   System
      /dev/sda1         2048     524287     261120     83   Linux
      /dev/sda2         524288   488397167  243936440  8e   Linux LVM
    
  5. Entfernen Sie alle vorherigen Datenträgergruppen / logischen Datenträger:

    # lvdisplay 
    

    Zeigt die logischen Datenträger an, die möglicherweise auf dem System vorhanden sind

    # lvremove <existing_logical_volume_name>
    

    Wenn eine Volume-Installation, die diese Installation beeinträchtigen könnte, entfernt werden muss.

    # vgdisplay 
    

    Zeigt alle vorhandenen Volume-Gruppen auf dem System an

    # vgremove <existing_volume_group>
    

    Gleich wie für die Volumengruppen.

  6. Erstelle die Volume Group 'vgsnap'

    # vgcreate vgsnap /dev/sda2
    

    Sollte ergeben mit:

      Volume group "vgsnap" successfully created
    
  7. Erstellen Sie das logische Volume

    # lvcreate --extents 100%FREE --name lvroot vgsnap
    

    Das logische Root-Volume, beginnend mit 100% des Geräts.

    # lvresize --size -30G /dev/mapper/vgsnap-lvroot
    

    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.

    > 'y'
      for the warning shown.
    

    Und erstellen Sie das Swap-Volume:

    # lvcreate --size 15G --name lvswap vgsnap
    

    Hinweis: Wir belassen jetzt 15 GB freien Speicherplatz auf dem Laufwerk, der für den zukünftigen Snapshot reserviert ist.

  8. 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:

  1. Schnappschuss mounten:

    Erstellen Sie das Snapshot-Volume

    # lvcreate --size 15G --snapshot --name lvsnap /dev/mapper/vgsnap-lvroot
    

    Erstellen Sie das Mount-Verzeichnis

    # mkdir /mnt/vgsnap-lvsnap
    

    Hängen Sie den Snapshot als Nur-Lese-Mount ein

    # mount -o ro /dev/vgsnap/lvsnap  /mnt/vgsnap-lvsnap
    

    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.

  2. 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:

    # cd /etc/cron.hourly
    # copy /home/<user>/Downloads/monitor_snapshot
    # chmod +x monitor_snapshot
    

    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:

    # sh /etc/cron.hourly/monitor_snapshot
    

    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!

  3. Änderungen rückgängig machen : (Siehe Skript rollback_snapshot mit den folgenden Anweisungen am Ende des Dokuments.)

    # lvconvert --merge /dev/vgsnap/lvsnap
    

    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.

    # reboot
    

    Hinweis: Wenn Sie das Zusammenführen überspringen, werden Ihre Änderungen festgeschrieben, sobald Sie den Snapshot umounten.

  4. Festschreiben von Änderungen - Bereitstellen des Snapshots: (Siehe commit_snapshot- Skript mit den folgenden Anweisungen - Link am Ende des Dokuments)

    # umount /mnt/vgsnap-lvsnap
      Will unmount (commit0 the snapshot
    
    # lvremove /dev/mapper/vgsnap-lvsnap
    # rm -rf /mnt/vgsnap-lvsnap/
    
    # rm /etc/cron.hourly/monitor_snapshot
      Remove the cron daemon script (that is unused)
    
  5. Erneutes Mounten des Snapshots: (Siehe Skript zum erneuten Mounten mit den folgenden Anweisungen - Link am Ende des Dokuments) So ziemlich wie zuvor:

    # lvcreate --size 15G --snapshot --name lvsnap /dev/mapper/vgsnap-lvroot
    # mkdir /mnt/vgsnap-lvsnap
    # mount -o ro /dev/vgsnap/lvsnap /mnt/vgsnap-lvsnap
    

    Wenn Sie den monitor_snapshot in Ihrem Home- Verzeichnis gespeichert haben , können Sie ihn wiederherstellen:

    # cp /home/<user>/monitor_snapshot /etc/cron.hourly/
    # chmod +x /etc/cron.hourly/monitor_snapshot
    

Das war's Leute! Die folgenden Anweisungen gelten nur für Drücker;)

  1. Verwerfen des Snapshot-Volumes (falls nicht mehr erforderlich)

    # rmdir /mnt/vgsnap-lvsnap
    # lvremove /dev/vgsnap/lvsnap
    

    (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.)

  2. 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:

    # vgremove vgsnap
    

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.

reiben
quelle
Vielen Dank für diese ausführliche Anleitung ... wow.
Adriano Lucas
2

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

Bidyut
quelle
1
Netter Führer! Beachten Sie jedoch, dass ich beabsichtige, ein Mittel zum Sichern ohne Sicherungsmedium bereitzustellen . Als eine Art Lazy Backup. Früher war dies mit Norton GoBack und Windows 2000 ein Lebensretter. Früher habe ich die Systeme, an denen ich gearbeitet habe, durcheinander gebracht, und ich konnte mich darauf verlassen, dass ich meine Fehler in kürzester Zeit zurücksetzen konnte ! Sicherungen sind wahrscheinlich der richtige Weg, um auf einen echten Server zuzugreifen, aber für eine Workstation, die nicht auf einer VMWare / VirtualBox installiert ist (die Snapshots extern bereitstellt), sind Snapshots meiner Meinung nach der richtige Weg.
reiben