Můj malý svět

Obrať obličej k slunci
a stíny budou padat za tebe

Pravidelné a kontinuální zálohování

Kdo nezálohuje svá data, koleduje si. Zamysleli jste se někdy nad tím, co by to pro vás znamenalo, kdybyste přesně v tento moment přišli o všechna svá nezazálohovaná data?

Já začal pravidelně zálohovat hned potom, co jsem si zašifroval disk. Zvolil jsem DVD-RAM média, která sice jsou pomalá, ale zase netrpí náchylností na cizí magnetické pole, pády z výšky apod. Nikdy bych nezálohoval na stejný typ média, jako je ten, na kterém jsou primární data.

Pomalost zápisu na DVD řeším tak, že si data předpřipravím skriptem (v mezičase mám buď volno, nebo pracuji, ale tak, abych si nenarušil konzistenci dat v záloze). Během dne pak připravené archívy přesouvám na jednotlivá média. Asi nemusím dodávat, že i zálohy mám šifrované.

Nedávno jsem narazil na člověka, který psal o tom, jak mu odešel disk, ale díky využívání služeb s ukládáním dat na (cizích) serverech vlastně o žádná data nepřišel, i když nezálohoval. Mně se příčí takto cíleně strkat všechna svá data do cizích rukou, ale je fakt, že pravidelné zálohování jednou za měsíc není dostatečné (přijít třeba o měsíc práce? brr!).

Už dřív jsem plánoval, že budu zálohovat jednou za dva týdny, ale principiálně by se nic nezměnilo, jen bych asi víc pociťoval omezené velikosti svých zálohovacích DVD. Takže bych neměl tolik záloh dozadu.

Mac OS X se může pyšnit programem Time Machine, který v pravidelných (hodinových) intervalech provádí zálohu dat na externí médium (typicky disk). Pro GNU/Linux existují různé klony, ale já moc grafické rozhraní nemám rád (není nad poctivou textovou konfiguraci ;c)), takže jsem si řekl, že půjdu do rdiff-backup.

Prvně médium. Hlavním požadavkem bylo, abych na něj mohl neomezeně zálohovat v intervalech v řádu desítek minut (méně už mi nepřijde smysluplné). Velké externí SSD disky (magnetické jsem vyřadil z výše uvedených důvodů) nepřipadaly v úvahu, protože hodně pracuji na cestách a nechci s sebou tahat další cihlu. USB flash disk je pro mnoho lidí jasná volba – malý, levný a celkem i rychlý. Jenže já mám v notebooku 3 USB porty a v běžném provozu je mám všechny obsazené, takže bych si buď musel pořídit rozbočovač, nebo něco vyhodit, abych si udělal místo. Obojí je nešikovné. Navíc bych si musel stále myslet na to, zda tu flashku mám zapojenou. Tak už mi zbyla poslední možnost: SDHC karta. V notebooku mám zabudovanou čtečku tohoto typu karet, takže by to pro mě byla naprostá výhra. Tuhle čtečku totiž nepoužívám – karta z foťáku je oblepená izolepou, takže tam jde ztuha, navíc ji blokují audio konektory –, takže tam zálohovací karta může klidně být nonstop. Cena byla parádní: za necelých 700 korun jsem dostal 32 GB kapacity s rychlým zápisem a krapet pomalejším čtením (což je ale vyhovující – primárně chci zapisovat, ne číst) a doživotní zárukou. Prima.

Médium mám. Krok druhý: zašifrovat! Při bootu už jedno heslo zadávám, proč se tedy otravovat s dalším. Místo hesla mohu klidně použít soubor s náhodnými daty a odemčení/zamčení karty provést v init skriptu local. Bystřejší jistě napadlo, že když mi klekne disk, tak zašifrované zálohy dobytné pouze se souborem, který je na mrtvém disku, jsou k ničemu. Řešení jsou dvě: zálohovat tento soubor a/nebo nastavit k zálohám i normální heslo (a to nezapomenout ;c)).

