(File Systems) Logický systém souborů:! Adresáře a soubory jak je vidí uživatel.! Jeden kořen ( "root" - / ) Fyzické systémy souborů:! Obdoba logických disků u MS (A:, C:...).! Na rozdíl od MS nejsou pro normálního uživatele podstatné.! Jsou různého typu: diskové (s5, ufs, vxfs, pcfs, hsfs) síťové (nfs, smb) paměťové (tmpfs) virtuální (procfs, fdfs)! Jeden fyzický systém souborů se stává kořenovým (root) systémem.! Ostatní se musí připojovat příkazem mount. predn_10.doc 07.05.01 13:14 1
Disky - základní pojmy sektor! nejmenší jednotka dat čtená z resp. zapisovaná na disk. Obvykle 512B stopa! sektory zapsané jednou hlavou v jedné poloze cylindr! stopy všech hlav v jedné poloze! Původně byl konstantní počet sektorů na stopu, tedy kapacita disku byla: nsect x nhead x ncyl! Nyní se používá zónový záznam (vnější stopy mají více sektorů), tedy: udává se počet stop, hlaviček ale ne sektorů na stopu přenos dat je na začátku disku rychlejší než na jeho konci partition, sekce, slice! souvislá část fyzického disku, z pohledu administrátora "nezávislý" logický disk predn_10.doc 07.05.01 13:14 2
Speciální soubory disků aplikace mount aplikace znakový (raw) speciální soubor blokový speciální soubor blokové metazařízení znakové metazařízení diskový driver stránková cache systém souborů diskový manažér predn_10.doc 07.05.01 13:14 3
Využití diskových speciálních souborů:! systém souborů! swapovací prostor! aplikační data Nevýhody speciálních souborů zastupující diskové sekce:! velikost omezena velikostí disku! počet na jednom disku omezen (PC - 4, SPARC - 8)! obtížná změna velikosti! spolehlivost a rychlost dána parametry disku Rešení:! diskový manažér! vytváří z jednoduchých zařízení (sekcí, celých disků) nová zařízení (zvaná logická nebo metazařízení) hp-ux: LVM Solaris: DiskSuite, VolumeManager predn_10.doc 07.05.01 13:14 4
Diskové manažery! Usnadňují správu diskového prostoru.! Obvykle implementují některé z následujících strategii: Spojování (konkatenace)! spojování i nestejně velkých částí disku v jedno zařízení! zvětšení velikosti bez ztráty existujících dat Prokládání (RAID 0, striping)! spojování stejně velkých částí disku! zvětšení velikosti (původní data ztracena), rozložení zátěže, snížení spolehlivosti Zrcadlení (RAID 1, mirroring)! udržování více kopii dat na více stejně velkých částech disku! zvýšení spolehlivosti za cenu omezení využitelného prostoru na 50% resp. 33% Prokládání s paritou (RAID 5)! zvýšení spolehlivosti prokládání doplněním paritní informace (např. 4 + 1)! proti zrcadlení lepší využití ale pomalejší zápis (i několikanásobně) predn_10.doc 07.05.01 13:14 5
Metadata! Data popisující logickou strukturu systému souborů.! Jedná se zejména o super blok, informační uzly, indexové bloky a popisy volných a obsazených zdrojů. blok! několik různých významů: sektor (512B) jednotka dat systému souborů (1kB, 8kB) fragment! nejmenší alokační jednotka dat systému souborů (1kB)! boot blok! První blok (8kB) systému souborů. Systémem souborů ignorován.! Slouží pro uložení zavaděče systému (nepatří vlastně mezi metadata). predn_10.doc 07.05.01 13:14 6
super blok! Druhý blok systému souborů.! Obsahuje základní statické a dynamické údaje o systému souborů: statické: velikost bloku, celkový počet bloků, celkový počet i-uzlů,... dynamické: stav systému, počet volných bloků a i-uzlů,...! Při jeho poškození je obsah FS ztracen. Proto je obvykle zálohován někde dále na disku.! Při připojení systému souborů přenesen do paměti a blok na disku označen jako "špinavý" (dirty).! Při řádném odpojení je blok na disku aktualizován a označen jako "čistý" (clean).! Špinavý FS nelze připojit, musí se nejprve "očistit" - zkontrolovat pomocí fsck. predn_10.doc 07.05.01 13:14 7
informační uzel (i-uzel, i-node)! Obsahuje kompletní informaci o souboru s výjimkou: dat souboru - jsou uložena v datové oblasti jména souboru - je uloženo souboru typu adresář.! Je jednoznačně určen svým číslem: 0 = volný i-uzel, 2 = i-uzel kořenového adresáře! Velikost i-uzlu: S5: 64B UFS: 128B VXFS: 256 nebo 512B predn_10.doc 07.05.01 13:14 8
Struktura informačního uzlu! typ souboru normální, znakový nebo blokový speciální, adresář, symbolický odkaz, roura...! čas a datum: vzniku, změny, přístupu! délka souboru resp. velké a malé číslo speciálního souboru! počet pevných odkazů! vlastník a skupina! přístupová práva! odkazy na datové bloky - například u UFS: 12 přímých odkazů (12 x 8kB = 96kB) nepřímý odkaz 1. řádu (2048 x 8kB = 16MB) nepřímý odkaz 2. řádu (2048 x 16MB = 32GB) nepřímý odkaz 3. řádu (2048 x 32GB = 64TB, omezeno na 1TB) Pozor!! možnost vzniku souborů s dírami predn_10.doc 07.05.01 13:14 9
! původní systém souborů unixu Nevýhody: Typy diskových systémů souborů S5! malá a zhoršující se efektivita volné bloky a i-uzly zřetězeny, nelze optimalizovat jejich přidělování velká vzdálenost mezi umístěním i-uzlů a dat! délka jména souboru 14 znaků! bloky 512B, 1kB, 2kB! původně jen 64k souborů Rozložení na disku:! boot blok! super blok! bloky s informačními uzly! datové bloky predn_10.doc 07.05.01 13:14 10
UFS (SVR4), EAFS (SCO), 4.2 (BSD)! optimalizovaný systém S5! navrhnul McKusic pro BSD 4.2! jména souborů až 255 znaků! symbolické linky a kvóty! lepší a neklesající efektivita větší bloky (4 nebo 8kB) rozdělení disku na "skupiny cylindrů" popis volných bloků a i-uzlů bitovými mapami promyšlené alokační strategie bloků a i-uzlů Nevýhody:! počet i-uzlů (souborů) musí být určen při vytváření systému! velké soubory nejsou uloženy spojitě! v případě havárie trvá kontrola konzistence dlouho a většinou vyžaduje ruční zásah (u Solarisu 7 odstraněno tzv. logováním) predn_10.doc 07.05.01 13:14 11
Rozložení na disku:! Disk je rozdělen na stejně velké části nazvané "skupiny cylindrů" (cylinder groups).! Velikost skupiny cylindrů jsou desítky MB, tedy skupin je až několik set.!! 1. skupina cylindrů boot blok super blok informační blok skupiny cylindrů bloky s informačními uzly datové bloky! 2. a další skupina cylindrů datové bloky záložní kopie super bloku informační blok skupiny cylindrů bloky s informačními uzly datové bloky predn_10.doc 07.05.01 13:14 12
VXFS! Vytvořen společností Veritas.!! Snaha o zvýšení efektivity přístupu k datům alokací spojitých oblastí disku, tzv. extentů: postupně dochází k fragmentaci volného prostoru součástí systému jsou programy pro defragmentaci defragmentovat lze i za běhu systému! Zvýšená spolehlivost pomocí žurnálování (rychlá kontrola konzistence): synchronní zápis popisu transakce do tzv. "intent logu" asynchronní změny metadat zápis značky "hotovo" do intent logu po synchronizaci cache! Možnost dynamické změny velikosti systému souborů.! Automatické vytváření i-uzlů v případě potřeby. predn_10.doc 07.05.01 13:14 13
Rozložení na disku:! Boot blok! Super blok! Intent log Obsahuje záznamy o rozpracovaných transakcích. Používá se při rychlé opravě systému po havárii.!! Dále je disk je rozdělen na stejně velké části zvané alokační jednotky. Alokační jednotka je obdoba "skupiny cylindrů" u UFS. Každá jednotka obsahuje: kopie superbloku suma volných prostředků mapa volných i-uzlů mapa volných datových extentů i-uzly datové bloky predn_10.doc 07.05.01 13:14 14
Vytváření systému souborů! Před použitím je třeba systém souborů vytvořit! Vytváří se na "znakovém zařízeni" disku příkazy: mkfs! starší forma příkazu s pozičními parametry newfs! novější forma s parametry uvozenými přepínači newfs -F ufs /dev/rdsk/c0t0d0s7 predn_10.doc 07.05.01 13:14 15
Připojení systému souborů! Vytvořený FS se před použitím musí připojit (přimontovat) příkazem mount. mount [přepínače] [blokové_zařízení] [adresář]! Připojením překryje kořenový adresář FS původní obsah adresáře.! Připojení platí do příštího restartu systému.! Z hlediska uživatele je přechod mezi různými FS zcela transparentní.! Z hlediska administrátora jsou různé FS zcela odděleny (kapacita, chyby).! Připojení se nezdaří: je-li adresář nebo jeho podadresář používán nějakým procesem jako pracovní nebo výchozí adresář je-li na adresář již nějaký FS připojen. predn_10.doc 07.05.01 13:14 16
Přepínače:! ro/rw! nosuid/suid! quota/noquota!! Příkaz mount bez parametrů vypíše přimontované FS: Příklad: root@solaris/root>mount / on /dev/dsk/c0d0s0 read/write/setuid/intr/largefiles/logging/noatime/onerror=panic/ dev=1980000 on Sun Apr 1 19:59:33 2001 /proc on /proc read/write/setuid/dev=2c00000 on Sun Apr 1 19:59:31 2001 /tmp on swap read/write/setuid/dev=2 on Sun Apr 1 19:59:47 2001 /export on /dev/dsk/c0d0s7 read/write/setuid/intr/largefiles/onerror=panic/dev=1 980007 on Sun Apr 1 19:59:47 2001 predn_10.doc 07.05.01 13:14 17
! Systém souborů lze odpojit příkazy:! umount adresář! nebo umount blokové_zařízení Odpojení systému souborů! Před odpojením dojde k zápisu dat z paměti na disk a k zápisu superbloku.! Vypnutí počítače bez odpojení FS může způsobit poškození FS.! Odpojení se nezdaří, je-li FS používán nějakým procesem.! Takovýto proces(y) lze určit příkazem fuser root@sol2/root>fuser..: 523c 297c 291c root@sol2/root>fuser /dev/dsk/c0d0s0 /dev/dsk/c0d0s0: 526ctom 297ctom 291ctom 289ctom 272ctom 271ctom 259ctom 257ctom 256ctom 255ctom 254ctom 252ctom 251ctom 245ctom 243ctom 242ctom 236ctom 218ctom 217ctom root@sol2/root> predn_10.doc 07.05.01 13:14 18
Tabulky fstab/vfstab a mnttab! Tabulka fstab/vfstab obsahuje popis "montování" FS po startu systému.! Není měněna příkazy mount, musí být upravována "ručně". #device device mount FS fsck mount mount #to mount to fsck point type pass at boot options fd - /dev/fd fd - no - /proc - /proc proc - no - /dev/dsk/c0d0s1 - - swap - no - /dev/dsk/c0d0s0 /dev/rdsk/c0d0s0 / ufs 1 no noatime swap - /tmp tmpfs - yes -! Tabulka mnttab je měněna příkazem mount a obsahuje aktuální stav přimontovaných FS.! Je používána při odpojování FS při vypínání systému.! Nesmí se upravovat ručně! predn_10.doc 07.05.01 13:14 19
Opravy systému souborů! Ověření konzistence FS a jeho případné opravy se provádí příkazem fsck fsck [přepínače] znakové_zařízení! Příkaz se nesmí volat na připojený FS! (Proč?)! Příkaz ověřuje konzistenci metadat, nikoliv dat ( i u žurnálového FS).! Režimy práce: ověření stavu FS neinteraktivní režim interaktivní režim! Nemusí vždy uspět! -> zálohovat! predn_10.doc 07.05.01 13:14 20
Další příkazy pro práci se systémy souborů! tunefs nastavení parametrů FS, které lze měnit po vytvoření ( jen UFS)! fstyp určení typu FS případně výpis jeho parametrů! fsdb práce s FS na úrovni metadat (i-uzly, bloky, adresáře)! clri vymazání i-uzlu! df výpis připojených FS a místa na nich:! du výpis zabraného místa v adresáři root@sol2/root>df -k Filesystem kbytes used avail capacity Mounted on /proc 0 0 0 0% /proc /dev/dsk/c0d0s0 1786135 701917 1030634 41% / fd 0 0 0 0% /dev/fd swap 132148 8 132140 1% /tmp root@sol2/root>du -ks /etc 2211 /etc predn_10.doc 07.05.01 13:14 21
Zálohování Zálohovací pásková zařízení! 1/2" páska 10MB zastaralé, problémy s kolmostí hlav! QIC kazety 60-150MB zastaralé! DLT pásky 20, 35GB spolehlivé, drahé! Exabyte 8mm 2, 5 a více GB nepříliš rozšířené! DDS 1 90m, 2GB! DDS 2 120m, 4GB! DDS 3 125m, 12GB relativně levné,!! Možno doplnit měniči (knihovnami). Drahé, rychle zastarává. Zálohování na disky? predn_10.doc 07.05.01 13:14 22
Speciální soubory páskových zařízení! Pro jedno zařízení bývá více souborů s odlišnými vlastnostmi:! s převinutím - po uzavření se automaticky převinou na začátek! bez převinutí ( no-rewind) - po uzavření zůstanou za zapsaným souborem! BSD - při čtení přečtou konec souboru jako blok nulové délky Obvyklé pojmenování:!! /dev/rmt/<jednotka><hustota>[bez_převinuti][bsd]! /dev/rmt/0m první páskové zařízení se střední hustotou! /dev/rmt/0lnb první páskové zařízení s nízkou hustotou, bez převinutí, BSD predn_10.doc 07.05.01 13:14 23
Typy zálohování Co se zálohuje:! operační systém jak obnovit?! aplikační data aplikace nesmí běžet!! uživatelská data Jak se zálohuje:! úplné zálohování! přírůstkové zálohováni predn_10.doc 07.05.01 13:14 24
Čím se zálohuje:! (ufs)dump, (ufs)restore! tar! cpio! dd! dump/restore tar cpio inkrementální: ano, 9 úrovní ne pomocí find absolutní/relativní: záloha absolutní, obnova relativní abs=abs, rel=rel abs=abs, rel=rel přenositelnost: ne ano ano co se zálohuje: jeden UFS systém s. soubor nebo adresář vybrané soubory interaktivní obnova: ano ne ne speciální soubory ano ne ano predn_10.doc 07.05.01 13:14 25