SlideShare uma empresa Scribd logo
1 de 49
Baixar para ler offline
LinuxFEST 3/2008




               GNU/Linux
                      Súborové systémy



Prednášajúci: Michal Sedlák
Email: michal6103 at gmail dot com
Úvod




     Vizuálna téma prezentácie je odvodená od
                od témy vytvorenej:

            Sakari Koivunen and Henrik Omma
             Released under the LGPL license.




29.3.2008                 LinuxFEST 3           2/48
Obsah

   ●
       Súbory
       –    typy súborov, atribúty, práva, príkazy
   ●
       Čo je to súborový systém
   ●
       Súborové systémy
       –    ext2, ext3, ext4, ReiserFS, UnionFS....
       –    prečo ďalšie FS
       –    rozdiely




29.3.2008                     LinuxFEST 3             3/48
Úvod




   “Na UNIX-ovom systéme je všetko súbor, a
     ak niečo nie je súbor, tak je to proces“

    V Plan9, Inferno OS je úplne všetko súbor




29.3.2008              LinuxFEST 3              4/48
Typy súborov
michal@backup:~/linuxfest$ ls -l
total 172
drwxr-xr-x 2 michal michal   4096 2008-03-28 13:19 adresar
-rw-r--r-- 2 michal michal 32226 2008-03-19 19:59 hl-osnova.odt
-rw-r--r-- 1 michal michal 100462 2008-03-19 19:59 Linuxfest.tar.gz
-rw-r--r-- 2 michal michal 32226 2008-03-19 19:59 osnova.odt
lrwxrwxrwx 1 michal michal     10 2008-03-28 13:19 sl-osnova.odt ->
osnova.odt

   ●
       d    Directory                    ●
                                             r     read      list directory
   ●
       l    Link                         ●
                                             w write
   ●
       c    Character special file       ●
                                             x     execute   recurse directory
   ●
       s    Socket
   ●
       p    named Pipe (FIFO)
   ●
       b    Block device


29.3.2008                            LinuxFEST 3                              5/48
s,S,t,T
   ●
       t,T - sticky bit
       –    súbor - Linux ignoruje sticky bit na súboroch
       –    adresár - súbory môže mazať a
            premenovávať len vlastník súborov
   ●
       s,S - Set User ID, Set Group ID
       –    SUID,SGID súbor – súbor sa spustí s právami
            vlastníka, alebo skupiny súboru
       –    SGID adresár – súbory vytvorené vo vnútri
            adresára budu mat nastavenú skupinu ako
            tento adresár (zdieľanie súborov)

29.3.2008                      LinuxFEST 3                  6/48
d - Adresár, priečinok,
 zložka
/bin    programy zdielané užívateľmi a rootom
/boot   Inicializačné súbory, kernel, popripade grub a
        jeho nastavenia (vmlinuz, initrd.gz).
/dev    referencie na hardvér, reprezentovaný súbormy
/etc    konfiguračné súbory - Editable Text
        Configuration Dennis Ritchie tvrdí, že to je
        skratka "et cetera"
/home užívateľské adresáre
/initrd bootovacie skripty (iba v niektorych distrách)
/lib    knižnice potrebné na beh programov
/lost+found súbory obnovené diagnostickými nástrojmy
/misc rôzny účel
/media pripojené periférie, cd-rom, usb kľúč, mp3 player

29.3.2008                 LinuxFEST 3                7/48
d - Adresár, priečinok,
 zložka


/opt        treťostranný softvér
/proc       virtuálny filesystem s informáciami o
            systémových zdrojoch
/root       domáci adresár užívateľa root
/sbin       systémové programy
/tmp        dočasné súbory, maže sa pri reboote
/usr        užívateľské programy, knižnice, dokumentácia
/var        premenlivé súbory, logy, databázy, print spooler,
            mail queue




29.3.2008                      LinuxFEST 3                 8/48
c - Špeciálne znakové súbory

   ●
       väčina je v /dev


  /dev/null      prijme a zruší akekoľvek dáta
  /dev/full      vždy plné zariadenie
  /dev/loop      loopback disk device
  /dev/zero      generuje prúd núl (NUL)
  /dev/random    generuje pseudonáhodné čísla (blok)
  /dev/urandom   generuje pseudonáhodné čísla




29.3.2008                 LinuxFEST 3                  9/48
l – symbolická linka

   ●
       Soft link
       –    obsahuje meno a cestu iného súboru
       –    ln -s meno1 meno2
   ●
       Hard link
       –    hard link je pointer na inode vo filesystéme
       –    nie je možné spraviť hardlink na iný
            filesystem
       –    ln meno1 meno2


29.3.2008                      LinuxFEST 3                 10/48
hard vs. soft


michal@backup:~/linuxfest$   ls -l
total 172
drwxr-xr-x 2 michal michal     4096   2008-03-28   13:19   adresar
-rw-r--r-- 2 michal michal    32226   2008-03-19   19:59   hardlink-osnova.odt
-rw-r--r-- 1 michal michal   100462   2008-03-19   19:59   Linuxfest.tar.gz
-rw-r--r-- 2 michal michal    32226   2008-03-19   19:59   osnova.odt
lrwxrwxrwx 1 michal michal       10   2008-03-28   13:19   softlink-osnova.odt
-> osnova.odt
michal@backup:~/linuxfest$   ls -lL
total 204
drwxr-xr-x 2 michal michal     4096   2008-03-28   13:19   adresar
-rw-r--r-- 2 michal michal    32226   2008-03-19   19:59   hardlink-osnova.odt
-rw-r--r-- 1 michal michal   100462   2008-03-19   19:59   Linuxfest.tar.gz
-rw-r--r-- 2 michal michal    32226   2008-03-19   19:59   osnova.odt
-rw-r--r-- 2 michal michal    32226   2008-03-19   19:59   softlink-osnova.odt




