db.dobo.sk

filesystems

bez komentára

Alles uber FS

obecne

FS je predpis, jak sú data na disku organizované – zápis na disku je rad bajtů, takže ja sa v tom vyznať (kde začína súbor, do akého adresára patrí a pod.). Viz termín FAT – file allocation system, t.j. ukáž človeku v čiteľnej podobe, kde má fajly.
Moderný FS definuje a storuje metadáta:

  1.  hierarchiu adresárov a súborov (adresár ako súbor…)
  2.   ich vlastníkov a oprávnenia (rwx, acl)
  3.   časy vytvorenia a zmeny (ctime…)
  4.   údaje pre opravný mechanizmus (fsck, žurnál). Zatiaľčo žurnál pracuje na základe delty stavu (zápis zmien), fsck približne na princípe – ak súbor otvorený, oznařč ho za nekonzistetntný, ak štandardne zavretý, tak označ za konzistentný.
  5.   kvóty a pod.

UNIXy ukaldajú metadáta v inodoch. Master inode obsahuje metadáta a zoznam blokov, kde sú data. Pre malé súbory OK, ale ak by bol súbor veľký, tak nevýhodné – OS sa musí stále pozerať do indexu na inode a teda veľa seekov. rieši sa to tzv. indirect blokmi – blok na inode ukazuje na ďalšie bloky, viď obr.

ext2-inode
Jenotlivé FS sú limitované roznymi veľkosťami súborov a pod. Dnes nepodstatné, veľké rezervy. FS je viazaný na partíciu, nie na disk, takže na disku možno viacero partícií s roznymi FS. Konečným cieľom FS je efektívne storovať dáta a zabezpečiť ich konzistenciu. Základný prehľad schopností jednotlivých FS na wikipedii.

Bloky a superbloky
Extenty
Fragmentácia
Riedke súbory (sparse files)

linux FS 2 vrstvy – VFS, na ktorý kernel posiela syscally a VFS potom zavolá driver pre konkrétny FS. Linuxový FS je logicky organizovaný podľa LFHS a hierarchizovaný na jeden strom (root) – pokiaľ sa pripája iný FS, tak niekam do mountpointu v tomto strome.

filesystem_diagram

 

oddychové čítanie – ako funguje google FS –  gfs-sosp2003

 

file deskriptory

FD sú handlery pr e súbory – tabuľka čísel, ktoré sa mapujú na tabuľku oprávnení a inodov. V praxi do nich človek najčastejěie zabŕdne, keď narazí na chybovú hlášku, že bol vyčerpaný ich limit a FS stojí.

cat /proc/sys/fs/file-max – konfig, ktorý udáva maximálny počet deskriptorov

cat /proc/sys/fs/file-nr – číslo, ktoré udába počet otvorených deskriptorov

ls /proc/PID/fd/ – symlikny na súbory, ktoré má otvorený konkrétny proces

lsof | wc -l – často doporučované pr eprehľad otvorených súborov, nie je to celkom korektné, tu o tom vynikajúci článok

píše: ďobo

January 4th, 2017 o 2:31 pm

chlievik: linux

okomentuj