Professional Documents
Culture Documents
Nhm 7- Lp TDL&MMT t 1
MC LC
MC
LC...........................................................................................
............................ .1
LI GII
THIU........................................................................................
.......................3
C C T V I T
TT...........................................................................................
..................4
Chng 1. Tm hiu v h iu hnh
Linux......................................... ............................ .5
1.1
Linux l
g?..............................................................................................
....................... . 5
1.2
Ti sao Linux pht
trin?..........................................................................................
........ 6
1.3
Cc bn pht hnh
Linux...........................................................................................
....... 7
1.4
Li th ca
Linux...........................................................................................
.................. 7
1.5
Ai pht trin Linux
?............................................................................... ..................
....... 9
Nhm 7- Lp TDL&MMT t 1
2.2.2.1
Superblock.................................................................................................
.....................................14
2.2.2.2
Group
Descriptor............................................................................................................
................20
2.2.2.3
Block
Bitmap.................................................................................................................
..................21
2.2.2.4
Inode
Bitmap.................................................................................................................
.................21
2.2.2.5
Inode
Table...................................................................................................................
..................22
2.2.2.6
Data
Blocks..................................................................................................................
...................28
2.2.3 Cu trc th
mc...........................................................................................................................
........28
2.2.3.1. nh dng Directory
File...............................................................................................................28
2.2.3.2 V d v
Directory.......................................................................................................................
....29
2.2.3.4 Indexed Directory
Format..............................................................................................................31
2.2.4 Inodes, File
Identifiers..................................................................................................................
.........35
2.2.4.1
Inode
Number...............................................................................................................
.................35
2.4.2 nh v cu trc ca
Inode................................................................................................................35
2.2.4.3 nh v Inode
Table........................................................................................................................36
2.2.5 Cc Thuc Tnh Ca
File.........................................................................................................................36
2.2.5.1
Cc thuc tnh
chun..................................................................................................................
...36
2.2.5.2
Cc thuc tnh m
rng................................................................................................................37
2.2.6 Qun tr h thng file
EXT2...................................................................................................................38
Nhm 7- Lp TDL&MMT t 1
2.4.2.1
H Thng Tp Tin
Ln....................................................................................................................43
Nhm 7- Lp TDL&MMT t 1
2.4.2.2
c
im............................................................................................................................
............44
2.4.2.3
L u
file
theo
nhm
block
(Extents)...............................................................................................44
2.4.2.4
Chng
phn
mnh
trc
tuyn
.......................................................................................................46
2.4.2.5
Ci
tin
tin
cy..........................................................................................................................47
4.4.2.6 m s inode (index-node) cha dng v vic lm lnh e2fsck nhanh
hn...............................47
2.4.2.7
Kim
tra
tng
th
(checksum).......................................................................................................49
2.4.2.8
C c
c
im
mi..........................................................................................................................50
K t
lun...........................................................................................
.............................56
TI LIU THAM
KHO.........................................................................................
...........57
Nhm 7- Lp TDL&MMT t 1
LI GII THIU
Trong nhng nm gn y HDH Linux ang ngy cng tr nn ph bin trong
trng hc v mi trng cng nghip. H iu hnh ny, vi chc nng v tnh n
nh cho php n tn ti song song vi cc h iu hnh thng mi khc. Hn na,
s ph bin ca m ngun Linux trn Internet ng gp rt nhiu cho s ph cp
ca Linux. Mt trong nhng c im quan trng ca Linux l n h tr nhiu h
thng tp tin. iu ny lm cho n rt linh ng v c th cng tn ti vi nhiu h
iu hnh khc. T nhng phin bn u tin, Linux h tr 15 loi tp tin : ext,
ext2, xia, minix, umsdos, msdos, vfat, proc, smb, ncp, iso9660, sysv, hpfs, affs v
ufs.
Trong Linux, cng nh Unix, h thng tp tin c truy xut thng qua mt
cu trc cy tha k n thay v l cc thit b xc nh (nh tn a hoc s hiu
ca a). Linux thm nhng h thng tp tin mi vo cy ny khi n c thit lp
(mount). Tt c h thng tp tin c thit lp vo mt th mc v c gi l th
mc thit lp. Khi mt a c khi to, trn a c chia thnh nhiu partitions.
Mi partition c mt h thng tp tin.
Nhm sinh vin chng em chn ti: Kin trc h thng File EXT2,
EXT3, EXT4 ca cc h iu hnh h LINUX. Nhng do kin thc v kinh
nghim cn t, s nghin cu v ti cn nhiu thiu st, knh mong thy gip
v chnh sa nhng thiu st gip chng em chng em c th hon thin hn kin
thc ca mnh.
Chng em xin chn thnh cm n!
Nhm 7- Lp TDL&MMT t 1
CC T VIT TT
Client: my
khch.
Server: my ch.
SMB: Samba.
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
Nhm 7- Lp TDL&MMT t 1
Nhm 7- Lp TDL&MMT t 1
cua h
hanh Linux, gi y chung ta c
iu
ca h thng file (file system) cho tng loai
c
ng dung.
H thng tp tin Linux c t chc theo dng cy. C mt v tr khi im,
gi l root (gc). Bt k mt h thng Unix/Linux no cng c mt th mc
c bit gi l th mc gc (root directory) k hiu l dy slash ( / ). y l
im bt u gn (mount point) tt c cc phn t cn li nh h thng
disks, partitions, CD ROM vo h thng Linux/Unix. Tt c cc th mc v
tp tin khc, k c cc tp tin h thng v cc th mc h thng cng ch l cp
con ca root. Khi h thng Linux/Unix khi ng, thng qua tin trnh init n
s t ng moun (gn) cc tp tin h thng v th mc h thng vo root (/).
Trong
phn ny chng ti mun
gii
trn d
liu
c s dung trong
(journaling).
Nhm 7- Lp TDL&MMT t 1
10
Nhm 7- Lp TDL&MMT t 1
Minix
EXT
EXT 2
11
2 GB
4 TB
2 GB
2 GB
file ln nht
Kch thc file ln 64 MB
nht
Chiu di ti a tn file 30 k t
255 k 255
t
Khng
bin
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:
84
4 s_first_ino
88
2 s_inode_size
90
2 s_block_group_nr
92
4 s_feature_compat
96
4 s_feature_incompat
100
4 s_feature_ro_compat
104 16 s_uuid
120 16 s_volume_name
136 64 s_last_mounted
200
4 s_algo_bitmap
-- Performance Hints
-204
1 s_prealloc_blocks
205
1 s_prealloc_dir_blocks
206
2 - (alignment)
-- Journaling Support
-208 16 s_journal_uuid
224
4 s_journal_inum
228
4 s_journal_dev
232
4 s_last_orphan
-- Unused
-236 788 - (padding)
s_inodes_count
Gi tr 32 bit cho bit tng s inode trn ton b partition, bao gm c inode
dng v cha dng trong h thng tp tin.
s_blocks_count
Gi tr 32 bit cho bit tng s block trn ton b partition, bao gm c block
dng v cha dng trong h thng tp tin.
s_r_blocks_count
Gi tr 32 bit cho bit tng s block dnh ring cho super user. iu ny hu
dng nht nu v mt s l do mt ngi dng c c tnh lm y h thng tp tin
hay khng. Super user s c mt lng block cha dng c th ny c th to v
lu cc tp tin cu hnh.
s_free_blocks_count
Gi tr 32 bit cho bit tng s cc block cn trng, bao gm c s block dnh cho
super user. y l tng s tt c cc block cn trng ca tt c cc block group.
s_free_inodes_count
Gi tr 32 bit cho bit tng s inode cn trng. y l tng tt c cc inode trng ca
tt c block group.
s_first_data_block
Gi tr 32 bit cho bit v tr ca data block u tin, hay xc nh s th t ca khi
cha cu trc superblock.
s_mnt_count
Gi tr 32 bit cho bit c bao nhiu ln h thng tp tin c gn vo t khi ln gn
vo gn nht c b sung mt cch y .
s_max_mnt_count
Gi tr 32 bit cho bit s ln ti a h thng tp tin c th c gn vo trc khi
hon thnh vic kim tra ton din.
s_magic
Gi tr 16 bit xc nh h thng tp tin nh Ext2. Gi tr c nh hin thi l
0xEF53.
s_state
Gi tr 16 bit cho bit trng thi ca h thng tp tin. Khi h thng tp tin c gn
vo, trng thi ny c thit lp l EXT2_ERROR_FS. Khi m h thng tp tin cha
c gn vo, gi tr ny c th l EXT2_VALID_FS hoc EXT2_ERROR_FS trong
trng hp h thng tp tin khng gn vo mt cch khng d dng.
s_errors
Gi tr 16 bit cho bit trnh iu khin h thng tp tin no c thc thi khi pht
hin thy mt li. Cc gi tr chi tit c lit k trong bng sau:
Table 1-1. Gi tr EXT2_ERRORS
EXT2_ERRORS_CONTINUE
Tip tc nu khng c g xy ra
EXT2_ERRORS_RO
remount read-only
EXT2_ERRORS_PANIC
EXT2_ERRORS_DEFAULT
s_minor_rev_level
Gi tr 16 bit xc nh cp xt li th cp (minor revision) trong phm vi cp xt
li ca n (revision level).
s_lastcheck
Phin bn Unix, nh c nh ngha bi POSIX, ca s kim tra h thng tp tin
gn y nht.
s_checkinterval
Khong thi gian ln nht gia cc ln Unix, c nh ngha bi POSIX, cho php
gia cc ln kim tra h thng tp tin.
s_creator_os
Gi tr 32 bit cho bit h iu hnh to h thng tp tin. Gi tr ny c xc nh
nh sau:
Table 1-2. Gi tr ca EXT2_OS
EXT2_OS_LINUX
Linux
EXT2_OS_HURD
Hurd
EXT2_OS_MASIX
MASIX
EXT2_OS_FREEBSD
FreeBSD
EXT2_OS_LITES4
Lites
s_rev_level
Gi tr 32 bit cho bit gi tr ca cp duyt. Hin thi c hai gi tr c xc nh
nh sau:
Table 1-3. Cc gi tr duyt EXT2
EXT2_GOOD_OLD_REV
nh dng gc
EXT2_DYNAMIC_REV
s_def_resuid
Gi tr 16 bit c dng nh s th t ngi dng mc nh cho cc block c
dnh ring.
s_def_resgid
Gi tr 16 bit c dng nh s th t nhm mc nh cho cc block c d
tr.
s_first_ino
Gi tr 32 bit c dng nh ch mc n inode u tin c th s dng cho cc tp
tin chun. Trong vic duyt h thng tp tin khng ng, inode khng d tr u
tin c c nh l 11. Vi cu lnh duyt ng ca h thng tp tin, n c th b
sung gi tr ny.
s_inode_size
Gi tr 16 bit cho bit kch thc ca cu trc inode. Trong cc ln duyt h thng
tp tin khng ng gi tr ny c gi lp l 128.
s_block_group_nr
Gi tr 16 bit c dng cho bit s block group ang lm ch cu trc
superblock ny. Ci ny c th dng to li h thng tp tin t bn sao lu
superblock bt k.
s_feature_compat
Gi tr 32 bit cho bit cc c trng c th c ca bitmask. Vic thc thi h thng tp
tin c gii phng h tr cho chng hoc khng h tr m khng c s ri ro v
vic h d liu.
s_feature_incompat
Gi tr 32 bit cho bit cc c trng c th c ca bitmask. Vic thc thi h thng tp
tin c t chi gn vo h thng tp tin nu bt k c tnh xc nh no khng
c h tr.
s_feature_ro_compat
Gi tr 32 bit cho bit cc c trng ch c read-only ca bitmask. Vic thc thi
h thng tp tin nn gn vo nh ch c nu c tnh xc nh ca bt k bitmask
no khng c h tr.
s_uuid
Gi tr 128 bit c dng nh s th t ca b a. Nu c th, ci ny nn l duy
nht cho mi h thng tp tin c nh dng.
s_volume_name
Gi tr 16 byte cho bit tn ca a, hu nh khng c s dng. Mt tn a
hp l s bao gm cc k t ISO-Latin-1 v kt thc l 0.
s_last_mounted
Gi tr 64 byte cho bit ng dn th mc h thng tp tin c gn vo gn
nht. Thng thng khng c dng, n c th phc v cho vic t tm kim thi
im gn vo m khng xc nh trn dng lnh. Hn na ng dn c kt thc
l 0 v nhng l do tng thch. ng dn hp l c to t cc k t ISO-Latin1.
s_algo_bitmap
4 bg_block_bitmap
4 bg_inode_bitmap
4 bg_inode_table
12
2 bg_free_blocks_count
14
2 bg_free_inodes_count
16
2 bg_used_dirs_count
18
2 bg_pad
20
12 bg_reserved
Nhm 7- Lp TDL&MMT t 1
20
0x01
EXT2_ROOT_INO
0x02
EXT2_ACL_IDX_INO
0x03
EXT2_ACL_DATA_INO
0x04
EXT2_BOOT_LOADER_INO
0x05
EXT2_UNDEL_DIR_INO
0x06
i_mode
Gi tr 16 bit ny c dng cho bit nh dng ca tp tin c m t v
lt truy xut. Sau y l cc gi tr c th c:
Table 1-5. Cc gi tr ca EXT2_S_I
-- file format -EXT2_S_IFMT
0xF000
format mask
EXT2_S_IFSOCK
0xC000
socket
EXT2_S_IFLNK
0xA000
symbolic link
EXT2_S_IFREG
0x8000
regular file
EXT2_S_IFBLK
0x6000
block device
EXT2_S_IFDIR
0x4000
directory
EXT2_S_IFCHR
0x2000
character device
EXT2_S_IFIFO
0x1000
fifo
EXT2_S_ISUID
0x0800
SUID
EXT2_S_ISGID
0x0400
SGID
EXT2_S_ISVTX
0x0200
sticky bit
EXT2_S_IRWXU
0x01C0
EXT2_S_IRUSR
0x0100
read
EXT2_S_IWUSR
0x0080
write
EXT2_S_IXUSR
0x0040
execute
-- access rights --
EXT2_S_IRWXG
0x0038
EXT2_S_IRGRP
0x0020
read
EXT2_S_IWGRP
0x0010
write
EXT2_S_IXGRP
0x0008
execute
EXT2_S_IRWXO
0x0007
EXT2_S_IROTH
0x0004
read
EXT2_S_IWOTH
0x0002
write
EXT2_S_IXOTH
0x0001
execute
i_uid
Gi tr 16 bit cho bit s th t ngi dng tng ng vi tp tin.
i_size
Gi tr 32 bit cho bit kch thc ca tp tin (tnh bng byte).
_atime
Gi tr 32 bit din t s giy k t ngy 1/1/1970 n thi gian truy xut tp tin
gn y nht.
i_ctime
Gi tr 32 bit din t s giy k t ngy 1/1/1970 cho n khi tp tin c to.
i_mtime
Gi tr 32 bit din t thi gian k t ngy 1/1/1970 cho n ln b sung gn y
nht vo tp tin.
i_dtime
Gi tr 32 bit din t thi gian k t ngy 1/1/1970 cho n khi xa tp tin. Tht
l quan trng nu tp tin khng c xa th gi tr ny lun l 0.
i_gid
Gi tr 16 bit cho bit s th t ca group ang truy xut tp tin.
i_links_count
Gi tr 16 bit cho bit inode c bit ny c lin kt n bao nhiu ln.
Nhm 7- Lp TDL&MMT t 1
24
i_blocks
Gi tr 32 bit cho bit s lng cc block c d tr cho d liu tp tin tng
ng. n bao gm c cc block dng v block d tr trong trng hp tp tin
tng kch thc.
Mt im quan trng cn lu l gi tr ny cho bit s block 512 byte v khng
xc nh kch thc ca s block c xc nh trong superblock. V vy nu mt
tp tin ch dng mt block ca h thng tp tin v kch thc l 1024 byte, gi tr
i_blocks ca n s l 2.
i_flags
Gi tr 32 bit cho bit vic thc thi Ext2 nh th no khi truy xut d liu cho
inode ny. (Xem thm mc Behaviour flags)
i_osd1
Gi tr 32 bit cho bit gi tr ca h iu hnh ang ph thuc.
Hurd
Gi tr 32 bit nh du nh my dch (translator).
Linux
Gi tr 32 bit cho bit gi tr d tr hin hnh.
Masix
Gi tr 32 bit cho bit gi tr d tr hin hnh.
i_block
Dy c dng nh v cc block ca cc tp tin c bit c lu tr trn .
Mi entry l s block 32 bit. 12 entry u tin trong dy ny l s cc block, c
th dng tm np 12 block u tin tng ng vi tp tin.
Entry th 13 l mt s block gin trc tip, c ngha l ti block d liu c th, bn
s tm thy mt dy s cc block trc tip.
Entry th 14 l mt s block gin tip hai ln. iu ny c ngha l ti block d
liu c th, bn s tm thy mt dy s block gin tip, ci m cha mt dy s
block c th c truy xut mt cch trc tip.
Entry th 15 l mt s block gin tip ba ln. N l mt s block cha mt dy
s block gin tip hai ln, v.v
Mi dy block gin tip/gin tip hai ln/ gin tip ba ln cha nhiu entry ca
s block 32 bit nu c th ( lp y ton b block).
i_generation
Gi tr 32 bit c dng xc nh phin bn ca tp tin (c dng bi
NFS).
i_file_acl
Gi tr 32 bit cho bit s block cha cc thuc tnh m rng. Trong cc ln
duyt trc gi tr ny lun lun l 0.
S miu t tng qut ca ACL cho Digital UNIX c th c tm thy ti a ch
ny:
http://www.tru64unix.compaq.com/docs/base_doc/DOCUMENTATION/HTML/AA
- Q0R2D-TET1_html/sec.c27.html
i_dir_acl
Gi tr 32 bit c dng xc nh kch thc cao (high size) ca tp tin. Trong
ln duyt trc gi tr ny lun l 0.
i_faddr
Gi tr 32 bit xc nh v tr ca on tp tin (file fragment) gn y
nht.
i_osd2
Gi tr 96 bit cho bit cu trc ca h iu hnh ang ph
thuc.
Hurd
offset size description
------- ------- ----------0
1 h_i_frag
1 h_i_fsize
2 h_i_mode_high
2 h_i_uid_high
2 h_i_gid_high
h_i_frag
4 h_i_author
h_i_uid_high
Gi tr 16 bit cao ca user_id.
h_i_gid_high
Gi tr 16 bit cao ca group_id.
Linux
offset size description
------- ------- ----------0
1 l_i_frag
1 l_i_fsize
2 reserved
2 l_i_uid_high
2 l_i_gid_high
4 reserved
l_i_frag
Gi tr 8 bit cho bit s fragment.
l_i_fsize
Gi tr 8 bit cho bit kch thc fragment.
l_i_uid_high
Gi tr 16 bit cao ca user_id..
Nhm 7- Lp TDL&MMT t 1
27
1 m_i_frag
1 m_i_fsize
10 reserved
2.2.3 Cu trc th mc
Th mc l mt file c bit m ni dung ca n (cha ti vng Data blocks)
gm ton cc directory entry. Th mc c lu tr ging nh tp tin v c th c
nhn ra bng vic tm trong cc bit dnh dng tp tin ext2_inode.i_mode i vi gi
tr EXT2_S_IFDIR.
Th mc gc lun l entry th hai ca bng inode (EXT2_ROOT_INO c gi tr
l 2). Bt k th mc con no t th mc gc c th c nh v bng vic quan
st ni dung ca tp tin th mc gc.
2.2.3.1. nh dng Directory File
Cc directory-entry trong Ext2 ca Linux c kch thc khng bng nhau
(directory-entry cn c gi l record). Nhng mi directory-entry u c 5
trng (field) sau:
Figure 2-1. directory-entry
offset size description
------- ------- ----------4 inode
2 rec_len
1 name_len
1 file_type
... name
inode
Gi tr 32 bit cho bit s inode ca file-entry. Entry khng c dng th gi tr
ny l 0.
rec_len
Gi tr 16 bit khng du cho bit s thay th directory-entry k tip bt u
t directory-entry hin hnh.
name_len
Gi tr 8 bit khng du cho bit tn cha bao nhiu k t.
file_type
Gi tr 8 bit khng du dng xc nh kiu tp tin. Lu , gi tr ny c th l
0 trong s b sung trc . Gi tr c xc nh hin ti l:
Table 2-1. Bng gi tr ca EXT2_FT
EXT2_FT_UNKNOWN
Cha dng
EXT2_FT_REG_FILE
EXT2_FT_DIR
Th mc
EXT2_FT_CHRDEV
Thit b k t
EXT2_FT_BLKDEV
Thit b khi
EXT2_FT_FIFO
Buffer
EXT2_FT_SOCK
Socker
EXT2_FT_SYMLINK
Lin kt
EXT2_FT_MAX
name
Tn ca file-entry. Cc k t cho php thuc ISO-Latin-1.
2.2.3.2 V d v Directory
Sau y l mt v d v mt th mc ca mt user trn h thng ca ti.
$ ls -1a /home/eks
.
..
.bash_profile
.bashrc
mbox
public_html
tmp
19
23
25
26
27
40
44
46
47
48
55
59
61
62
63
67
71
73
74
75
86
90
92
93
94
97
101
103
104
Nhm 7- Lp TDL&MMT t 1
30
105
0 name ()
- D index nh l tm kim.
- Nu block l ch y, chia nh n v ghi nh block s nhn entry mi.
- Chn thm entry mi trong block l s dng m chn directiry-entry Ext2 thng
thng.
Tch (Splitting)
Tm li, khi mt nt l y v chng ta mun t mt entry mi vo th l
s b tch ra, v mt phn khong trng hash ca n c chia thnh nhiu phn.
Cch d nht lm c iu ny l sp xp cc entry theo gi tr hash v ct
phn gia ca danh sch c sp xp. Thao tc ny l
log(number_of_entries_in_leaf) v khng mt nhiu chi ph vi iu kin s dng
thut ton sp xp c hiu qu. Ti dng CombSort cho vic ny, mc d QuickSort
cng tt cho trng hp ny bi v s thc thi trng hp trung bnh quan trng hn
trng hp t nht.
Mt phng php khc l d on mt gi tr trung bnh cho kha hash, v vic chia
phn c th c lm theo thi gian tuyn tnh, nhng kt qu vic phn chia km
hn khong trng kha hash c gi tr hn thun li t i ca thut ton phn chia
tuyn tnh. Trong trng hp bt k, s entry cn sp xp c gii hn bi s
lng va kht trong mt l.
Cc xung t kha (Key Collisions)
Vic iu khin nhng chui xung t kha hash c mt vi phc tp. Tht l
tuyt nu trnh vic tch cc chui nh vy gia cc block, v vy im ct ca mt
block c iu chnh vi ci ny. Nhng kh nng vn cn nu block lp y bi
cc entry c bm mt cch xc nh, chui c th vn phi b tch. Tnh hung
ny c nh du bng cch t mt s 1 vo bit bn di ca entry index tr vo
block k tha, ci m c lm sng t mt cch t nhin bi s thm d index nh
l mt gi tr trung gian m khng c bt k s m ha c bit no. V vy, vic
iu khin vn xung t bt buc khng c x l thc s, ch c m m rng v
v s gim bt khng ng k khong trng ca kha bm. Khong trng ca kha
bm vn cn cho s directory-entry c th tng tng c, ln n hng t.
Hm bm (Hash Function)
Cc c tnh chnh xc ca hm Hash rt nh hng n vic thc thi chin
lc index ny. Mt hm hash d s dn n nhiu s xung t hoc s phn chia
khong trng hash d. minh ha ti sao ci sau li l mt vn , xt xem ci g
s xy ra khi mt block c tch ra m n bao ph mt vi gi tr hash nht
nh. Xc sut cc entry index sau cng c bm tng t, khong cch cng
nh th
gi tr ny cng nh. Thc t, khi mt block c tch ra, nu khong trng hash ca
n qu nh n ni ch lun y c mt na, l mt kt qu m ti quan st
thc t.
Sau mt s th nghim, ti c mt hm Hash cho ra mt s phn tn hp l cc
kha hash dc theo ton b khong trng kha 31 bit. iu ny lm tng s y
trung bnh ca cc block l, t gn ti gi tr trung bnh theo l thuyt l y .
Nhng hm hash hin ti ch dng tm, ch mt phin bn tt hn da trn l
thuyt chc chn.
S thc thi (Performance)
Tm li, s ci tin kh nng thc thi trn Ext2 thng thng gy mt s
bt ng. Vi vic thc thi cc th mc rt nh ging vi Ext2 chun, nhng v kch
thc th mc tng theo Ext2 chun mt cch nhanh chng lm xut hin bc hai,
trong khi htree-enhanced Ext2 tip tc ly t l mt cch tuyn tnh.
Uli Luckas chy im chun cho vic to tp tin theo cc kch thc khc nhau ca
th mc nm trong dy t 10,000 n 90,000 tp tin. Kt qu ny rt hi lng: ton
b thi gian to file gn nh tuyn tnh, chng li vic tng bc hai ca Ext2 thng.
Thi gian c to nh sau:
Figure 2-3.
Directories
10000 Files:
20000 Files:
30000 Files:
40000 Files:
50000 Files:
60000 Files:
70000 Files:
80000 Files:
90000 Files:
Vic
Indexed
=======
0m1.350s
0m2.720s
0m4.330s
0m5.890s
0m7.040s
0m8.610s
0m9.980s
0m12.060s
0m13.400s
thc
thi
Indexed
Normal
======
0m23.670s
1m20.470s
3m9.320s
5m48.750s
9m31.270s
13m52.250s
19m24.070s
25m36.730s
33m18.550s
group = (2 - 1) / 1712 = 0
index = (2 - 1) % 1712 = 1
963
1712
1713
3424
3425
Chng c nh
ext2_inode.i_mode.
vi
cc
bit
SGID
SUID
trong
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.
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.
ca h
v hai
c bao ln
trng
hp
th
hiu
sut ghi d
liu
h ly hn, nn tc thao
p tac
vi
thao
tac
bng
cac
trn d
liu
na ch hn
o m
nhanh hn.
c
phn
hn l tc ghi n
cai thi tc thao
n
hi journaling i
n
Vi
Nhm 7- Lp TDL&MMT t 1
40
mode
ng nhanh, d liu
data=writ
eback,
qu trinh
khi
c ghi vao
ia
ngay sau khi ghi xong thng tin trong journal log (write back),
vi
khi cung
xay
cha kip ghi
vao
ra tinh trang h d
liu
a, nhng b
lai
n s c
u xay
tc thao
tac
mode
nay
trng hp .
Vi mode data=ordered, d
liu
lun lun
a tinh
cho
bao
m toan
phep
cung chinh l mode
mc
hi trn c hai: d
th
n liu
c
giup cai
c
ve
n
thi tc truy
n
cp
ghi ln ia
ri mi journal log,
trc
n
cua d
trong moi tinh hung v y
liu
mode data=journal th
vic
Nhm 7- Lp TDL&MMT t 1
nh ti u
vic
di
chuyn
cua
u
ba v c
o
v
nhiu
hn
t, hoat ng
41
rt tt i
vi
nhin do
phai
hi
ma
chm
y
ki d
l database
d
dung chung trn mang (NFS), tuy
u liu hoc
liu
oc lai nhi loai thng tin trn journal log nn
gian
ng lai
u
thi
khi
hn so
vi
V
ban
khng h b
an
h hng v
thc
(patch) nh
cac
version cu.
Hin
m khng
cn
RedHat 7.2.
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
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.
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.
Sau khi thay i s lng khi d liu 48 bit, bc tip theo l chnh sa cho
chnh xc cc tham chiu n cc khi siu d liu tng ng. Siu d liu tn ti
trong siu khi, m t nhm, v journal. Cc trng mi c thm vo phn
cui ca cu trc siu khi lu tr 32 bit quan trng nht cho cc bin blockcounter, s_free_blocks_count, s_blocks_count, v s_r_blocks_count.
K t khi a ch cc khi thay i trong h thng tp tin c ng trn tp
ch, khi lp nht k (JBD) cng c yu cu h tr cc a ch khi t nht l
48 bit. V th, JBD phn nhnh thnh JBD2 h tr s khi hn 32 bit, cng lc
th phin bn 4 cng c chia hai. Mc d hin ti ch c phin bn 4 l s dng
JBD2, n c th cung cp h tr ghi li nht k chung ca c hai h thng tp tin 32
bit v 64 bit.
Mt cu hi t ra rng ti sao chng ta li chn 48 bit thay v c h tr 64
bit. tc hin ti, mt h thng tp tin 1EB s phi mt 119 nm hon thnh
mt e2fsck y v 65536 ln so vi h thng tp tin 264 khi (64 ZB).
2.4.2.2 c im
Sau khi m rng gii hn c to ra bi s khi 32-bit, dung lng h thng
tp tin vn cn b hn ch bi s lng ca cc nhm khi trong h thng tp tin.
Vi 128 MB mc nh (227 byte) kch thc nhm khi, ext4 c th c t nht 227/64
= 221 nhm khi. iu ny gii hn ton b kch thc h thng tp
tin 221 * 227 = 248 byte hoc 256TB.
Cc gii php cho vn ny l s dng tnh nng nhm siu khi (META_BG), c
trong ext3 cho tt c cc phin bn 2.6. Vi tnh nng META_BG, h thng tp tin
ext4 c phn chia thnh nhiu nhm siu khi. Mi nhm siu khi l mt
cm ca cc nhm khi c nhm cu trc m t c th c lu tr trong mt khi
a
duy
nht.
i
vi ext4 h
thng
tp
tin vi kch
thc khi 4 KB, mt khi siu phn vng duy nht nhm bao gm 64 nhm
khi, hoc 8 GB khng gian a. iu ny lm tng cc nhm ti a 221 khi hn
ch gii hn cng 232, cho php h tr cho h thng tp tin y , 1 EB.
2.4.2.3 Lu file theo nhm block
(Extents)
H thng tp tin ext3 s dng mt chng trnh lp bn khi gin tip
cung cp nh x mt mt t khi logic n a. Chng trnh ny rt hiu qu cho
cc tp tin tha tht hoc nh, nhng c chi ph cao cho cc tp tin ln hn, hot
ng km hn, c bit l trong vic xa v ct ngn file ln.
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
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.
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
Nhm 7- Lp TDL&MMT t 1
50
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.