Souborové systémy
- umožňují uchovávání většího množství dat
- data jsou perzistentní (přežijí proces)
- k datům je umožněn souběžný přístup
- řešení: ukládání dat na vnější paměť (např. disk), data jsou ukládána do souborů tvořící souborový systém
- OS nabízí základní sadu funkcí pro operace se soubory:
create
: vytvoření souboruwrite/append
: přepis nebo zápis na konec souboruread
: čtení ze souboruseek
: změna poziceerase
: odstranění souborutruncate
: zkrátí daný soubor na požadovanou velikost
Oddíly
- každý fyzický disk se obvykle skládá z jedné nebo více logické části (partition)
- v každém oddílu může existovat souborový systém (svazek)
- v Unix každý svazek připojen jako adresář
- ve Windows jednotlivé svazky označeny (
a:
,b:
,c:
,…)
- VFS : Virtual File System:
- využití abstrakce: umožňuje kombinovat různé FS do jednoho VFS
- možnost připojit běžný soubor jako svazek
- kompatibilita síťových disků
Příklad VFS
LVM (Logical Volume Management)
- = metoda správy diskového prostoru
- poskytuje větší variabilitu než konvenční způsob dělení disků na diskové oddíly
- umožňuje spojovat více pevných disků nebo oddílů do logických celků
- možnost emulovat RAID
- možnost vložit vrstvu starající se o snapshoty, provádět šifrování
LVM
RAID (Redundant Array of Independent Disks)
- kombinuje několik fyzických diskových jednotek do jednoho logického úložiště
- cílem je zvýšit spolehlivost, rychlost a kapacitu diskového úložiště
- RAID 0 (stripping) - Data jsou rozdělena na bloky a distribuována rovnoměrně mezi disky bez redundantních dat.
- RAID 1 (mirroring) - Data jsou zrcadlena
- RAID 5 (stripping with parity) -
- Data a paritní informace jsou rozloženy mezi tři nebo více disků.
- Parita umožňuje obnovu dat z ostatních disků v případě selhání jednoho disku.
- RAID 6 (stripping with double parity) -
- jako 5, ale podporuje strátu dvou disků
- a různé kombinace… například RAID 10, RAID 60, …
Struktura souboru
- často je soubor chápán jako proud bytů
- občas jiná struktura, jako třeba multimediální soubor (více proudů)
- macOS: každý soubor má dva proudy (data, prostředky)
- NT: umožňuje k proudu přidat libovolný počet proudů
- s daty jsou k souboru připojena metadata (vlastník, přístupová práva, velikost souboru, čas vytvoření, čas posledního přístupu, …)
Zajištění konzistence dat
Žurnálování
- data se zapisují v transakcích
- často se žurnálují jen metadata
- Algoritmus:
- nejdříve se změna zapíše do žurnálu
- po zapsání do žurnálu je záznam označen speciální značkou
- data se zapíší na cílové místo na disku
- po zapsání na disk je záznam z žurnálu smazán
- při připojení FS se kontroluje stav žurnálu
- zápis záznamu do žurnálu nebyl dokončen (chybí značka) transakce se neprovede
- jinak: transakce se zopakuje podle instrukcí v žurnálu
- žurnál je cyklický (při zaplnění maže začátek)
- potřeba atomický zápis na disk
Copy-on-Write
Copy-on-Write
Příklady souborových systémů
- FAT
- FS původně pro MS-DOS
- jednoduchý design
- soubory a adresáře ve tvaru
- nemá ochranu proti poškození dat
- varianty: FAT12, FAT16, FAT32, VirtualFAT, exFAT
- UFS: Unix File System
- reálně používané varianty UFS obvykle obsahují navzájem nekompatibilní rozšíření
- využívá strukturu i-node
- ukazatelů na bloky na disku:
- ukazují na bloky na disku
- nepřímý blok úrovně
- nepřímý blok úrovně
- nepřímý blok . úrovně
- nepřímé bloky odkazují do datové části
struktura i-node
- NTFS
- hlavní souborový systém Windows NT
- oproti FAT ochrana před poškozením, práva žurnálování a transakce
- ZFS
- kombinuje prvky LVM a RAID
- disky spojeny do poolu, FS dělá automaticky stripping
- deduplikace dat
- podpora komprese
- RAID-Z: podobný RAID-5, ale má různě velké bloky
- u dat kontrolní součty
- konzistence založan na CoW (Copy on Write)
Navigace
Předchozí: Práce se vstupně výstupními zařízeními, ovladače Následující: Tabulky v SQL a jejich vztah k relacím Celý okruh: 2. Informační technologie