You are on page 1of 76

HC VIN CNG NGH BU CHNH VIN

THNG KHOA QUC T V O TO SAU I


HC
*********

Bi tp tiu lun mn H iu Hnh Mng Nng Cao

Kin trc h thng File EXT2, EXT3, EXT4 ca


cc h iu hnh h LINUX
Nhm thc hin:

Nguyn Trng Giang


V Hong Anh - Nguyn Ngc n
Phm Khnh Chung - T Danh Dng
Nguyn Anh Dng - Dng Vn
Dng ng Xun ip - inh Quang
nh Nguyn Thu Giang - Chu Hi
H

Ging vin hng dn: Ts Hong Xun Du

Lp: TDL&MMT (t 1) - M11CQCT01-B

ti: Kin trc h thng File EXT2, EXT3, EXT4 ca cc h iu hnh h


LINUX

H Ni, thng 12 - 2011

Nhm 7- Lp TDL&MMT t 1

MC LC
MC
LC...........................................................................................
............................ .1
LI GII
THIU........................................................................................
.......................3
C C T V I T
TT...........................................................................................
..................4
Chng 1. Tm hiu v h iu hnh
Linux......................................... ............................ .5
1.1
Linux l
g?..............................................................................................
....................... . 5
1.2
Ti sao Linux pht
trin?..........................................................................................
........ 6
1.3
Cc bn pht hnh
Linux...........................................................................................
....... 7
1.4
Li th ca
Linux...........................................................................................
.................. 7
1.5
Ai pht trin Linux
?............................................................................... ..................
....... 9

Chng 2. Phn vng a


cng.............................................................. ...................... .10
2.1 Gii thiu
chung..............................................................................................
.............. 10
2. 2 H thng File
EXT2...............................................................................................
......... 10
2. 2.1 Gii
thiu.................................................................................................................................
..............10
2.2.2 T chc
a.............................................................................................................................
................12

Nhm 7- Lp TDL&MMT t 1

2.2.2.1
Superblock.................................................................................................
.....................................14
2.2.2.2
Group
Descriptor............................................................................................................
................20
2.2.2.3
Block
Bitmap.................................................................................................................
..................21
2.2.2.4
Inode
Bitmap.................................................................................................................
.................21
2.2.2.5
Inode
Table...................................................................................................................
..................22
2.2.2.6
Data
Blocks..................................................................................................................
...................28
2.2.3 Cu trc th
mc...........................................................................................................................
........28
2.2.3.1. nh dng Directory
File...............................................................................................................28
2.2.3.2 V d v
Directory.......................................................................................................................
....29
2.2.3.4 Indexed Directory
Format..............................................................................................................31
2.2.4 Inodes, File
Identifiers..................................................................................................................
.........35
2.2.4.1
Inode
Number...............................................................................................................
.................35
2.4.2 nh v cu trc ca
Inode................................................................................................................35
2.2.4.3 nh v Inode
Table........................................................................................................................36
2.2.5 Cc Thuc Tnh Ca
File.........................................................................................................................36
2.2.5.1
Cc thuc tnh
chun..................................................................................................................
...36
2.2.5.2
Cc thuc tnh m
rng................................................................................................................37
2.2.6 Qun tr h thng file
EXT2...................................................................................................................38

2.3 H thng File


EXT3...........................................................................................
.............. 39
2.4 H thng File
EXT4...........................................................................................
.............. 42
2.4.1 Gii
thiu..........................................................................................................................
......................43
2.4.2 Kh nng nng cp m
rng.................................................................................................................43

Nhm 7- Lp TDL&MMT t 1

2.4.2.1
H Thng Tp Tin
Ln....................................................................................................................43

Nhm 7- Lp TDL&MMT t 1

2.4.2.2
c
im............................................................................................................................
............44
2.4.2.3
L u
file
theo
nhm
block
(Extents)...............................................................................................44
2.4.2.4
Chng
phn
mnh
trc
tuyn
.......................................................................................................46
2.4.2.5
Ci
tin

tin
cy..........................................................................................................................47
4.4.2.6 m s inode (index-node) cha dng v vic lm lnh e2fsck nhanh
hn...............................47
2.4.2.7
Kim
tra
tng
th
(checksum).......................................................................................................49
2.4.2.8
C c
c
im
mi..........................................................................................................................50

K t
lun...........................................................................................
.............................56
TI LIU THAM
KHO.........................................................................................
...........57

Nhm 7- Lp TDL&MMT t 1

LI GII THIU
Trong nhng nm gn y HDH Linux ang ngy cng tr nn ph bin trong
trng hc v mi trng cng nghip. H iu hnh ny, vi chc nng v tnh n
nh cho php n tn ti song song vi cc h iu hnh thng mi khc. Hn na,
s ph bin ca m ngun Linux trn Internet ng gp rt nhiu cho s ph cp
ca Linux. Mt trong nhng c im quan trng ca Linux l n h tr nhiu h
thng tp tin. iu ny lm cho n rt linh ng v c th cng tn ti vi nhiu h
iu hnh khc. T nhng phin bn u tin, Linux h tr 15 loi tp tin : ext,
ext2, xia, minix, umsdos, msdos, vfat, proc, smb, ncp, iso9660, sysv, hpfs, affs v
ufs.
Trong Linux, cng nh Unix, h thng tp tin c truy xut thng qua mt
cu trc cy tha k n thay v l cc thit b xc nh (nh tn a hoc s hiu
ca a). Linux thm nhng h thng tp tin mi vo cy ny khi n c thit lp
(mount). Tt c h thng tp tin c thit lp vo mt th mc v c gi l th
mc thit lp. Khi mt a c khi to, trn a c chia thnh nhiu partitions.
Mi partition c mt h thng tp tin.
Nhm sinh vin chng em chn ti: Kin trc h thng File EXT2,
EXT3, EXT4 ca cc h iu hnh h LINUX. Nhng do kin thc v kinh
nghim cn t, s nghin cu v ti cn nhiu thiu st, knh mong thy gip
v chnh sa nhng thiu st gip chng em chng em c th hon thin hn kin
thc ca mnh.
Chng em xin chn thnh cm n!

Nhm 7- Lp TDL&MMT t 1

CC T VIT TT

Client: my
khch.

IP: Internet Address.

RPM: Redhat Package Manager.

FQDN: Fully Qualifield Domain Name.

NFS: Network File System.

Server: my ch.

SMB= Samba chng trnh dng chia s ti nguyn gia cc Windows


PC v Linux PC.

MTA: Mail Transport Agent.

PC= Personal computer: my tnh c nhn.

Point, mount_point: im truy cp, thng l th mc, ni mount cc


h thng tp tin.

Mount: gn kt cc tp tin vo 1 point no .

Umount: g b cc tp tin c mount vo 1 point no .

Username: tn ti khon ngi dng.

Password: mt khu tng ng vi username.

SMB: Samba.

SWAT: Samba Web Administration Tool.

Chng 1. Tm hiu v h iu hnh Linux


1.1 Linux l g?
Linux xut hin nh mt sn phm ngun m min ph v n nay c th
snh vai vi cc h iu hnh thng phm nh MS Windows, Sun Solaris v.v.
Linux ra i t mt d n hi u nhng nm 1990 c mc ch to ra mt h
iu hnh kiu UNIX ci t trn my tnh c nhn chy vi b vi x l Intel,
tng hp h my tnh IBM-PC (cn gi tt l PC). T lu, UNIX ni ting
l mt h iu hnh mnh, tin cy v linh hot, nhng v kh t nn ch yu
ch dng cho cc trm tnh ton hoc my ch cao cp.
Ngy nay Linux c th ci t trn nhiu h my tnh khc nhau, khng ch
ring cho h PC. Qua Internet, Linux c hng nghn nh lp trnh khp trn
th gii tham gia thit k, xy dng v pht trin, vi mc tiu khng l thuc
vo
bt k thng phm no v cho mi ngi u c th s dng thoi mi.
Khi thu, Linux xut pht t tng ca Linus Torvalds, khi chng sinh
vin i hc Helsinki Phn Lan mun thay th Minix, mt h iu hnh
nh kiu UNIX.
V c bn, Linux bt chc UNIX cho nn cng c nhiu u im ca
UNIX. Tnh a nhim thc s ca Linux cho php chy nhiu chng trnh
cng lc.
Vi Linux, bn c th ng thi thc hin mt s thao tc, th d chuyn tp,
in n, sao tp, nghe nhc, chi game v.v.
Linux l h iu hnh a ngi dng, ngha l nhiu ngi c th ng nhp
v cng lc s dng mt h thng. u im ny c v khng pht huy my
trn my PC nh, song trong cng ty hoc trng hc th n gip cho vic
dng chung ti nguyn, t gim thiu chi ph u t vo my mc.

Ngay c khi nh, bn cng c th ng nhp vo Linux vi nhiu account


khc nhau qua cc terminal o v t chc dch v trn mng ring cho mnh
bng cch s dng Linux vi nhiu modem.

Bn thn vic c lp vi nhng cng ty ln cng tim tng mt im yu


ca Linux. Khi cha c mt mng li ring cung cp dch v bo tr th tt
nhin ngi ta s ngi s dng Linux. Tuy th, vi s pht trin ca Internet,
cc t chc h tr ngi dng Linux to nn cc Website v forum tho
g cho bn nhiu vn kh khn.
Hn na Linux c th khng chy tt vi mt s phn cng t ph bin,
thm ch vic hng hc hoc xo mt d liu i khi cng xy ra, bi v Linux
lun thay i v kh c th nghim y trc khi a ln Internet.
Linux khng phi l chi sn c, n c thit k nhm mang n cho
ngi s dng cm gic cng tham gia vo mt d n mi. Tuy nhin thc t
cho thy Linux chy tng i n nh v cho bn mt c may khng tn km

hc v s dng UNIX, mt h h iu hnh chuyn nghip hin nay ang


c rt nhiu ngi dng trn cc my ch v trm tnh ton cao cp.

1.2 Ti sao Linux pht trin?


Trc ht, Linux pht trin v l mt trong nhng h iu hnh min ph v
c kh nng a nhim cho nhiu ngi s dng cng lc trn cc my tnh
tng thch vi PC. So vi nhng h iu hnh thng phm, Linux gip bn t
phi nng cp v li khng cn tr tin, cng nh phn ln cc phn mm ng
dng cho n. Hn na, Linux v nhng ng dng c cung cp vi c m
ngun min ph m bn c th ly v t Internet, sau chnh sa v m rng
chc
nng ca chng theo nhu cu ring.
Linux c kh nng thay th mt s h iu hnh thuc h UNIX t tin.
Nu ti ni lm vic m bn s dng UNIX th nh bn cng thch s dng
mt h no ging nh th nhng r tin. Linux gip bn d dng truy cp,
lt qua cc Website v gi nhn thng tin trn mng Internet. Nu bn l mt
qun tr vin UNIX th v nh bn cng c th s dng Linux thc hin mi
cng vic qun tr h thng.

Mt nguyn nhn khc lm cho Linux d n vi ngi dng l n cung


cp m ngun m cho mi ngi.

Chnh iu ny khin mt s t chc, c nhn hay quc gia u t vo


Linux nhm m rng s la chn ra ngoi cc phn mm ng kn m ngun.
H cho rng, mc d c dch v hu mi nhng khng g m bo c rng khi
dng cc sn phm ng kn ny trn Internet, cc thng tin c nhn hay quc
gia ca h c b gi v mt t chc hay mt quc gia no khc hay khng. Th
d Trung Quc pht trin h iu hnh Hng K t kernel ca Linux
khng b l thuc Microsoft Windows, cng nh h ang t nghin cu b vi x
l Hng Tm thay th cho h chip Intel.
Ti Vit Nam, vic nghin cu xy dng mt h iu hnh t kernel Linux
thu c mt s thnh cng nht nh. Chc bn cng bit n Vietkey
Linux v CMC RedHat Linux (phin bn ting Vit ca RedHat Linux 6.2).
Gn y, cc cng ty ni ting nh IBM, Sun, Intel, Oracle cng bt
u nghin cu Linux v xy dng cc phn mm ng dng cho n.

1.3 Cc bn pht hnh Linux


Nhiu ngi bit n cc nh sn xut phn mm RedHat, ManDrake,
SuSE, Corel v Caldera. C th chnh bn cng tng nghe n tn cc
phin bn Linux nh Slackware, Debian, TurboLinux v VA Linux, v.v. Qu
tht, Linux c pht hnh bi nhiu nh sn xut khc nhau, mi bn pht
hnh l mt b chng trnh chy trn nhm tp li (kernel) ca Linus
Tordvalds. Mi bn nh vy u da trn mt kernel no , th d bn
RedHat Linux 6.2 s dng phin bn kernel 2.2.4.
Hng RedHat lm ra chng trnh qun l ng gi RPM (RedHat
Package Manager), mt cng c min ph gip cho bt c ai cng c th t
ng gi v pht hnh mt phin bn Linux ca chnh mnh. Th d bn
OpenLinux ca Caldera cng c to ra nh th.

1.4 Li th ca Linux
Ti sao c th chn Linux thay v chn mt trong nhng h iu hnh
khc chy trn PC nh DOS, Windows 95/98, Windows NT, hoc Windows
2000 ?

