You are on page 1of 62

Mc lc

LI GII THIU............................................................................................................. 2
CC T VIT TT.......................................................................................................... 3
Chng 1. Tm hiu v h iu hnh Linux.............................................................................4
1.1.

Linux l g?........................................................................................................ 4

1.2.

Ti sao Linux pht trin?........................................................................................ 5

1.3.

Cc bn pht hnh Linux........................................................................................ 6

1.4.

Li th ca Linux................................................................................................. 6

1.5.

Ai pht trin Linux?.............................................................................................. 8

Chng 2. Phn vng a cng............................................................................................. 9


2.1. Gii thiu chung...................................................................................................... 9
2.2. H thng file EXT2.................................................................................................. 9
2.2.1. Gii thiu......................................................................................................... 9
2.2.2 T chc a................................................................................................... 11
2.2.3. Cu trc th mc.............................................................................................. 31
2.2.4. Inodes, File Identifiers....................................................................................... 39
2.2.5. Cc Thuc Tnh Ca File.................................................................................... 41
2.2.6. Qun tr h thng file EXT2................................................................................ 43
2.3. H thng File EXT3............................................................................................... 44
2.4. H thng File EXT4............................................................................................... 46
2.4.1. Gii thiu....................................................................................................... 46
2.4.2. Kh nng nng cp m rng................................................................................ 47
Kt lun....................................................................................................................... 61
TI LIU THAM KHO................................................................................................. 62

Nhm 6 lp LTHCNTT 04-01 i Hc i Nam

Page 1

LI GII THIU
Trong nhng nm gn y HH 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 6 lp LTHCNTT 04-01 i Hc i Nam

Page 2

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

Nhm 6 lp LTHCNTT 04-01 i Hc i Nam

Page 3

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.
Nhm 6 lp LTHCNTT 04-01 i Hc i Nam

Page 4

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
Nhm 6 lp LTHCNTT 04-01 i Hc i Nam

Page 5

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 ?
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
Nhm 6 lp LTHCNTT 04-01 i Hc i Nam

Page 6

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 trnh bin
dch FreePascal. Nu bn khng thch s dng nhng ngn ng va k, 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.

Nhm 6 lp LTHCNTT 04-01 i Hc i Nam

Page 7

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

Nhm 6 lp LTHCNTT 04-01 i Hc i Nam

Page 8

V s hnh thnh v pht trin ca h iu hnh Linux, gi y chng ta c


rt nhiu cch trong vic chn la cc h thng file (file system) cho tng loi ng
dng.
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 du 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 em mun gi thiu cc h thng file tin tin c s
dng trong Linux nh EXT2, EXT3, EXT4 c tnh tin cy cao v c kh nng ghi
nh qu trnh thao tc trn d li (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.
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.

Nhm 6 lp LTHCNTT 04-01 i Hc i Nam

Page 9

Bng 2.1. So snh chc nng cc h thng file

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.

Nhm 6 lp LTHCNTT 04-01 i Hc i Nam

Page 10

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 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:

Hnh 2.1. 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.
Nhm 6 lp LTHCNTT 04-01 i Hc i Nam

Page 11

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

Nhm 6 lp LTHCNTT 04-01 i Hc i Nam

Page 12

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
Nhm 6 lp LTHCNTT 04-01 i Hc i Nam

Page 13

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

Nhm 6 lp LTHCNTT 04-01 i Hc i Nam

Page 14

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.
205.

1 s_prealloc_blocks
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_coun
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
Nhm 6 lp LTHCNTT 04-01 i Hc i Nam

Page 15

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;
Nhm 6 lp LTHCNTT 04-01 i Hc i Nam

Page 16

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

Nhm 6 lp LTHCNTT 04-01 i Hc i Nam

Page 17

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

EXT2_ERRORS_PANIC

EXT2_ERRORS_DEFAULT Thay i

remount read-only

Gy ra li nhn (kernel
panic)

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).
Nhm 6 lp LTHCNTT 04-01 i Hc i Nam

