Operační systém UNIX
Přednáška 10. - Systémy souborů
Disky a systémy souborů
predn_10.odt
16.04.2007 16:45:36
1
Operační systém UNIX
Přednáška 10. - Systémy souborů
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
Operační systém UNIX
Přednáška 10. - Systémy souborů
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
Operační systém UNIX
Přednáška 10. - Systémy souborů
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
Operační systém UNIX
Přednáška 10. - Systémy souborů
Speciální soubory disků aplikace
znakový (raw) speciální soubor diskový driver
predn_10.odt
mount
aplikace
blokový speciální soubor stránková cache
mount
aplikace
blokové metazařízení systém souborů
16.04.2007 16:45:36
znakové metazařízení
diskový manažér
5
Operační systém UNIX
Přednáška 10. - Systémy souborů
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
Operační systém UNIX
Přednáška 10. - Systémy souborů
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
Operační systém UNIX
Přednáška 10. - Systémy souborů
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
Operační systém UNIX
Přednáška 10. - Systémy souborů
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.odt
16.04.2007 16:45:36
9
Operační systém UNIX
Přednáška 10. - Systémy souborů
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
Operační systém UNIX
Přednáška 10. - Systémy souborů
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
Operační systém UNIX
Přednáška 10. - Systémy souborů
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
Operační systém UNIX
Přednáška 10. - Systémy souborů
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
Operační systém UNIX
Přednáška 10. - Systémy souborů
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 (od Solarisu 7 odstraněno tzv. logováním)
predn_10.odt
16.04.2007 16:45:36
14
Operační systém UNIX
Přednáška 10. - Systémy souborů
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
Operační systém UNIX
Přednáška 10. - Systémy souborů
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
Operační systém UNIX
Přednáška 10. - Systémy souborů
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
Operační systém UNIX
Přednáška 10. - Systémy souborů
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
Operační systém UNIX
Přednáška 10. - Systémy souborů
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
Operační systém UNIX
Přednáška 10. - Systémy souborů
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
Operační systém UNIX
Přednáška 10. - Systémy souborů
Odpojení systému souborů Systém souborů lze odpojit příkazy: umount adresář nebo umount blokové_zařízení 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
Operační systém UNIX
Přednáška 10. - Systémy souborů
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 #to mount to fsck point type pass fd /dev/fd fd /proc /proc proc /dev/dsk/c0d0s1 swap /dev/dsk/c0d0s0 /dev/rdsk/c0d0s0 / ufs 1 swap /tmp tmpfs -
mount mount at boot options no no no no noatime 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
Operační systém UNIX
Přednáška 10. - Systémy souborů
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
Operační systém UNIX
Přednáška 10. - Systémy souborů
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 /proc 0 /dev/dsk/c0d0s0 1786135 fd 0 swap 132148 root@sol2/root>du -ks /etc 2211 /etc
predn_10.odt
used 0 701917 0 8
avail capacity 0 0% 1030634 41% 0 0% 132140 1%
16.04.2007 16:45:36
Mounted on /proc / /dev/fd /tmp
24
Operační systém UNIX
Přednáška 10. - Systémy souborů
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.odt
16.04.2007 16:45:36
25
Operační systém UNIX
Přednáška 10. - Systémy souborů
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>
[bez_převinuti][BSD]
/dev/rmt/0m /dev/rmt/0lnb
predn_10.odt
první páskové zařízení se střední hustotou první páskové zařízení s nízkou hustotou, bez převinutí, BSD
16.04.2007 16:45:36
26
Operační systém UNIX
Přednáška 10. - Systémy souborů
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
Operační systém UNIX
Přednáška 10. - Systémy souborů
Čím se zálohuje: (ufs)dump, (ufs)restore tar cpio dd inkrementální: absolutní/relativní: přenositelnost: co se zálohuje: interaktivní obnova: speciální soubory
predn_10.odt
dump/restore
tar
cpio
ano, 9 úrovní záloha absolutní, obnova relativní ne jeden UFS systém s. ano ano
ne abs=abs, rel=rel
pomocí find abs=abs, rel=rel
ano soubor nebo adresář ne ne
ano vybrané soubory
16.04.2007 16:45:36
ne ano
28