LVM2 - snapshot merge
Efekt przerwy urlopowej wyraźnie wpłynął na częstotliwość pojawiania się nowych wpisów. Na rozłąkę z tą blogową ciszą niech posłuży temat dotyczący LVM i jego usprawnienia w zakresie snapshotów…
Często na łamach bloga nawiązywałem do systemu ZFS, w którym to
snapshoty i ich zapisywalne odpowiedniki czyli clone’y były szybkie i
bardzo użyteczne. Użyteczność ich w systemie OpenSolaris podkreślało
rozwiązanie boot enviroment (beadm), które umożliwiało łatwe
przywrócenie stanu systemu do tego sprzed update’a (patrz. pkg
image-update). Wraz z wprowadzeniem dystrybucji Fedora 13, doczekaliśmy
się i w systemie Linux podobnej funkcjonalności promowanej wraz z
eksperymentalnym jeszcze systemem plików Btrfs [1]. Mało jednak
wspomniane jest o rozwiązaniu tego problemu z systemem LVM, chodzi tutaj
o rozszerzenie ,,merge'' umożliwiające cofnięcie stanu wolumenu do
wybranego snapshot’a. Funkcjonalność ta pojawia się wraz z wprowadzeniem
kernel’a 2.6.33.
Wyobraźmy sobie sytuację kiedy chcemy zabezpieczyć systemu przed ważnym
update’em, tak aby w razie niepowodzenia łatwo przywrócić stan systemu
sprzed zmiany.
Zanim rozpoczeniemy ww. update’em wykonamy snapshot’a wolumenu, którego
dotyczyć będzie zmiana:
# touch /etc/before-update
# lvcreate -L 2G -s -n snap1 vg_fedora13/lv_root
następnie wykonujemy ww. update, który dla uproszczenia zilustrowałem jako skasowanie pliku /etc/before-update ;)
# rm /etc/before-update
po restarcie systemu okazuje się, że musimy szybko cofnąc zmiany:
:::text
# lvconvert --merge vg_fedora13/snap1
Can't merge over open origin volume
Merging of snapshot snap1 will start next activation.
komunikat informuje, że operacji na podmontowanym systemie plików jest niemożliwia w związku z tym restartujemy system i sprawdzamy:
# ls /etc/before-update
/etc/before-update
operacja się udała mamy stan systemu sprzed zmian. Jednak kolejny snapshot kończy się komunikatem:
Snapshots of an origin that has a merging snapshot is not supported.
wówczas wystarczy aktywować ponownie dany wolumen:
lvchange -ay vg_fedora13/lv_root
Tym prostym sposobem otrzymujemy szybkie narzędzie do cofania zmian, należy jednak pamiętać o tym, że dla LVM wykonywanie snapshot’ów i ich utrzymywanie może odbijać się negatywnie na szybkości działania w przeciwieństwie do systemu ZFS i Btrfs opartych o rozwiązanie COW i pewnie ta idea przyświecała twórcom wspomianego narzędzia dla Fedory.
[1] http://fedoraproject.org/wiki/Features/SystemRollbackWithBtrfs
powered by Hugo and Noteworthy theme