Disky a systémy souborů predn_10.odt 16.04.2007 16:45:36 1
Systémy souborů (File Systems) Logický systém souborů: Adresáře a soubory jak je vidí uživatel. Jeden kořenový adresář ( "root" - / ) Fyzické systémy souborů: Obdoba logických disků u MS (A:, C:...). Na rozdíl od MS nejsou pro normálníhouživatele podstatné. Jeden fyzický systém souborů se stává kořenovým (root) systémem. Ostatní se musí připojovat příkazem mount. Výhody unixové koncepce: Změna organizace fyzických FS (velikost, počet, co pokrývají) nemusí mít vliv na logickou strukturu (jak ji vidí uživatel). Kořenový FS je běžný systém souborů (opravy, zálohování). predn_10.odt 16.04.2007 16:45:36 2
Typy fyzických systémů souborů: diskové s5 ufs vxfs pcfs hsfs síťové nfs smb paměťové tmpfs virtuální procfs fdfs predn_10.odt 16.04.2007 16:45:36 3
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.odt 16.04.2007 16:45:36 4
Speciální soubory disků aplikace mount 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.odt 16.04.2007 16:45:36 5
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 Řeš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.odt 16.04.2007 16:45:36 6
Diskové manažery Usnadňují správu diskového prostoru. Obvykle implementují některé z následujících strategii: Spojování (RAID 0, konkatenace) spojování i nestejně velkých částí disku v jedno zařízení + zvětšení velikosti bez ztráty existujících dat - nerovnoměrné zatížení disků, snížení spolehlivosti 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 predn_10.odt 16.04.2007 16:45:36 7
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 3, 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ě), zpomalení při chybě, potenciální chyba "write hole" Prokládání s paritou (RAIDZ) RAID5 s proměnnou délkou "stripu" odstraňující chybu "write hole" predn_10.odt 16.04.2007 16:45:36 8
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ů: fragment sektor (512B) jednotka dat systému souborů (1kB, 8kB) 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.odt 16.04.2007 16:45:36 9
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 souborů, 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.odt 16.04.2007 16:45:36 10
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.odt 16.04.2007 16:45:36 11
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.odt 16.04.2007 16:45:36 12
Typy diskových systémů souborů S5 původní systém souborů unixu Rozložení na disku: boot blok super blok bloky s informačními uzly datové bloky Nevýhody: 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ů predn_10.odt 16.04.2007 16:45:36 13
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 Nevýhody: větší bloky (4 nebo 8kB) UFS (SVR4), EAFS (SCO), 4.2 (BSD) 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ů 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 (od Solarisu 7 odstraněno tzv. logováním) predn_10.odt 16.04.2007 16:45:36 14
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.odt 16.04.2007 16:45:36 15
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.odt 16.04.2007 16:45:36 16
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.odt 16.04.2007 16:45:36 17
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ýmipřepínači newfs -F ufs /dev/rdsk/c0t0d0s7 predn_10.odt 16.04.2007 16:45:36 18
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.odt 16.04.2007 16:45:36 19
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.odt 16.04.2007 16:45:36 20
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 predn_10.odt 16.04.2007 16:45:36 21
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.odt 16.04.2007 16:45:36 22
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.odt 16.04.2007 16:45:36 23
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.odt 16.04.2007 16:45:36 24
Zálohování Zálohovací pásková zařízení 1/2" páska 10MB zastaralé, problémy s kolmostí hlav QIC kazety 60-150MB DLT pásky 20, 35GB zastaralé 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.odt 16.04.2007 16:45:36 25
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 /dev/rmt/0lnb první páskové zařízení se střední hustotou první páskové zařízení s nízkou hustotou, bez převinutí, BSD predn_10.odt 16.04.2007 16:45:36 26
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.odt 16.04.2007 16:45:36 27
Čí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 přenositelnost: ne ano ano co se zálohuje: jeden UFS systém s. soubor nebo adresář interaktivní obnova: ano ne ne speciální soubory ano ne ano abs=abs, rel=rel vybrané soubory predn_10.odt 16.04.2007 16:45:36 28