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

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.

1 Kommentar(e)

Zum Posten von Kommentaren bitte

Kommentare

Von: andybengel

Feines und ziemlich ambitioniertes Howto. Danke auch im Namen aller derjenigen, denen es schon geholfen hat oder mal helfen wird. Allerdings habe ich noch eine Frage und eine Anmerkung:

1) Warum sollte man den Snapshot noch komplett sichern? Schließlich könnte man das auch erst im Fall eine notwendigen Restores machen, und würde sich so Zeit und Resourcen sparen.

2) Auf Seite 3 hat es wohl ein Problem mit der Übermittlung der Screenshots gegeben. Die URLs verweisen alle auf eine lokale (Windoof-) Resource...

Gruß vom
Andy