In einem Beitrag vom 15.06.2011 wurde gezeigt, wie sich mit Hilfe von changetrack und RCS frühere Fassungen von Konfigurationsdateien wieder herstellen lassen. Es wäre sicherlich nicht nur für Administratoren, sondern auch für reguläre Benutzer des LHS angenehm, eine beispielsweise vor zwei Stunden versehentlich gelöschte Datei zurück zu holen.
Im folgenden soll solch eine Funktion mit Hilfe des Logical Volume Managements (LVM) realisiert werden. Es handelts sich dabei gewissermaßen um die vereinfachte Version dessen, was auf Windows-PCs als Volume Shadow Copy Service bekannt ist. Versuchen wir uns zunächst an der Partion mit den /home-Dateien.
root@bluestar:~# mount -l | grep
'home'
/dev/mapper/vg1-home on /home type ext3 (rw,nosuid,nodev,noatime,usrquota,grpquota,user_xattr,acl) [home]
root@bluestar:~# df -h | egrep
'Size|home'
Dateisystem Size Used Avail Use% Eingehängt auf
/dev/mapper/vg1-home 15G 185M 14G 2% /home
root@bluestar:~# lvs | egrep
'LV|home'
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
home vg1 -wi-ao 14,90g
Als nächstes soll vom logischen
Volume home in der Volumengruppe vg1 ein
Schnappschuus mit dem Namen
home.snap erzeugt werden.
root@bluestar:~# lvcreate --snapshot --name
home.snap --extents 10%ORIGIN /dev/vg1/home
Logical volume "home.snap" created
root@bluestar:~# lvs | egrep
'LV|home'
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
home vg1 owi-ao 14,90g
home.snap vg1 swi-a- 1,49g home 0,00
root@bluestar:~# mkdir -p /snap/home
/snap/var
Jetzt existiert ein Verzeichnis
mit dem Namen /snap/home, in dem der erzeugte
Schnappschuss zur Benutzung bereitgestellt werden kann. Vorsorglich
wird auch gleich das Verzeichnis /snap/var
angelegt, um auf weitere Schnappschüsse vorbereitet zu
sein.
root@bluestar:~# editor
/etc/fstab
#
# LVM-Snapshots
#
/dev/mapper/vg1-home.snap /snap/home ext3 noauto,ro 0 0
/dev/mapper/vg1-home.snap /snap/home ext3 noauto,ro 0 0
Die Datei wurde hier nur auszugsweise
dargestellt.
root@bluestar:~# mount
/snap/home
root@bluestar:~# mount -l | grep
'home'
/dev/mapper/vg1-home on /home type ext3 (rw,nosuid,nodev,noatime,usrquota,grpquota,user_xattr,acl) [home]
/dev/mapper/vg1-home.snap on /snap/home type ext3 (ro) [home]
Ein Shellskript soll die künftige Benutzung
vereinfachen.
root@bluestar:~# editor
/root/bin/resnap
#!/bin/sh -e
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
case "$1" in
home|var)
mountpoint -q /snap/$1 && umount /snap/$1
( lvs | grep "$1.snap" >/dev/null 2>1 ) && lvremove -f /dev/vg1/$1.snap
lvcreate --snapshot --name $1.snap --extents 10%ORIGIN /dev/vg1/$1 && mount /snap/$1
;;
*)
echo "Usage: /root/bin/resnap {home|var}"
;;
esac
root@bluestar:~#
./bin/resnap
Usage: /root/bin/resnap {home|var}
root@bluestar:~# ./bin/resnap
home
Logical volume "home.snap" successfully removed
Logical volume "home.snap" created
root@bluestar:~# ./bin/resnap
var
Logical volume "var.snap" created
root@bluestar:~# mount -l | grep
'snap'
/dev/mapper/vg1-home.snap on /snap/home type ext3 (ro) [home]
/dev/mapper/vg1-var.snap on /snap/var type ext3 (ro) [var]
root@bluestar:~# df -h | egrep
'Size|snap'
Dateisystem Size Used Avail Use% Eingehängt auf
/dev/mapper/vg1-home.snap 15G 185M 14G 2% /snap/home
/dev/mapper/vg1-var.snap 7,4G 749M 6,3G 11% /snap/var
root@bluestar:~# lvs | egrep
'LV|snap'
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
home.snap vg1 swi-ao 1,49g home 0,00
var.snap vg1 swi-ao 760,00m var 0,28
Als vorläufig letzten Schritt soll des Erzeugen der
Snapshots automatisiert werden und jede Nacht um kurz nach
vier erfolgen.
root@bluestar:~# crontab
-e
1 4 * * * /root/bin/resnap home | /usr/bin/logger -i -t 'remount snapshot'
2 4 * * * /root/bin/resnap var | /usr/bin/logger -i -t 'remount snapshot'
Was jetzt noch fehlt, ist die Freigabe der Snapshots im
lokalen Netzwerk, damit die Benutzer sie auch verwenden können.
Außerdem wäre es schön, nicht ausschließlich auf den Stand der
letzten Nach angewiesen zu sein, sondern beispielsweise mehrere
Snapshots im Stundentakt zu haben. Dies soll zu einem späteren
Zeitpunkt mit Hilfe des Softwarepakets rsnapshot
realisiert werden. Immerhin eignen sich die bisher erzeugten
LVM-Snapshots auch gut als Quelle für Datensicherungen und das soll
uns als nächstes beschäftigen.
Geschrieben von root | Permanenter
Link | Kategorien: Verwaltung