Nhm 7- Lp TDL&MMT t 1

Linux cung cp cho bn mt mi trng hc lp trnh m hin nay cha c


h no snh c. Vi Linux, bn c y c m ngun, trong khi cc sn
phm mang tnh thng mi thng khng bao gi tit l m ngun.
Cui cng, Linux mang n cho bn c hi sng li bu khng kh ca cuc
cch mng vi tnh trc kia. Cho n gia thp nin 1970, my tnh in t cn
l sn chi ring ca cc t chc ln, chng hn nh chnh quyn, tp on
doanh nghip v trng i hc. Ngi dn thng khng th s dng
nhng thnh tu k diu ca cng ngh thng tin.
Ngy nay Linux ang lm mt cuc cch mng lnh vc phn mm h
thng. Linux l l c tp hp nhng con ngi khng mun b kim st bi
cc hng khng l nhn danh kinh t th trng lm x cng c sng to v
ci tin.
Vi Linux bn s khai thc c nhiu th mnh ca UNIX. Trong s nhng
h iu hnh thng dng hin nay, Linux l h iu hnh min ph c nhiu
ngi s dng rng ri nht. Bn thn Linux h tr sn sng b giao thc
mng TCP/IP, gip bn d dng kt ni Internet v gi th in t. Linux
thng i km XFree86 l mt giao din ho cho ngi s dng (GUI) v
cng c pht hnh min ph. XFree86 cung cp cho bn cc chc nng ph
bin mt s thng phm khc, chng hn nh Windows.
Linux c hng ngn ng dng, t cc chng trnh bng tnh in t,
qun tr c s d liu, x l vn bn n cc chng trnh pht trin phn mm
cho nhiu ngn ng, cha k nhiu phn mm vin thng trn gi. Ngoi ra
Linux cng c hng lot tr chi gii tr trn nn k t hoc ho. Phn ln
nhng chng trnh tin ch v ng dng c sn cho Linux li khng mt tin
mua. Cc bn ch phi tr chi ph cho vic ti chng t Internet xung hoc tr
cc ph bu in.
n vi Linux, gii lp trnh s c mt lot cc cng c pht trin chng
trnh, bao gm cc b bin dch cho nhiu ngn ng lp trnh hng u hin
nay, chng hn nh C, C++. Bn cng c th dng ngn ng Pascal thng qua

Nhm 7- Lp TDL&MMT t 1

trnh bin dch FreePascal. Nu bn khng thch s dng nhng ngn ng va


k,

Nhm 7- Lp TDL&MMT t 1

Linux c sn cc cng c nh Flex v Bison bn xy dng ngn ng ring


cho mnh.
Hai khi nim hin nay c cp rt nhiu l h thng m (open
system) v tnh lin tc (interoperability) u gn vi kh nng ca nhng h
iu hnh c th lin lc vi nhau. Phn ln cc h m i hi phi tho mn
tng thch tiu chun IEEE POSIX (giao din h iu hnh kh chuyn).
Linux p ng nhng tiu chun y v c lu hnh vi m ngun m.

1.5 Ai pht trin Linux ?


Ni chung, Linux l mt h thng c xy dng bi cc hacker v cho cc
hacker. Mc d hin nay trong x hi t hacker thng c hm tiu cc,
song nu theo ngha ban u th hacker khng phi l ti phm. Hacker tm
hiu nhng g c bn trong mt h thng cho n tng chi tit v c kh nng
sa
cha nu h thng y b hng hc. a s cc hacker khng xm nhp h thng
v tin bc hoc c , mc d sau ny c nhng ngi vt qua gii hn y
v b tp th cc hacker gi l cracker (tin tc) hay hacker m en. Gii hacker
cm thy b xc phm khi mi ngi xem h nh l ph hoi v gi chung l tin
tc.
Thc ra, nhng hacker chn chnh, cn gi l hacker m trng, rt c cng
trong vic pht hin k h ca cc phn mm, gip mi ngi v ch nhn ca
nhng phn mm y cnh gic trc s tn cng ca gii tin tc. Cng nh
cng cuc bo v ny m Linux v cc ng dng Linux (ni rng hn l cc
phn mm ngun m) cng ngy cng an ton hn
Ngoi i, phn ln nhng ngi s dng UNIX ch c cp cho mt s
account vi quyn hn thu hp, do mt ngi bnh thng khng th th
nghim y cc cu lnh UNIX. Vi Linux bn c mt phin bn hot
ng tng t UNIX nhng cho php qun tr, s dng, vo ra thoi mi
khng gii hn, mt iu him gp trong cuc sng.

Chng 2. Phn vng a cng


2.1 Gii thiu chung
Vi s hinh thanh v
tri
phat
n
nhi ca h trong
chon
rt
u
c vic
la

cua h
hanh Linux, gi y chung ta c
iu
ca h thng file (file system) cho tng loai
c

ng dung.
H thng tp tin Linux c t chc theo dng cy. C mt v tr khi im,
gi l root (gc). Bt k mt h thng Unix/Linux no cng c mt th mc
c bit gi l th mc gc (root directory) k hiu l dy slash ( / ). y l
im bt u gn (mount point) tt c cc phn t cn li nh h thng
disks, partitions, CD ROM vo h thng Linux/Unix. Tt c cc th mc v
tp tin khc, k c cc tp tin h thng v cc th mc h thng cng ch l cp
con ca root. Khi h thng Linux/Unix khi ng, thng qua tin trnh init n
s t ng moun (gn) cc tp tin h thng v th mc h thng vo root (/).
Trong
phn ny chng ti mun
gii

thi ca h thng file tin


u
c tin

Linux nh EXT2, EXT3, EXT4 c tinh tin


cy
trinh thao
tac

trn d
liu

c s dung trong

cao v c kh nng ghi nh qu

(journaling).

2. 2 H thng File EXT2


2. 2.1 Gii thiu
Ext2 hay h thng tp tin m rng th hai l mt h thng tp tin dnh cho
cc h thng nhn Linux. Lc u n c thit k thay th cho h thng tp
tin m rng. N nhanh dng lm tiu chun cng nng ca cc loi h
iu hnh Linux. Hn ch chnh ca n l khng phi h thng tp tin nht k.

Nhm 7- Lp TDL&MMT t 1

10

H thng file ext2 c gii thiu vo u nm 1993 v c thit k ring


cho Linux. N c nhiu tnh nng tng cng khc phc cc hn ch ca cc
h thng file khc.
Tnh nng

Nhm 7- Lp TDL&MMT t 1

Minix

EXT

EXT 2

11

Kch thc h thng 64 MB

2 GB

4 TB

2 GB

2 GB

file ln nht
Kch thc file ln 64 MB
nht
Chiu di ti a tn file 30 k t

Kch thc block tu Khng

255 k 255
t

Khng

bin

Nhng c trng ca h thng tp tin Ext2 chun:


- H thng tp tin Ext2 h tr cc kiu tp tin Unix chun: cc tp tin thng
thng, cc tp tin thit b c bit v cc tp tin lin kt.
- H thng tp tin Ext2 c kh nng qun l cc h thng tp tin trn nhng
phn vng kch c rt ln. Trong khi m nhn (kernel) gc gii hn kch c
h thng tp tin ln nht l 2GB, nghin cu gn y trong lp VFS tng
ln n gii hn l 4TB. V vy, ngy nay n c th s dng cc a dung
lng ln m khng cn to nhiu phn vng.
- H thng tp tin Ext2 cung cp tn tp tin di. y l kh nng ca Linux m
trn cc h thng UNIX chun khng h cung cp. Ti a mt tn tp tin l
255 k t v c th c khong trng. Nghin cu gn y trn lp VFS, gii
hn ny tng ln 4TB. V th, n c th s dng cc a kch thc rt ln
m khng cn to nhiu phn vng.
- H thng tp tin Ext2 d tr mt vi block cho super user (root). Thng
thng, 5% cc block ny c d tr. iu ny cho php ngi qun l
phc hi d dng t qu trnh ngi dng lm y cc h thng tp tin.
- H thng tp tin Ext2 cho php truy xut n cc h thng khc nh FAT,
FAT32, MSDOS trn Windows 9.x v DOS mt cch d dng. Ngc li,
chng ta c th cng c th t cc h thng FAT, NTFS, BeOS, OS/2,
MacOS truy xut n Ext2 thng qua cc trnh tin ch nh LTOOLS. V
cn nhiu kh nng khc nh c th d dng thm vo cc kh nng cho Ext2.

2.2.2 T chc a
Mc tiu u tin ca vic dng Ext2 l phi hiu c tt c kch thc ca
cc cu trc d liu u da trn kch c mt block hn l kch c mt sector. Kch
c block ny thay i ph thuc vo h thng tp tin. V d trn a mm, n l 1KB
(2 sector), trong khi trn mt phn vng 10GB, kch c mt block thng l 4KB
hay 8KB (tng ng vi 8 v 16 sector).
Mi block li c chia nh hn thnh cc fragment, nhng ti vn cha thy
mt h thng tp tin no m kch thc fragment khng khp vi kch thc mt
block. Ngoi tr superblock, tt c cc cu trc d liu c thay i li kch thc
cho khp vi cc block. y l ci cn nh khi c gng mount bt k h thng tp
tin no khc trn mt a mm. V d, Inode Table Block cha entry trong mt
block 4KB nhiu hn mt block 1KB, nn ngi ta phi a vo tnh ton khi no
nn truy xut cu trc c bit ny.
Block u tin trong mi partition Ext2 khng bao gi c qun l bi h thng
tp tin Ext2, bi v n c dng cho partition boot sector. Phn cn li ca partition
Ext2 c chia thnh cc block group, c biu din nh hnh sau:

S b tr ca mt phn vng Ext2 v ca mt block group


Tt c cc block group u c cng kch thc v lu tr lin tip nhau, v vy nhn
c th tm thy c v tr ca mt block group trn a t s ch mc kiu nguyn
ca n. Trong khi mt a mm ch cha mt block group iu khin tt c cc block
ca h thng tp tin, th mt a cng 10GB c th d dng c chia thnh 30 block
group nh vy, mi block group iu khin mt s lng block c th.

V tr u ca mi block group l cc cu trc d liu khc nhau lit k ng


dn ca phn cn li, cung cp nhiu thng tin hn, cu trc d liu xc nh trng
thi h thng tp tin hin hnh. Sau y l mt t chc h thng tp tin Ext2 trn
mt a mm:
Figure 1-1. B tr d liu trn a mm.
offset # of blocks description
-------- ----------- ----------0
1 boot record
-- block group 0 -(1024 bytes)
1 superblock
2
1 group descriptors
3
1 block bitmap
4
1 inode bitmap
5
23 inode table
28
1412 data blocks

V y l t chc ca mt h thng file Ext2 20MB:


Figure 1-2. B tr d liu trn phn vng 20MB
offset # of blocks description
-------- ----------- ----------0
1 boot record
-- block group 0 -(1024 bytes)
1 superblock
2
1 group descriptors
3
1 block bitmap
4
1 inode bitmap
5
214 inode table
219
7974 data blocks
-- block group 1 -8193
1 superblock backup
8194
1 group descriptors backup
8195
1 block bitmap
8196
1 inode bitmap
8197
214 inode table
8408
7974 data blocks
-- block group 2 -16385
1 block bitmap
16386
1 inode bitmap
16387
214 inode table
16601
3879 data blocks

Cc block group lm tng s phn mnh tp tin, bi v nhn (kernel) c gng


gi cc block data ph thuc vo mt tp tin trong block group ging nhau, nu c
th. Mi block trong mt block group bao gm cc thng tin sau:
Mt bn sao superblock ca h thng tp tin.
Mt bn sao ca nhm cc k hiu miu t block
group Mt block bitmap d liu
Mt bng cc inode
Mt khoanh d liu thuc mt tp tin, v d nh block data.

Nu mt block khng cha bt k thng tin c ngha no, th block trng.


Vic b tr trn a c th on trc vi iu kin bn bit mt vi thng tin c
bn sau: kch thc block, s block trn mt block group, s inode trn mt block
group. Thng tin ny u c xc nh hay tnh ton t cu trc ca superblock.
Nu khng c thng tin v superblock, a s v ch; do nu khong
trng c sn th s to ra mt hay nhiu bn sao lu superblock trn a.
Block bitmap v Inode bitmap c dng xc nh block no v cc entry
inode no trng s dng. Cc data block l ni lu tr nhiu loi tp tin. Lu
rng mt th mc cng c xem l mt tp tin trong Exts, sau y chng ta s i
tm hiu chi tit hn.
Trong khi tt c s b sung Ext2 c gng tng thch, mt s field trong cc
cu trc khc nhau c ty bin khp vi nhng yu cu ca mt h iu hnh
c th.
2.2.2.1 Superblock
Superblock l cu trc trn mt a Ext2 cha thng tin c bn v cc c tnh
ca h thng tp tin. Khng c Superblock th khng dng a c v Superblock
cha cc thng tin c bn nh: kch thc ca mt block, tng s block trn mt
block group, tng s inode trn mt block group Nh cc thng tin ny m ta c
th d on, tnh ton cc thnh phn v cu trc trong mt block group.
Cu trc chi tit ca mt Superblock nh sau:
Figure 1-3. Cu trc ca Superblock
offset size description
------- ------- ----------0
4 s_inodes_count
4
4 s_blocks_count
8
4 s_r_blocks_count
12
4 s_free_blocks_count
16
4 s_free_inodes_count
20
4 s_first_data_block
24
4 s_log_block_size
28
4 s_log_frag_size
32
4 s_blocks_per_group
36
4 s_frags_per_group
40
4 s_inodes_per_group
44
4 s_mtime
48
4 s_wtime
52
2 s_mnt_count
54
2 s_max_mnt_count
56
2 s_magic
58
2 s_state
60
2 s_errors
62
2 s_minor_rev_level
64
4 s_lastcheck
68
4 s_checkinterval
72
4 s_creator_os
76
4 s_rev_level
80
2 s_def_resuid
82
2 s_def_resgid
-- EXT2_DYNAMIC_REV Specific --