Page 18

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:

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:

s_def_resuid

Nhm 6 lp LTHCNTT 04-01 i Hc i Nam

Page 19

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
Nhm 6 lp LTHCNTT 04-01 i Hc i Nam

Page 20

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 ISOLatin- 1.
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


------- ------- ----------Nhm 6 lp LTHCNTT 04-01 i Hc i Nam

Page 21

0 4 bg_block_bitmap
4 4 bg_inode_bitmap
8 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 6 lp LTHCNTT 04-01 i Hc i Nam

Page 22

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.
Nhm 6 lp LTHCNTT 04-01 i Hc i Nam

Page 23

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

Nhm 6 lp LTHCNTT 04-01 i Hc i Nam

Page 24

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:

i_mode

Nhm 6 lp LTHCNTT 04-01 i Hc i Nam

Page 25

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:

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
Nhm 6 lp LTHCNTT 04-01 i Hc i Nam

Page 26

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.
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
Nhm 6 lp LTHCNTT 04-01 i Hc i Nam

Page 27

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/A
A- Q0R2D-TET1_html/sec.c27.html
Nhm 6 lp LTHCNTT 04-01 i Hc i Nam

Page 28

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. 1 h_i_fsize
2. 2 h_i_mode_high
4 2 h_i_uid_high
6 2 h_i_gid_high
8 4 h_i_author

h_i_frag
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.
Nhm 6 lp LTHCNTT 04-01 i Hc i Nam

Page 29

Linux
offset size description
------- ------- ----------0 1 l_i_frag
1. 1 l_i_fsize
2. 2 reserved
4 2 l_i_uid_high
6 2 l_i_gid_high
8 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
offset size description
------- ------- ----------0 1 m_i_frag
1. 1 m_i_fsize
2. 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.

Nhm 6 lp LTHCNTT 04-01 i Hc i Nam

Page 30

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
------- ------- ----------0 4 inode
4 2 rec_len

6. 1 name_len
6. 1 file_type
6. ... name

Nhm 6 lp LTHCNTT 04-01 i Hc i Nam

Page 31

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:

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.
Nhm 6 lp LTHCNTT 04-01 i Hc i Nam

Page 32

$ 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 4 inode number (1109761)


13

2 record length (10)

15 1 name length (2)


16 1 file type (EXT2_FT_DIR)
17 2 name (..)
19

4 inode number (783364)

23

2 record length (21)

25 1 name length (13)


26 1 file type (EXT2_FT_REG_FILE)
27 13 name (.bash_profile)
40

4 inode number (783363)

Nhm 6 lp LTHCNTT 04-01 i Hc i Nam

Page 33

44

2 record length (15)

46 1 name length (7)


47 1 file type (EXT2_FT_REG_FILE)
48 7 name (.bashrc)
55

4 inode number (783377)

59

2 record length (12)

61 1 name length (4)


62 1 file type (EXT2_FT_REG_FILE)
63 4 name (mbox)
67

4 inode number (783545)

71

2 record length (19)

73 1 name length (11)


74 1 file type (EXT2_FT_DIR)
75 11 name (public_html)
86

4 inode number (669354)

90

2 record length (11)

92 1 name length (3)


93 1 file type (EXT2_FT_DIR)
94 3 name (tmp)
97

4 inode number (0)

101

2 record length (3999)

103 1 name length (0)


104 1 file type (EXT2_FT_UNKNOWN)
105 0 name ()

Nhm 6 lp LTHCNTT 04-01 i Hc i Nam

Page 34

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.3. 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.

Nhm 6 lp LTHCNTT 04-01 i Hc i Nam

Page 35

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. Xin c
tm tt nh sau:
Nhm 6 lp LTHCNTT 04-01 i Hc i Nam

Page 36

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. Chng em 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.

