Operační systém UNIX
Systémy souborů
Systémy souborů (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
Operační systém UNIX
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.doc
07.05.01 13:14
2
Operační systém UNIX
Systémy souborů
Speciální soubory disků aplikace
znakový (raw) speciální soubor diskový driver
predn_10.doc
aplikace
mount
blokový speciální soubor stránková cache
systém souborů
07.05.01 13:14
blokové metazařízení
znakové metazařízení
diskový manažér
3
Operační systém UNIX
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
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
Operační systém UNIX
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í (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
Operační systém UNIX
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.doc
07.05.01 13:14
6
Operační systém UNIX
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, 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
Operační systém UNIX
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.doc
07.05.01 13:14
8
Operační systém UNIX
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.doc
07.05.01 13:14
9
Operační systém UNIX
Systémy souborů
Typy diskových systémů souborů S5 !
původní systém souborů unixu
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ů
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
Operační systém UNIX
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 (u Solarisu 7 odstraněno tzv. logováním)
predn_10.doc
07.05.01 13:14
11
Operační systém UNIX
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.doc
07.05.01 13:14
12
Operační systém UNIX
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.doc
07.05.01 13:14
13
Operační systém UNIX
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.doc
07.05.01 13:14
14
Operační systém UNIX
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ými přepínači
newfs -F ufs /dev/rdsk/c0t0d0s7
predn_10.doc
07.05.01 13:14
15
Operační systém UNIX
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.doc
07.05.01 13:14
16
Operační systém UNIX
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.doc
07.05.01 13:14
17
Operační systém UNIX
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 root@sol2/root> predn_10.doc
07.05.01 13:14
18
Operační systém UNIX
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 noatime swap /tmp tmpfs -
mount mount at boot options no no no no 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
Operační systém UNIX
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.doc
07.05.01 13:14
20
Operační systém UNIX
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.doc
used 0 701917 0 8
avail capacity 0 0% 1030634 41% 0 0% 132140 1%
07.05.01 13:14
Mounted on /proc / /dev/fd /tmp
21
Operační systém UNIX
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é spolehlivé, drahé ! DLT pásky 20, 35GB 2, 5 a více GB nepříliš rozšířené ! Exabyte 8mm ! 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
Operační systém UNIX
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
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
Operační systém UNIX
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.doc
07.05.01 13:14
24
Operační systém UNIX
Systémy souborů
Čí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