84
4 s_first_ino
88
2 s_inode_size
90
2 s_block_group_nr
92
4 s_feature_compat
96
4 s_feature_incompat
100
4 s_feature_ro_compat
104 16 s_uuid
120 16 s_volume_name
136 64 s_last_mounted
200
4 s_algo_bitmap
-- Performance Hints
-204
1 s_prealloc_blocks
205
1 s_prealloc_dir_blocks
206
2 - (alignment)
-- Journaling Support
-208 16 s_journal_uuid
224
4 s_journal_inum
228
4 s_journal_dev
232
4 s_last_orphan
-- Unused
-236 788 - (padding)

s_inodes_count
Gi tr 32 bit cho bit tng s inode trn ton b partition, bao gm c inode
dng v cha dng trong h thng tp tin.
s_blocks_count
Gi tr 32 bit cho bit tng s block trn ton b partition, bao gm c block
dng v cha dng trong h thng tp tin.
s_r_blocks_count
Gi tr 32 bit cho bit tng s block dnh ring cho super user. iu ny hu
dng nht nu v mt s l do mt ngi dng c c tnh lm y h thng tp tin
hay khng. Super user s c mt lng block cha dng c th ny c th to v
lu cc tp tin cu hnh.
s_free_blocks_count
Gi tr 32 bit cho bit tng s cc block cn trng, bao gm c s block dnh cho
super user. y l tng s tt c cc block cn trng ca tt c cc block group.
s_free_inodes_count
Gi tr 32 bit cho bit tng s inode cn trng. y l tng tt c cc inode trng ca
tt c block group.
s_first_data_block
Gi tr 32 bit cho bit v tr ca data block u tin, hay xc nh s th t ca khi
cha cu trc superblock.

Ch rng gi tr ny lun l 0 cho h thng tp tin c kch thc mt block ln


hn 1KB, v bng 1 vi h thng tp tin c kch thc mt block l 1KB.
Superblock lun bt u t byte th 1024 ca a, thng l byte u tin ca sector
th 3.
s_log_block_size
Kch thc block c tnh ton s dng gi tr 32 bit ny nh l s bit dch tri
gi tr 1024. Gi tr ny phi l s dng:
block size = 1024 << s_log_block_size;
s_log_frag_size
Kch thc fragment c tnh ton s dng gi tr 32 bit nh l s bit dch tri gi
tr l 1024. Ch mt gi tr m s dch bit sang phi hn l sang tri:
if( positive )
fragmnet size = 1024 << s_log_frag_size;
else
framgnet size = 1024 >> -s_log_frag_size;
s_blocks_per_group
Gi tr 32 bit cho bit tng s block trn mt block group. Gi tr ny c th kt hp
vi s_first_data_block c th c dng xc nh ng bin ca cc block
group.
s_frags_per_group
Gi tr 32 bit cho bit tng s fragment trn mt block group. N cng c dng
xc nh kch thc ca mt block bitmap ca mi block group.
s_inodes_per_group
Gi tr 32 bit cho bit tng s inode trn mt block group. N cn c dng xc
nh kch thc ca inode bitmap ca mi block group.
s_mtime
Phin bn Unix, nh c xc nh bi POSIX, ca ln gn nht m h thng tp tin
c gn vo.
s_wtime

Phin bn Unix, nh c xc nh bi POSIX, ca ln vit gn nht truy cp vo h


thng tp tin.

s_mnt_count
Gi tr 32 bit cho bit c bao nhiu ln h thng tp tin c gn vo t khi ln gn
vo gn nht c b sung mt cch y .
s_max_mnt_count
Gi tr 32 bit cho bit s ln ti a h thng tp tin c th c gn vo trc khi
hon thnh vic kim tra ton din.
s_magic
Gi tr 16 bit xc nh h thng tp tin nh Ext2. Gi tr c nh hin thi l
0xEF53.
s_state
Gi tr 16 bit cho bit trng thi ca h thng tp tin. Khi h thng tp tin c gn
vo, trng thi ny c thit lp l EXT2_ERROR_FS. Khi m h thng tp tin cha
c gn vo, gi tr ny c th l EXT2_VALID_FS hoc EXT2_ERROR_FS trong
trng hp h thng tp tin khng gn vo mt cch khng d dng.
s_errors
Gi tr 16 bit cho bit trnh iu khin h thng tp tin no c thc thi khi pht
hin thy mt li. Cc gi tr chi tit c lit k trong bng sau:
Table 1-1. Gi tr EXT2_ERRORS
EXT2_ERRORS_CONTINUE

Tip tc nu khng c g xy ra

EXT2_ERRORS_RO

remount read-only

EXT2_ERRORS_PANIC

Gy ra li nhn (kernel panic)

EXT2_ERRORS_DEFAULT

Thay i K t vic xt li 0.5, ci ny cng


ging
nh
EXT2_ERRORS_CONTINUE

s_minor_rev_level
Gi tr 16 bit xc nh cp xt li th cp (minor revision) trong phm vi cp xt
li ca n (revision level).
s_lastcheck
Phin bn Unix, nh c nh ngha bi POSIX, ca s kim tra h thng tp tin
gn y nht.

s_checkinterval

Khong thi gian ln nht gia cc ln Unix, c nh ngha bi POSIX, cho php
gia cc ln kim tra h thng tp tin.
s_creator_os
Gi tr 32 bit cho bit h iu hnh to h thng tp tin. Gi tr ny c xc nh
nh sau:
Table 1-2. Gi tr ca EXT2_OS
EXT2_OS_LINUX

Linux

EXT2_OS_HURD

Hurd

EXT2_OS_MASIX

MASIX

EXT2_OS_FREEBSD

FreeBSD

EXT2_OS_LITES4

Lites

s_rev_level
Gi tr 32 bit cho bit gi tr ca cp duyt. Hin thi c hai gi tr c xc nh
nh sau:
Table 1-3. Cc gi tr duyt EXT2
EXT2_GOOD_OLD_REV

nh dng gc

EXT2_DYNAMIC_REV

nh dng V2 vi kch thc


inode ng

s_def_resuid
Gi tr 16 bit c dng nh s th t ngi dng mc nh cho cc block c
dnh ring.
s_def_resgid
Gi tr 16 bit c dng nh s th t nhm mc nh cho cc block c d
tr.
s_first_ino
Gi tr 32 bit c dng nh ch mc n inode u tin c th s dng cho cc tp
tin chun. Trong vic duyt h thng tp tin khng ng, inode khng d tr u
tin c c nh l 11. Vi cu lnh duyt ng ca h thng tp tin, n c th b
sung gi tr ny.
s_inode_size

Gi tr 16 bit cho bit kch thc ca cu trc inode. Trong cc ln duyt h thng
tp tin khng ng gi tr ny c gi lp l 128.
s_block_group_nr
Gi tr 16 bit c dng cho bit s block group ang lm ch cu trc
superblock ny. Ci ny c th dng to li h thng tp tin t bn sao lu
superblock bt k.
s_feature_compat
Gi tr 32 bit cho bit cc c trng c th c ca bitmask. Vic thc thi h thng tp
tin c gii phng h tr cho chng hoc khng h tr m khng c s ri ro v
vic h d liu.
s_feature_incompat
Gi tr 32 bit cho bit cc c trng c th c ca bitmask. Vic thc thi h thng tp
tin c t chi gn vo h thng tp tin nu bt k c tnh xc nh no khng
c h tr.
s_feature_ro_compat
Gi tr 32 bit cho bit cc c trng ch c read-only ca bitmask. Vic thc thi
h thng tp tin nn gn vo nh ch c nu c tnh xc nh ca bt k bitmask
no khng c h tr.
s_uuid
Gi tr 128 bit c dng nh s th t ca b a. Nu c th, ci ny nn l duy
nht cho mi h thng tp tin c nh dng.
s_volume_name
Gi tr 16 byte cho bit tn ca a, hu nh khng c s dng. Mt tn a
hp l s bao gm cc k t ISO-Latin-1 v kt thc l 0.
s_last_mounted
Gi tr 64 byte cho bit ng dn th mc h thng tp tin c gn vo gn
nht. Thng thng khng c dng, n c th phc v cho vic t tm kim thi
im gn vo m khng xc nh trn dng lnh. Hn na ng dn c kt thc
l 0 v nhng l do tng thch. ng dn hp l c to t cc k t ISO-Latin1.
s_algo_bitmap

Gi tr 32 bit c dng bi thut ton nn xc nh nhng phng thc c s


dng.
2.2.2.2 Group Descriptor
Group descriptor l mt mng cu trc group_desc, mi phn t m t mt block
group, cho bit ng dn ca bng inode, cc block v cc inode bitmap ca n, v
mt s thng tin hu ch khc.
Cc group descriptor c nh v block u tin sau block cha trong cu trc
superblock. Cc thnh phn ca group descriptor:
Figure 1-4. Cu trc group_desc
offset size description
------- ------- ----------0

4 bg_block_bitmap

4 bg_inode_bitmap

4 bg_inode_table

12

2 bg_free_blocks_count

14

2 bg_free_inodes_count

16

2 bg_used_dirs_count

18

2 bg_pad

20

12 bg_reserved

i vi mi group descriptor trong h thng tp tin, mt group_desc nh vy s


c to ra. Mi ci i din cho mt block group n trong h thng tp tin v
thng tin ca bt k ci no trong chng thch hp vi group m n ang m t. Mi
bng Group descriptor cha tt c cc thng tin v tt c group.
Tt c ch cho bit s th t block l tuyt
i.
bg_block_bitmap
Gi tr 32 bit cho bit s th t ca block u tin ca block bitmap i vi group
c trnh by.
bg_inode_bitmap

Nhm 7- Lp TDL&MMT t 1

20

Gi tr 32 bit cho bit s th t ca block u tin ca inode bitmap i vi group


c m t.
bg_inode_table
Gi tr 32 bit cho bit s th t ca block u tin trong bng inode i vi group
c m t.
bg_free_blocks_count
Gi tr 16 bit cho bit tng s block cn trng i vi group c m
t.
bg_free_inodes_count
Gi tr 16 bit cho bit tng s inode trng i vi group c m
t.
bg_used_dirs_count
Gi tr 16 bit cho bit s inode nh phn n th mc i vi group c m
t.
bg_pad
Gi tr 16 bit c dng cho vic m cu trc trong gii hn 32
bit.
bg_reserved
Ba gi tr 32 bit k tip nhau lu tr cho nhng s thc thi trong tng
lai.
2.2.2.3 Block Bitmap
Block bitmap thng thng c xc nh ti block u tin, hoc block th hai nu
bn sao lu ca mt superblock hin din, ca block group. ng dn chnh thc
ca n c th c xc nh bng cch c bg_block_bitmap trong cc group
descriptor tng ng ca n.
Mi bit din t trng thi hin ti ca mt block vi group , trong 1 c ngha l
dng v 0 c ngha l cn trng/c th dng c. block u tin ca block
group ny c m t bi bit 0 ca byte 0, ci th hai c m t bit 1 ca byte 0.
block th 8 c m t bi bit 7 (bit quan trng nht) ca byte 0 trong khi block
th 9 c m t bi bit 0 (bit t quan trng nht) ca byte 1.
2.2.2.4 Inode Bitmap
Inode bitmap lm vic ging nh Block bimap, ch khc nhau ch trong bng
Inode mi bit din t mt inode hn l mt block.

Mt inode bitmap trn group v v tr ca n c th c xc nh bng vic c gi


tr bg_inode_bitmap v group descriptor tng ng ca n.

Khi bng inode c to ra, tt c cc inode d tr c nh du nh dng. i


vi Good Old Revision iu ny c ngha l 11 bit u tin ca inode bitmap.
2.2.2.5 Inode Table
Vng Inode Table c dng gi rnh ghi ca mi tp tin; v tr ca n, kch
thc, kiu v th t truy xut tt c u c lu tr trong cc inode. Tn tp tin
khng c ct gi y, vi vng Inode table tt c cc tp tin c tham chiu
n bi s inode ca chng.
C mt vng inode table trn mt group v n c th c xc nh bi vic c gi
tr bg_inode_table trong group descriptor tng ng ca n. C cc inode
s_inodes_per_group trn mt bng.
Mi inode cha thng tin v tp tin vt l n trn h thng. mt tp tin c th l
mt th mc, mt socket, mt b m, k t hay tp tin thit b, tp tin lin kt hay
tp tin thng thng. V vy mt inode c th c hiu nh mt block c thng tin
lin quan n mt thc th, m t v tr ca n trn a, kch thc v quyn s hu
ca n. Cu trc ca mt inode nh sau:
Figure 1-5. Cu trc inode
offset size description
------- ------- ----------0
2 i_mode
2
2 i_uid
4
4 i_size
8
4 i_atime
12
4 i_ctime
16
4 i_mtime
20
4 i_dtime
24
2 i_gid
26
2 i_links_count
28
4 i_blocks
32
4 i_flags
36
4 i_osd1
40 15 x 4 i_block
100
4 i_generation
104
4 i_file_acl
108
4 i_dir_acl
112
4 i_faddr
116 12 i_osd2

