Záloha metadat souborového systému
Záloha metadat souborového systému
Nadřazený článek: Záloha metadat disků
Úvod
[editovat]Pokud je úložištěm dat pevný disk nebo podobné médium, pak metadaty jsou např. tabulky rozdělení disků či tabulky, používané různými souborovými systémy. Například. pro starodávné souborové systémy z doby vzniku MS-DOSu jsou takovými kruciálními metadaty alokační tabulky souborů, FAT, proto tyto tabulky jsou zpravidla zdvojeny – ovšem jedna leží vedle druhé na začátku disku a tak při poškození této oblasti jsou zničeny obě. U Unixových souborových systémů mají takovou důležitost superbloky, jejichž identické kopie se pravidelně opakují po celé oblasti disku, proto zničení jedné části disku nemusí ještě znamenat katastrofu pro zbývající data.
Smysl má každopádně si zazálohovat takové údaje o filesystému, které se v průběhu jeho obvyklé činnosti nemění, jako je například počet a velikost alokačních jednotek, rozložení superbloků atd.
Jinak je ale problém se zálohováním medatat souborových systémů v tom, že soubory na disku se neustále mění a proto se mění i obsah těchto medatat. Problém, jak uchovat tato metadata konsistentní i v případě různých nehod a poruch (např. výpadek napájení) je zásadním problémem, který musí řešit návrháři souborových systémů. Na nás jakožto na uživatelích je, abychom si pro naše data vybrali pokud možno spolehlivý, robustní a osvědčený souborový systém a dobře zvážili využití různých voleb a parametrů, které se nám zpravidla při vytváření souborového systému na disku (formátování disku) nabízí (např. žurnál).
Další možnosti, jak metadata souborového systému zálohovat, závisí na konkrétním druhy použitého souborového systému
Souborový systém
[editovat]ext2, ext3
[editovat]Případ souborového systému ext2 (nebo ext3, což je v podstatě ext2 vybavený žurnálem):
mke2fs je utilita na vytváření souborového systému na disku (formátování disku); přitom je dobré se dobře seznámit se všemi možnými parametry, které je přitom možné nastavit. Zvláštní pozornost si zaslouží:
-c | spuštění utility badblocks před formátováním disku. Za úvahu stojí spustit badblocks ručně ještě před spuštěním mke2fs, a to s důkladnější kontrolou, než jaká se použije při použití mke2fs -c |
-j | vytvoření žurnálu (tj. namísto ext2 se vytvoří ext3) |
-J | volby pro žurnálování |
tune2fs nám umožní dodatečně měnit některé parametry filesystému (intervaly pro pravidelné kontroly, nastavení žurnálu aj.)
e2fsck je nástrojem k pravidelné kontrole souborového systému – ale pozor, tuto kontrolu zásadně provádíme na 'nepřimontovaném' filesystému! (Určitou možností je spuštění na souborovém systému, namontovaném jako read-only.) e2fsck se zpravidla spouští automaticky při bootu systému v případě, že od poslední kontroly byl systém bootován už vícekrát anebo uplynula určitá delší doba (tyto parametry nastavujeme při formátování systému anebo kdykoli utilitou tune2fs). V případě, že utilita e2fsck selže z důvodu poškozeného superbloku, je možné ji spustit (volba -b) s alternativním číslem superbloku. Ale jak toto číslo zjistit?
dumpe2fs nám poskytne základní informace o filesystému v dobře čitelné podobě. Proto je dobré uchovat si stranou (na jiném počítači, na CD apod, případně vytištěný na papíře) výstup této utility, případně alespoň její zkrácený výstup (volba -h).
Primární superblok se nachází ve skupině č. 0 a je to tedy blok s číslem 1. Důležitým údajem je pak velikost skupiny. Pokud např.:
Blocks per group: 8192
pak můžeme záložní superblok hledat ve skupině č.1, tj. jako blok s číslem 8193. Dalším záložní superblok bychom mohli hledat ve 2. skupině jakožto blok 2 * 8192 + 1 = 16385, ale pozor! Ne každá skupina musí obsahovat záložní superblok, a to je potřeba vědět. Například mohou být záložní superbloky umístěny ve skupinách se sudým číslem, tedy další zálohu najdeme v bloku č. 3 * 8192 + 1 = 24577.
e2image je utilitou, vytvořenou přímo za účelem zálohování metadat souborového systému. Na rozdíl od dumpe2fs, vytvářejícího čitelný textový soubor, je ale jeho použití složitější a smysl utility je jiný: e2image vytvoří z celého souborového systému obraz, tzv. image-file, kterýžto soubor je dost velký – řádově na každý GB souborového disku počítejme MB velikosti image-file, ale může se hodně lišit dle množství i-nodů aj. Podle tohoto obrazu je možno pokusit se poškozený filesystém restaurovat do stavu, v jakém byl v okamžiku, ve kterém byl vytvořen jeho obraz, tzn., že všechna data, která bylo do filesystému uložena po jeho vytvoření, budou ztracena.
Užití utility e2image pro vytváření obrazu proto může být v zásadě dvojí:
- Pravidelné vytváření a ukládání obrazů filesystému (samozřejmě na jiné místo, než je tento filesystém): V případě jinak neopravitelné havárie pak zbyde šance zachránit alespoň nějaká data
- Vytvoření obrazu před zahájením pokusů o obnovení filesystému; v případě, že tento pokus bude neúspěšný a nám se toho podaří pokazit ještě více, než to pokažené bylo, máme šanci vrátit se do předchozího stavu
Abychom to neměli tak jednoduché, utilitou e2image si můžeme vygenerovat dva druhy obrazů: buď "standardní" ('normal' či 'standard' image file) anebo tzv. "raw" (raw image file). Rozdíly mezi oběma soubory se pokusíme objasnit přehlednou tabulkou:
vlastnost | standardní obraz | raw obraz |
---|---|---|
příkaz | e2image filesystem obraz | e2image -r filesystem obraz |
obraz je vytvářen | zápisem do souboru "napřeskáčku" (random access) | jako raw, tj. v jednom proudu |
a tím pádem metadata jsou ve výsledném souboru | zpřeházená | uložená na své místě |
a tím pádem utility e2fsck, dumpe2fs, debugfs atd. | mají komplikovanější práci | mohou pracovat přímo s tímto obrazem |
Co se týče nepřímých a adresářových bloků ('indirect blocks' a 'directory'), daný obraz je | zatím neobsahuje (pracuje se na tom, že v příštích verzích bude) | obsahuje |
Pokud potřebujeme zabránit exportu takových informací (např. utajit názvy souborů při hlášení bugreportu), použijeme volbu pro 'scramble': | (zatím není nutné) | e2image -rs |
Výsledný obraz je | řídký | ještě řidší ('sparse file') |
a jeho velikost je | velká | ještě větší |
a proto obou případech řídké soubory v případě potřeby kopírujeme příkazem | cp --sparse=always | |
Nezkomprimovaný obraz pak může být přibližně | 30x – 300x menší než velikost filesystemu | je ještě o něco málo větší, než velikost celého filesystemu |
Komprimační poměr je u řidšího souboru příznivější, dejme tomu: | 10:1 – 100:1 | 100:1 – 1000:1 |
takže velikost zazipovaného obrazu je pak dejme tomu | 1000x – 10000x menši než velikost filesystemu | 200x – 2000x menší než velikost filesystemu |
Během generování ale obraz | není možno přesměrovat | je možno přesměrovat do standardního výstupu |
příkazem (pomlčka na místě názvu souboru) | NELZE | e2image -r filesystem - |
a vytvářet kolony například pro zipování: | NELZE | e2image -r filesystem - ¦ bzip2 > nazev.e2i.bz2 |
Pro restaurování filesystému podle uloženého zazipovaného obrazu musíme tento obraz nejdřív předem rozzipovat a pak (s nejvyšší obezřetností) restaurujeme volbou -I | e2image -I filesystem obraz (není jasné, jestli u 'raw' je nutný přepínač –r) |
obraz | velikost obrazu | vel. filesystem:obraz | vel. po komprimaci bz2 | komprimační poměr | vel. filesystem:kompr.obraz |
---|---|---|---|---|---|
normální | 9,9 MB | 30:1 | 339 KB | 30:1 | 900:1 |
raw | 314 MB | 1:1.03 | 1,2 MB | 260:1 | 250:1 |
obraz | velikost obrazu | vel. filesystem:obraz | vel. po komprimaci bz2 | komprimační poměr | vel. filesystem:kompr.obraz |
---|---|---|---|---|---|
normální | 90 MB | 55:1 | 1.2 MB | 75:1 | 4000:1 |
raw | > 5.1 GB | nezj. | 3.8 MB | nezj. | 1300:1 |