29.3.2008                            LinuxFEST 3                         11/48
hard vs. soft


michal@backup:~/linuxfest$   ls -l
total 172
drwxr-xr-x 2 michal michal     4096   2008-03-28   13:19   adresar
-rw-r--r-- 2 michal michal    32226   2008-03-19   19:59   hl2-osnova.odt
-rw-r--r-- 2 michal michal    32226   2008-03-19   19:59   hl-osnova.odt
-rw-r--r-- 1 michal michal   100462   2008-03-19   19:59   Linuxfest.tar.gz
lrwxrwxrwx 1 michal michal       10   2008-03-28   13:19   sl-osnova.odt ->
osnova.odt
michal@backup:~/linuxfest$   ls -lL
total 172
drwxr-xr-x 2 michal michal     4096   2008-03-28   13:19   adresar
-rw-r--r-- 2 michal michal    32226   2008-03-19   19:59   hl2-osnova.odt
-rw-r--r-- 2 michal michal    32226   2008-03-19   19:59   hl-osnova.odt
-rw-r--r-- 1 michal michal   100462   2008-03-19   19:59   Linuxfest.tar.gz
?--------- ? ?      ?             ?                    ?   sl-osnova.odt




29.3.2008                            LinuxFEST 3                         12/48
s – domain socket
 p - pipe

   ●
       slúžia na medzi-procesovú
       komunikáciu(IPC) ponad prístupové práva
       súborového systému
#Socket
python> import socket
python> my_scoket = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
python> my_socket.bind('/tmp/socket_name')


#pipe
python> import os
python> receive,transmit = os.pipe()




29.3.2008                       LinuxFEST 3                      13/48
Súborový systém

   ●
       popisuje akým spôsobom sú uložené
       dáta, HDD, FDD, CD-ROM, sieť (SMB,
       NFS), procfs...
   ●
       niekoľko vrstiev abstrakcie umožňujúcich
       prístup k údajom
   ●
       virtuálny filesystem môže reprezentovať
       akékoľvek dáta (WikipediaFS, procfs)



29.3.2008                LinuxFEST 3             14/48
Metadáta

  ●
      okrem mena súboru a jeho obsahu sa
      ukladajú aj iné dáta
      –   čas vytvorenia
      –   čas posledného prístupu
      –   vlastník (user, group)
      –   prístupové práva
      –   veľkosť
      –   rozšírené atribúty (autor dokumentu, kódovanie)


29.3.2008                    LinuxFEST 3             15/48
Schéma




29.3.2008   LinuxFEST 3   16/48
i-node

   ●
       základná jednotka UNIX FS
   ●
       ukazuje na ďalšie i-nody, alebo bloky dát




29.3.2008                LinuxFEST 3           17/48
superblok

   ●
       štruktúra obsahujúca základné informácie
       o disku
       –    geometria
       –    voľné miesto
       –    umiestnenie prvého i-nodu
   ●
       nevyhnutný pri boote
   ●
       kópie superbloku v každej skupine blokov



29.3.2008                    LinuxFEST 3     18/48
superblok

backup:/home/michal/linuxfest# dumpe2fs /dev/hda1 | grep -i
superblock
dumpe2fs 1.40-WIP (14-Nov-2006)
  Primary superblock at 1, Group descriptors at 2-2
  Backup superblock at 8193, Group descriptors at 8194-8194
  Backup superblock at 24577, Group descriptors at 24578-24578
  Backup superblock at 40961, Group descriptors at 40962-40962
  Backup superblock at 57345, Group descriptors at 57346-57346
  Backup superblock at 73729, Group descriptors at 73730-73730
  Backup superblock at 204801, Group descriptors at 204802-204802
  Backup superblock at 221185, Group descriptors at 221186-221186




29.3.2008                       LinuxFEST 3                         19/48
Žurnál

   ●
       synchronizácia - race condition
       –    zmazanie súboru
             ●
                 uvoľnenie miesta na disku
             ●
                 odstránenie súboru zo záznamov v priečinku
   ●
       do žurnálu sa zapisujú budúce operácie
       –    iba atomické zmeny = veľa údajov
       –    Reiser4 zhlukuje atomické zmeny do
            spojitého bloku a tým optimalizuje žurnál
       –    v prípade pádu je obnova rýchlejšia ako fsck

29.3.2008                          LinuxFEST 3                20/48
Žurnál nie

   ●
       niektoré FS sú stále konzistentné, resp.
       jedinou nekonzistenciou môže byť
       stratené miesto (Unix File System)
       –    soft updates – obmedzí sa množina
            asynchrónnych operácií
       –    zber smetí je väčšinou na pozadí (garbage
            collection)




29.3.2008                     LinuxFEST 3               21/48
Súborové systémy