Mt s entry u tin ca bng inode c d tr. Trong


EXT2_GOOD_OLD_REV c 11 entry d tr trong khi EXT2_DYNAMIC_REV
mi hn s entry ca inode c d tr c ch r trong s_first_ino ca cu trc
superblock. Sau y l danh sch ca cc entry inode d tr c bit n nhiu
nht:
Table 1-4. Bng gi tr EXT2_*_INO
EXT2_BAD_INO

0x01

bad blocks inode

EXT2_ROOT_INO

0x02

root directory inode

EXT2_ACL_IDX_INO

0x03

ACL index inode

EXT2_ACL_DATA_INO

0x04

ACL data inode

EXT2_BOOT_LOADER_INO

0x05

boot loader inode

EXT2_UNDEL_DIR_INO

0x06

undelete directory inode

i_mode
Gi tr 16 bit ny c dng cho bit nh dng ca tp tin c m t v
lt truy xut. Sau y l cc gi tr c th c:
Table 1-5. Cc gi tr ca EXT2_S_I
-- file format -EXT2_S_IFMT

0xF000

format mask

EXT2_S_IFSOCK

0xC000

socket

EXT2_S_IFLNK

0xA000

symbolic link

EXT2_S_IFREG

0x8000

regular file

EXT2_S_IFBLK

0x6000

block device

EXT2_S_IFDIR

0x4000

directory

EXT2_S_IFCHR

0x2000

character device

EXT2_S_IFIFO

0x1000

fifo

EXT2_S_ISUID

0x0800

SUID

EXT2_S_ISGID

0x0400

SGID

EXT2_S_ISVTX

0x0200

sticky bit

EXT2_S_IRWXU

0x01C0

user access rights mask

EXT2_S_IRUSR

0x0100

read

EXT2_S_IWUSR

0x0080

write

EXT2_S_IXUSR

0x0040

execute

-- access rights --

EXT2_S_IRWXG

0x0038

group access rights mask

EXT2_S_IRGRP

0x0020

read

EXT2_S_IWGRP

0x0010

write

EXT2_S_IXGRP

0x0008

execute

EXT2_S_IRWXO

0x0007

others access rights mask

EXT2_S_IROTH

0x0004

read

EXT2_S_IWOTH

0x0002

write

EXT2_S_IXOTH

0x0001

execute

i_uid
Gi tr 16 bit cho bit s th t ngi dng tng ng vi tp tin.
i_size
Gi tr 32 bit cho bit kch thc ca tp tin (tnh bng byte).
_atime
Gi tr 32 bit din t s giy k t ngy 1/1/1970 n thi gian truy xut tp tin
gn y nht.
i_ctime
Gi tr 32 bit din t s giy k t ngy 1/1/1970 cho n khi tp tin c to.
i_mtime
Gi tr 32 bit din t thi gian k t ngy 1/1/1970 cho n ln b sung gn y
nht vo tp tin.
i_dtime
Gi tr 32 bit din t thi gian k t ngy 1/1/1970 cho n khi xa tp tin. Tht
l quan trng nu tp tin khng c xa th gi tr ny lun l 0.
i_gid
Gi tr 16 bit cho bit s th t ca group ang truy xut tp tin.
i_links_count
Gi tr 16 bit cho bit inode c bit ny c lin kt n bao nhiu ln.

Nhm 7- Lp TDL&MMT t 1

24

i_blocks
Gi tr 32 bit cho bit s lng cc block c d tr cho d liu tp tin tng
ng. n bao gm c cc block dng v block d tr trong trng hp tp tin
tng kch thc.
Mt im quan trng cn lu l gi tr ny cho bit s block 512 byte v khng
xc nh kch thc ca s block c xc nh trong superblock. V vy nu mt
tp tin ch dng mt block ca h thng tp tin v kch thc l 1024 byte, gi tr
i_blocks ca n s l 2.
i_flags
Gi tr 32 bit cho bit vic thc thi Ext2 nh th no khi truy xut d liu cho
inode ny. (Xem thm mc Behaviour flags)
i_osd1
Gi tr 32 bit cho bit gi tr ca h iu hnh ang ph thuc.
Hurd
Gi tr 32 bit nh du nh my dch (translator).
Linux
Gi tr 32 bit cho bit gi tr d tr hin hnh.
Masix
Gi tr 32 bit cho bit gi tr d tr hin hnh.
i_block
Dy c dng nh v cc block ca cc tp tin c bit c lu tr trn .
Mi entry l s block 32 bit. 12 entry u tin trong dy ny l s cc block, c
th dng tm np 12 block u tin tng ng vi tp tin.
Entry th 13 l mt s block gin trc tip, c ngha l ti block d liu c th, bn
s tm thy mt dy s cc block trc tip.
Entry th 14 l mt s block gin tip hai ln. iu ny c ngha l ti block d
liu c th, bn s tm thy mt dy s block gin tip, ci m cha mt dy s
block c th c truy xut mt cch trc tip.
Entry th 15 l mt s block gin tip ba ln. N l mt s block cha mt dy
s block gin tip hai ln, v.v

Mi dy block gin tip/gin tip hai ln/ gin tip ba ln cha nhiu entry ca
s block 32 bit nu c th ( lp y ton b block).
i_generation
Gi tr 32 bit c dng xc nh phin bn ca tp tin (c dng bi
NFS).
i_file_acl
Gi tr 32 bit cho bit s block cha cc thuc tnh m rng. Trong cc ln
duyt trc gi tr ny lun lun l 0.
S miu t tng qut ca ACL cho Digital UNIX c th c tm thy ti a ch
ny:
http://www.tru64unix.compaq.com/docs/base_doc/DOCUMENTATION/HTML/AA
- Q0R2D-TET1_html/sec.c27.html
i_dir_acl
Gi tr 32 bit c dng xc nh kch thc cao (high size) ca tp tin. Trong
ln duyt trc gi tr ny lun l 0.
i_faddr
Gi tr 32 bit xc nh v tr ca on tp tin (file fragment) gn y
nht.
i_osd2
Gi tr 96 bit cho bit cu trc ca h iu hnh ang ph
thuc.
Hurd
offset size description
------- ------- ----------0

1 h_i_frag

1 h_i_fsize

2 h_i_mode_high

2 h_i_uid_high

2 h_i_gid_high

h_i_frag

4 h_i_author

Gi tr 8 bit cho bit s fragment.


h_i_fsize
Gi tr 8 bit cho bit kch thc ca fragment.

h_i_uid_high
Gi tr 16 bit cao ca user_id.
h_i_gid_high
Gi tr 16 bit cao ca group_id.
Linux
offset size description
------- ------- ----------0

1 l_i_frag

1 l_i_fsize

2 reserved

2 l_i_uid_high

2 l_i_gid_high

4 reserved

l_i_frag
Gi tr 8 bit cho bit s fragment.
l_i_fsize
Gi tr 8 bit cho bit kch thc fragment.
l_i_uid_high
Gi tr 16 bit cao ca user_id..

l_i_gid_high: Gi tr 16 bit cao ca group_id.


Masix

Nhm 7- Lp TDL&MMT t 1

27

offset size description


------- ------- ----------0

1 m_i_frag

1 m_i_fsize

10 reserved

m_i_frag: Gi tr 8 bit cho bit s fragment.

m_i_fsize: Gi tr 8 bit cho bit kch thc fragment.


2.2.2.6 Data Blocks
Vng Data block gm cc block d liu. c qun l bi cc bit tng ng
trong vng block bitmap. Nu l mt tp tin bnh thng th y l ni lu tr ni
dung ca tp tin, nhng nu tp tin l th mc th ni y s cha cc directoryentry.

2.2.3 Cu trc th mc
Th mc l mt file c bit m ni dung ca n (cha ti vng Data blocks)
gm ton cc directory entry. Th mc c lu tr ging nh tp tin v c th c
nhn ra bng vic tm trong cc bit dnh dng tp tin ext2_inode.i_mode i vi gi
tr EXT2_S_IFDIR.
Th mc gc lun l entry th hai ca bng inode (EXT2_ROOT_INO c gi tr
l 2). Bt k th mc con no t th mc gc c th c nh v bng vic quan
st ni dung ca tp tin th mc gc.
2.2.3.1. nh dng Directory File
Cc directory-entry trong Ext2 ca Linux c kch thc khng bng nhau
(directory-entry cn c gi l record). Nhng mi directory-entry u c 5
trng (field) sau:
Figure 2-1. directory-entry
offset size description
------- ------- ----------4 inode

2 rec_len

1 name_len

1 file_type

... name

S b sung trc y ca Ext2 s dng 16 bit cho trng name_len, nhng t lc


gi tr ny c lu tr trong th t byte ca Intel v hu ht s b sung gii hn tn
tp tin di nht l 255 k t, cho php mt byte c phc hi.

inode
Gi tr 32 bit cho bit s inode ca file-entry. Entry khng c dng th gi tr
ny l 0.
rec_len
Gi tr 16 bit khng du cho bit s thay th directory-entry k tip bt u
t directory-entry hin hnh.
name_len
Gi tr 8 bit khng du cho bit tn cha bao nhiu k t.
file_type
Gi tr 8 bit khng du dng xc nh kiu tp tin. Lu , gi tr ny c th l
0 trong s b sung trc . Gi tr c xc nh hin ti l:
Table 2-1. Bng gi tr ca EXT2_FT
EXT2_FT_UNKNOWN

Cha dng

EXT2_FT_REG_FILE

File bnh thng

EXT2_FT_DIR

Th mc

EXT2_FT_CHRDEV

Thit b k t

EXT2_FT_BLKDEV

Thit b khi

EXT2_FT_FIFO

Buffer

EXT2_FT_SOCK

Socker

EXT2_FT_SYMLINK

Lin kt

EXT2_FT_MAX

name
Tn ca file-entry. Cc k t cho php thuc ISO-Latin-1.
2.2.3.2 V d v Directory
Sau y l mt v d v mt th mc ca mt user trn h thng ca ti.
$ ls -1a /home/eks

.
..
.bash_profile
.bashrc
mbox
public_html
tmp

S miu t d liu sau c th c tm thy trn thit b lu tr:


Figure 2-2. S b tr d liu trong th mc v d
offset size description
------- ------- ----------0
4 inode number (783362)
4
2 record length (9)
6
1 name length (1)
7
1 file type (EXT2_FT_DIR)
8
1 name (.)
9
13
15
16
17

4 inode number (1109761)


2 record length (10)
1 name length (2)
1 file type (EXT2_FT_DIR)
2 name (..)

19
23
25
26
27

4 inode number (783364)


2 record length (21)
1 name length (13)
1 file type (EXT2_FT_REG_FILE)
13 name (.bash_profile)

40
44
46
47
48

4 inode number (783363)


2 record length (15)
1 name length (7)
1 file type (EXT2_FT_REG_FILE)
7 name (.bashrc)

55
59
61
62
63

4 inode number (783377)


2 record length (12)
1 name length (4)
1 file type (EXT2_FT_REG_FILE)
4 name (mbox)

67
71
73
74
75

4 inode number (783545)


2 record length (19)
1 name length (11)
1 file type (EXT2_FT_DIR)
11 name (public_html)

86
90
92
93
94

4 inode number (669354)


2 record length (11)
1 name length (3)
1 file type (EXT2_FT_DIR)
3 name (tmp)

97
101
103
104

4 inode number (0)


2 record length (3999)
1 name length (0)
1 file type (EXT2_FT_UNKNOWN)

Nhm 7- Lp TDL&MMT t 1

30

105

0 name ()

Cn lu rng mt vi s b sung s m thm cc directory-entry c nhng


hiu qu tt hn trong vic x l chnh, v vy rt quan trng khi s dng record
length v khng s dng name length tm record tip theo.
2.2.3.4 Indexed Directory Format
Vic dng chun lin kt danh sch nh dng th mc c th tr nn chm khi
m s lng tp tin bt u tng. tng hiu qu cho mt h thng nh vy, mt
mng bm c to ra cho php nhanh chng nh v tp tin c th c tm kim.
Bit EXT2_INDEX_FL trong c hiu iu khin thao tc (behaviour control
flags) c thit lp nu indexed directory format c s dng.
Cu trc Index
Gc ca cy Index nm block 0 ca tp tin. Khong trng c d tr cho
cp 2 ca cy index trong block 1 n 511 (block h thng tp tin 4KB). Block
th mc l c gn vo bt u ti block 512, v vy on cui ca th mc trng
ging nh mt th mc Ext2 thng thng v c th c x l mt cch trc tip
bi trng ext2_readdir. i vi cc th mc t hn 90KB c l chy t block 1 n
511, v vy mt th mc rng c hai block trong n, mc d kch thc ca n xut
hin khong 2MB trong mt danh sch th mc. Mt th mc trng nh sau:
0: Root index block
1: Index block/0
2: Index block/0
...
511: Index block/0
512: Dirent block
513: Dirent block
...

