Slides 21 Unix 5 Fajlrendszerek

Embed Size (px)

Citation preview

  • 8/3/2019 Slides 21 Unix 5 Fajlrendszerek

    1/20

    BME MIT Opercis rendszerek 2011. tavasz

    UNIX fjlkezels 1 / 20

    UNIX fjlrendszerek alapismeretei

    kiegszt flik az eladsokhoz

    Mszros Tamshttp://home.mit.bme.hu/~meszaros/

    Budapesti Mszaki s Gazdasgtudomnyi Egyetem

    Mrstechnika s Informcis Rendszerek Tanszk

    http://home.mit.bme.hu/~meszaros/http://home.mit.bme.hu/~meszaros/
  • 8/3/2019 Slides 21 Unix 5 Fajlrendszerek

    2/20

    BME MIT Opercis rendszerek 2011. tavasz

    UNIX fjlkezels 2 / 20

    Az elz rszekben trtnt...

    A folyamatok

    a felhasznli programok futs alatt ll pldnyai a programokat permanens trbl tltjk be

    A permanens trak nem felejt, nagysgrendekkel nagyobb s lassabb a memrinl

    blokkos fizikai trols s fjl-alap logikai szervezs tbbfle megolds egyedi jellemzkkel (HDD, flash, usb, RAID, SAN, ...)

    A kernel kezeli a hardver erforrsokat (kztk a permanens trakat)

    a hardverkezel rteg felett tbbszint fjlrendszer rteg tallhat httrtr kezels, fjlrendszer szervezs, logikai felpts (fjl, knyvtr)

    adminisztrlja a fjlok blokkjait s az res helyeket a permanens trban elvgzi a fizikai s logikai szervezs kztti lekpezst programozi interfszt nyjt az alkalmazsfejlesztk szmra

  • 8/3/2019 Slides 21 Unix 5 Fajlrendszerek

    3/20

    BME MIT Opercis rendszerek 2011. tavasz

    UNIX fjlkezels 3 / 20

    Alapfogalmak

    Fjl (ms nven llomny, de biztosan nem file magyarul) adattrolsi hely

    Fjlrendszer (llomnyrendszer) fjlok trolsnak szervezse, hozzfrs biztostsa

    Fjlrendszerek felhasznli fellete programozi (API, rendszerhvsok)

    parancssori (illetve grafikus)

    Fjlrendszerek szervezsi fellete diszk szervezs

  • 8/3/2019 Slides 21 Unix 5 Fajlrendszerek

    4/20

    BME MIT Opercis rendszerek 2011. tavasz

    UNIX fjlkezels 4 / 20

    UNIX fjlrendszerek trtneti ttekintse

    System V els fjlrendszer s5fs 80-as vek, alap implementci, egyszer szervezs

    4.2 BSD Fast File Sytems FFS (a Linux ext2 alapja is) megnvelt teljestmny

    j szolgltatsok

    akkori diszk hardver felptshez optimalizlt rendszer Virtulis fjlrendszerek vnode/vfs modulris, objektum-orientlt

    cserlhet szervezsi modulok, akr hlzati is

    Elosztott fjlrendszerek

    NFS: transzparens hlzati fjlrendszer RPC megvalstssal Modern fjlrendszerek

    ext3, ext4, xfs, ReiserFS, Solaris ZFS felhasznli fjlrendszerek gnome-vfs, fuse: ftp, smb, dav, stb. clra Klaszter fjlrendszerek, pl. Red Hat GFS

  • 8/3/2019 Slides 21 Unix 5 Fajlrendszerek

    5/20

    BME MIT Opercis rendszerek 2011. tavasz

    UNIX fjlkezels 5 / 20

    A fjlrendszer felhasznli szemmel

    Opercis rendszer felhasznl parancssori s grafikus fellet knyvtrszervezs, specilis knyvtrak fjlok s knyvtrak kezelse, attribtumaik fjlrendszerek menedzselse (rendszergazda)

    Programoz (alkalmazs fejleszt) programozi interfszek (rendszerhvsok, rendszerknyvtrak) fjllerk, nyitott fjl objektumok s kezelsk zrolsi mdszerek: ktelez, ajnlott

  • 8/3/2019 Slides 21 Unix 5 Fajlrendszerek

    6/20

    BME MIT Opercis rendszerek 2011. tavasz

    UNIX fjlkezels 6 / 20

    Felhasznli interfsz

    Diszkek, partcik, fjlrendszerek

    Tipikus UNIX knyvtrszerkezet

    Fjlrendszerek csatlakoztatsa a knyvtrszerkezethez

    Fjl attribtumok tpus (- d p l b c s)

    linkek (hard, szoft) eszkz, inode, mret, stb. idblyegek (ctime, mtime, atime)

    azonostsi s hozzfrs-szablyozsi adatok listzsi parancs: ls -la

    -rw-r--r-- 2 root root 189 sze 8 2006 /etc/hosts

    -rwxr-xr-x 1 root root 616920 nov 17 01:29 /bin/bash

    srwxr-xr-x 1 clamilt clamilt 0 pr 23 10:16 clamav.sock

    crw-rw---- 1 root tty 4, 0 pr 20 2007 /dev/tty0

    -r-s--x--- 1 root apache 10760 jan 14 14:22 suexec

  • 8/3/2019 Slides 21 Unix 5 Fajlrendszerek

    7/20

    BME MIT Opercis rendszerek 2011. tavasz

    UNIX fjlkezels 7 / 20

    Demk (otthon is kiprblhat!)

    Csatolt fjlrendszerek: mount, umount, df

    Mi az a /dev/shm?

    A UNIX knyvtrstruktra felptse: cd, pwd, lsMilyen fjlok s knyvtrak neve kezddik ponttal?

    Fjlok attribtumai: ls -la, ls -laZMirt van a hozzfrsi jogok vgn egy pont (v. plusz jel) Fedora alatt?

    Fjlmveletek: cp, mvHogyan lehet tnevezni egy fjlt?

    A noatime opci hatsa a teljestmnyre (hzi feladat)A /etc/fstab fjlban mdostsuk az attribtumokat (lsd man mount)!Nzzk meg a relatime opcit is!

  • 8/3/2019 Slides 21 Unix 5 Fajlrendszerek

    8/20

    BME MIT Opercis rendszerek 2011. tavasz

    UNIX fjlkezels 8 / 20

    Programozi interfsz

    Fjlok megnyitsa (ltrehozsa) open() rendszerhvs s paramterei

    a fjller s a nyitott fjl objektum

    tbb folyamat ltal megnyitott fjl s a fork()

    rs s olvass: read(), write()

    Fjlok zrolsa ktelez (mandatory): fcntl(), lockf()

    ajnlott (advisory): flock()

    Fjlok lezrsa: close()

  • 8/3/2019 Slides 21 Unix 5 Fajlrendszerek

    9/20

    BME MIT Opercis rendszerek 2011. tavasz

    UNIX fjlkezels 9 / 20

    Fjlrendszerek szervezse

    Csatlakoztats csatlakoztatsi pont elfeds

    Szervezs a httrtron blokkos trols

    fjlok leri (diszk inode) szabad helyek kezelse

    Szervezs a memriban csatlakoztats nyilvntartsa

    fjlok leri (memria inode) kapcsolat a nyitott fjl objektumokhoz

  • 8/3/2019 Slides 21 Unix 5 Fajlrendszerek

    10/20

    BME MIT Opercis rendszerek 2011. tavasz

    UNIX fjlkezels 10 / 20

    A trols megvalstsa

    A diszken elhelyezett fjlrendszer rszei szuperblokk (fjlrendszer metaadatok) inode lista (fjl metaadatok)

    trolt adatok

    Szuperblokk a fjlrendszer mrete

    szabad blokkok jegyzke

    zrolsi informcik

    mdosts jelzbit

  • 8/3/2019 Slides 21 Unix 5 Fajlrendszerek

    11/20

    BME MIT Opercis rendszerek 2011. tavasz

    UNIX fjlkezels 11 / 20

    Az index node (inode)

    hitelestsi informcik (UID, GID)

    tpus

    hozzfrsi jogosultsgok

    idblyegek

    mret

    adatblokkok elhelyezkedse (cmtbla) 10-15 db direkt blokkcm

    1x, 2x s 3x indirekt blokkcmek

    (szmtsi plda)

  • 8/3/2019 Slides 21 Unix 5 Fajlrendszerek

    12/20

    BME MIT Opercis rendszerek 2011. tavasz

    UNIX fjlkezels 12 / 20

    Cmzs s tipikus fjlmretek

    Andrew S. Tanenbaum, Jorrit N. Herder, Herbert Bos: File size distribution on UNIXsystems: then and now. Operating Systems Review 40(1): 100-104 (2006)

  • 8/3/2019 Slides 21 Unix 5 Fajlrendszerek

    13/20

    BME MIT Opercis rendszerek 2011. tavasz

    UNIX fjlkezels 13 / 20

    Az inode a memriban

    a nyitott fjl objektumhoz kapcsoldik

    diszk inode tartalma bekerl a memriba

    az aktv hasznlat informciival bvl sttusz (zrolt, mdostott, stb.)

    httrtr eszkz (fjlrendszer) azonostja

    hivatkozs szmll (fjllerk)

    csatlakoztatsi pont adminisztrcija

    O

  • 8/3/2019 Slides 21 Unix 5 Fajlrendszerek

    14/20

    BME MIT Opercis rendszerek 2011. tavasz

    UNIX fjlkezels 14 / 20

    Allokci a diszken

    Szempontok: teljestmny, megbzhatsg

    Cilinder (blokk) csoport (FFS, ext2, )

    Allokcis elvek szuperblokk msolsa minden csoportba

    inode lista s szabad blokkok csoportonknt kezelve

    egy knyvtr egy csoport

    kis fjlok egy csoportba

    nagy fjlok sztkenve tbb csoportba

    j knyvtrnak egy j, kevss foglalt csoportot keres

    BME MIT O i d k 2011 t

  • 8/3/2019 Slides 21 Unix 5 Fajlrendszerek

    15/20

    BME MIT Opercis rendszerek 2011. tavasz

    UNIX fjlkezels 15 / 20

    Implementci-fggetlen fjlrendszer absztrakci a modern unix fjlrendszerek alapja

    Clok: tbbfle fjlrendszer egysges egyidej tmogatsa

    egysges kezels a csatlakoztats utn (programoz IF)

    specilis fjlrendszerek (hlzati, processz, stb.) modulrisan bvthet rendszer

    Absztrakci inode vnode

    fs vfs

    A virtulis fjlrendszer

    BME MIT O i d k 2011 t

  • 8/3/2019 Slides 21 Unix 5 Fajlrendszerek

    16/20

    BME MIT Opercis rendszerek 2011. tavasz

    UNIX fjlkezels 16 / 20

    A vnode absztrakci

    adatmezk kzs adatok (tpus, csatlakoztats, hivatkozs szml.) v_data: llomnyrendszertl fgg adatok (inode)

    v_op: az llomnyrendszer metdusainak tblja

    virtulis fggvnyek llomnyrendszertl fggetlen: vop_open, vop_read,

    a tnyleges metdusokra helyettestdnek be

    segdrutinok, makrk

    BME MIT O i d k 2011 t

  • 8/3/2019 Slides 21 Unix 5 Fajlrendszerek

    17/20

    BME MIT Opercis rendszerek 2011. tavasz

    UNIX fjlkezels 17 / 20

    A vfs absztrakci

    adatmezk kzs adatok (fjlrendszer tpus, csatlakoztats, hivatkozs, vfs_next) vfs_data: llomnyrendszertl fgg adatok

    vfs_op: az llomnyrendszer metdusainak tblja

    virtulis fggvnyek llomnyrendszertl fggetlen: vfs_mount, vfs_umount, vfs_sync,

    a tnyleges metdusokra helyettestdnek be

    segdrutinok, makrk

    BME MIT Opercis rends erek 2011 ta as

  • 8/3/2019 Slides 21 Unix 5 Fajlrendszerek

    18/20

    BME MIT Opercis rendszerek 2011. tavasz

    UNIX fjlkezels 18 / 20

    A vfs s a vnode kapcsolata

    fjlrendszer1vfs_nextvfs_opvfs_nodecoveredvfs_fstype

    fjlrendszer2vfs_nextvfs_opvfs_nodecoveredvfs_fstype

    Vnode1: VROOTv_vfspv_vfsmountedhere

    Vnode2: bootv_vfspv_vfsmountedhere

    Vnode3: VROOTv_vfspv_vfsmountedhere

    root vfs

    BME MIT Opercis rendszerek 2011 tavasz

  • 8/3/2019 Slides 21 Unix 5 Fajlrendszerek

    19/20

    BME MIT Opercis rendszerek 2011. tavasz

    UNIX fjlkezels 19 / 20

    Alkalmazsi plda: NFS egyszerstett felpts

    szgp 1 szgp 2

    folyamatopen()

    VFS (vfs_open)

    NFS kliensnfs_open()

    VFS (vfs_open)

    ext2ext2_open()

    NFS szerveropen()

    RPC

    BME MIT Opercis rendszerek 2011 tavasz

  • 8/3/2019 Slides 21 Unix 5 Fajlrendszerek

    20/20

    BME MIT Opercis rendszerek 2011. tavasz

    UNIX fjlkezels 20 / 20

    sszefoglals: UNIX fjlrendszerek alapismeretei

    Alapok

    Fjl (esetleg llomny, nem file!), fjlrendszer, API, diszk szervezs Az s5fs-tl a ZFS-en t az elosztott s felhasznli fjlrendszerekig

    Felhasznli alapismeretek

    Knyvtrszervezs, specilis knyvtrak Fjlok s knyvtrak attribtumai Felhasznli eszkzk (cd, pwd, ls, cp, mv, Adminisztrtori eszkzk (mount, umount, df, )

    Fjlrendszerek megvalstsa adatstruktrk (inode), interfszek diszk szervezs, index cmtbla, allokci virtulis fjlrendszer felpts, alkalmazsi plda (NFS)