29.3.2008         LinuxFEST 3   22/48
ext2

   ●
       1993 - second extended file system
   ●
       natoľko rýchly, že sa používa na
       benchmarky
   ●
       /boot, /tmp
   ●   5% pre roota tune2fs -m 1 /dev/sdXY
   ●
       clean, not clean parameter
   ●   zapnutie žurnálu tune2fs -j /dev/hdXX


29.3.2008                LinuxFEST 3        23/48
ext3

  ●
      2001 - Third extended file system
  ●
      ext2 rozšírený o žurnál
  ●
      3 režimy
      –   Writeback – žurnáluje iba metadáta, urýchly
          kontrolu konzistentnosti
      –   Ordered – čakanie na zápis dát a potom zmena
          metadát (metadáta zodpovedajú dátam)
      –   Journal – plný žurnál, všetko robíme 2x
  ●
       nemá undelete – nuluje pointery na bloky v
       i-node zmazaných LinuxFEST 3
29.3.2008
                        súborov               24/48
ext3

   ●
       bez žurnálu rýchlejší ako ext2
   ●
       štandardný FS v mnohých distrách
   ●
       žiaden nástroj na defragmentáciu
   ●
       žiadne kryptovanie
   ●
       žiadna kompresia
   ●
       žiadne chekcksumy v žurnále
   ●
       podpora ACL a extended attributes

29.3.2008                 LinuxFEST 3      25/48
ext4

   ●
       nestabilný, 2.6.19
   ●
       veľké disky 1024 pebibytes
   ●
       spätne aj dopredne kompatibilný s ext3
   ●
       možnosť predbežnej alokácie súvislých blokov
   ●
       viac ako 32000 adresárov
   ●
       journal checksum
   ●
       online defragmentácia
   ●
       rozlíšenie timestempu 1ns

29.3.2008                   LinuxFEST 3               26/48
ext2,3,4
  Max file size                      2 TiB
  Max filename size                  255 characters
  Max volume size                    16 TiB
  Allowed characters in filenames    Any byte except NUL and '/'



  Max file size                      16GiB – 2TiB
  Max filename size                  255 bytes
  Max volume size                    2TiB – 32TiB
  Allowed characters in filenames    All bytes except NUL and '/'



  Max file size                      16 TiB
  Max filename size
  Max volume size                    1024 PiB = 1 EiB
  Allowed characters in filenames    All bytes except NUL and '/'


29.3.2008                           LinuxFEST 3                     27/48
Ako je to s fragmentáciou
 Ext2, Ext3, Ext4

   ●
       Ext2-4 sa fragmentuje
   ●
       hlavne keď je na disku málo miesta
   ●
       priemerná fragmentácia je minimálna
       –    prejavuje sa na vyťažených serveroch
       –    médiacentrách s obrovskými dátovými tokmi
   ●
       Ako to funguje?




29.3.2008                    LinuxFEST 3            28/48
ReiserFS

   ●
       2001 - prvý s podporou žurnálu v kernely
   ●
       vysoký výkon
       –    efektívne ukladanie malých súborov
             ●
                 ukladanie koncov do jedného bloku
             ●
                 viac súborov v jednom bloku
       –    veľké množstvo súborov v adresáry
   ●
       vhodný na http cache, mail cache, db
Max file size          8 TiB
Max number of files 232 (~4 billion)
Max volume size                   16 TiB
Allowed characters in filenames   All bytes except NUL and '/'
29.3.2008                          LinuxFEST 3                   29/48
JFFS2 - Journalling Flash
 File System verzia 2

   ●
       navrhnutý pre flash pamäte
       –    využívanie celého adresného priestoru
       –    neprepisovanie tých istých miest
   ●
       routery, CF karty, USB kľúče
   ●
       podporuje hard linky
   ●
       kompresia – zlib, rubin, rtime
   ●
       podpora NAND flash (sekvenčné čítanie)
   ●
       garbage collector na pozadí
29.3.2008                     LinuxFEST 3           30/48
JFFS2 - Journalling Flash
 File System verzia 2

   ●
       nedá sa povedať koľko miesta je free
   ●
       pri pripojení je nutné skontrolovať všetky
       inode-i (relatívne pomalé pripojenie)



   ●
       nástupca je LogFS určený pre veľké
       flashové pamäte


29.3.2008                LinuxFEST 3            31/48
SQUASHFS

   ●
       pre flash disky
   ●
       read only (firmvéry, kiosky, LiveCD...)
   ●
       rýchla kompresia – LZMA, GZIP
   ●
       RW v kombinácií s UnionFS
       –    Slax, BackTrack
       –    OpenWRT
   ●
       mksquashfs, unsquashfs


29.3.2008                     LinuxFEST 3        32/48
UnionFS

   ●
       umožňuje vytvoriť RW filesystem ponad
       RO základ, stack-ovací FS
   ●
       CD + HDD = jeden filesystém
   ●
       zapisovateľná vetva ma väčšiu prioritu
   ●
       mazanie z RO média cez .wh. súbory,
       alebo vlastný oddiel na RW partícií
   >mount -t unionfs -o dirs=/media/cdrom,/tmp none /home/cdrw




29.3.2008                        LinuxFEST 3                     33/48
XFS

   ●
       najstarší žurnálovací FS
   ●
       pre high-end servery
   ●
       podpora pre multiprocesorové počítače
   ●
       žurnál – navrnutý tak aby mal minimálny
       dopad na výkon