Mi index block bao gm 512 index


entry: hash, block
trong hash l mt hash 32 bit vi mt c hiu xung t trong bit c ngha t nht
ca n, v block l s block lun l ca mt index ca block l, ph thuc vo cp
ca cy.

Gi tr hash ca index entry 0 khng cn thit bi v cp ca cy s to ra n, do


n c dng ghi vic tnh cc index entry trong mt index block.
Block index gc c nh dng ging nh cc block index khc, vi 8 byte u tin
ca n d tr mt tiu nh:
1 byte header length (default: 8)
1 byte index type (default: 0)
1 byte hash version (default:0)
1 byte tree depth (default: 1)
Cch x l ca header khc vi bn p v km theo mt cch khng ng k. Ni
ring, ch mt cp n ca cy index (root) c b sung y. iu ny tr nn
iu khin nhiu hn 90,000 entry, v vy hin nay n cng . Khi mt cp
2 c thm vo cy, kh nng ny s tng ln n khong 50 triu entry, v
khng c g ngn nga vic dng cp th n.

Thut ton tm kim (Lookup Algorithm)


- Tnh ton mt hash ca tn
- c index gc
- Dng tm kim nh phn tm index u tin hoc block l c th cha hash ch
(trong trt t cy)
- Lp li bc trn cho n khi t c cp thp nht ca cy.
- c block entry ca th mc l v thc hin tm kim Ext2 thng thng trn n.
- Nu tn c tm thy, tr v buffer v directory-entry ca n.
- Ngc li, nu bit xung t ca directory-entry tip theo c thit lp, tip tc tm
kim trn block thnh cng.

Thut ton chn (Insert Algorithm)


Chn vo cc entry mi vo trong th mc phc tp hn l tm kim, v cn
phi tch cc block l khi chng y, v tha mm iu kin l cho php nhng xung
t kha hash c iu khin mt cch chc chn v c hiu qu. Ti xin tm tt
nh sau:

- D index nh l tm kim.
- Nu block l ch y, chia nh n v ghi nh block s nhn entry mi.
- Chn thm entry mi trong block l s dng m chn directiry-entry Ext2 thng
thng.
Tch (Splitting)
Tm li, khi mt nt l y v chng ta mun t mt entry mi vo th l
s b tch ra, v mt phn khong trng hash ca n c chia thnh nhiu phn.
Cch d nht lm c iu ny l sp xp cc entry theo gi tr hash v ct
phn gia ca danh sch c sp xp. Thao tc ny l
log(number_of_entries_in_leaf) v khng mt nhiu chi ph vi iu kin s dng
thut ton sp xp c hiu qu. Ti dng CombSort cho vic ny, mc d QuickSort
cng tt cho trng hp ny bi v s thc thi trng hp trung bnh quan trng hn
trng hp t nht.
Mt phng php khc l d on mt gi tr trung bnh cho kha hash, v vic chia
phn c th c lm theo thi gian tuyn tnh, nhng kt qu vic phn chia km
hn khong trng kha hash c gi tr hn thun li t i ca thut ton phn chia
tuyn tnh. Trong trng hp bt k, s entry cn sp xp c gii hn bi s
lng va kht trong mt l.
Cc xung t kha (Key Collisions)
Vic iu khin nhng chui xung t kha hash c mt vi phc tp. Tht l
tuyt nu trnh vic tch cc chui nh vy gia cc block, v vy im ct ca mt
block c iu chnh vi ci ny. Nhng kh nng vn cn nu block lp y bi
cc entry c bm mt cch xc nh, chui c th vn phi b tch. Tnh hung
ny c nh du bng cch t mt s 1 vo bit bn di ca entry index tr vo
block k tha, ci m c lm sng t mt cch t nhin bi s thm d index nh
l mt gi tr trung gian m khng c bt k s m ha c bit no. V vy, vic
iu khin vn xung t bt buc khng c x l thc s, ch c m m rng v
v s gim bt khng ng k khong trng ca kha bm. Khong trng ca kha
bm vn cn cho s directory-entry c th tng tng c, ln n hng t.
Hm bm (Hash Function)
Cc c tnh chnh xc ca hm Hash rt nh hng n vic thc thi chin
lc index ny. Mt hm hash d s dn n nhiu s xung t hoc s phn chia
khong trng hash d. minh ha ti sao ci sau li l mt vn , xt xem ci g
s xy ra khi mt block c tch ra m n bao ph mt vi gi tr hash nht
nh. Xc sut cc entry index sau cng c bm tng t, khong cch cng
nh th

gi tr ny cng nh. Thc t, khi mt block c tch ra, nu khong trng hash ca
n qu nh n ni ch lun y c mt na, l mt kt qu m ti quan st
thc t.
Sau mt s th nghim, ti c mt hm Hash cho ra mt s phn tn hp l cc
kha hash dc theo ton b khong trng kha 31 bit. iu ny lm tng s y
trung bnh ca cc block l, t gn ti gi tr trung bnh theo l thuyt l y .
Nhng hm hash hin ti ch dng tm, ch mt phin bn tt hn da trn l
thuyt chc chn.
S thc thi (Performance)
Tm li, s ci tin kh nng thc thi trn Ext2 thng thng gy mt s
bt ng. Vi vic thc thi cc th mc rt nh ging vi Ext2 chun, nhng v kch
thc th mc tng theo Ext2 chun mt cch nhanh chng lm xut hin bc hai,
trong khi htree-enhanced Ext2 tip tc ly t l mt cch tuyn tnh.
Uli Luckas chy im chun cho vic to tp tin theo cc kch thc khc nhau ca
th mc nm trong dy t 10,000 n 90,000 tp tin. Kt qu ny rt hi lng: ton
b thi gian to file gn nh tuyn tnh, chng li vic tng bc hai ca Ext2 thng.
Thi gian c to nh sau:
Figure 2-3.
Directories
10000 Files:
20000 Files:
30000 Files:
40000 Files:
50000 Files:
60000 Files:
70000 Files:
80000 Files:
90000 Files:

Vic
Indexed
=======
0m1.350s
0m2.720s
0m4.330s
0m5.890s
0m7.040s
0m8.610s
0m9.980s
0m12.060s
0m13.400s

thc

thi

Indexed

Normal
======
0m23.670s
1m20.470s
3m9.320s
5m48.750s
9m31.270s
13m52.250s
19m24.070s
25m36.730s
33m18.550s

Cc th mc d dng va kht b nh m, v tha s gii hn trong trng hp


Ext2 chun l vic tm cc block directory trong b nh m buffer, v vic qut cp
thp cc entry directory. Trong trng hp lp ch mc htree, th s chi ph cn
c xem xt, tt c chng hu nh c gii hn. C mt vi cch ti u cn phi
thc hin:
- Dng tm kim bng nh phn thay v tm kim tuyn tnh trong cc nt ch th pha trong.
- Nu ch c mt block l trong mt th mc, th b qua vic d ch mc, i thng n block lun.
- nh x th mc vo trang cache thay v vo cache b nh m trung gian.

Mi s ti u ny s to ra mt hiu qu c ci thin, nhng khng c g ging


nh bc nhy ln t N*2 n Log512(N), ~=N. Trong lc nhng ti u c p
dng v chng ta c th tm thy mt hiu qu gp i khc hay tng t nh vy.

l mt hiu qu khng ng k khi m th mc ln cn mt level cp 2


v b lu tr s rt nh. Vic i ngang qua cc block d liu ca th mc s l mt
chi ph rt ln, v mt ln na, gi tr ny c th tng ln bi vic di chuyn cc
block vo trang cache.
in hnh chng ta s i qua 3 block c hay vit mt entry th mc, v s
tng n khong 4-5 vi nhng th mc ln. Nhng thc s th khng c g so
snh vi Ext2 thng thng ci m i qua vi trm block trong tnh hung tng
t.

2.2.4 Inodes, File Identifiers


Mi tp tin, th mc, tp tin lin kt, thit b, hoc bt c ci g khc u c
lu tr trong h thng tp tin Ext2, c xc nh bi mt inode. Nu bn bit s
inode ca tp tin bn mun c, thm ch l khng bit ng dn n file hay
tn file , bn vn c th xc nh v tr file trn a v c n.

2.2.4.1 Inode Number


S inode (inode number) l mt ch mc trong bng inode (inode table) n mt
cu trc inode (inode structure). Kch thc ca inode table c nh trong thi gian
nh dng, n c to ra gi s entry ln nht. V d tr khi lng ln cc
entry, bng inode kh ln v do , n b tch theo t l bng nhau gia tt c cc
block group.
2.4.2 nh v cu trc ca Inode
Trng s_inodes_per_group trong cu trc superblock cho chng ta bit c bao
nhiu inode trn mt block broup. Inode 1 l inode u tin xc nh trong bng
inodek, c th dng nhng cng thc sau:
group = (inode - 1) / s_inodes_per_group

nh v block group no nm gi mt phn bng inode cha entry inode c tm


kim, v:

index = (inode - 1) % s_inodes_per_group

c c ch mc ca mt phn bng inode ny vi entry inode c tm kim.


Sau y l hai v d c dng kim tra s thc thi ca bn:
Figure 3-1. V d v s tnh ton inode
s_inodes_per_group = 1712
inode number computation
------------ ----------1 group = (1 - 1) / 1712 = 0
index = (1 - 1) % 1712 = 0
2

group = (2 - 1) / 1712 = 0
index = (2 - 1) % 1712 = 1

963

group = (963 - 1) / 1712 = 0


index = (963 - 1) % 1712 = 962

1712

group = (1712 - 1) / 1712 = 0


index = (1712 - 1) % 1712 = 1711

1713

group = (1713 - 1) / 1712 = 1


index = (1713 - 1) % 1712 = 0

3424

group = (3424 - 1) / 1712 = 1


index = (3424 - 1) % 1712 = 1711

3425

group = (3425 - 1) / 1712 = 2


index = (3425 - 1) % 1712 = 0

Ch mc 0 (index = 0) l entry u tin. Kt qu hn 1 l ci c th d dng c


tng ln nhiu ln bi kch thc ca cu trc tm kim offset cui cng trong
ng dn ca n trong b nh hoc trn a.
2.2.4.3 nh v Inode Table
Nh c gii thiu trong phn 3.1, bng inode c tch bng nhau gia tt c
block group. Nu mt h thng tp tin c to cho php mt ngn inode, ct gia 5
group, c 200 inode trn mt phn ca bng inode. Figure 3-1 minh ha s phn
phi tng t nh th.
Mi phn ca bng inode c th c nh v bng vic dng trng
bg_inode_table ca cu trc group_descriptor ca cc block group tng ng.\

2.2.5 Cc Thuc Tnh Ca File


Hu ht cc thuc tnh ca file (cng nh directory, symbol link, thit b)
c nh v trong inode tng thch vi tp tin. Mt vi thuc tnh khc ch c
cc thuc tnh m rng.
2.2.5.1 Cc thuc tnh chun
SUID, SGID v -rwxrwxrwx

Chng c nh
ext2_inode.i_mode.

vi

cc

bit

SGID

SUID

trong

Kch thc File


Kch thc ca file c th c xc nh ti trng
ext2_inode.i_size.
Owner v Group
Di hu ht s b sung, owner v group l cc gi tr 16 bit, nhng trong
mt vi s b sung ca Linux v Hurd gn y th id ca owner v group l 32 bit.
Khi s dng cc gi tr 16 bit, ch c nhng phn thp (low) c dng hp l,
trong khi s dng gi tr 32 bit, c hai phn cao v thp u c dng, phn cao
c y sang tri ti 16 khong cch sau thm vo phn thp.
Ch phn thp ca owner v group c nh v tng ng trong ext2_inode.i_uid v
ext2_inode.i_gid.
Phn thp ca owner v group c nh v trong ext2_inode.osd.hurd.h_i_gid_high
v ext2_inode.osd2.hurd.h_i_uid_high mt cch tng ng i vi Hurd, v nh v
tng ng
trong
cc trng ext2_inode.osd2.linux.l_i_uid_high v
ext2.osd2.linux.l_gid_high i vi Linux.
2.2.5.2 Cc thuc tnh m rng
Cc thuc tnh m rng cp name:valua kt hp c nh gia cc file v
directory, tng t nh chui mi trng kt hp vi mt tin trnh (process). Mt
thuc tnh c th c xc nh hoc khng xc nh. Nu c xc nh, gi tr ca
n c th rng hoc khng rng.
Cc thuc tnh m rng l s m rng cc thuc tnh thng thng ci m c
kt hp tt c cc inode trong h thng. Chng thng c dng cung cp thm
cc chc nng vo mt h thng chng hn nh thm vo cc c tnh bo mt nh
l Access Control Lists (ACLs) c th c b sung bng cch dng cc thuc tnh
m rng.
Cc thuc tnh m rng c truy xut nh cc i tng nguyn t. Vic c
gi ra tt c gi tr ca mt thuc tnh v lu tr n trong b nh trung gian. Vic
ghi thay i gi tr pha trc bt k bng gi tr mi.
Trong mi inode ext2, chng ta c trng i_file_acl, dnh cho Access Control
Lists. Trng ny c dng lu tr s block thay v lu tr cc thuc tnh m
rng ca mt inode.
Cc thuc tnh m rng lu tr trn block a trng (plain) khng c phn bt
k file no. S b tr block trn a ging nh vic b tr dnh cho cc th mc. Sau
header ca thuc tnh block l header ca entry. Kch thc ca cc header entry
khc vi chiu di ca tn thuc tnh.