Nhm 6 lp LTHCNTT 04-01 i Hc i Nam

Page 37

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 quan st
thc t.
Sau mt s th nghim, chng em 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:

Nhm 6 lp LTHCNTT 04-01 i Hc i Nam

Page 38

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:
o Dng tm kim bng nh phn thay v tm kim tuyn tnh trong cc
nt ch th pha trong.
o Nu ch c mt block l trong mt th mc, th b qua vic d ch
mc, i thng n block lun.
o 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.
Nhm 6 lp LTHCNTT 04-01 i Hc i Nam

Page 39

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.2.2.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
------------ ----------4.2.1 group = (1 - 1) / 1712 = 0
index = (1 - 1) % 1712 = 0
4.2.2 group = (2 - 1) / 1712 = 0
index = (2 - 1) % 1712 = 1
Nhm 6 lp LTHCNTT 04-01 i Hc i Nam

Page 40

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

Nhm 6 lp LTHCNTT 04-01 i Hc i Nam

Page 41

Chng c nh v vi cc bit SGID v SUID trong ext2_inode.i_mode.


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.

Nhm 6 lp LTHCNTT 04-01 i Hc i Nam

Page 42

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
Nhm 6 lp LTHCNTT 04-01 i Hc i Nam

Page 43

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
c xy dng da trn c s ca h thng file chun ext2 m Linux ang s
dng, ext3 a vo thm chc nng mi v cng quan trng, journaling file system,
gip thao tc d li an ton 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.
Nhm 6 lp LTHCNTT 04-01 i Hc i Nam

Page 44

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 vo dung lng hay s
lng file ca phn vng.

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 :
Nhm 6 lp LTHCNTT 04-01 i Hc i Nam

Page 45

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
Nhm 6 lp LTHCNTT 04-01 i Hc i Nam

Page 46

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 em 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

Nhm 6 lp LTHCNTT 04-01 i Hc i Nam

Page 47

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.
Nhm 6 lp LTHCNTT 04-01 i Hc i Nam

Page 48

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.

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.
Nhm 6 lp LTHCNTT 04-01 i Hc i Nam

Page 49

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

Nhm 6 lp LTHCNTT 04-01 i Hc i Nam

Page 50

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 64bits 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.
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
Nhm 6 lp LTHCNTT 04-01 i Hc i Nam

Page 51

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.

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.

Nhm 6 lp LTHCNTT 04-01 i Hc i Nam

Page 52

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
Nhm 6 lp LTHCNTT 04-01 i Hc i Nam

Page 53

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.

Nhm 6 lp LTHCNTT 04-01 i Hc i Nam

Page 54

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.
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
Nhm 6 lp LTHCNTT 04-01 i Hc i Nam

Page 55

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
Nhm 6 lp LTHCNTT 04-01 i Hc i Nam

Page 56

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.

Nhm 6 lp LTHCNTT 04-01 i Hc i Nam

Page 57

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.

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
Nhm 6 lp LTHCNTT 04-01 i Hc i Nam

Page 58

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.

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
Nhm 6 lp LTHCNTT 04-01 i Hc i Nam

Page 59

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.

Nhm 6 lp LTHCNTT 04-01 i Hc i Nam

Page 60

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.

Nhm 6 lp LTHCNTT 04-01 i Hc i Nam

Page 61

TI LIU THAM KHO


Cc cun sch tham kho :
[1] Tiu ng Nhn, Gio trnh h iu hnh Linux, NXB H QGTP.HCM
[2] Tiu ng Nhn, Gio trnh dch v mng Linux, NXB H QGTP.HCM
[3] Hunh Thc Cc, Gio Trnh HH Linux, Vin Cng Ngh Thng Tin
[4] 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://en.wikipedia.org
[4] Mt s website lin quan khc.

Nhm 6 lp LTHCNTT 04-01 i Hc i Nam

Page 62

You might also like