29.3.2008                LinuxFEST 3           34/48
Btrfs v0.1

   ●
       iba vo vývoji, inšpirovaný ZFS
   ●
       efektívna práca s malými aj velkými súbormi
       (rozsahy – žiadne zoznamy inodov)
   ●
       snapshotting (aj snímky sú živé a môžu byť
       upravené), veľmi rýchle
   ●
       copy-on-write
   ●
       kontrolné súčty všetkého
   ●
       nie je potrebný žurnál
   ●
       rýchla kontrola (online kontrola v pláne)

29.3.2008                   LinuxFEST 3              35/48
Btrfs v0.1
   ●
       online zmeny veľkosti
   ●
       sub-oddiely – viac oddielov v jedno
       filesystéme (konverzia Ext3 -> Btrfs)
   ●
       neskôr:
       –    storage polls – viac zariadení
       –    mirroring a stripping
       –    inkrementálne zálohy
Max file size             16 EiB
Max number of files       264
Max filename size         255 bytes
Max volume size           16 EiB
Allowed characters in filenames    All bytes except NUL and '/'
29.3.2008                       LinuxFEST 3                       36/48
tmpfs

   ●
       Pseudo filesystém, ktorý uchováva všetky
       súbory v RAM



$mount none /mnt/xyz -t tmpfs -o size=100m




29.3.2008                 LinuxFEST 3        37/48
/sys

   ●
       pseudo filesystém umožňujúci prístup ku
       vnútorným premenným kernelu
   ●
       napríklad zoznam modulov
       –    ls /sys/module
   ●
       umožnil vznik udev




29.3.2008                    LinuxFEST 3     38/48
/dev

   ●
       pseudo filesystém s dynamickým
       zoznamom zariadení
   ●
       každé zariadenie má súbor v /dev
   ●
       minor, major číslo (2.7 dynamické)
   ●
       udev
       –    mimo kernel, v userspace
       –    dynamické vytváranie položiek



29.3.2008                    LinuxFEST 3    39/48
/proc

   ●
       pseudo filesystem zobrazuje informácie o
       procesoch
   ●
       /proc/pid
       –    /proc/PID/cmdline príkaz ktorý proces spustil
       –    /proc/PID/cwd symlink na pracovny adresár
       –    /proc/PID/exe symlink na spustiteľný súbor
       –    /proc/PID/root cesta ku koreňovému
            adresáru


29.3.2008                     LinuxFEST 3                40/48
/proc

       –    /proc/PID/status obsahuje aktuálny stav
            procesu, stav použitej pamäte...
       –    /proc/PID/task adresár obsahujúci hardlinky
            na akékoľvek úlohy ktoré tento proces spustil
       –    /proc/PID/maps mapa pamäte ukazujúca
            ktoré adresy sú viditeľné
   ●
       /proc/cpuinfo
   ●
       /proc/meminfo
   ●
       ........

29.3.2008                     LinuxFEST 3              41/48
loop

   ●
       súbor ako blokové zariadenie
   ●
       napríklad pripojenie image




29.3.2008                LinuxFEST 3   42/48
loop
  ●
      Vytvoríme 10 MB súbor
$ dd if=/dev/zero of=file.img bs=1k count=10000
  ●


  ●
      Spravíme asociáciu file.img a /dev/loop0
$ losetup /dev/loop0 file.img
  ●


  ●
      Vytvoríme filesystem
$ mke2fs -c /dev/loop0 10000
 ●
mke2fs 1.35 (28-Feb-2004)
max_blocks 1024000, rsv_groups = 1250, rsv_gdb = 39
Filesystem label=
 ●
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
2512 inodes, 10000 blocks
500 blocks (5.00%) reserved for the super user
...
29.3.2008                       LinuxFEST 3           43/48
loop

   ●
       Pripojíme FS
  $● mkdir /mnt/point1
  $ mount -t ext2 /dev/loop0 /mnt/point1
  $ ls /mnt/point1
   ●
  lost+found




29.3.2008                  LinuxFEST 3     44/48
ďalšie

   ●
       sieťové
       –    sshfs
       –    nfs_fs
       –    smb_fs
       –    9p_fs
   ●
       iné virtuálne
       –    gnome-vfs
       –    gvfs
       –    kio-vfs
29.3.2008               LinuxFEST 3   45/48
Zdroje a odkazy

http://linuxbasics.org/course/book/index
http://linuxfest.sk
http://www.debian.org
http://www.ubuntu.com
http://en.wikipedia.org/wiki/Filesystem
http://en.wikipedia.org/wiki//dev/random
http://www.ibm.com/developerworks/linux/library/l-linux-filesystem/
http://www.cyberciti.biz/tips/understanding-unixlinux-filesystem-superblock.html
http://geekblog.oneandoneis2.org/index.php/2006/08/17/why_doesn_t_linux_need_d
http://tldp.org/HOWTO/SquashFS-HOWTO/
http://en.wikipedia.org/wiki/Procfs
http://en.wikipedia.org/wiki/Sysfs
http://www.abclinuxu.cz/clanky/system/sysfs-brana-do-jadra
http://www.abclinuxu.cz/clanky/jaderne-noviny/jaderne-noviny-23.-1.-2008
http://www.abclinuxu.cz/clanky/system/suborove-systemy-i
http://www.linux.com/articles/22150
http://www.ibm.com/developerworks/linux/library/l-linux-filesystem/


