Benutzer-Werkzeuge

Webseiten-Werkzeuge


solutions:lvmsnapshot

Snapshot auf einem Locical Volume erstellen

Wenn das Linux-System mit dem Locical Volume Mamanger (LVM) eingerichtet wurde, sind Image-Backups im laufenden Betrieb möglich. Hierzu wird ein Snapshot des logischen Laufwerks erstellt und dann kann davon das Image gezogen werden.

Informationen zum Thema

Vorbereitungen

Zunächst muss festgestellt werden, ob in der Volume Group der zu sichernden Partition noch Platz vorhanden ist. Hierbei ist nur so viel Platz erforderlich, wie während der Backup-Zeit vermutlich Daten geändert werden.

Bei Bedarf muss etwas Platz geschaffen werden, dass erfordert allerdings ein ausgehängtes Dateisystem weil das Filesystem zunächst verkleinert werden muss und erst dann das Logical Volume verkleinert werden kann.

Beispiel für eine vorbereitete Volume Group:

$ sudo vgs
  VG       #PV #LV #SN Attr   VSize  VFree  
  vgubuntu   1   2   0 wz--n- 29,57g 648,00m

Die 648 Mbyte reichen in dem Beipiel völlig aus, denn während des Backups werden in der Root-Partition nur minimale Bewegungen stattfinden.

Image Backup durchführen

Um ein Image der root-Partition zu erstellen sind die folgenden Schritte erforderlich:

1. Snapshot erstellen

Das folgende Kommando erzeugt ein LV-Snapshot für die root-Partition mit dem Namen /dev/vgubuntu/snap.

$ sudo lvcreate -l100%FREE -s -n snap /dev/vgubuntu/root
$ sudo lvs
  LV   VG       Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root vgubuntu owi-aos---  24,05g                                                    
  snap vgubuntu swi-a-s--- 648,00m      root   1,42                                   
  swap vgubuntu -wi-ao----   4,88g  

Mit lvs kann anschließend geprüft werden, ob das snapshot existiert.

2. Image erzeugen aus dem Snapshot

Das folgende Kommando erzeugt mit fsarchiver ein Image xxx.fsa im aktuellen Verzeichnis.

$ sudo fsarchiver -v savefs xxx.fsa /dev/vgubuntu/snap

3. Shapshot verwerfen

Nach dem Backup muss das Shapshot unbedingt wieder gelöscht werden damit die Volume Group nicht überläuft. Wir haben ja nur 648 MByte für Differenzdaten reserviert.

$ sudo lvremove /dev/vgubuntu/snap
Do you really want to remove and DISCARD active logical volume snap? [y/n]: y
  Logical volume "snap" successfully removed
$

Image Backup Restore

Ein Restore des Images kann nur in einem ausgehängten Verzeichnis durchgeführt werden. Vor allem das Root-Verzeichnis, aber auch ein Home-Verzeichnis können im laufenden Betrieb nicht ohne Weiteres ausgehängt werden. Daher ist es erforderlich, das System mit einem Live-System per USB-Stick oder DVD zu starten.

Geeignet sind Ubuntu-Live Systems oder auch die SysrescueCD. Wenn das LVM in einer Crypt-Disk enthalten ist, hat Ubuntu den Vorteil, dass die verschlüsselte Partition per Mausklick geöffnet werden kann. Dafür ist fsarchiver nicht enthalten und muss erst per apt-get install fsarchiver installiert werden, was einen Internet-Zugriff voraussetzt.

Aber auch die SysrescueCD kann verschlüsselte Partitionen öffnen, es bedarf nur der Kommandozeile, Beispiel:

# ls -l /dev/sd*
brw-rw---- 1 root disk 8, 0 Mai 29 14:06 /dev/sda
brw-rw---- 1 root disk 8, 1 Mai 29 14:06 /dev/sda1
brw-rw---- 1 root disk 8, 2 Mai 29 14:06 /dev/sda2
brw-rw---- 1 root disk 8, 5 Mai 29 14:06 /dev/sda5
# cryptsetup luksOpen /dev/sda5 sda5_crypt
Passphrase:
# ls -l /dev/mapper
insgesamt 0
crw------- 1 root root 10, 236 Mai 29 14:06 control
lrwxrwxrwx 1 root root       7 Mai 29 14:06 sda5_crypt -> ../dm-0
lrwxrwxrwx 1 root root       7 Mai 29 14:06 thinkpad--vg-home -> ../dm-3
lrwxrwxrwx 1 root root       7 Mai 29 14:06 thinkpad--vg-root -> ../dm-1
lrwxrwxrwx 1 root root       7 Mai 29 14:06 thinkpad--vg-swap_1 -> ../dm-2

Danach besteht nach Öffnen der verschlüsselten Partition /dev/sda5 Zugriff auf die VolumeGroup thinkpad-vg und die darin befindlichen LogicalVolumes home, root und swap_1.

Zugriff auf eine bestehende LVM Partition

Es kommt vor, dass man auf eine bestehende LVM-Partition zugreifen möchte um Daten zu ändern oder auszulesen. Von einem System kann so auf eine bereitgestellte Platte zugegriffen werden. Wenn LVM bereits installiert ist, sind Schritt 1 und 2 nicht erforderlich.

~$ sudo apt install lvm2
~$ sudo modprobe dm-mod
~$ sudo vgscan
  Reading volume groups from cache.
  Found volume group "template-vg" using metadata type lvm2
~$ sudo vgchange -ay template-vg
  2 logical volume(s) in volume group "template-vg" now active
~$ sudo lvs
  LV     VG          Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root   template-vg -wi-a----- 136,16g                                                    
  swap_1 template-vg -wi-a-----   4,00g                                                    
~$ sudo mkdir /mnt/hyas
~$ sudo mount /dev/template-vg/root /mnt/hyas
~$ cd /mnt/hyas/
/mnt/hyas$ ls
bin   dev  home        initrd.img.old  lib64       media  opt   root  sbin  srv  tmp  var      vmlinuz.old
boot  etc  initrd.img  lib             lost+found  mnt    proc  run   snap  sys  usr  vmlinuz
/mnt/hyas$
solutions/lvmsnapshot.txt · Zuletzt geändert: 2018-02-16 14:11 von andreas