Wie kann ich LVM-Snapshots in Ubuntu verwenden?

19

Ich habe Ubuntu mit diesen Optionen installiert:

  • Löschen Sie die Festplatte und installieren Sie Ubuntu
  • Verschlüsseln Sie die neue Ubuntu-Installation
  • Verwenden Sie LVM

Wie kann ich LVM-Snapshots erstellen, um Systemänderungen bei Bedarf rückgängig zu machen?

Aleksandr Gornostal
quelle

Antworten:

22

Hinweis: Alle Befehle sollten von ausgeführt werden sudo

Reduzieren Sie zunächst die Größe Ihres Root-Volumes, um Platz für ein Snapshot-Volume zu schaffen

  • Booten Sie von der Live-CD
  • fdisk -l um den Namen Ihres Geräts zu sehen.
    Gerätestart Endsektoren Größe Typ
    / dev / sda1 2048 1050623 1048576 512M EFI-System
    / dev / sda2 1050624 2050047 999424 488M Linux-Dateisystem
    / dev / sda3 2050048 500117503 498067456 237.5G Linux-Dateisystem
    
    /dev/sda3 in meinem Fall
  • cryptsetup luksOpen /dev/sda3 crypt1 um dein Volume zu entschlüsseln
  • vgscan --mknodes um alle Volumengruppen zu finden
    Lesen aller physischen Volumes. Das kann eine Weile dauern...
    Volume-Gruppe "ubuntu-vg" mit Metadatentyp lvm2 gefunden
    
  • vgchange -ay um alle Ihre Volumengruppen zu aktivieren
    2 logische Datenträger in der Datenträgergruppe "ubuntu-vg" sind jetzt aktiv
    
  • lvreduce -r -L -20G /dev/ubuntu-vg/rootum die Größe Ihres Root-Volumens um 20 GB zu reduzieren. Dies kann eine Weile dauern (es dauerte ~ 4 Minuten für mich).
    Dieser Speicherplatz wird später zum Erstellen von LVM-Snapshots verwendet.
  • vgs um zu sehen, dass Sie tatsächlich 20G freien Speicherplatz haben
    VG #PV #LV #SN Attr VSize VFree
    ubuntu-vg 1 2 0 wz - n-230,44 g 20,01 g
    
  • reboot und entfernen Sie die Live-CD

Erstellen Sie einen Schnappschuss (dh aktivieren Sie den "Experimentier" -Modus)

Führen Sie nun den folgenden Befehl aus, wenn Sie mit Ihrem System etwas Gefährliches anstellen möchten

  • lvcreate -s -n snap -L 20G /dev/ubuntu-vg/root
    Hinweis: Dies /dev/ubuntu-vg/rootist ein logisches Volume, von dem Sie einen Snapshot erstellen möchten
  • lvs um zu sehen, dass das Volume erstellt wurde
    LV VG Attr LSize Pool Ursprungsdaten% Meta% Move Log Cpy% Sync Convert
    root ubuntu-vg owi-aos --- 201,59 g                                                    
    snap ubuntu-vg swi-as --- 20,00 g root 0,00                                   
    swap_1 ubuntu-vg -wi-ao ---- 15,90 g
    
    Der Schnappschuss ist ab dem Moment aktiv, in dem Sie ausgeführt werden lvcreate. Sie können jetzt mit neuen Dingen experimentieren.

Szenario 1: Sie möchten Änderungen rückgängig machen

  • lvconvert --merge /dev/mapper/ubuntu--vg-snap
    Das logische Volume ubuntu-vg / root enthält ein verwendetes Dateisystem.
    Über offenes Ursprungsvolumen kann nicht zusammengeführt werden.
    Beim nächsten Aktivieren von ubuntu-vg / root wird der Snapshot ubuntu-vg / snap zusammengeführt.
    
  • reboot

Szenario 2: Sie möchten Änderungen beibehalten

  • lvremove /dev/mapper/ubuntu--vg-snap

Abschließend

Sie müssen grundsätzlich ausgeführt werden lvcreate, um den Prozess zu starten und dann entweder auszuführen lvconvert --mergeoder lvremovezu beenden.

Beachten Sie, dass bei aktivem Snapshot aufgrund der Copy-On-Write-Strategie alle Änderungen auf diese 20 GB Speicherplatz (oder auf den von Ihnen festgelegten Wert) gespeichert werden. Eine Möglichkeit, die verbleibende Kapazität zu überprüfen, besteht darin, die Spalte Data% des lvsBefehls zu überprüfen .

Aleksandr Gornostal
quelle
Gut zu hören :) Danke @ cl-netbox
Aleksandr Gornostal
Müssen Sie das Dateisystem nicht verkleinern, bevor Sie es lvreducein seinem Container ausführen ?
Mark
@ Mark -rFlagge macht das
Aleksandr Gornostal
Ist es sicher zu laufen, lvconvert --mergewenn das Dateisystem gemountet ist, oder müssen Sie es von LiveCD aus tun?
CharlesB
1
@CharlesB Ja, Sie sollten es ausführen, wenn es montiert ist
Aleksandr Gornostal