29.3.2008                           LinuxFEST 3                         46/48
Poďakovanie




            Ďakujem Vám za pozornosť




29.3.2008             LinuxFEST 3      47/48
Kontakt




            Na prípadné otázky rád odpoviem

            email: michal6103 at gmail dot com




29.3.2008                  LinuxFEST 3           48/48
LinuxFest podporujú




29.3.2008   LinuxFEST 3   49/48

Mais conteúdo relacionado

Mais de Michal Sedlak

Mais de Michal Sedlak (8)

Nodemcu - introduction
Nodemcu - introductionNodemcu - introduction
Nodemcu - introduction
 
Raspberry Pi Introduction
Raspberry Pi IntroductionRaspberry Pi Introduction
Raspberry Pi Introduction
 
Multipath
MultipathMultipath
Multipath
 
Linux: Desktop na kazdy den
Linux: Desktop na kazdy denLinux: Desktop na kazdy den
Linux: Desktop na kazdy den
 
Linux: Presmerovanie I/O
Linux:  Presmerovanie I/OLinux:  Presmerovanie I/O
Linux: Presmerovanie I/O
 
Linux: Procesy
Linux: ProcesyLinux: Procesy
Linux: Procesy
 
Linux: LVM
Linux: LVMLinux: LVM
Linux: LVM
 
Twisted
TwistedTwisted
Twisted
 

