Linux jako zálohovací server

Popisuji ověřený způsob, jak využít linuxový stroj k zálohování. Třeba i k zálohování stanic s Windows.

14.2.2005 06:00 | Petr Zajíc | přečteno 21173×

Často lze slyšet tvrzení, že Linux se "na spoustu úloh hodí lépe než Windows". A když se zeptáme na konkrétní příklady, odpověď bývá často: "Nó, router...". Je samozřejmě pravda, že linuxový router je hezký příklad použití stroje s tímto systémem, ale Linux se dá použít i na mnoho jiných věcí. (Mimochodem, počítač s Windows může sloužit také jako router). Dnes se podíváme, jak lze s úspěchem využít linuxový stroj jako zálohovací server.

Scénář

Protože popisuji skutečně fungující příklad, nejprve si dovolím nastínit situaci. Firma provozuje malou počítačovou síť, kde běhá cca 10 PC na systémech Windows 2000 nebo Windows XP. K síti se připojuje rovněž několik notebooků. Síť běží na TCP/IP a nemá doménu (pouze pracovní skupinu). Uživatelé potřebují zálohovat běžné dokumenty (například, dokumenty Wordu a Excelu), přičemž je mají "zorganizované" halabala.

Dosud se "zálohování" provádělo tak, že se v "náhodných" intervalech vypálil na CD obsah složky, do níž se všichni "snažili" ukládat "dokumenty", s nimiž pracují.

Pozn.: Pokud se o podobné sítě staráte, asi tušíte, proč je v předchozí větě tolik slov v uvozovkách.

Inkrementální zálohování

Při zálohování jsem použil tzv. inkrementální zálohy. Přestože většina čtenářů bude asi vědět, co tím myslím, dovolím si to trochu vysvětlit. Při pravidelném zálohování máte v podstatě dvojí možnost, jak postupovat. Buďto zálohujete vždy poslední verze dokumentů (a potom je každý dokument zazálohován vždy celý), nebo zálohujete pouze změny, které dokument obsahuje od poslední zálohy. Tomu prvnímu se říká komplexní zálohování (celkové), tomu druhému se říká zálohování inkrementální (přírůstkové).

Na komplexní zálohování ani žádný složitý program nepotřebujete. Stačí soubory nebo složky někam překopírovat pomocí příkazů operačního systému. Samozřejmě že i na takové zálohování programy existují - jejich přidaná hodnota může spočívat například v komprimaci dat, v jejich organizaci, šifrování, rozdělování, vypalování a podobně.

Na inkrementální zálohování budete potřebovat nějaký software. Při zálohování je totiž potřeba porovnat současný stav dokumentu a poslední zálohou a nějak uložit ten rozdíly nebo rozdíly. Výsledek si můžete představit například jako výstup programu diff (většina programů na inkrementální zálohování jej stejně nakonec nějakým způsobem používá). S inkrementálními zálohami můžete snadno odpovědět na otázky typu: "V jakém stavu byl tento soubor předevčírem v 6 hodin"?

Která z obou zálohovacích metod je lepší? Jak už to na tom světě bývá, jednoznačná odpověď neexistuje. Ale výhody a nevýhody obou jsem se pokusil shrnout v následující tabulce:


Komplexní zálohování
Inkrementální zálohování
Jednoduchost
Ano. Prostě zazálohujete obsahy souborů k nějakému dni.
Ne. Musíte obsahy souborů porovnávat s předchozí zálohou.
Prostor na médiu
Náročné. Pro každou verzi souboru vyžaduje místo na médiu.
Nenáročné. Druhá a další záloha obyčejně zabere méně místa
Obnova
Jednoduché. Máte k dispozici celý soubor.
Složité. Musíte sestavovat z "kousíčků"
Manipulace
Složité. Hledáte-li verzi ze dne xxx, musíte projít více médií.
Jednoduché. Zálohovací program vám sestaví verzi zálohovaného souboru k libovolnému datu v historii zálohování.
Záloha po síti
Náročné. Přenáší se velký objem dat.
Nenáročné. Přenášejí se menší objemy dat.
Chyby
Relativně odolné. Chyba v souboru zničí jen ten soubor.
Relativně citlivé. Chyba v přírůstku může způsobit narušení historie verzí souboru.

Protože v příkladu, který popisuji byl k dispozici nevyužitý počítač s poměrně velkým diskem a se síťovou kartou, a protože pro zákazníka byla možnost mít k dispozici zálohy různých verzí souborů zajímavá, použil jsem inkrementální zálohování.

Software

Na inktementální zálohování existuje pod Linux celá řada programů. Já jsem použil rdiff-backup. Je to program napsaný v Pythonu a licencovaný pod GNU/GPL. Nabízí přesně to, co jsem potřeboval, tedy:

Pomocí tohoto programu lze poměrně snadno vytvářet zálohy souborů a složek. Nicméně, při implementaci nějakého rozumnějšího systému asi narazíte na nějaké drobnější potíže. Leč postupně; nejprve musíme celý rdiff-backup nainstalovat.

Instalace

Instalace vyžaduje mít na systému Python. Jak zjistíte, zda a jakou verzi pythonu v systému máte popisuje tento článek (ze série), takže budu stručný. Zadáním příkazu

python

se dozvíte, zda a jaká verze pythonu je na vašem systému k dispozici. Pro provoz rdiff-backup potřebujete verzi Pythonu 2.2 nebo novější.

Dále potřebuje program ke své činnosti knihovnu librsync ve verzi 0.9.6 nebo novější (nejnovější verze je 0.9.7). Tato knihovna implementuje algoritmus rsync.

Ponz.: Pokud by vás to zajímalo, tak rsync slouží k přenosu souborů mezi lokálním a vzdáleným systémem s tím, že přenáší ze vzdáleného systému pouze rozdíly mezi soubory. Šetří tak čas a přenosovou kapacitu linky. Na webu projektu je to velmi dobře principielně popsáno.

Protože je dost dobře možné, že ji nemáte, popíšu její instalaci. Soubor stáhneme,

cd ~
mkdir librsync
cd librsync/
wget http://puzzle.dl.sourceforge.net/sourceforge/librsync/librsync-0.9.7.tar.gz

rozbalíte

tar -xvzf librsync-0.9.7.tar.gz

a zkompilujete

cd librsync-0.9.7
./configure
make all check
make install

Jelikož je to postup standardní, nemělo by vás v této fázi nic zvláštního překvapit. Protože ze závislostí je to již všechno, můžeme nyní stáhnout a zkompilovat samotný rdiff-backup:

cd ~
mkdir rdiff-backup
cd rdiff-backup/
wget http://savannah.nongnu.org/download/rdiff-backup/rdiff-backup-0.12.7.tar.gz
tar -xvzf rdiff-backup-0.12.7.tar.gz
cd rdiff-backup-0.12.7
python setup.py install

Rovněž tady bychom neměli narazit na podstatnější problémy. Že je program rdiff-backup nainstalován, to můžeme zkusit zadáním příkazu

rdiff-backup

Pokud obdržite hlášku:

Error: No arguments given
See the rdiff-backup manual page for instructions

pak je všechno v pořádku a program je nainstalován správně. V příštím článku naší minisérie si ukážeme na praktické využití tohoto malého, ale skvělého nástroje.

Online verze článku: http://www.linuxsoft.cz/article.php?id_article=697