slides 21 unix 5 fajlrendszerek
TRANSCRIPT
-
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)