Linux: Filesystems

1,004 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,004
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Linux: Filesystems

  1. 1. LinuxFEST 3/2008 GNU/Linux Súborové systémyPrednášajúci: Michal SedlákEmail: michal6103 at gmail dot com
  2. 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. 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 – rozdiely29.3.2008 LinuxFEST 3 3/48
  4. 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úbor29.3.2008 LinuxFEST 3 4/48
  5. 5. Typy súborovmichal@backup:~/linuxfest$ ls -ltotal 172drwxr-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.odtlrwxrwxrwx 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 device29.3.2008 LinuxFEST 3 5/48
  6. 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. 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 player29.3.2008 LinuxFEST 3 7/48
  8. 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 queue29.3.2008 LinuxFEST 3 8/48
  9. 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é čísla29.3.2008 LinuxFEST 3 9/48
  10. 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 meno229.3.2008 LinuxFEST 3 10/48
  11. 11. hard vs. softmichal@backup:~/linuxfest$ ls -ltotal 172drwxr-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.odtlrwxrwxrwx 1 michal michal 10 2008-03-28 13:19 softlink-osnova.odt-> osnova.odtmichal@backup:~/linuxfest$ ls -lLtotal 204drwxr-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.odt29.3.2008 LinuxFEST 3 11/48
  12. 12. hard vs. softmichal@backup:~/linuxfest$ ls -ltotal 172drwxr-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.gzlrwxrwxrwx 1 michal michal 10 2008-03-28 13:19 sl-osnova.odt ->osnova.odtmichal@backup:~/linuxfest$ ls -lLtotal 172drwxr-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.odt29.3.2008 LinuxFEST 3 12/48
  13. 13. s – domain socket p - pipe ● slúžia na medzi-procesovú komunikáciu(IPC) ponad prístupové práva súborového systému#Socketpython> import socketpython> my_scoket = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)python> my_socket.bind(/tmp/socket_name)#pipepython> import ospython> receive,transmit = os.pipe()29.3.2008 LinuxFEST 3 13/48
  14. 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. 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. 16. Schéma29.3.2008 LinuxFEST 3 16/48
  17. 17. i-node ● základná jednotka UNIX FS ● ukazuje na ďalšie i-nody, alebo bloky dát29.3.2008 LinuxFEST 3 17/48
  18. 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 blokov29.3.2008 LinuxFEST 3 18/48
  19. 19. superblokbackup:/home/michal/linuxfest# dumpe2fs /dev/hda1 | grep -isuperblockdumpe2fs 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-22118629.3.2008 LinuxFEST 3 19/48
  20. 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 fsck29.3.2008 LinuxFEST 3 20/48
  21. 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. 22. Súborové systémy29.3.2008 LinuxFEST 3 22/48
  23. 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/hdXX29.3.2008 LinuxFEST 3 23/48
  24. 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 329.3.2008 súborov 24/48
  25. 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 attributes29.3.2008 LinuxFEST 3 25/48
  26. 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 1ns29.3.2008 LinuxFEST 3 26/48
  27. 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. 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. 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, dbMax file size 8 TiBMax number of files 232 (~4 billion)Max volume size 16 TiBAllowed characters in filenames All bytes except NUL and /29.3.2008 LinuxFEST 3 29/48
  30. 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. 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äte29.3.2008 LinuxFEST 3 31/48
  32. 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, unsquashfs29.3.2008 LinuxFEST 3 32/48
  33. 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/cdrw29.3.2008 LinuxFEST 3 33/48
  34. 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ýkon29.3.2008 LinuxFEST 3 34/48
  35. 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. 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álohyMax file size 16 EiBMax number of files 264Max filename size 255 bytesMax volume size 16 EiBAllowed characters in filenames All bytes except NUL and /29.3.2008 LinuxFEST 3 36/48
  37. 37. tmpfs ● Pseudo filesystém, ktorý uchováva všetky súbory v RAM$mount none /mnt/xyz -t tmpfs -o size=100m29.3.2008 LinuxFEST 3 37/48
  38. 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 udev29.3.2008 LinuxFEST 3 38/48
  39. 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žiek29.3.2008 LinuxFEST 3 39/48
  40. 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áru29.3.2008 LinuxFEST 3 40/48
  41. 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. 42. loop ● súbor ako blokové zariadenie ● napríklad pripojenie image29.3.2008 LinuxFEST 3 42/48
  43. 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 = 39Filesystem label= ●OS type: LinuxBlock size=1024 (log=0)Fragment size=1024 (log=0)2512 inodes, 10000 blocks500 blocks (5.00%) reserved for the super user...29.3.2008 LinuxFEST 3 43/48
  44. 44. loop ● Pripojíme FS $● mkdir /mnt/point1 $ mount -t ext2 /dev/loop0 /mnt/point1 $ ls /mnt/point1 ● lost+found29.3.2008 LinuxFEST 3 44/48
  45. 45. ďalšie ● sieťové – sshfs – nfs_fs – smb_fs – 9p_fs ● iné virtuálne – gnome-vfs – gvfs – kio-vfs29.3.2008 LinuxFEST 3 45/48
  46. 46. Zdroje a odkazyhttp://linuxbasics.org/course/book/indexhttp://linuxfest.skhttp://www.debian.orghttp://www.ubuntu.comhttp://en.wikipedia.org/wiki/Filesystemhttp://en.wikipedia.org/wiki//dev/randomhttp://www.ibm.com/developerworks/linux/library/l-linux-filesystem/http://www.cyberciti.biz/tips/understanding-unixlinux-filesystem-superblock.htmlhttp://geekblog.oneandoneis2.org/index.php/2006/08/17/why_doesn_t_linux_need_dhttp://tldp.org/HOWTO/SquashFS-HOWTO/http://en.wikipedia.org/wiki/Procfshttp://en.wikipedia.org/wiki/Sysfshttp://www.abclinuxu.cz/clanky/system/sysfs-brana-do-jadrahttp://www.abclinuxu.cz/clanky/jaderne-noviny/jaderne-noviny-23.-1.-2008http://www.abclinuxu.cz/clanky/system/suborove-systemy-ihttp://www.linux.com/articles/22150http://www.ibm.com/developerworks/linux/library/l-linux-filesystem/29.3.2008 LinuxFEST 3 46/48
  47. 47. Poďakovanie Ďakujem Vám za pozornosť29.3.2008 LinuxFEST 3 47/48
  48. 48. Kontakt Na prípadné otázky rád odpoviem email: michal6103 at gmail dot com29.3.2008 LinuxFEST 3 48/48
  49. 49. LinuxFest podporujú29.3.2008 LinuxFEST 3 49/48

×