19. OS Linux: strategie zálohování, zálohovací media, úplná záloha, inkrementální zálohování, automatizace zálohování.
19. OS Linux: strategie zálohování, zálohovací media, úplná záloha, inkrementální zálohování, automatizace zálohování.
Výběr média pro zálohování
Co se týče zálohování, je nejdůležitějším rozhodnutím výběr médií. Musíte zvážit náklady, rychlost, dostupnost a použitelnost.
Cena je poměrně důležitá, protože byste měli mít raději několikrát větší kapacitu zálohovacích médií, než ve skutečnosti potřebujete. Levné médium je obvykle nezbytnost.
Extrémně důležitá je spolehlivost, protože poškozená záloha by rozbrečela i dospělého. Data uložená na zálohovacích médiích musí vydržet bez poškození i několik let. I způsob, kterým médium používáte, má vliv na jeho spolehlivost z hlediska zálohování. Například pevný disk je typicky velmi spolehlivé médium. Nelze ale prohlásit totéž, když hodnotíme spolehlivost z hlediska zálohování a když je tento disk v tom samém počítači jako disk, který zálohujeme.
Jestli lze data zálohovat tak, že nedochází ke kolizím s jinými programy, není rychlost většinou příliš důležitá. Když nemusíte na zálohování dohlížet, pak nevadí, že trvá dejme tomu dvě hodiny. Ale naopak, nelze-li provést zálohování v době, ve které je počítač jinak nevyužitý (například v průběhu noci), pak může být i rychlost problémem.
Dostupnost je zjevně důležitá, protože nemůžete používat zálohovací médium, které není k dostání. Méně zjevný je důležitý požadavek, aby bylo zálohovací médium dostupné i v budoucnu a případně i pro jiné počítače než ty, které používáte dnes. Jinak se může stát, že nebudete schopni zálohy po nečekané události obnovit.
Použitelnost je nejvíce závislá na tom, jak často se zálohování provádí. Čím jednodušší je zálohování, tím lépe. Zálohování na zvolené médium nesmí být složité, pracné nebo otravné.
Typickými alternativami jsou diskety a pásky. Diskety jsou velmi levné, celkem spolehlivé, ne velmi rychlé, velmi dostupné, ale ne příliš použitelné v případě velkého množství dat.
Magnetické pásky jsou levné i dražší, celkem spolehlivé, celkem rychlé, dost dostupné a - podle toho, jaká je jejich kapacita - z hlediska použitelnosti i docela pohodlné.
Existují i jiné možnosti. Obvykle nejsou nejlepší, pokud jde o jejich dostupnost, ale vznikne-li problém, oceníte je více, než ostatní možnosti. Řeč je o magneto-optických discích, jež kombinují dobré vlastnosti disket (jejich náhodný, nesekvenční přístup k souborům, možnost rychlého obnovování jednotlivých souborů) a magnetických páskových médií (zálohování velkého objemu dat).
Výběr nástroje pro zálohování
Existuje bezpočet nástrojů, jichž lze při zálohování využít. Mezi ty tradiční, používané při zálohování v systémech Unix, patří programy tar, cpio a dump. Kromě toho lze sáhnout i po velkém množství balíků programů třetích výrobců (šířených zdarma jako freeware i komerčně). Výběr médií pro zálohování má často vliv i na výběr nástroje.
Programy tar a cpio jsou podobné a z hlediska zálohování povětšině stejné. Oba programy umí ukládat soubory na pásky a obnovovat je, oba jsou schopné využívat téměř všechna média, protože díky ovladačům zařízení jádra systému, které mají na starost obsluhu nízkoúrovňových zařízení, se takováto zařízení chovají vůči programům uživatelské úrovně stejně.
Některé unixové verze programů tar a cpio mohou mít problémy s neobvyklými soubory (symbolickými linky, speciálními soubory, soubory s velmi dlouhou cestou a podobně), avšak verze pro operační systém Linux by měly pracovat se všemi soubory korektně.
Program dump se liší v tom, že přistupuje k souborovému systému přímo a ne jeho prostřednictvím.
Navíc byl napsán speciálně pro zálohování, kdežto programy tar a cpio jsou primárně určeny pro archivaci souborů, i když je lze s úspěchem použít i jako zálohovací nástroje.
Přímý přístup k souborovému systému má několik výhod.. Umožňuje zálohovat soubory bez toho, že by to mělo vliv na jejich časové razítko (angl. time stamp). U programů tar a cpio, byste museli nejdřív připojit Souborový systém pouze pro čtení. Přímé čtení dat ze souborového systému je také efektivnější v případech, kdy je potřeba zálohovat všechna data na disku, protože v tomto případě proběhne zálohování s výrazně menším pohybem čtecí hlavy disku. Největší nevýhodou přímého přístupu je, že zálohovací program, který jej používá, je specifický pro každý typ souborového systému. Program dump pro Linux rozumí pouze souborovému systému ext2.
Program dump má navíc zabudovanou podporu tzv. úrovní zálohování (angl. backup levels), o kterých bude řeč později. U programů tar a cpio musí být implementovány pomocí jiných nástrojů.
Srovnávání zálohovacích nástrojů třetích výrobců jde nad rámec této knihy. "Mapa programů pro Linux" (The Linux Software Map) uvádí výčet těch, které jsou jako freeware šířeny zdarma.
Jednoduché zálohování
Při proceduře jednoduchého zálohování se v prvním kroku vytvoří zálohy všech dat a v dalších krocích se pak zálohuje jenom to, co se od posledního zálohování změnilo. Prvnímu kroku se říká úplné zálohování (angl. full backup) a v dalších krocích se tvoří tzv. inkrementální, neboli přírůstkové zálohy (angl. incremental backups). Úplné zálohování je obvykle pracnější, než inkrementální, protože se na médium zapisuje víc dat, a proto se úplná záloha nemusí vždy vejít na jednu pásku (nebo disketu). Naopak, obnovování dat z přírůstkových záloh bývá pochopitelně mnohokrát pracnější, než obnovování z úplných záloh. Nicméně, obnovování dat z přírůstkových záloh lze optimalizovat tak, že vždy zálohujete všechny změny od poslední úplné zálohy. Takto je sice o něco pracnější proces zálohování, ale pak by nemělo být nikdy potřeba obnovovat víc, než některou úplnou a inkrementální zálohu.
Uveďme příklad, kdy chcete data zálohovat každý den a máte k dispozici šest páskových kazet, můžete první z nich použít (řekněme v pátek) pro uložení první úplné zálohy a pásky 2 až 5 pro další přírůstkové zálohování (od pondělí do čtvrtka). Pak vytvoříte novou úplnou zálohu na pásku číslo 6 (druhý pátek) a začnete znovu s inkrementálním zálohováním na pásky 2 až 5. Nepřepisujte pásku číslo jedna do doby, než se ukončí nové úplné zálohování - v jeho průběhu by se totiž mohlo stát něco neočekávaného. Poté, co vytvoříte novou úplnou zálohu na pásce číslo 6, měli byste uschovat pásku 1 někam jinam pro případ, že by se ostatní zálohovací pásky zničily, např. při požáru. Takto vám v případě neočekávané události zůstane alespoň něco. Když pak potřebujete vytvořit další úplnou zálohu, dojdete pro pásku číslo 1 a pásku číslo 6 necháte na jejím místě.
Máte-li víc, než šest kazet, můžete ukládat na ty, jež jsou navíc, další úplné zálohy. Pokaždé, když budete dělat úplnou zálohu, použijete tu nejstarší pásku. Takto budete mít úplné zálohy z několika předchozích týdnů, což je dobré, když potřebujete obnovit například některý starší, omylem smazaný soubor, případně starší verzi nějakého souboru.
Víceúrovňové zálohování
Metoda jednoduchého zálohování, jež byla načrtnuta v předchozím odstavci, je vhodná pro osobní potřebu nebo systémy s malým počtem uživatelů. Pro náročnější podmínky je vhodnější víceúrovňové zálohování.
Metoda jednoduchého zálohování má dvě úrovně: úplné a přírůstkové zálohování. Ty lze zobecnit do libovolného počtu dalších úrovní. Úplná záloha by mohla být úrovní 0 a další různé přírůstkové zálohy úrovněmi 1, 2, 3 atd. Na každé úrovni přírůstkového zálohování se zálohuje vše, co se změnilo od poslední zálohy stejné nebo nižší úrovně.
Účelem víceúrovňového zálohování je levněji prodloužit historii zálohování dat. V příkladu v předchozím odstavci šla historie zálohování jenom k poslední úplné záloze. Kdybyste měli víc médií, mohli byste ji prodloužit, ale s každou další novou páskou jenom o týden, a to by bylo příliš nákladné. Delší historie vytváření záloh je užitečná, protože omylem smazaných nebo poškozených souborů si často všimnete až po delší době. Navíc jakákoliv verze souboru, i když není zrovna aktuální, je obvykle lepší, než žádná. Víceúrovňovým zálohováním lze historii vytváření archivů prodloužit levněji. Když si například koupíte deset kazet, můžete používat pásky 1 a 2 na měsíční zálohy (první pátek každého měsíce), pásky 3 až 6 na týdenní zálohy (všechny ostatní pátky - uvědomte si, že v některém měsíci může být pět pátků, takže potřebujete o čtyři pásky víc) a pásky 7 až 10 na denní zálohy (od pondělí do čtvrtka). Takto jste schopni - pouhým zakoupením čtyř dalších pásek navíc - prodloužit historii zálohování ze dvou týdnů (s využitím všech denních záloh) na dva měsíce. Pravda, během těchto dvou měsíců nemůžete obnovit všechny verze zálohovaných souborů, avšak to, co obnovit lze, obvykle postačí.
Z obrázku 10.1 je patrné, která úroveň zálohování se používá v ten který den a z kterých záloh je možno na konci měsíce data obnovit.
Víceúrovňové zálohování navíc snižuje i čas potřebný k obnovení celého souborového systému. Když potřebujete obnovit celý systém souborů a máte mnoho inkrementálních záloh s monotónně rostoucí řadou úrovní, musíte data pracně obnovovat postupně ze všech médií.
Když ale budete používat méně záloh a větší počet úrovní, snížíte počet úrovní potřebných k obnovení celého svazku.
Chcete-li snížit počet médií potřebných k obnovení dat, používejte pro přírůstkové zálohy úrovně menšího rozsahu. Ale i tak se čas zálohování zvýší, protože při každém zálohování se ukládá vše, co se změnilo od předchozí úplné zálohy. O něco lepší plán zálohování se uvádí v manuálové stránce programu dump. Jeho schéma je patrné z tabulky 10.2. Zkuste použít posloupnost úrovní zálohování: 3, 2, 5, 4, 7, 6, 9, 8, 9 atd. Snížíte tím čas zálohování i obnovování dat. Zálohovat byste měli vždy maximálně po dvou dnech práce. Počet pásek, z nichž se budou obnovovat data, závisí na intervalu mezi úplnými zálohami, ale je rozhodně nižší, než u procedury jednoduchého zálohování.
Tyto sofistikované postupy zálohování obvykle redukují pracnost, ale na druhou stranu je víc věcí, které jako správce systému musíte uhlídat. Sami se musíte rozhodnout, jestli se vám to vyplatí.
Program dump má zabudovanou podporu víceúrovňového zálohování. U příkazů tar a cpio je potřeba víceúrovňové zálohování implementovat pomocí skriptů.
Co zálohovat
Je pochopitelné, že budete chtít zálohovat vše, co se vám na zálohovací média vejde. Významnou výjimkou je software, jenž lze bezbolestně obnovit z instalačních médií.
Ale aplikace mohou používat mnoho různých konfiguračních souborů a ty je lepší zálohovat, protože si tím ušetříte nelehkou práci, kterou zabere jejich opakované nastavování. Další významnou výjimkou je Souborový systém /proc. Obsahuje pouze data, která jádro vytváří automaticky, a proto nemá žádný smysl je zálohovat. Zvláště nežádoucí je soubor /proc/kcore, protože je to pouze aktuální obraz fyzické paměti, takže je dost velký.
Jakousi "šedou zónou" jsou zprávy "news", poštovní schránky, log-soubory a mnoho dalších dat uložených v adresáři /var. Sami se musíte rozhodnout, co pokládáte za důležité.
Typickým příkladem toho, co se musí zálohovat, jsou uživatelské soubory (adresář /home) a systémové konfigurační soubory (adresář /etc a další konfigurační tabulky, které jsou často rozeseté po celém souborovém systému).
Komprimované zálohy
Zálohy zabírají hodně místa na disku, což může stát dost peněz. Nároky na diskový prostor lze minimalizovat komprimováním záloh. Existuje několik způsobů, jak to udělat. Některé programy přímo podporují kompresi, například po zadání parametru -gzip (-z) programu tar verze GNU se jeho výstup spojí pomocí roury s kompresním programem gzip. Záloha se pak komprimuje před tím, než se zapíše na zálohovací médium.
Bohužel komprimované zálohy mohou způsobit vážné komplikace. Z povahy toho, jak komprimace funguje, vyplývá, že když se zapíše jediný bit špatně, bude nepoužitelný i celý zbytek komprimovaných dat. Některé zálohovací programy sice používají zabudované opravné algoritmy, ale žádná z těchto metod si neumí poradit s větším počtem chyb. Je-li tedy záloha komprimovaná způsobem, jakým to dělá program tar verze GNU, který svůj výstup komprimuje jako celek, může jediná chyba způsobit poškození celé zálohy. Stěžejním rysem zálohování musí být spolehlivost, takže tato metoda komprese není příliš dobrá.
Alternativou je komprimace jednotlivých záloh (souborů). Když se pak stane, že bude některý z nich poškozen, můžete použít jinou zálohou. Pravděpodobnost, že data, která tím ztratíte, se mohou poškodit i jiným způsobem, je stejná, takže na tom nebudete o moc hůř, než kdyby se nezálohovalo vůbec. Metodu komprimace jednotlivých souborů využívá např. program afio (varianta programu cpio).
Komprese o něco prodlouží proces zálohování. Může to způsobit, že zálohovací program nebude schopen zapisovat na pásku dostatečně rychle.
Tento problém lze řešit využitím vyrovnávacích pamětí pro výstup zálohovacích programů (buď interních, je-li zálohovací program natolik "chytrý", nebo pomocí jiných programů). Ale i tak by se mohlo stát, že zálohování nebude fungovat správně. S tímto problémem byste se mohli setkat u velmi pomalých počítačů.