# dd bs=1 count=4096 if=/dev/random of=<soubor s heslem>
# cryptsetup -v -c twofish-xts-plain -s 512 -h sha512 -d <soubor s heslem> luksFormat /dev/sdb
# cryptsetup -d <soubor s heslem> luksOpen /dev/sdb encsd
# dd if=/dev/zero of=/dev/mapper/encsd

Dělit na oddíly jsem kartu neměl v plánu, takže přímo na zařízení jsem vytvořil souborový systém. Pokud bych chtěl oddíly, sáhl bych zase po LVM. V kořeni karty jsem si vytvořil adresář data/, jehož jsem vlastníkem, abych nemusel řešit přístupová práva ke kartě. Do něj už budu přímo zálohovat.

Krok třetí: co vlastně zálohovat? Nemá smysl zálohovat všechno. Zvlášť ne to, co je pohodlně kryto pravidelnou zálohou a moc se to nemění. U mě to vychází na e-maily, historie jabberu, dokumenty a zdrojáky. Nic dalšího zřejmě nebudu potřebovat zálohovat.

Krok čtvrtý: zálohovací skript. Chci mít zálohování pěkně pod palcem, takže ho nebudu dávat přímo do crontabu, ale vytvořl jsem si skript ~/.config/cron/backup.sh:

#!/bin/sh

##
# Script providing incremental backups every 30 minutes
##

DIR=/mnt/backup/data

rdiff-backup ~/documents                $DIR/documents
rdiff-backup ~/devel                    $DIR/devel
rdiff-backup ~/.local/share/evolution   $DIR/evolution
rdiff-backup ~/.local/share/gajim       $DIR/gajim

Přemýšlel jsem i nad tím, jestli bych neměl implementovat zamykání (kvůli ošetření překryvu dvou zálohovacích běhů), ale experimenty s rdiff-backup ukázaly, že pro běžné zálohování už zamykání řeší sám, takže se nemusím ničeho bát. Pouze iniciální zálohu je vhodné provést mimo cron, protože i když jde jen o pár gigabajtů, snadno se přetáhne 30 minut. A rdiff-backup se u mě v takovém případě nechoval vůbec pěkně:

Found interrupted initial backup. Removing...

A jednoduchý řádek do crontabu, který zajistí spouštění zálohovacího skriptu každých 30 minut:

*/30 * * * *    /home/xhire/.config/cron/backup.sh

A v tento moment mám hotovo.

Někdo by mohl navrhnout, že data zálohovaná na SDHC kartu už nemusím zálohovat na DVD. Musím. Notebook, kde karta permanentně je, může postihnout nějaká nehoda, ztráta, nebo dokonce krádež. Bylo by hodně špatné v takový okamžik přijít úplně o svá nejcennější data (proto byla zálohovaná kontinuálně). Takhle člověk sice přijde o nejnovější data, ale má alespoň ta k poslední záloze, což není tak strašné jako přijít o všechna.

Pár dní po zprovoznění kontinuálního zálohování jsem už zálohu potřeboval. Hodně jsem v ten okamžik ocenil snadnou obnovu dat z rdiff-backupu. A cvičně jsem si provedl i obnovu ze starší zálohy. Utvrdil jsem se tím v tom, že volbu zálohovací aplikace jsem zvolil dobře.

Zálohujte. Zlaté přísloví praví, že lidé se dělí na dvě skupiny: na ty, co zálohují, a na ty, co ještě o data nepřišli. ;c) Nikdy nevíte dne ani hodiny…

Zaškatulkováno v kategorii: GNU/Linux | 9. května 2012

Komentáře

Jak přidat komentář? E-mailem! :c) Na komentare -zavináč- mujmalysvet -tečka- cz – do předmětu „Komentář:“ + název zápisku (tj. „Komentář: Pravidelné a kontinuální zálohování“), případně připojte i svou přezdívku a domovskou stránku.