Cc gi tr thuc tnh trn block ging nh thuc tnh entry descriptor ca chng,
sp thng hng n cui thuc block thuc tnh. iu ny cho php vic thm vo
cc thuc tnh c d dng hn.
Danh sch tn thuc tnh gn vi mt file c th c gi ra. B iu khin h
thng tp tin tr v mt chui tn cch nhau bi cc k t null, kt thc bng hai k
t null ti phn cui ca danh sch.

2.2.6 Qun tr h thng file EXT2


Filesystem caching : Nhm tng hiu sut ca ton h thng file ext2, cache
c dng lu gi cc d liu c dng thng xuyn. Thng tin ca
filesystem c cache trong b nh, i khi c tham kho ti nh l mt b m
a, bi v vic truy cp vo b nh th nhanh hn nhiu so vi cc a vt l. C
hai qu trnh c v ghi u c cache d liu trn RAM. H thng buffers a
cng ln th filesystem p ng cng nhanh cho cc thao tc c ghi. Do RAM l
b nh tm
thi, buffer s c ghi vo a khi my hot ng, hay khi filesystem
c unmount.
Lnh sync c th dng p kernel ghi tt c cc buffers vo cc file trn a.
Lnh ny c th s dng khng cn tham s.
V d: Vi l do ny c th gii thch v sao khi chp file vo a mm ta thy
h thng chy rt nhanh tuy nhin lc ny thc s file cha c ghi vo a mm.
nu th bn s thy khong 5 giy sau n mm mi bt u sng. Nu trc
ta c tng l chp xong file m rt a mm ra th s khng c file no c
ghi
vo a c.
S phn mnh ca h thng file
H thng ext2 c thit k nhm hn ch ti thiu s phn mnh nn ta
khng cn phi defragment h thng file ext2.
Nguyn nhn gy ra s phn mnh ca file system l vic ghi file nhiu ln trn
a. Trong cc file lm b nh m rng ca h thng trn a l c nguy c b
phn mnh nhiu nht.

i vi cc h iu hnh v MS Windows, h thng b nh m rng ny


nm trn cng mt partition chnh ca h thng thng qua file pagefile.sys cn
trong

Linux th h thng b nh m rng ny c cho ra mt partition ring nn hn


ch rt nhiu s phn mnh.

2.3 H thng File EXT3


xy dng da trn c s cua h thng file
ext2 m Linux ang s
c
chun
thm
nng mi v cung quan trong, journaling file system,
dung, ext3 a
chc
vao
giup thao
tac

d
liu

an
toan

hn.

Khi h iu hnh b tt bt thnh lnh (mt in, li phn mm, v.v..), trong h
thng file xut hin li do file ang ghi d, a ch cha c cp nht, Nu h
thng file ang dng khng thuc loi h thng file nht k (ext2,), khi khi
ng li, h iu hnh s pht hin c ln tt b li (unclean shutdown) trc
v t ng dng phn mm fsck (file system check) sot v sa li. Nu cng
ln, qu trnh chy fsck s kh lu v nu li nng fsck khng sa c n s bo
cho h iu hnh khi ng vo ch single user mode ngi dng sa.
H thng file nht k trnh vic hng h thng file bng cch ghi mt nht k.
Nht k l mt file ring ghi li mi thay i ca h thng file vo mt vng m
(thay v ghi thng vo h thng file trn cng). Sau tng khong thi gian nh
trc, nhng thay i c thc hin chnh thc vo h thng file. Nu gia
khong thi gian , h thng b tt t ngt, file nht k s c dng khi
phc li cc thng tin cha lu v trnh lm hng metadata ca h thng file.
[Metadata ca h thng gm cc thng tin v cu trc d liu trn cng: ngy
gi to, xo file v th mc, tng gim dung lng file, ch nhn ca file, ...]
Tm li, h thng file nht k l mt h thng file t cha li bng cch
dng mt file nht k lu li mi thay i trc khi thay i c thc hin tht
s vo h thng file.

S mt h thng file nht k.

Ext3 con s dung c ch JBD (Journaling Block Device)


v thng tin thao
bao
trn d
, c anh gi l tin
hn so
ca h thng ch
hin
ta
liu
cy
vi
c thc
c
journaling trn ch muc d
liu
JFS.
Vi

ca h
v hai
c bao ln

ext2; nhng trong mt


vai
cng di
chuyn

(journaling of meta-data only) nh Reiserfs, XFS hay


nh
vy

trng
hp

th
hiu

sut ghi d
liu

h ly hn, nn tc thao
p tac

vi

thao
tac

bng
cac
trn d
liu

na ch hn
o m

, nh thng tin trong journal log m


u
d
liu

nhanh hn.

i vi nhng ng dung u tin cho tin


cua d
cy
liu
th ext3 l
chon thich
. Ngoai ra, ext3 con cho
thu
la
hp
phep
n
trn d
ta
liu
c

c
phn

h thit l thng s cho h thng ch


p thc

hn l tc ghi n
cai thi tc thao
n
hi journaling i
n

(mode: data=writeback v data = ordered).

Vi

Nhm 7- Lp TDL&MMT t 1

40

mode
ng nhanh, d liu
data=writ
eback,
qu trinh
khi

c ghi vao

ia

ngay sau khi ghi xong thng tin trong journal log (write back),
vi
khi cung
xay
cha kip ghi
vao

ra tinh trang h d
liu
a, nhng b
lai

n s c
u xay
tc thao
tac

mode
nay

ra ngay sau khi ghi journal log m


file nhanh hn trong mt vai

trng hp .
Vi mode data=ordered, d
liu
lun lun
a tinh
cho
bao
m toan
phep
cung chinh l mode
mc

inh cua ext3.


Vi

hi trn c hai: d
th
n liu
c
giup cai

c
ve
n

thi tc truy
n
cp

ghi ln ia
ri mi journal log,
trc
n
cua d
trong moi tinh hung v y
liu
mode data=journal th
vic

v journal log; thng tin c ghi chi


tit
d
liu

Nhm 7- Lp TDL&MMT t 1

nh ti u
vic

di
chuyn

cua
u

ba v c
o
v
nhiu

hn

t, hoat ng

41

rt tt i
vi
nhin do
phai
hi
ma
chm
y

ki d
l database
d
dung chung trn mang (NFS), tuy
u liu hoc
liu
oc lai nhi loai thng tin trn journal log nn
gian
ng lai
u
thi
khi
hn so
vi

hai mode trn mt chut.

V
ban

cht c truc cua ext3 c xy dng


toa d trn c s cua ext2
u hoan
n a
i d dang
d
ang tn trn
h thng ext2 sang
nn ta c th
cac
liu tai
cac
chuyn
ext3 m d
liu
Vi

khng h b
an

h hng v
thc

hi tng i d dang, n gian.


n

kernel Linux t 2.4.15 tr ln th ext3 c


sn

(patch) nh
cac

version cu.
Hin

m khng
cn

tai hang Linux RedHat a


sn

phai a thm vao


module ext3 vao

RedHat 7.2.

kernel 2.4.7-10 trong


ban

T phin bn Red Hat 7.2, h thng tp tin mc nh l ext3.


Block size

Kch thc file ln nht Kch thc H Thng file ln nht

1 KiB

16 GiB

2 TiB

2 KiB

256 GiB

8 TiB

4 KiB

2 TiB

16 TiB

8 KiB[limits 1]

2 TiB

32 TiB

H thng file ext3 thc cht l phin bn nng cao ca ext2. Ext3 c nhng
u im sau:

Tnh kh dng:
Khi b ngun b hng hay h thng v bt cht, mi phn vng nh

dng theo ext2 trn my tnh phi c kim tra vic ng nht ca chng
bng chng trnh e2fsck. Vic ny cn khong thi gian tin hnh lm
thi gian khi ng h thng b tr ng k, c bit l vi phn vng
ln.Trong sut thi gian ny d liu trn phn vng khng c dng n.
Ext3 c a ra khng cn phi thc hin vic kim tra khi h
thng my tnh b tt t ngt, vic kim tra ch xy ra khi phn cng b
h hng, chng hn nh a cng b h. Thi gian kim tra khng ph
thuc

Tnh ton vn ca d liu.


H thng tp tin ext3 cung cp vic bo ton d liu trong vic h thng
tt t ngt, v cho php ta chn loi v mc bo v d liu. Mc nh
l mc bo v cao nht (high level)

Tc
Bt chp vic ghi d liu nhiu ln hay mt ln, ext3 c s lng d liu
a vo qu trnh ghi nhiu hn hn so vi ext2 bi ext3 ti u ha u
c chuyn ng ca a cng. Ta c th chn mt trong ba mc ti
u tc nhng iu ny c th lm gim tnh ton vn ca d liu.

D dng chuyn i
Tht d dng ta chuyn i t ext2 ln ext3 v t c nhng li ch
ca mt h thng tp tin mnh m khng cn phi nh dng li.

chuyn i t ext2 sang ext3, ng nhp bng root v g lnh:


/sbin/tune2fs j /dev/hdbx
/dev/hdb : thay bng tn thit b v x l s th t ca phn vng cn
chuyn i.

2.4 H thng File EXT4


H thng File Ext3 tng c s dng rng ri nht trong HH Linux trong
nhiu nm. Trc s gia tng dung lng ca cng v i hi mang tnh cht ngh
thut, th h tip sau h thng tp tin phin bn 3 (Ext3), h thng tp tin phin bn
4 (Ext4), c pht minh vo nm 2006. H thng tp tin mi ny kt hp vi kh
nng m rng v nng cao hiu sut gip cho h thng tp tin rng ln hn, trong
khi vn duy tr c tin cy v tnh n nh. Phin bn 4 s ph hp vi
khi lng cng vic ln hn, a dng hn v c mong i thay th phin bn
3.
EXT4 c pht trin da trn file h thng Ext3. Trong cc ln ci tin Ext4
c ci tin hn nhiu so vi Ext3 (c ci tin t Ext2 ln, ch yu thm vo s
cp nht nht k), nhng Ext4 li thay i cu trc d liu ca file h thng chng

hn nh vic lu tr tp tin d liu. to ra tp tin h thng vi ci tin thit k,


hiu sut tt hn, tin cy cao v nhiu cc tnh nng tin tin.

2.4.1 Gii thiu


Phin bn 3 tng l h thng tp tin Linux rt ph bin bi tin cy cao,
giu tnh nng thit lp, hiu sut tng i tt, v kh nng tng thch mnh m
gia cc phin bn. Thit k cng nhc ca phin bn 3 tng mang li danh ting
l s n nh v mnh m, nhng cng hn ch kh nng m rng quy m v hot
ng trn cc cu hnh ln.
Vi p lc i hi dung lng cng mi ngy cng ln v s h tr thay
i kch thc trc tuyn phin bn 3, yu cu v gii quyt kh nng m rng v
hiu sut ca phin bn 3 l cp bch hn bao gi ht. Hin nay, mt trong cc gii
hn tn ng phi i mt vi phin bn 3 l kch c ti a ca tp tin h thng 16
TB. vo 28/6/2006, Theidore Ts'o, nh duy tr EXT3, thng bo k hoch mi cho vic pht
trin EXT4.

Mt phin bn pht trin ca ext4 xut hin trong phin bn kernel Linux
2.6.19. Ngy 11/10/2008, cc bn v li nh du ext4 nh m n nh, kt thc ca
giai on pht trin v gii thiu ext4. Kernel 2.6.28, c cha h thng tp tin ext4,
cui cng c pht hnh vo ngy 25/12/2008. Ngy 15/1/2010, Google tuyn
b s nng cp c s h tng lu tr ca n t ext2 sang ext4. Ngy 14/12/2010 h
cng thng bo h s s dng ext4, thay v YAFFS, trn Android 2.3.

2.4.2 Kh nng nng cp m rng


Mc tiu u tin ca phin bn 4 l c th tr thnh mt h thng tp tin ln
hn. Trong phn ny chng ti s tho lun v tnh nng m rng lun c sn
phin bn 4.
2.4.2.1 H Thng Tp Tin Ln
Dung lng 32 bit trong phin bn 3 l nguyn nhn lm gii hn kch thc
h thng tp tin 16 TB hin hnh. m rng gii hn ca h thng tp tin, phng
php n gin l tng dung lng bit c s dng i din cho s lng khi v
sau sa cha tt c cc tham chiu cho cc d liu v cc khi siu d liu.
Trc y, phin bn 3 c bn bo li cp 3 vi kh nng h tr s lng
khi vt l ln ti 48 bit. phin bn 4, thay v m rng s lng khi ln n 64
bit, ngi pht trin phin bn 4 quyt nh m rng bn vi s khi 48 bit. C
hai iu ny nhm nng cao nng lc ca h thng tp tin v ci thin ln tp tin
mt cch hiu qu. Vi s khi 48 bit, phin bn 4 c th h tr h thng tp tin vi
kch thc ti a ln n 2(48+12) = 260 bytes (1 EB) vi kch c khi 4 KB.

