Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
1
UNIX 8. Systém souborů © Milan Keršláger 28.9.2016 http://www.pslib.cz/ke/slajdy http://creativecommons.org/licenses/by-nc-nd/3.0/
2
Systém souborů – FS ● též souborový systém, anglicky filesystem ● data organizovaná do souborů a adresářů ● uloženo na vhodné paměti pro FS ● přístupné přímo v počítači nebo přes síť ● obsahuje data a metadata ● metadata popisují organizaci dat ● uloženo ve vhodném formátu – FAT, ext4, NTFS,... ● v jádře OS ovladač souborového systému
3
Organizace FS ● soubory a adresáře ● metadata ● popisují organizaci dat a další informace – umístění dat, přístupová oprávnění, čas změny,... ● data ● souvislý blok dat – ideální stav, ale jak budeme doplňovat a mazat data? ● jednotlivé alokační jednotky – klasický přístup
4
Metadata ● „data o datech“ ● v reálném životě např. katalog v knihovně ● obsahují informace nutné pro orientaci ve FS ● popisují soubory, adresáře a další informace o FS ● konzistence metadat ● důležité pro činnost jádra OS ● při poškození nutno opravit ( fsck, chkdsk )
5
Paměť pro FS ● typicky nevolatilní RWM (Read-Write Memory) ● data lze zapisovat (přepisovat) a číst ● data jsou zachována i při odpojení napájení – pevný disk, flash – výjimky: FS v RAM (rychlost, export dat z jádra,...) ● možné typy pamětí ● magnetické – pevný disk (sekvenční a přímý přístup) ● optické – CD, DVD, Blu-ray ● polovodičové – RAM, Flash ● samozřejmě i jiné typy
6
Magnetická páska ● předek disket i pevných disků ● souvislý pás s magnetickou vrstvou ● vynalezeno 1935 firmy AEG a BASF ● pro data 1951 – UNIVAC I – v 2. polovině 20. století symbolizovala „počítač“ ● data zaznamenána souvisle ● lineární zápis (páska je vždy znovu celá přepsána) ● „soubory“ a mezi nimi speciální značky – magnetickopásková jednotka umí značky vyhledat – relativně pomalé přesuny → sekvenční přístup
7
Disketa – FDD ● evoluční krok od magnetické pásky ● blokové zařízení (512 bajt) – podle mg. pásky ● médium naneseno na kotoučku ● floppy disk – disketa (pružný disk) ● 1971 – 8 palců, 1976 – 5,25“, 1984 – 3,5“ ● ale i jiné (např. ZIP) ● snadný transport, rozumná kapacita ● relativně robusní ● 160, 360, 720 kiB, 1,2 MiB, 1,44 MiB a 2,88 MiB
8
Pevný disk – HDD ● evoluční krok od diskety ● 1956 – IBM ● plovoucí hlava – bezkontaktní čtení/zápis ● typicky pevně vestavěn ● specifická rozhraní ● 1986 – SCSI, 1986 – ATA (max. 128 GB) ● 2002 – ATA/100, 2003 – SATA, 2005 – SAS ● SSD disk ● používá flash paměť → bez mechanických částí
9
Organizace dat – HDD ● kvůli větší kapacitě zaveden MBR ● Master Boot Record ● logické členění disku na oddíly (partition) ● umístěn v prvních 512 bajtů (první blok) ● různé formáty – DOS MBR → limit 2 GiB – GPT → nástupce (součást EFI standardu) ● v rámci oddílu už stejná organizace jako u FDD ● boot sektor (512 bajtů) ● následuje oblast s vlastním FS (struktura dle typu)
10
Adresace dat na disku ● C-H-S ● Cylinder-Head-Sector ● cylindr, hlava, sektor ● používal se dříve ● LBA ● Logical Block Addresing ● lineární číslování ● současná metoda ● ATA/100 → 48 bitů → 128 PiB
11
Sektor a cluster ● sektor ● nejmenší fyzicky adresovatelný blok (disku) ● typicky 512 bajtů – CD/DVD → 2048 bajtů (2 kiB) – nové pevné disky → 4096 bajtů (4 kiB) ● cluster ● česky alokační jednotka ● nejmenší úsek dat adresovatelný na úrovni FS – 512 bajtů, 1024, 2048, 4096,... 64 kiB,...
12
FAT ● File Allocation Table ● 1986 použit v 86-DOS, koupil Microsoft → MS-DOS ● ECMA a ISO/IEC standard – dlouhé názvy částečně patentovány Microsoftem ● využívá spojový seznam ● struktura: ● boot sektor ● FAT1, FAT2 ● kořenový adresář ● datová oblast ● adresář: ● položka 32 bajtů ● jméno, přípona ● atributy, čas ● první sektor
13
Spojový seznam FAT FAT Datové bloky Záznam v adresáři: soubor.txt02 Obsah souboru: ABCDE Obsah FAT: odpovídající položka ukazuje na další, ukončeno FF. Obsah souboru je čten po datových blocích odpovídajících zřetězeným položkám ve FAT. 00 10 20 049 00 10 20 2613578
14
Popis funkce FAT ● velikosti položek FAT – FAT12 → 12 bitů, FAT16 → 16 bitů, FAT32 → 32 bitů ● FAT32 používá na číslo datového bloku jen 28 bitů ● velikosti datových bloků – podle formátování: 512, 1024 B, 2 kiB, 4, 8, 16, 32, 64 kiB – max. velikost položky ve FAT krát velikost datového bloku – je maximální velikost souborového systému ● dlouhé názvy v adresářích – používají se další (neplatné) položky v adresáři ● neefektivita při manipulaci s FAT – přesuny hlaviček z datové části na položky FAT a zpět
15
ext4 ● Extended Filesystem ● čtvrtá generace FS pro Linux ● vychází z UFS (Unix File System) ● struktura: ● boot blok ● skupina (opakuje se) – superblok a deskriptory – metadata popisující FS – bitmapa použitých i-uzlů (i-nodů) a datových bloků – i-uzly – metadata jednotlivých souborů – datové bloky – datové části souborů, adresáře
16
Skupiny ext4 ● Skupiny se opakují, mají konstantní velikost. ● Superblok a deskriptory jsou jen v některých blocích (při využití SPARSE_SUPER). ● Superblok a bitmapy jsou vždy 1 blok dlouhé. Ostatní položky jsou násobky bloků.
17
Metadata ext4 ● data a metadata ve skupinách ● umožňuje rychlejší přístup při čtení/zápisu ● rozprostírá metadata po celém disku (havárie) ● metadata o souboru v i-uzlu ● i-uzel není součástí adresáře – lze vytvářet pevné a symbolické odkazy – i-uzlů je konečné množství (definováno při formátování) ● je-li i-uzlů zbytečně mnoho, prodlužuje se fsck (ext3 a starší) ● adresář: ● název + číslo i-uzlu
18
Superblok ● metadata o celém souborovém systému ● opakuje se na začátku skupiny – v případě poškození lze použít jinou kopii – sparse-super → kopie jen u některých (zrychlení) ● struktura: ● stav souborového systému (clean, dirty) – při připojení test (+fsck) a nastavení na dirty – při odpojení nastavení na clean ● počet připojení, poslední fsck (automatické fsck) ● velikosti a umístění jednotlivých částí
19
I -uzel ● struktura i-uzlu: ● typ souboru a přístupová oprávnění ● počet odkazů (pro pevné linky, ale i adresáře) ● vlastník, skupina ● velikost ● časové značky – poslední přístup (atime), změna dat (mtime), změna metadat (ctime) ● 12 přímých odkazů na datové bloky ● 1 nepřímý odkaz na datové bloky (první úrovně) ● 1 nepřímý odkaz druhé úrovně ● 1 nepřímý odkaz třetí úrovně
20
Nepřímé odkazy v I-uzlu
21
Struktura adresáře ● adresář je vlastně speciální soubor ● pevně daná maximální délka názvu objektu – tj. název souboru nebo podadresáře ● číslo i-uzlu – odkaz na metadata popisující soubor – každý FS čísluje i-uzly vždy znovu od nuly ● obsah adresáře ● lineární seznam položek → pole ● položky někdy organizovány do stromu – kvůli rychlosti prohledávání (ext3, NTFS,...)
22
VFS ● Virtual Filesystem ● VFS implementuje jádro OS ● shora sjednocuje přístup ke všem FS (API) ● dle situace volá „ovladač“ konkrétního FS ● řeší cache pro soubory a adresáře ● další FS se připojují do existujících adresářů ● příkaz mount, umount, df $ df Souborový systém 1K bloků Použité Volné Uži% Připojeno do /dev/sda1 17856888 4189384 12745780 25% / /dev/sda3 18520212 11708304 5884556 67% /home tmpfs 379992 0 379992 0% /dev/shm
23
Připojování FS ● mount ● typ FS, speciální soubor zařízení, adresář ● mount /dev/sda3 /home ● umount ● slouží k odpojení připojeného FS ● FS nesmí být používán – otevřený soubor, aktuální adresář ● /etc/fstab ● seznam FS připojovaných při startu systému – startovací skript spustí příkaz mount -a
24
Příklad připojení /home bin etc home huzva texty skripty jane fotky video lib usr / Kořen je připojen na základní FS. Do /home je připojen další disk. Připojený FS může mít odlišnou stavbu (NTFS, FAT, ext3, XFS, síťový NFS, …). VFS pak rozhoduje, jaký ovladač FS se při přístupu k datům použije.
25
fsck ● kontrola konzistence metadat ● změna dat (a metadat) v několika krocích ● dojde-li k havárii, nejsou data konzistetní – např. zrušíme název v adresáře, ale ne i-nod a dat. bloky – → do /lost+found ● fsck využívá záznamy v superbloku – automatizovaná detekce nutnosti kontroly ● plná kontrola trvá extrémně dlouho ● řeší ext4 (jen použité i-nody) ● preventivní kontroly je nutné plánovat – současné distribuce automatické opravy nepoužívají
26
mkfs ● vytváření souborových systémů ● typicky volá podřízené nástroje – mkfs.ext4, mkfs.ntfs, mkfs.vfat ● každý FS má vlastní sadu parametrů – nutno dohledat v manuálových stránkách ● mkfs -t ext4 /dev/sda3
27
Fragmentace ● vzniká při ukládání dat do alokačních jednotek ● nově přidělené A.J. spolu nesousedí ● pohyb hlaviček disku je relativně pomalý ● náhodná stopa = 10 ms, sousední stopa = 1 ms ● řešení: ● ukládat data tak, aby se omezila fragmentace (ext) ● defragmentovat dodatečně (NTFS) ● vnitřní fragmentace (fragmentace volného místa) ● poslední alokační jednotka není zcela obsazena ● řeší se pomocí „tail merge“ (subalokace bloků)
28
Žurnálování ● ochrana konzistence metadat (někdy i dat) ● po pádu systému opravujeme jen nekonzistence ● není nutné prohlížet všechna metadata ● neslouží jako záloha nebo záruka, že se zapíše vše ● princip funkce ● plánovanou operaci zapíšeme do žurnálu ● provedeme změny v souborovém systému ● zapíšeme do žurnálu záznam o dokončení operace ● zrušíme záznam v žurnálu
29
Děravé soubory ● anglicky „sparse file“ ● soubory obsahují prázdná místa ● ukládat nuly je zbytečné ● do metadat: odkud a jak je dlouhý prázdný úsek ● při čtení vrací systém nuly, jako by je četl ● umožňuje šetřit významně místem – např. databáze, logy, ukládání řídkých polí ● podporují jen některé FS: ● většina unixových FS, NTFS a další ● nepodporuje je FAT nebo HFS+ (Apple)
30
Extenty ● souvislý větší úsek alokovaný pro data ● spojení více alokačních jednotek v řadě za sebou ● snižuje režii → je potřeba méně metadat – zaznamenáme jen číslo prvního datového bloku + počet ● snižuje fragmentaci ● podpora jen v některých FS: ● ext4, Reiser4, XFS, JFS,... (Linux aj.) ● HPFS (OS/2), NTFS (Windows)
31
Rozsáhlé adresáře ● adresář je lineární seznam ● prohledávání trvá dlouho (počet/2) ● nalezení položky je velmi častá operace (otevírání) ● při rušení a přidávání položek vznikají „díry“ ● binární strom ● nejrychlejší hledání (je-li vyvážený → B-strom) ● nevýhodou je vyvažování ● ext3 → htree – specializovaný B-strom, nepotřebuje vyvažování ● NTFS též používá binární strom
32
Síťové souborové systémy ● zpřístupněny pomocí počítačové sítě ● vlastní data uložena v klasickém FS (ext, NTFS,...) ● různé vlastnosti ● clusterové, fail-over, LAN, globální (přes Internet) ● možnost lokálního cachování dat, synchronizace ● příklady: ● SMB, CIFS → síťové sdílení ve Windows ● NFS, GFS → unixové systémy ● AFS → globální souborový systém (celosvětový)
33
NFS ● Network Filesystem ● 1984 – první verze (firma Sun) → RFC 1094 ● dnes již 4. verze (NFSv4), IETF ● typické sdílení souborů mezi unixovými systémy ● evoluční vývoj ● doplňování nových vlastností – NFSv2 jen pro UDP, max. 2 GiB soubory, synchronní,... – NFSv4 – bezpečnost, stavový protokol, clustery – při použití se chováme obezřetně (není lokálním FS) ● využívá RPC (Remote Procedure Call)
34
GFS ● Global File System ● sdílený diskový souborový systém – více počítačů nabízí přes síť úložný prostor – úložný prostor vystupuje navenek jako jeden celek ● umožňuje však přímý přístup k úložnému zařízení ● není to tedy distribuovaný souborový systém ● dá se použít i jako lokální souborový systém – jednotlivé uzly jsou ve vztahu peer-to-peer – využíván distribuovaný správce zámků (v jádře) ● zajímavý vývoj: – 1997, 1998 jako open source pro Linux – 1999 Sistina, 2001 komerční, 2004 Red Hat → GPL
35
AFS ● Andrew File systém ● distribuovaný souborový systém – úložný prostor rozprostřen přes důvěryhodné servery ● využíván klienty, kteří se k němu připojují (desetitisíce) ● správce definuje svazky (volume) a jejich fyzické uložení v síti ● klient přistupuje ke sdíleným složkám jen přes názvy svazků – klient využívá lokální cache pro zvýšení rychlosti ● operace čtení a zápisu jsou prováděny nad lokální kopií ● klient si registruje u serveru callback ● při změně souboru jsou všichni klienti přes callback informováni ● zamykání jen na celý soubor ● správce vytváří read-only kopie dat → transparentní urychlení ● multiplatformní → OpenAFS (IBM 2000)
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.