Sichern (und Wiederherstellen) von LVM Partitionen mit LVM-Snapshots

Jetzt mountet man das /dev/server1/backups Volume auf /backups:

mount /dev/mapper/server1-backups /backups

Um das Volume automatisch beim Systemstart zu mounten, muss man /etc/fstab editieren und die folgende Zeile hinzufügen:

vi /etc/fstab

[...]
/dev/mapper/server1-backups /backups               ext3    defaults,errors=remount-ro 0       1

Nun sieht das Ganze so aus:

pvdisplay

server1:~# pvdisplay
— Physical volume —
PV Name /dev/sda5
VG Name server1
PV Size 9.76 GB / not usable 0
Allocatable yes (but full)
PE Size (KByte) 4096
Total PE 2498
Free PE 0
Allocated PE 2498
PV UUID vQIUga-221O-GIKj-81Ct-2ITT-bKPw-kKElpM

— Physical volume —
PV Name /dev/sdb1
VG Name server1
PV Size 59.99 GB / not usable 0
Allocatable yes
PE Size (KByte) 4096
Total PE 15358
Free PE 7678
Allocated PE 7680
PV UUID cvl1H5-cxRe-iyNg-m2mM-tjxM-AvER-rjqycO

vgdisplay

server1:~# vgdisplay
— Volume group —
VG Name server1
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 5
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 3
Open LV 3
Max PV 0
Cur PV 2
Act PV 2
VG Size 69.75 GB
PE Size 4.00 MB
Total PE 17856
Alloc PE / Size 10178 / 39.76 GB
Free PE / Size 7678 / 29.99 GB
VG UUID jkWyez-c0nT-LCaE-Bzvi-Q4oD-eD3Q-BKIOFC

lvdisplay

server1:~# lvdisplay
— Logical volume —
LV Name /dev/server1/root
VG Name server1
LV UUID UK1rjH-LS3l-f7aO-240S-EwGw-0Uws-5ldhlW
LV Write Access read/write
LV Status available
# open 1
LV Size 9.30 GB
Current LE 2382
Segments 1
Allocation inherit
Read ahead sectors 0
Block device 254:0

— Logical volume —
LV Name /dev/server1/swap_1
VG Name server1
LV UUID 2PASi6-fQV4-I8sJ-J0yq-Y9lH-SJ32-F9jHaj
LV Write Access read/write
LV Status available
# open 2
LV Size 464.00 MB
Current LE 116
Segments 1
Allocation inherit
Read ahead sectors 0
Block device 254:1

— Logical volume —
LV Name /dev/server1/backups
VG Name server1
LV UUID sXq2Xe-y2CE-Ycko-rCoE-M5kl-E1vH-KQRoP6
LV Write Access read/write
LV Status available
# open 1
LV Size 30.00 GB
Current LE 7680
Segments 1
Allocation inherit
Read ahead sectors 0
Block device 254:2

3 Erstellen eines LVM Snapshot von /

Jetzt ist es an der Zeit einen Snapshot des /dev/server1/root Volume zu erstellen. Ich nenne diesen LVM-Snapshot rootsnapshot:

lvcreate -L10G -s -n rootsnapshot /dev/server1/root

Die Ausgabe von

lvdisplay

sollte so aussehen:

server1:~# lvdisplay
— Logical volume —
LV Name /dev/server1/root
VG Name server1
LV UUID UK1rjH-LS3l-f7aO-240S-EwGw-0Uws-5ldhlW
LV Write Access read/write
LV snapshot status source of
/dev/server1/rootsnapshot [active]
LV Status available
# open 1
LV Size 9.30 GB
Current LE 2382
Segments 1
Allocation inherit
Read ahead sectors 0
Block device 254:0

— Logical volume —
LV Name /dev/server1/swap_1
VG Name server1
LV UUID 2PASi6-fQV4-I8sJ-J0yq-Y9lH-SJ32-F9jHaj
LV Write Access read/write
LV Status available
# open 2
LV Size 464.00 MB
Current LE 116
Segments 1
Allocation inherit
Read ahead sectors 0
Block device 254:1

— Logical volume —
LV Name /dev/server1/backups
VG Name server1
LV UUID sXq2Xe-y2CE-Ycko-rCoE-M5kl-E1vH-KQRoP6
LV Write Access read/write
LV Status available
# open 1
LV Size 30.00 GB
Current LE 7680
Segments 1
Allocation inherit
Read ahead sectors 0
Block device 254:2

— Logical volume —
LV Name /dev/server1/rootsnapshot
VG Name server1
LV UUID 9zR5X5-OhM5-xUI0-OolP-vLjG-pexO-nk36oz
LV Write Access read/write
LV snapshot status active destination for /dev/server1/root
LV Status available
# open 1
LV Size 9.30 GB
Current LE 2382
COW-table size 10.00 GB
COW-table LE 2560
Allocated to snapshot 0.01%
Snapshot chunk size 8.00 KB
Segments 1
Allocation inherit
Read ahead sectors 0
Block device 254:5