Sau khi thay i s lng khi d liu 48 bit, bc tip theo l chnh sa cho
chnh xc cc tham chiu n cc khi siu d liu tng ng. Siu d liu tn ti
trong siu khi, m t nhm, v journal. Cc trng mi c thm vo phn
cui ca cu trc siu khi lu tr 32 bit quan trng nht cho cc bin blockcounter, s_free_blocks_count, s_blocks_count, v s_r_blocks_count.
K t khi a ch cc khi thay i trong h thng tp tin c ng trn tp
ch, khi lp nht k (JBD) cng c yu cu h tr cc a ch khi t nht l
48 bit. V th, JBD phn nhnh thnh JBD2 h tr s khi hn 32 bit, cng lc
th phin bn 4 cng c chia hai. Mc d hin ti ch c phin bn 4 l s dng
JBD2, n c th cung cp h tr ghi li nht k chung ca c hai h thng tp tin 32
bit v 64 bit.
Mt cu hi t ra rng ti sao chng ta li chn 48 bit thay v c h tr 64
bit. tc hin ti, mt h thng tp tin 1EB s phi mt 119 nm hon thnh
mt e2fsck y v 65536 ln so vi h thng tp tin 264 khi (64 ZB).
2.4.2.2 c im
Sau khi m rng gii hn c to ra bi s khi 32-bit, dung lng h thng
tp tin vn cn b hn ch bi s lng ca cc nhm khi trong h thng tp tin.
Vi 128 MB mc nh (227 byte) kch thc nhm khi, ext4 c th c t nht 227/64
= 221 nhm khi. iu ny gii hn ton b kch thc h thng tp
tin 221 * 227 = 248 byte hoc 256TB.

Cc gii php cho vn ny l s dng tnh nng nhm siu khi (META_BG), c
trong ext3 cho tt c cc phin bn 2.6. Vi tnh nng META_BG, h thng tp tin
ext4 c phn chia thnh nhiu nhm siu khi. Mi nhm siu khi l mt
cm ca cc nhm khi c nhm cu trc m t c th c lu tr trong mt khi
a
duy
nht.
i
vi ext4 h
thng
tp
tin vi kch
thc khi 4 KB, mt khi siu phn vng duy nht nhm bao gm 64 nhm
khi, hoc 8 GB khng gian a. iu ny lm tng cc nhm ti a 221 khi hn
ch gii hn cng 232, cho php h tr cho h thng tp tin y , 1 EB.
2.4.2.3 Lu file theo nhm block
(Extents)
H thng tp tin ext3 s dng mt chng trnh lp bn khi gin tip
cung cp nh x mt mt t khi logic n a. Chng trnh ny rt hiu qu cho
cc tp tin tha tht hoc nh, nhng c chi ph cao cho cc tp tin ln hn, hot
ng km hn, c bit l trong vic xa v ct ngn file ln.

Nh cp trc , extent mapping c bao gm trong ext4. Cch tip


cn ny nh x hp l n khi vt l cho cc tp tin ln k tip mt cch hiu qu.
Mt extent l 1 m t duy nht cho mt lot cc khi tip gip vt l.

Cu trc extent.
Nh chng ta tho lun trc , trng khi vt l trong cu trc extent chim
48 bit.
Mt extent n c th tng trng cho 215 khi tip gip hoc 128Mb vi 4Kb kch
thc khi.
Bn extent c th c lu tr trong cu trc inode ca ext4 mt cch trc tip.
iu ny ni chung l i din cho cc tp tin nh hoc tip gip. i vi cc
tp tin ln c phn tn cao hoc tha tht , cn nhiu extent hn. Trong trng
hp ny, cy extent c su ko i c s dng lu tr nh x ca 1 file.

Cch b tr ca cy extent.
Gc ca cy ny c lu tr trong cu trc inode ext4 v extent c lu tr
trong cc nt l ca cy. Mi nt trong cy bt u vi mt tiu extent, trong
c s lng cc mc hp l trong nt, kh nng cc mc ca nt c th lu tr,
su ca cy, v mt s magic. Cc s magic c th c s dng phn bit gia
cc phin bn khc nhau ca extent, l nhng ci tin mi c thc hin cc tnh
nng, chng hn nh tng s khi ( block ) 64-bit.
2.4.2.4 Chng phn mnh trc tuyn
Mc d k thut ghi tr lm gim phn mnh nhng sau mt thi gian mt
h thng file ln vn b phn mnh. Mt cng c xo phn mnh online (e4defrag)
c xy dng x l vic . C th dng cng c ny xo phn mnh mt file
ring r hoc c h thng file. Cng c ny c th chng phn mnh cc tp tin c
nhn hoc ton b h thng tp tin. i vi mi tp tin, cng c ny to
ra mt inode tm thi v phn b cc mc tip gip vi inode tm thi s
dng nhiu khi phn b. Sau n sao chp cc tp tin d liu gc vo b nh

cache trang v xa cc trang bn khi inode tm thi. Cui cng, n di chuyn


khi con tr t inode tm thi cho cc inode gc.
2.4.2.5 Ci tin tin cy
tin cy l rt quan trng i vi ext3 v l mt trong nhng l do khin n
rt ph bin. V vy, cc nh pht trin ext4 ang t nhiu n lc vo vic duy tr
tin cy ca nh dng tp tin trn. C th d dng thit k nh dng tp tin 64-bits
nhng n s khng c nhiu ngi dng, v th gii cng ngh cha cn dng
nhiu dung lng n mc nh vy.
Mc d s dng k thut lu nht k (journaling) v RAID, vn c nhng
nh dng tp tin li xut hin bn trong a cng. Dng u tin ca vng bo v s
pht hin v ch ng trnh li bng s kt hp ca thit k siu d liu, bn trong
c cc phn tha (re-dundancy) c t chc theo nhiu cp , s kim tra tng
th tnh ton vn ca d liu. Nu xy ra li th dng lnh kim tra tnh ton vn
(fsck) pht hin v sa cha li tp tin h thng.
Mt trong nhng mi quan tm chnh i vi tt c cc nh dng tp tin l
tc xc nhn v sa li li tp tin sau khi n b li (corruption). Vi dung lng
lu tr RAID mc hp l, mt lnh fsck y ca nh dng tp tin ext3 dung
lng 2TB c th mt t 2 n 4 gi to ra mt tp tin mi c coi l "sch s".
Qu trnh fsck s tng ln thnh nhiu ngy nu c mt lng ln cc khi tp tin
c chia s, s cn tri qua nhiu qu trnh sa cha n.
Mt s c im, v d phn m rng ca nh dng tp tin, c gn thng
vo vng siu d liu ca ext4 c nh ngha sn. Rt nhiu nhng thay i,
ang c x l, hoc ang c thit k chc chn ext4 s tr thnh nh dng
hon ho.

4.4.2.6 m s inode (index-node) cha dng v vic lm lnh e2fsck nhanh hn


Trong lnh e2fsck, vic kim tra cc inode cha dng l tn thi gian nht
ca qu trnh x l. N yu cu phi c tt c cc inode ln ca bng inode t a
cng, qut xem ci no tn ti, ci no khng tn ti, hoc ci inode no cha c
s dng, sau xc minh v cp nht thnh mt khi bn cc bit (bitmaps) c
nh. Cc nhm v bng inode cha c phn tch s c nh du c im
cho php qu trnh qut s b qua n mt cch an ton. Vic ny c th lm qu
trnh e2fsck gim cn t 2 n 20 pht, ph thuc vo nhiu hay t tp tin cn x l.
c

im ny cng c th c dng trong lnh mke2fs hoc tune2fs thng qua ty chn
-O uninit_group g vo t dng lnh.
Vi c im ny, b nhn (kernel) lu tr mt s lng cc inode cha c
s dng, ct vo cui mi khi bng inode. Kt qu l, e2fsck c th b qua c 2 qu
trnh c v qut cc khi ny t a cng. N s c gn mc nh l khi cc
inode cha s dng. m bo rng cc s inode cha dng l an ton lnh
e2fsck c th s dng, nhm cc inode c nh danh bng kiu kim tra CRC16
thm vo bn trong, cho php tt c cc d liu (fields) bn trong c th xc minh
li.
Kiu nh dng tp tin ext3 c bn ch s dng t 1% n 10% cc inode ca
chng, v phn ln cc inode c gi c nh phn u ca bng inode, n c th
hy b qu trnh x l cc inode c nh ny v tng tc nh b qua mt bc x l.
B nhn trung tm (kernel) s khng tng s lng inode cha dng ln, nu tp tin
b xa i. B m ny ch c cp nht mi khi lnh e2fsck chy. Trong trng
hp c rt nhiu khi inode b xa, lnh e2fsck s sp xp li ln chy tip theo.

Tc ca lnh e2fsck tng ln ng vi s khi inode cha c phn tch.


Hnh trn cho thy vi nh dng ext3 th lnh e2fsck tng ln t l thun vi
tng s inode ca nh dng tp tin, khng k n s lng inode c s dng.
nh dng ext3, e2fsck mt cng s thi gian x l 0 tp tin v 2,1 triu tp tin.
nh dng ext4, vi s inode c nh du rt nhiu, lnh e2fsck ch ph thuc vo
s inode c s dng. Nh hnh trn cho thy, ch s fsck (giy) ca nh dng
tp tin ext4 khong 100.000 tp tin ch bng mt phn nh ca nh dng ext3 cng
vi 100.000 tp tin.
Ngoi vic c th m cc inode cha c s dng, lnh mke2fs v lnh
e2fsck cn c th nh du cc khi nhm inode hoc bn bt inode cha c
phn tch, v th nhn (kernel) khng cn c chng t a cng ra khi c nh cc
nhm vi nhau. Tng t, lnh e2fsck khng cn c cc bn bit ny t a cng,
mc d n cng khng ng vi tr quan trng trong vic tng tc b nh. iu

quan trng nht l lnh mke2fs khng ghi ra bn bt hoc bng inode theo nh
dng

thi gian nu g lnh mke2fs -O lazy_bg nh trc kia. Ghi bng cc inode c th
mt mt khong thi gian nht nh.V s gy ra vn vi nh dng tp tin ln do
s lng cc trang li c to ra trong mt thi gian ngn .
2.4.2.7 Kim tra tng th (checksum)
Vic thm siu d liu kim tra tng qut vo nh dng ext4 s cho php
nh dng ny d dng pht hin ra li sai st, v s t tm cch sa li thch hp
thay v tin tng vo d liu ly t a cng. Cc m t ca nhm d liu c
thm phn kim tra tng th vo trc mi on (section) ca nhm. Tip theo, vic
kim tra tng th phi kim tra Nht k (journal), bi v n cha mt cao cc siu
d liu quan trng, v n lun lun c ghi ra lin tc. Do cc thay i hoc li
ngu nhin s c pht hin t y.
Nhng kim tra thng th thm vo nht k ca nh dng ext4 l tng i
hon thin. Trong nh dng ext3 v ext4, mi qu trnh trao i d liu lu trong
nht k c cu trc gm mt khi m u v mt khi cha d liu. Trong sut qu
trnh tin hnh ghi nht k, khi cha d liu s khng c gi n a cng cho
n khi khi m u v c khi siu d liu c m t y , sau tt c c
ghi vo a cng. Qu trnh trao i d liu tip theo cn i cho n khi khi d
liu trc c ghi vo hon ton a, v n bt u c th dng chnh sa
nh dng tp tin.
Vi 2 qu trnh lu tp tin ring bit, nu khi cha d liu tp tin b trng s
th t vi khi m u tp tin, th n s ra hiu cho qu trnh trao i d liu lm li
vo lc khi phc tp tin. Nu nh c 2 khng khp nhau, qu trnh khi phc nht
k kt thc. Tp tin b li. Tuy nhin thc t c nhiu nguyn nhn dn n tp
tin b li nh dng.
Vi kiu kim tra tng th nht k, nht k tnh ton da theo m CRC32 trn
tt c cc khi trong qu trnh trao i d liu (bao gm c khi m u), v vic
kim tra tng th c ghi vo khi cha d liu ca qu trnh trao i. Nu vic
kim tra tng th khng khp vi nht k lu tp tin, tc l c du hiu ca mt
hoc nhiu khi siu d liu khng c ghi vo a cng hoc b t khi trao
i d liu. Sau qu trnh trao i d liu (c nhng qu trnh sau ) b hy b
v my tnh b treo, cng nh khi cha d liu khng c ghi ra na.
K t khi qu trnh kim tra tng th trong nht k cho php nhn ra khi d
liu cha c ghi vo nht k, th n khng cn 2 qu trnh lu tp tin ring r nh
trc kia na. Khi cha d liu c th c ghi ng thi vi tt c cc phn cn
li

ca tp tin cng lc trong qu trnh trao i tp tin. Qu trnh ny tht s lm tng x