Linux: Filesystems

  • 1. LinuxFEST 3/2008 GNU/Linux Súborové systémy Prednášajúci: Michal Sedlák Email: michal6103 at gmail dot com
  • 2. Úvod Vizuálna téma prezentácie je odvodená od od témy vytvorenej: Sakari Koivunen and Henrik Omma Released under the LGPL license. 29.3.2008 LinuxFEST 3 2/48
  • 3. Obsah ● Súbory – typy súborov, atribúty, práva, príkazy ● Čo je to súborový systém ● Súborové systémy – ext2, ext3, ext4, ReiserFS, UnionFS.... – prečo ďalšie FS – rozdiely 29.3.2008 LinuxFEST 3 3/48
  • 4. Úvod “Na UNIX-ovom systéme je všetko súbor, a ak niečo nie je súbor, tak je to proces“ V Plan9, Inferno OS je úplne všetko súbor 29.3.2008 LinuxFEST 3 4/48
  • 5. Typy súborov michal@backup:~/linuxfest$ ls -l total 172 drwxr-xr-x 2 michal michal 4096 2008-03-28 13:19 adresar -rw-r--r-- 2 michal michal 32226 2008-03-19 19:59 hl-osnova.odt -rw-r--r-- 1 michal michal 100462 2008-03-19 19:59 Linuxfest.tar.gz -rw-r--r-- 2 michal michal 32226 2008-03-19 19:59 osnova.odt lrwxrwxrwx 1 michal michal 10 2008-03-28 13:19 sl-osnova.odt -> osnova.odt ● d Directory ● r read list directory ● l Link ● w write ● c Character special file ● x execute recurse directory ● s Socket ● p named Pipe (FIFO) ● b Block device 29.3.2008 LinuxFEST 3 5/48
  • 6. s,S,t,T ● t,T - sticky bit – súbor - Linux ignoruje sticky bit na súboroch – adresár - súbory môže mazať a premenovávať len vlastník súborov ● s,S - Set User ID, Set Group ID – SUID,SGID súbor – súbor sa spustí s právami vlastníka, alebo skupiny súboru – SGID adresár – súbory vytvorené vo vnútri adresára budu mat nastavenú skupinu ako tento adresár (zdieľanie súborov) 29.3.2008 LinuxFEST 3 6/48
  • 7. d - Adresár, priečinok, zložka /bin programy zdielané užívateľmi a rootom /boot Inicializačné súbory, kernel, popripade grub a jeho nastavenia (vmlinuz, initrd.gz). /dev referencie na hardvér, reprezentovaný súbormy /etc konfiguračné súbory - Editable Text Configuration Dennis Ritchie tvrdí, že to je skratka "et cetera" /home užívateľské adresáre /initrd bootovacie skripty (iba v niektorych distrách) /lib knižnice potrebné na beh programov /lost+found súbory obnovené diagnostickými nástrojmy /misc rôzny účel /media pripojené periférie, cd-rom, usb kľúč, mp3 player 29.3.2008 LinuxFEST 3 7/48
  • 8. d - Adresár, priečinok, zložka /opt treťostranný softvér /proc virtuálny filesystem s informáciami o systémových zdrojoch /root domáci adresár užívateľa root /sbin systémové programy /tmp dočasné súbory, maže sa pri reboote /usr užívateľské programy, knižnice, dokumentácia /var premenlivé súbory, logy, databázy, print spooler, mail queue 29.3.2008 LinuxFEST 3 8/48
  • 9. c - Špeciálne znakové súbory ● väčina je v /dev /dev/null prijme a zruší akekoľvek dáta /dev/full vždy plné zariadenie /dev/loop loopback disk device /dev/zero generuje prúd núl (NUL) /dev/random generuje pseudonáhodné čísla (blok) /dev/urandom generuje pseudonáhodné čísla 29.3.2008 LinuxFEST 3 9/48
  • 10. l – symbolická linka ● Soft link – obsahuje meno a cestu iného súboru – ln -s meno1 meno2 ● Hard link – hard link je pointer na inode vo filesystéme – nie je možné spraviť hardlink na iný filesystem – ln meno1 meno2 29.3.2008 LinuxFEST 3 10/48
  • 11. hard vs. soft michal@backup:~/linuxfest$ ls -l total 172 drwxr-xr-x 2 michal michal 4096 2008-03-28 13:19 adresar -rw-r--r-- 2 michal michal 32226 2008-03-19 19:59 hardlink-osnova.odt -rw-r--r-- 1 michal michal 100462 2008-03-19 19:59 Linuxfest.tar.gz -rw-r--r-- 2 michal michal 32226 2008-03-19 19:59 osnova.odt lrwxrwxrwx 1 michal michal 10 2008-03-28 13:19 softlink-osnova.odt -> osnova.odt michal@backup:~/linuxfest$ ls -lL total 204 drwxr-xr-x 2 michal michal 4096 2008-03-28 13:19 adresar -rw-r--r-- 2 michal michal 32226 2008-03-19 19:59 hardlink-osnova.odt -rw-r--r-- 1 michal michal 100462 2008-03-19 19:59 Linuxfest.tar.gz -rw-r--r-- 2 michal michal 32226 2008-03-19 19:59 osnova.odt -rw-r--r-- 2 michal michal 32226 2008-03-19 19:59 softlink-osnova.odt 29.3.2008 LinuxFEST 3 11/48
  • 12. hard vs. soft michal@backup:~/linuxfest$ ls -l total 172 drwxr-xr-x 2 michal michal 4096 2008-03-28 13:19 adresar -rw-r--r-- 2 michal michal 32226 2008-03-19 19:59 hl2-osnova.odt -rw-r--r-- 2 michal michal 32226 2008-03-19 19:59 hl-osnova.odt -rw-r--r-- 1 michal michal 100462 2008-03-19 19:59 Linuxfest.tar.gz lrwxrwxrwx 1 michal michal 10 2008-03-28 13:19 sl-osnova.odt -> osnova.odt michal@backup:~/linuxfest$ ls -lL total 172 drwxr-xr-x 2 michal michal 4096 2008-03-28 13:19 adresar -rw-r--r-- 2 michal michal 32226 2008-03-19 19:59 hl2-osnova.odt -rw-r--r-- 2 michal michal 32226 2008-03-19 19:59 hl-osnova.odt -rw-r--r-- 1 michal michal 100462 2008-03-19 19:59 Linuxfest.tar.gz ?--------- ? ? ? ? ? sl-osnova.odt 29.3.2008 LinuxFEST 3 12/48
  • 13. s – domain socket p - pipe ● slúžia na medzi-procesovú komunikáciu(IPC) ponad prístupové práva súborového systému #Socket python> import socket python> my_scoket = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) python> my_socket.bind('/tmp/socket_name') #pipe python> import os python> receive,transmit = os.pipe() 29.3.2008 LinuxFEST 3 13/48
  • 14. Súborový systém ● popisuje akým spôsobom sú uložené dáta, HDD, FDD, CD-ROM, sieť (SMB, NFS), procfs... ● niekoľko vrstiev abstrakcie umožňujúcich prístup k údajom ● virtuálny filesystem môže reprezentovať akékoľvek dáta (WikipediaFS, procfs) 29.3.2008 LinuxFEST 3 14/48
  • 15. Metadáta ● okrem mena súboru a jeho obsahu sa ukladajú aj iné dáta – čas vytvorenia – čas posledného prístupu – vlastník (user, group) – prístupové práva – veľkosť – rozšírené atribúty (autor dokumentu, kódovanie) 29.3.2008 LinuxFEST 3 15/48
  • 16. Schéma 29.3.2008 LinuxFEST 3 16/48
  • 17. i-node ● základná jednotka UNIX FS ● ukazuje na ďalšie i-nody, alebo bloky dát 29.3.2008 LinuxFEST 3 17/48
  • 18. superblok ● štruktúra obsahujúca základné informácie o disku – geometria – voľné miesto – umiestnenie prvého i-nodu ● nevyhnutný pri boote ● kópie superbloku v každej skupine blokov 29.3.2008 LinuxFEST 3 18/48
  • 19. superblok backup:/home/michal/linuxfest# dumpe2fs /dev/hda1 | grep -i superblock dumpe2fs 1.40-WIP (14-Nov-2006) Primary superblock at 1, Group descriptors at 2-2 Backup superblock at 8193, Group descriptors at 8194-8194 Backup superblock at 24577, Group descriptors at 24578-24578 Backup superblock at 40961, Group descriptors at 40962-40962 Backup superblock at 57345, Group descriptors at 57346-57346 Backup superblock at 73729, Group descriptors at 73730-73730 Backup superblock at 204801, Group descriptors at 204802-204802 Backup superblock at 221185, Group descriptors at 221186-221186 29.3.2008 LinuxFEST 3 19/48
  • 20. Žurnál ● synchronizácia - race condition – zmazanie súboru ● uvoľnenie miesta na disku ● odstránenie súboru zo záznamov v priečinku ● do žurnálu sa zapisujú budúce operácie – iba atomické zmeny = veľa údajov – Reiser4 zhlukuje atomické zmeny do spojitého bloku a tým optimalizuje žurnál – v prípade pádu je obnova rýchlejšia ako fsck 29.3.2008 LinuxFEST 3 20/48
  • 21. Žurnál nie ● niektoré FS sú stále konzistentné, resp. jedinou nekonzistenciou môže byť stratené miesto (Unix File System) – soft updates – obmedzí sa množina asynchrónnych operácií – zber smetí je väčšinou na pozadí (garbage collection) 29.3.2008 LinuxFEST 3 21/48
  • 22. Súborové systémy 29.3.2008 LinuxFEST 3 22/48
  • 23. ext2 ● 1993 - second extended file system ● natoľko rýchly, že sa používa na benchmarky ● /boot, /tmp ● 5% pre roota tune2fs -m 1 /dev/sdXY ● clean, not clean parameter ● zapnutie žurnálu tune2fs -j /dev/hdXX 29.3.2008 LinuxFEST 3 23/48
  • 24. ext3 ● 2001 - Third extended file system ● ext2 rozšírený o žurnál ● 3 režimy – Writeback – žurnáluje iba metadáta, urýchly kontrolu konzistentnosti – Ordered – čakanie na zápis dát a potom zmena metadát (metadáta zodpovedajú dátam) – Journal – plný žurnál, všetko robíme 2x ● nemá undelete – nuluje pointery na bloky v i-node zmazaných LinuxFEST 3 29.3.2008 súborov 24/48
  • 25. ext3 ● bez žurnálu rýchlejší ako ext2 ● štandardný FS v mnohých distrách ● žiaden nástroj na defragmentáciu ● žiadne kryptovanie ● žiadna kompresia ● žiadne chekcksumy v žurnále ● podpora ACL a extended attributes 29.3.2008 LinuxFEST 3 25/48
  • 26. ext4 ● nestabilný, 2.6.19 ● veľké disky 1024 pebibytes ● spätne aj dopredne kompatibilný s ext3 ● možnosť predbežnej alokácie súvislých blokov ● viac ako 32000 adresárov ● journal checksum ● online defragmentácia ● rozlíšenie timestempu 1ns 29.3.2008 LinuxFEST 3 26/48
  • 27. ext2,3,4 Max file size 2 TiB Max filename size 255 characters Max volume size 16 TiB Allowed characters in filenames Any byte except NUL and '/' Max file size 16GiB – 2TiB Max filename size 255 bytes Max volume size 2TiB – 32TiB Allowed characters in filenames All bytes except NUL and '/' Max file size 16 TiB Max filename size Max volume size 1024 PiB = 1 EiB Allowed characters in filenames All bytes except NUL and '/' 29.3.2008 LinuxFEST 3 27/48
  • 28. Ako je to s fragmentáciou Ext2, Ext3, Ext4 ● Ext2-4 sa fragmentuje ● hlavne keď je na disku málo miesta ● priemerná fragmentácia je minimálna – prejavuje sa na vyťažených serveroch – médiacentrách s obrovskými dátovými tokmi ● Ako to funguje? 29.3.2008 LinuxFEST 3 28/48
  • 29. ReiserFS ● 2001 - prvý s podporou žurnálu v kernely ● vysoký výkon – efektívne ukladanie malých súborov ● ukladanie koncov do jedného bloku ● viac súborov v jednom bloku – veľké množstvo súborov v adresáry ● vhodný na http cache, mail cache, db Max file size 8 TiB Max number of files 232 (~4 billion) Max volume size 16 TiB Allowed characters in filenames All bytes except NUL and '/' 29.3.2008 LinuxFEST 3 29/48
  • 30. JFFS2 - Journalling Flash File System verzia 2 ● navrhnutý pre flash pamäte – využívanie celého adresného priestoru – neprepisovanie tých istých miest ● routery, CF karty, USB kľúče ● podporuje hard linky ● kompresia – zlib, rubin, rtime ● podpora NAND flash (sekvenčné čítanie) ● garbage collector na pozadí 29.3.2008 LinuxFEST 3 30/48
  • 31. JFFS2 - Journalling Flash File System verzia 2 ● nedá sa povedať koľko miesta je free ● pri pripojení je nutné skontrolovať všetky inode-i (relatívne pomalé pripojenie) ● nástupca je LogFS určený pre veľké flashové pamäte 29.3.2008 LinuxFEST 3 31/48
  • 32. SQUASHFS ● pre flash disky ● read only (firmvéry, kiosky, LiveCD...) ● rýchla kompresia – LZMA, GZIP ● RW v kombinácií s UnionFS – Slax, BackTrack – OpenWRT ● mksquashfs, unsquashfs 29.3.2008 LinuxFEST 3 32/48
  • 33. UnionFS ● umožňuje vytvoriť RW filesystem ponad RO základ, stack-ovací FS ● CD + HDD = jeden filesystém ● zapisovateľná vetva ma väčšiu prioritu ● mazanie z RO média cez .wh. súbory, alebo vlastný oddiel na RW partícií >mount -t unionfs -o dirs=/media/cdrom,/tmp none /home/cdrw 29.3.2008 LinuxFEST 3 33/48
  • 34. XFS ● najstarší žurnálovací FS ● pre high-end servery ● podpora pre multiprocesorové počítače ● žurnál – navrnutý tak aby mal minimálny dopad na výkon 29.3.2008 LinuxFEST 3 34/48
  • 35. Btrfs v0.1 ● iba vo vývoji, inšpirovaný ZFS ● efektívna práca s malými aj velkými súbormi (rozsahy – žiadne zoznamy inodov) ● snapshotting (aj snímky sú živé a môžu byť upravené), veľmi rýchle ● copy-on-write ● kontrolné súčty všetkého ● nie je potrebný žurnál ● rýchla kontrola (online kontrola v pláne) 29.3.2008 LinuxFEST 3 35/48
  • 36. Btrfs v0.1 ● online zmeny veľkosti ● sub-oddiely – viac oddielov v jedno filesystéme (konverzia Ext3 -> Btrfs) ● neskôr: – storage polls – viac zariadení – mirroring a stripping – inkrementálne zálohy Max file size 16 EiB Max number of files 264 Max filename size 255 bytes Max volume size 16 EiB Allowed characters in filenames All bytes except NUL and '/' 29.3.2008 LinuxFEST 3 36/48
  • 37. tmpfs ● Pseudo filesystém, ktorý uchováva všetky súbory v RAM $mount none /mnt/xyz -t tmpfs -o size=100m 29.3.2008 LinuxFEST 3 37/48
  • 38. /sys ● pseudo filesystém umožňujúci prístup ku vnútorným premenným kernelu ● napríklad zoznam modulov – ls /sys/module ● umožnil vznik udev 29.3.2008 LinuxFEST 3 38/48
  • 39. /dev ● pseudo filesystém s dynamickým zoznamom zariadení ● každé zariadenie má súbor v /dev ● minor, major číslo (2.7 dynamické) ● udev – mimo kernel, v userspace – dynamické vytváranie položiek 29.3.2008 LinuxFEST 3 39/48
  • 40. /proc ● pseudo filesystem zobrazuje informácie o procesoch ● /proc/pid – /proc/PID/cmdline príkaz ktorý proces spustil – /proc/PID/cwd symlink na pracovny adresár – /proc/PID/exe symlink na spustiteľný súbor – /proc/PID/root cesta ku koreňovému adresáru 29.3.2008 LinuxFEST 3 40/48
  • 41. /proc – /proc/PID/status obsahuje aktuálny stav procesu, stav použitej pamäte... – /proc/PID/task adresár obsahujúci hardlinky na akékoľvek úlohy ktoré tento proces spustil – /proc/PID/maps mapa pamäte ukazujúca ktoré adresy sú viditeľné ● /proc/cpuinfo ● /proc/meminfo ● ........ 29.3.2008 LinuxFEST 3 41/48
  • 42. loop ● súbor ako blokové zariadenie ● napríklad pripojenie image 29.3.2008 LinuxFEST 3 42/48
  • 43. loop ● Vytvoríme 10 MB súbor $ dd if=/dev/zero of=file.img bs=1k count=10000 ● ● Spravíme asociáciu file.img a /dev/loop0 $ losetup /dev/loop0 file.img ● ● Vytvoríme filesystem $ mke2fs -c /dev/loop0 10000 ● mke2fs 1.35 (28-Feb-2004) max_blocks 1024000, rsv_groups = 1250, rsv_gdb = 39 Filesystem label= ● OS type: Linux Block size=1024 (log=0) Fragment size=1024 (log=0) 2512 inodes, 10000 blocks 500 blocks (5.00%) reserved for the super user ... 29.3.2008 LinuxFEST 3 43/48
  • 44. loop ● Pripojíme FS $● mkdir /mnt/point1 $ mount -t ext2 /dev/loop0 /mnt/point1 $ ls /mnt/point1 ● lost+found 29.3.2008 LinuxFEST 3 44/48
  • 45. ďalšie ● sieťové – sshfs – nfs_fs – smb_fs – 9p_fs ● iné virtuálne – gnome-vfs – gvfs – kio-vfs 29.3.2008 LinuxFEST 3 45/48
  • 46. Zdroje a odkazy http://linuxbasics.org/course/book/index http://linuxfest.sk http://www.debian.org http://www.ubuntu.com http://en.wikipedia.org/wiki/Filesystem http://en.wikipedia.org/wiki//dev/random http://www.ibm.com/developerworks/linux/library/l-linux-filesystem/ http://www.cyberciti.biz/tips/understanding-unixlinux-filesystem-superblock.html http://geekblog.oneandoneis2.org/index.php/2006/08/17/why_doesn_t_linux_need_d http://tldp.org/HOWTO/SquashFS-HOWTO/ http://en.wikipedia.org/wiki/Procfs http://en.wikipedia.org/wiki/Sysfs http://www.abclinuxu.cz/clanky/system/sysfs-brana-do-jadra http://www.abclinuxu.cz/clanky/jaderne-noviny/jaderne-noviny-23.-1.-2008 http://www.abclinuxu.cz/clanky/system/suborove-systemy-i http://www.linux.com/articles/22150 http://www.ibm.com/developerworks/linux/library/l-linux-filesystem/ 29.3.2008 LinuxFEST 3 46/48
  • 47. Poďakovanie Ďakujem Vám za pozornosť 29.3.2008 LinuxFEST 3 47/48
  • 48. Kontakt Na prípadné otázky rád odpoviem email: michal6103 at gmail dot com 29.3.2008 LinuxFEST 3 48/48
  • 49. LinuxFest podporujú 29.3.2008 LinuxFEST 3 49/48