To może pozwolę sobie wtrącić swoje trzy grosze na temat fajnego ficzera LVM jakim jest migawka (snapshot). Co bardziej zaawansowani userzy używają snapshotów do przywracania systemu w przypadku nieudanej aktualizacji ale ja chciałem powidzieć o tworzeniu kopii bezpieczeństwa. Dzięki migawce można wykonać
spójną kopię bezpieczeństwa
w trakcie działania systemu. To dosyć ważne nawet w przypadku komputera domowego, bo konieczność wyłączenia komputera z normalnego działania i szukania jakichś CDROMów zwykle zniechęca do wykonywania jakichkolwiek bekapów. A przynajmniej mnie zniechęca
Warunkiem wstępnym skorzystania z ficzera jest posiadanie pewnej ilości wolnego miejsca w grupie woluminów w której zawarty jest bekapowany wolumin logiczny. Jak dużo? To zależy od tego jak dużo danych na bekapowanym woluminie ulegnie zmianie podczas całej operacji (pamiętamy, że odbywa się to w czasie normalnej pracy systemu, który zawsze sobie coś tam modyfikuje w plikach). Manual podaje, że 15-20% wielkośći oryginalnego (bekapowanego) woluminu powinno wystarczyć, ale wydaje mi się, że na typowej stacji roboczej jakieś 100MB wystarcza z dużym naddatkiem. No chyba, że jednocześnie z bekapem robi się aktualizację systemu albo zrzuca pliki z kamery wideo
. Tak więc zależy to od konkretnego przypadku. W skrajnej sytuacji może to być wielkość równa wielkośći woluminu oryginalnego, wtedy jest 100% pewności.
No to przejdźmy do konkretów. Pozwolę sobie podłączyć się pod przykład PROTONA, stan po redukcji grupy woluminów o wolumin fizyczny
/dev/sdc1 (obrazek 24, przedostatni):
nazwa grupy woluminów: vg-data
wielkość: 15,99GB
ilość zajęta: 11,86GB
ilość wolna: 4,13GB
woluminy logiczne:
data_db 6GB
data_ext4 5,86GB
1. Utworzenie migawki woluminu
data_ext4 (xfs jest mi całkowicie nieznany a poza tym chyba posiada możliwość tworzenia snapshotów) przy wykorzystamniu całej pozostałej wolnej przestrzeni (4GB w tym przypadku).
Kod: Zaznacz cały
lvcreate --extents 100%FREE --snapshot --name data_ext4_snapshot /dev/vg-data/data_ext4
albo to samo w wersji krótkiej
Kod: Zaznacz cały
lvcreate -l 100%FREE -s -n data_ext4_snapshot /dev/vg-data/data_ext4
2. Zamontowanie migawki w (wcześniej utworzonym) katalogu /mnt/snapshot/data_ext4
Kod: Zaznacz cały
mount -t ext4 -o ro,noatime,nodiratime /dev/vg-data/data_ext4_snapshot /mnt/snapshot/data_ext4
3. Wykonanie kopii bezpieczeństwa swoim ulubionym narzędziem (tutaj rsync) na swoim ulubionym urządzeniu (tutaj na dysku sieciowym ze skonfigurowanym serwerem rsync)
Kod: Zaznacz cały
rsync -a -x -H --numeric-ids --progress /mnt/snapshot/data_ext4/ user@host::dest
4. Odmontowanie migawki z systemu plików
5. Usunięcie snapshota
Kod: Zaznacz cały
lvremove --force /dev/vg-data/data_ext4_snapshot
W przypadku gdy na woluminie vg-data/data_ext4 mamy bazę danych MySQLprzed punktem 1. należy wykonać coś w stylu:
0.
a po pkt 5:
6.