113
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG KHOA QUỐC TẾ VÀ ĐÀO TẠO SAU ĐẠI HỌC ******** * B à i t ập t i u l uậ n m ô n H Đ i u H àn h Mạn g N ân g C a o Kiến trúc hệ thống File EXT2, EXT3, EXT4 của các hệ điều hành họ LINUX Nhóm thực hiện: Nguyễn Trường Giang Vũ Hoàng Anh - Nguyễn Ngọc Ân Phạm Khánh Chung - Tô Danh Dũng Nguyễn Anh Dũng - Dương Văn Dũng Đặng Xuân Điệp - Đinh Quang Định Nguyễn Thu Giang - Chu Hải Hà Giảng viên hướng dẫn: Ts Hoàng Xuân Dậu

Kien Truc He Thong File Ext2 Ext3 Ext4 Cua Cac He Dieu Hanh Ho Linux

Embed Size (px)

DESCRIPTION

kien-truc-he-thong

Citation preview

Mon Triet Hoc

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

H Ni, thng 12 - 2011

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

(Nhm 7- Lp TDL&MMT t 1) (2)

MC LC

MC LC........................................................................................................................1

LI GII THIU...............................................................................................................3

CC T VIT 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

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

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

(Nhm 7- Lp TDL&MMT t 1) (1)

2.4.2.2 c im........................................................................................................................................44

2.4.2.3 Lu 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 Cc c im mi..........................................................................................................................50

Kt lun........................................................................................................................56

TI LIU THAM KHO....................................................................................................57

(Nhm 7- Lp TDL&MMT t 1) (2)

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) (3)

Client: my khch.

CC T VIT TT

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) (7)

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

(Nhm 7- Lp TDL&MMT t 1) (8)

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

(Nhm 7- Lp TDL&MMT t 1) (10)

Vi

s hinh thanh va phat

trin

cua h iu

hanh Linux, gi y chung ta co

rt

nhiu

cac

h trong vic

chon la

cac

h thng file (file system) cho tng loai

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

thiu

cac

h thng file tin tin

c s dung trong

Linux nh EXT2, EXT3, EXT4 co tinh tin cy

cao va co kha nng ghi nh qua

trinh thao tac

trn d liu

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

Tnh nngMinixEXTEXT 2

Kch thc h thng

file ln nht

64 MB2 GB4 TB

Kchthcfileln

nht

64 MB2 GB2 GB

Chiu di ti a tn file30 k t255k

t

255k

t

Kch thc block tu

bin

KhngKhngC

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

-------- ----------- -----------

01 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

281412 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

-------- ----------- -----------

01 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

2197974 data blocks

-- block group 1 --

81931 superblock backup

81941 group descriptors backup 81951 block bitmap

81961 inode bitmap 8197 214 inode table 84087974 data blocks

-- block group 2 --

16385 1 block bitmap 16386 1 inode bitmap 16387214 inode table 166013879 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 sizedescription

------- ------- -----------

04 s_inodes_count

44 s_blocks_count

84 s_r_blocks_count

124 s_free_blocks_count

164 s_free_inodes_count

204 s_first_data_block

244 s_log_block_size

284 s_log_frag_size

324 s_blocks_per_group

364 s_frags_per_group

404 s_inodes_per_group

444 s_mtime

484 s_wtime

522 s_mnt_count

542 s_max_mnt_count

562 s_magic

582 s_state

602 s_errors

622 s_minor_rev_level

644 s_lastcheck

684 s_checkinterval

724 s_creator_os

764 s_rev_level

802 s_def_resuid

822 s_def_resgid

-- EXT2_DYNAMIC_REV Specific --

844 s_first_ino

882 s_inode_size

902 s_block_group_nr

924 s_feature_compat

964 s_feature_incompat

1004 s_feature_ro_compat

10416 s_uuid

12016 s_volume_name

13664 s_last_mounted

2004 s_algo_bitmap

-- Performance Hints--

204 1 s_prealloc_blocks

205 1 s_prealloc_dir_blocks

206 2 - (alignment)

-- Journaling Support--

20816 s_journal_uuid

2244 s_journal_inum

2284 s_journal_dev

2324 s_last_orphan

-- Unused--