Ich möchte nun /dev/server1/rootsnapshot auf /mnt/server1/rootsnapshot mounten, deshalb muss ich zuerst das Verzeichnis erstellen:

mkdir -p /mnt/server1/rootsnapshot

Dann mounte ich den Snapshot:

mount /dev/server1/rootsnapshot /mnt/server1/rootsnapshot

Nun führe ich den folgenden Befehl aus:

ls -l /mnt/server1/rootsnapshot/

Dies sollte alle Verzeichnisse und Dateien, die ich von / Partition kenne, zeigen:

server1:~# ls -l /mnt/server1/rootsnapshot/
total 132
drwxr-xr-x 2 root root 4096 2007-04-10 21:02 backups
drwxr-xr-x 2 root root 4096 2007-04-10 20:35 bin
drwxr-xr-x 2 root root 4096 2007-04-10 20:25 boot
lrwxrwxrwx 1 root root 11 2007-04-10 20:25 cdrom -> media/cdrom
drwxr-xr-x 13 root root 40960 2007-04-10 20:36 dev
drwxr-xr-x 57 root root 4096 2007-04-10 21:09 etc
drwxr-xr-x 3 root root 4096 2007-04-10 20:36 home
drwxr-xr-x 2 root root 4096 2007-04-10 20:26 initrd
lrwxrwxrwx 1 root root 28 2007-04-10 20:29 initrd.img -> boot/initrd.img-2.6.18-4-486
drwxr-xr-x 13 root root 4096 2007-04-10 20:34 lib
drwx—— 2 root root 16384 2007-04-10 20:25 lost+found
drwxr-xr-x 4 root root 4096 2007-04-10 20:25 media
drwxr-xr-x 2 root root 4096 2006-10-28 16:06 mnt
drwxr-xr-x 2 root root 4096 2007-04-10 20:26 opt
drwxr-xr-x 2 root root 4096 2006-10-28 16:06 proc
drwxr-xr-x 3 root root 4096 2007-04-10 20:42 root
drwxr-xr-x 2 root root 4096 2007-04-10 20:36 sbin
drwxr-xr-x 2 root root 4096 2007-03-07 23:56 selinux
drwxr-xr-x 2 root root 4096 2007-04-10 20:26 srv
drwxr-xr-x 2 root root 4096 2007-01-30 23:27 sys
drwxrwxrwt 2 root root 4096 2007-04-10 21:09 tmp
drwxr-xr-x 10 root root 4096 2007-04-10 20:26 usr
drwxr-xr-x 13 root root 4096 2007-04-10 20:26 var
lrwxrwxrwx 1 root root 25 2007-04-10 20:29 vmlinuz -> boot/vmlinuz-2.6.18-4-486

Jetzt hat man seinen Speicherauszug erfolgreich erstellt!

Nun kann man eine Sicherungskopie des LVM-Snapshots auf der /backups Partition erstellen, indem man sein bevorzugtes Backup-Programm benutzt. Wenn man eine Datei basierte Sicherungskopie möchte, könnte man folgendermaßen vorgehen:

tar -pczf /backups/root.tar.gz /mnt/server1/rootsnapshot

Möchte man ein exate Sicherungskopie Bit für Bit (z.B. für ein Bild), kann man so vorgehen:

dd if=/dev/server1/rootsnapshot of=/backups/root.dd

server1:~# dd if=/dev/server1/rootsnapshot of=/backups/root.dd
19513344+0 records in
19513344+0 records out
9990832128 bytes (10 GB) copied, 320.059 seconds, 31.2 MB/s

Allerdings kann man auch beide Möglichkeiten nutzen, um gegen alles gewappnet zu sein, was mit dem /dev/server1/root Volume passieren könnte. In diesem Fall sollte man zwei Sicherungskopien hintereinander durchführen:

ls -l /backups/

server1:~# ls -l /backups/
total 9947076
drwx—— 2 root root 16384 2007-04-10 21:04 lost+found
-rw-r–r– 1 root root 9990832128 2007-04-10 21:28 root.dd
-rw-r–r– 1 root root 184994590 2007-04-10 21:18 root.tar.gz

Danach kann man unmouten und den Snapshot entfernen, damit er nicht unnötig Systemressourcen verbraucht:

umount /mnt/server1/rootsnapshot
lvremove /dev/server1/rootsnapshot

Das war’s! Jetzt hat man seine erste Sicherungskopie eines LVM-Snapshot.

Das könnte dich auch interessieren …