l nh dng tp tin ln (khong 20%), thay v lm qu ti h thng nh trc kia.
C th thm phn kim tra tng th vo phn ui m rng ca tp tin, bn
c nh cc bt, cc inode, v c ng dn tp tin na. iu ny c th lm
c nh vo vic lu nht k qu trnh trao i tp tin. Th mt thi gian tnh ton
kim tra tng th ca nh dng tp tin mi khi n thay i, chng ta s c th ghi
li nht k thay i ca tp tin v sa cha n nu b li vo lc khi phc. Cc khi
d liu c th cha siu d liu cng vi d liu kim tra c ghi li cng lc vo
tp tin.
2.4.2.8 Cc c im mi
Cc c im mi vn ang c tip tc thm vo nh dng tp tin ext4.
Hai c im ng mong i nh dng tp tin ext4 l lu du vt thi gian v tp
tin n tng nan-giy v c th lu tng phin bn ca inode. Hai c im ny u
nhm qun l khi no tp tin b thay i v nhng s thay i ca tp tin.
Ext3 ch lu du vt thi gian cho tng tp tin n gii hn giy. Nhng vi
chip tc cao ngy nay th n c th thay i nhiu tp tin ch trong mt giy.
Trong nh dng ext4, k t khi s dng inode ln hn, c th lu li du vt thi
gian chnh xc n nan-giy. Vi rng 32 bt cho cc trng atime, mtime v
ctime, c thm mt trng mi l crtime c to ra khi tp tin c to mi, v
c thm vo inode ca nh dng ext4. 30 bt u c dng lu d liu ca
nan-giy, 2 bt cn li c s dng m rng thi gian, tnh theo k nguyn n
272 nm tip theo.
Cc phin bn NFSv4 my khch cn cc cp nht ca tp tin t my ch,
theo th t d liu my khch lun l mi nht. Ngay c khi ctime c h tr
n nan-giy, th du vt thi gian ca tp tin cng khng cn cp nht n mc
nan-giy. Cc inode ca nh dng ext4 c chia lm cc phin bn bng cch cp
mt b m chung 64-bt cho mi inode. B m ny tng ln mi khi tp tin c
thay i. B m c khi to khi tp tin bt u c to ra. Vic trn b m l
gn nh khng th xy ra c, v tng s b m c tnh ton v kim tra.
Phin bn th i ca cc trng inode c gii thiu gm 128 bt, trong 32 bt
dng cho inode thng v 32 bit dng cho inode c ln.
Nng cp nh dng
Ext3 c pht trin c th tng thch ngc vi nh dng tp tin kiu
ext2, ph thuc vo c trng ca ngi s dng. Trong khi ext4 n lc gi li
kh nng tng thch vi ext3 cng nhiu cng tt, i khi vn khng tng thch
nu cch sp xp d liu trn a cng b thay i.

Nhm 7- Lp TDL&MMT t 1

50

Mc d vy, ngi dng vn c th d dng nng cp nh dng tp tin t


ext3 ln ext4, ging nh c th nng cp t ext2 ln ext3. C nhiu cch ngi
dng c th trc tip nh dng kiu ext4 cho tp tin, hoc nng cp nh dng ln
ext4 m khng cn sao lu v khi phc li tp tin .
Nng cp t ext3 sang ext4
Rt n gin nng cp nh dng cho ngi dng ext3 bt u s dng
phn vng b nh m rng (extents) v mt vi c im ca nh dng ext4, m
khng cn phi sao lu hoc nng cp tp tin. Bng cch dng ln (mounting) mt
tp tin c nh dng ext3 thnh ext4 (vi phn vng b nh c php truy cp),
tp tin mi to ra c s dng phn vng b nh m rng, nhng bn cht n vn
cn gin tip tr n khi bn bit ext3 v ch c b ngoi c th hin l ext4.
Mt ci c (flag) bn trong bng inode gip phn bit gia 2 nh dng ny, cho
php c hai cng tn ti bn trong mt nh dng tp tin. Tt c cc c im ca
ext4 c bn da vo phn vng b nh m rng, v d nh xc nh v tr, gn nhiu
khi inode c nh, c th s dng c ngay khi tp tin c gn phn vng b
nh m
rng.
Mt cng c cng c to ra c th nng cp nh dng tp tin h thng
t ext3 sang ext4. Cng c nng cp ny thc hin hai chc nng chnh: Nng cp
nh x t con tr gin tip sang phn vng b nh m rng, v m rng chiu di
inode ln 256 bytes.
Nng cp phn vng b nh m rng: bc u tin c th thc hin trc
tuyn (online) v s dng cng c chng phn mnh. Trong sut qu trnh
x l, tp tin s tng bc c thay i nh x sang phn vng b nh
m rng. Bng cch ny, tp tin s c chuyn i sang phn vng b
nh m rng v chng phn mnh cng mt lc.
Nng cp inode: M rng cu trc ca inode th phi c thc hin thng
qua ngoi tuyn (offline). Trong trng hp ny th d liu c sao
lu, ton b nh dng tp tin h thng s c qut v chuyn i sang
phn vng b nh m rng v m rng chiu di inode.
i vi nhng ngi cha mun chuyn sang dng nh dng tp tin ext4
nhng mun s dng cc c trng ca ext4, th cng c th chun b tp tin
ext3 ca h nng cp ngoi tuyn sau . Nu mt tp tin ext3 c nh
dng vi cu trc c chiu di inode ln, 256 byte hoc ln hn, th c trng
v phn vng b nh m rng ca ext4 c th dng c ngay v lun. Sau
ngi dng mun nng cp hon chnh ln ext4, v d nng cp cc c
im nh chiu di inode ln, s dng b lu vt thi gian chnh xc n
nan- giy, th ngi s dng cn dng b nng cp ngoi tuyn.

Chuyn nh dng xung ext3 t ext4


Khng phc tp nh vic nng cp ln ext4 t ext3, vic chuyn nh dng
ngc tr li ext3 kh d dng. Ngi dng ch vic dng li (remount) nh dng
tp tin vi ty chn noextents sau lnh mount, sao chp tt c cc tp tin tm v i
tn n trng tn vi tp tin c. Sau tt c cc tp tin s c chuyn i ngc tr
li nh x gin tip vo khi cc bit, v c INCOM-PAT_EXTENTS phi c xa
i bng lnh tune2fs, sau nh dng tp tin c th dng ln (mount) thnh ext3.
Tc thc thi
Chng ta s kim tra tc thc thi ca nh dng ext4, so snh vi nh
dng ext3 v XFS, bng 3 bi kim tra nh dng tp tin h thng. nh dng ext4
c kim tra vi phn vng b nh m rng v cp pht b nh tr (delayed
allocation) c php truy cp. Bi chm im s phn tch v chn ra nhng thay
i ng k ca ext4. 3 bi chm im m chng ta chn y l: Flexible
Filesystem Benchmark (FFSB), Postmark, v IOzone. FFSB c iu chnh
c th cha c mt s lng ln cc tp tin, dng kim tra c tnh phn vng
m rng ca nh dng ext4. Postmark c dng nh gi hiu nng
(performance) ca ext4 vi mt s lng nh tp tin. Cui cng, chng ta dng
IOzone tnh ton khi lng thc thi trung bnh ca nh dng tp tin ext4.
Cc bi kim tra c chy trn b nhn 2.6.21-rc4 vi vng cp pht b nh
tr c bt. C 2 nh dng ext3 v ext4 u c dng ch ghi tp tin, v
cc ch vng m rng b nh, cp pht b nh tr c t hp l. Cn nh
dng XFS chng ta t cc ty chn mc nh khi dng (mount) tp tin.
Hai bi kim tra FFSB v IOzone c chy trn cng mt CPU 4 nhn tc
2.8 Ghz ca hng Intel(R) Xeon(TM), H thng gm RAM 2 GB x, a cng
68GB ultra320 SCSI (10000 vng pht). Postmark cng chy trn mt CPU 4 nhn
tc 700 MHz chp Pentium(R) III vi RAM 4 GB, a cng 9 GB SCSI (7200
vng pht). Kt qu ca bi kim tra bao gm c tp tin d liu nh dng raw c
ti trang ch wiki ca ext4. http://ext4.wiki.kernel.org.
Kim tra bng FFSB
FFSB l mt cng c chm im nh dng tp tin h thng rt mnh, c th
gi lp nhiu h thng cn bng ti khc nhau kim tra tp tin. Chng ta s kim
tra vic to ra mt tp tin dung lng kh ln s dung a lung. Kim tra c thc
hin vi khong 4 lung chy a nhim song song, kim tra ng thi 24 tp tin,
mi tp tin dung lng ti 1GB. Cn kim tra tc to ra tp tin v tc ghi
tp tin vo a cng.

Bi kim tra FFSB ca cc nh dng khc nhau.


Kt qu l, nh ta thy, tc ghi tp tin ca nh dng ext4 tng ln t 35%
n 40% so vi nh dng ext3. Tc thc thi ghi tp tin ca xfs v ext4 l ngang
nhau. ng nh mong i, vic phn b b nh m rng v cho php cp pht b
nh tr c hiu qu lm tng kh nng x l tp tin dung lng ln v rt ln.
Kim tra bng Postmark
Postmark c bit n l mt bi kim tra gi lp mt hm th t my ch
phi x l rt nhiu th gi t my khch, theo cc ng n-lung (singlethreaded) gi n v thng c dung lng tp tin nhn c l nh hoc rt nh.

Bi kim tra Postmark c ghi cc nh dng khc nhau.

Biu trn cho thy ext4 vt tri hn khong 30% so vi 2 nh dng


cn li. Trong khi b iu khin trung tm (CPU) vn hot ng tng t nhau,
khng b qu ti hn. Bi v cc siu d liu ca ext4 c nn li trong phn
vng b nh m rng. Ta cng thy qu trnh ghi nhanh hn c v tt c c ghi
vo trong b nh chnh (memory).
Kt qu ny cho thy rng, bn cnh vic c th x l tt nhng tp tin c
dung lng ln, nh dng ext4 cn c th x l rt nut nhng tp tin dung lng
nh m khng nh hng n tc chung ca h thng.

Kim tra bng IOzone


Chun b cho bi kim tra bng Iozone, h thng c khi ng vi
64MB b nh sn sng c ghi d liu. Bi kim tra c tin hnh vi khong
8MB bn ghi bao gm rt nhiu tp tin vi nhiu kiu dung lng khc nhau. Cc
php th nh ghi, ghi , c, c li, ghi ngu nhin, v c ngu nhin c thc
hin kim tra k.

Kt qu kim tra vi Iozone: tc trao i 512MB tp tin


Hnh trn cho thy kt qu ca vic c ghi 512MB tp tin. Tng kt li ta
thy kt qu l c s tng tc vt tri ca ext4 so vi ext3, c bit l vi qu
trnh ghi , ghi ngu nhin v c li. Trong bi kim tra ny, xfs vn c tc c
kh tt cn ext4 cho tc ghi kh tt.
Nh chng ta trao i bn trn, nh dng tp tin kiu mi ext4 mang
li nhiu c im ni bt hn ext3, lm cho ext4 tr thnh nh dng ph bin cho
nn tng cn x l cc tp tin ln. c rt nhiu c im c hon thin ext4
tr nn ph bin trong nn tng Linux, m iu c bn nht l mt nh dng tp
tin n gin, ti u, vi cn bng tt, ng tin cy, tc thc thi nhanh v n
nh. Nhng ngi dng nh dng ext3 s sm phi nhn ra rng h nn cp nht
ln nh dng ext4, mt nh dng trong cng gia nh ext nhng mang trong mnh
rt nhiu c im vt tri.

Kt lun
Nh vy ta c th thy t khi ra i n ny, tnh n thi im hin ti,
Linux c rt nhiu bin th v phin bn khc nhau, c xy dng v pht trin
ring bit bi cc cng ty phn mm v cc c nhn. Hin nay, sau hn 20 nm tn
ti v pht trin, Linux c s dng rng ri trn ton th gii, trn cc my tnh c
nhn, cc my ch, n cc thit b di ng, my nghe nhc, my tnh bng, cc my
ATM v thm ch trn c cc siu my tnh Ngy nay, Linux c xem l biu
tng ca s chia s cng ng, c pht trin bi cng ng v c ng h v
hon ton min ph. Vi nhng tnh nng ngy cng tin tin, h thng File c
nng cp, hon thin p ng nhu cu ca ngi s dng. H iu hnh Linux s
ngy cng pht trin trong tng lai.

TI LIU THAM KHO


Cc cun sch tham kho :
[1] Trn Thch Tng, Bo mt v Ti u trong Red Hat Linux,
2003
[2] Tiu ng Nhn, Gio trnh h iu hnh Linux, NXB H QG TP.HCM
[3] Tiu ng Nhn, Gio trnh dch v mng Linux, NXB H QG
TP.HCM
[4] Hunh Thc Cc, Gio Trnh HH Linux, Vin Cng Ngh Thng
Tin [5] Tham kho File: Ext4-File-System 6/2007 IBM Linux Technology
Center Cc a ch Website tham kho :
[1] http://www.diendanlinux.org
[2] http://www.quantrimang.com
[3] http://google.com.vn
[4] http://en.wikipedia.org
[5] Mt s website lin quan khc.

You might also like