236788 - (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_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

1

Tip tc nu khng c g xy ra

EXT2_ERRORS_RO

2

remount read-only

EXT2_ERRORS_PANIC

3

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

0

Linux

EXT2_OS_HURD

1

Hurd

EXT2_OS_MASIX

2

MASIX

EXT2_OS_FREEBSD

3

FreeBSD

EXT2_OS_LITES4

s_rev_level

4

Lites

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

0

nh dng gc

EXT2_DYNAMIC_REV

1

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

------- ------- -----------

04 bg_block_bitmap

44 bg_inode_bitmap

84 bg_inode_table

122 bg_free_blocks_count

142 bg_free_inodes_count

162 bg_used_dirs_count

182 bg_pad

2012 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

------- ------- -----------

02 i_mode

22 i_uid

44 i_size

84 i_atime

124 i_ctime

164 i_mtime

204 i_dtime

242 i_gid

262 i_links_count

284 i_blocks

324 i_flags

364 i_osd1

40 15 x 4 i_block

1004 i_generation

1044 i_file_acl

1084 i_dir_acl

1124 i_faddr

11612 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

i_mode

0x06

undelete directory inode

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

-- access rights --

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

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

i_uid

0x0001

execute

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

------- ------- -----------

01 h_i_frag

1 1 h_i_fsize

2 2 h_i_mode_high

42 h_i_uid_high

62 h_i_gid_high

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

Linux

offset sizedescription

------- ------- -----------

01 l_i_frag

1 1 l_i_fsize

2 2 reserved

42 l_i_uid_high

62 l_i_gid_high

84 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 sizedescription

------- ------- -----------

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

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 directory-entry.

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 sizedescription

------- ------- -----------

04 inode

42 rec_len

6 1 name_len

7 1 file_type

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

0

Cha dng

EXT2_FT_REG_FILE

1

File bnh thng

EXT2_FT_DIR

2

Th mc

EXT2_FT_CHRDEV

3

Thit b k t

EXT2_FT_BLKDEV

4

Thit b khi

EXT2_FT_FIFO

5

Buffer

EXT2_FT_SOCK

6

Socker

EXT2_FT_SYMLINK

7

Lin kt

EXT2_FT_MAX

name

8

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 sizedescription

------- ------- -----------

04 inode number (783362)

42 record length (9)

6 1 name length (1)

7 1 file type (EXT2_FT_DIR)

8 1 name (.)

9 4 inode number (1109761)

132 record length (10)

15 1 name length (2)

16 1 file type (EXT2_FT_DIR)

17 2 name (..)

194 inode number (783364)

232 record length (21)

25 1 name length (13)

26 1 file type (EXT2_FT_REG_FILE)

27 13 name (.bash_profile)

404 inode number (783363)

442 record length (15)

46 1 name length (7)

47 1 file type (EXT2_FT_REG_FILE)

48 7 name (.bashrc)

554 inode number (783377)

592 record length (12)

61 1 name length (4)

62 1 file type (EXT2_FT_REG_FILE)

63 4 name (mbox)

674 inode number (783545)

712 record length (19)

73 1 name length (11)

74 1 file type (EXT2_FT_DIR)

75 11 name (public_html)

864 inode number (669354)

902 record length (11)

92 1 name length (3)

93 1 file type (EXT2_FT_DIR)

94 3 name (tmp)

974 inode number (0)

1012 record length (3999)

103 1 name length (0)

104 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. Vic thc thi Indexed Directories

Indexed

Normal

=======

======

10000 Files:

0m1.350s

0m23.670s

20000 Files:

0m2.720s

1m20.470s

30000 Files:

0m4.330s

3m9.320s

40000 Files:

0m5.890s

5m48.750s

50000 Files:

0m7.040s

9m31.270s

60000 Files:

0m8.610s

13m52.250s

70000 Files:

0m9.980s

19m24.070s

80000 Files:

0m12.060s

25m36.730s

90000 Files:

0m13.400s

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

963group = (963 - 1) / 1712 = 0 index = (963 - 1) % 1712 = 962

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

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

3424group = (3424 - 1) / 1712 = 1 index = (3424 - 1) % 1712 = 1711

3425group = (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 chunSUID, SGID v -rwxrwxrwx

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.

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

c

xy dng da trn c s cua h thng file chun

ext2 ma Linux ang s

dung, ext3 a vao

thm chc

nng mi

v cung quan trong, journaling file system,

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.

(Nhm 7- Lp TDL&MMT t 1) (40)

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

v thng tin thao

tac

trn d liu

, c anh gia la tin cy

hn so vi

cac

h thng chi thc

hin

journaling trn chi muc d liu

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

JFS. Vi

cac

h bao

v hai ln

nh vy

thi hiu

sut

ghi d liu

co phn

nao

chm

hn

ext2; nhng trong mt vai

trng hp

, nh thng tin trong journal log ma u

t

cng di chuyn

hp

ly hn, nn tc thao tac

d liu

nhanh hn.

i vi

nhng ng dung u tin cho tin cy

cua d liu

hn la tc ghi n

thun

thi ext3 la la

chon thich hp

. Ngoai

ra, ext3 con cho phep

cai

thin

tc thao

tac

trn d liu

bng cac

h thit

lp

thng s cho h thng chi thc

hin

journaling i

vi

thao tac

trn d liu

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

Vi

mode data=writeback, qua trinh khi

ng nhanh, d liu

c ghi vao

ia

ngay sau khi a ghi xong thng tin trong journal log (write back), vi

mode nay

i

khi cung xay

ra tinh trang h d liu

nu

s c xay

ra ngay sau khi ghi journal log ma

cha kip ghi vao

ia, nhng bu lai

tc thao tac

file nhanh hn trong mt vai

trng hp .

Vi

mode data=ordered, d liu

c

ghi ln ia trc

ri mi

n

journal log,

cho phep

lun lun bao

am

tinh toan

ven

cua d liu

trong moi tinh hung va y

cung chinh la mode mc

inh cua ext3. Vi

mode data=journal thi vic

bao

v c

thc

hin

trn ca hai: d liu

va journal log; thng tin c ghi chi tit

va nhiu

hn

giup cai

thin

tc truy cp

d liu

nh ti u vic

di chuyn

cua u

t,

hoat

ng

rt

tt i vi

kiu

d liu

la database hoc

d liu

dung chung trn mang (NFS), tuy

nhin do phai

oc lai

nhiu

loai

thng tin trn journal log nn thi

gian khi

ng lai

may

hi chm

hn so vi

hai mode trn mt chut.

Vi ban

cht

cu

truc cua ext3 c xy dng hoan

toan

da

trn c s cua ext2

nn ta co th chuyn

i d dang cac

d liu

ang tn tai

trn cac

h thng ext2 sang

ext3 ma d liu

khng h bi an

h hng va thc

hin

tng i d dang, n gian.

Vi

kernel Linux t 2.4.15 tr ln thi ext3 a co sn

ma khng cn

phai

a thm vao

(patch) nh cac

version cu. Hin

tai

hang Linux RedHat a a sn

module ext3 vao

kernel 2.4.7-10 trong ban

RedHat 7.2.

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

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

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 block- counter, 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 (single- threaded) 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.