Vous êtes sur la page 1sur 43

H thng file phn tn

MC LC
Li m u...2
I. Tng quan v h phn tn
I.1 H phn tn l g?.............................................................................3
I.2 Cc c trng c bn ca h phn tn.............................................3
II. Cc nguyn l ca h phn tn
II.1 Truyn thng....................................................................................4
II.2 Tin trnh...........................................................................................5
II.3 nh danh..........................................................................................7
II.4 ng b ho .....................................................................................8
II.5 Nht qun v Nhn bn ....................................................................11
II.6 Chu li ..............................................................................................12
II.7 Anh ton An ninh............................................................................14
III. H thng qun tr tp phn tn
III.1 Sun File Network System..................................................................16
III.1.1 Tng quan v NFS .............................................................17
III.1.2 Truyn thng ......................................................................20
III.1.3 Stateless - Stateful .............................................................21
III.1.4 nh danh...........................................................................21
III.1.5 ng b ha.......................................................................25
III.1.6 Lu m v bn sao ..........................................................28
III.1.7 Chu li ...............................................................................29
III.1.8 An ton an ninh ...............................................................31
III.2 H thng file Coda ............................................................................33
III.3 Cc h thng file phn tn khc........................................................34
III.4 So snh gia cc h thng file phn tn...........................................37
IV. Kt lun..40

-1-

H thng file phn tn

LI M U
Cng vi s pht trin ca mng my tnh, vic tnh ton, qun l ngy nay
khng ch n gin tp trung trong my tnh n nh trc na. N i hi cc h
thng tnh ton phi c kt hp t mt s lng ln cc my tnh kt ni vi
nhau qua 1 mng tc cao. Chng thng c gi l cc mng my tnh hay
cn c tn khc l cc H phn tn, nhm m ch tng phn vi H tp trung
trc y.
Ngy nay, h phn tn pht trin rt nhanh v c ng dng rng khp.
c th l cc dch v thng tin phn tn, nh cc dch v trn Internet chng hn.
cng c th l cc c s d liu phn tn nh cc h thng t v my bay, xe
lahoc cc h thng tnh ton phn tn.
Mc ch ca tiu lun ny nhm nu ra 1 cch khi qut nht nhng khi
nim, nhng nguyn l c bn ca mt h phn tn ni chung. ng thi phn
tch su vo vic chia s d liu trong h phn tn, 1 trong nhng chc nng c
bn nht ca h phn tn. Chng ta thng gi l h thng qun tr file phn
tn. Ta cng s ln lt nghin cu cc m hnh khc nhau ca h thng file phn
tn nh Sun NFS, Coda, Plan 9, XFS

-2-

H thng file phn tn

I.Tng quan v h phn tn


I.1. H phn tn l g?
C nhiu nh ngha cho 1 h phn tn. Tuy nhin, ta c th nh ngha h
phn tn l mt tp hp bao gm cc my tnh t tr c lin kt vi nhau qua
mt mng my tnh, v c ci t phn mm h phn tn. Phn mm h phn
tn cho php my tnh c th phi hp cc hot ng ca n v chia s ti nguyn
ca h thng nh phn cng, phn mm v d liu.
Mt s tnh cht quan trng ca mt h phn tn:
Th nht chng cho php chng ta chy nhng ng dng khc nhau trn nhiu
my khc nhau thnh mt h thng duy nht. Mt u im khc ca h phn tn
l khi mt h thng c thit k ng cch, mt h phn tn c th c kh
nng thay i tu theo quy m ca h thng rt tt. Tuy nhin, tt c mi th u
c hai mt ca n, mt h phn tn cng vy bn cnh nhng mt u vit th n
cng c nhng nhc im l tnh bo mt km
Nhng ng dng ca h phn tn:
Cung cp nhng thun li cho vic tnh ton a mc ch n nhng nhm
ngi dng, t ng ho cng vic ngn hng v h thng truyn thng a
phng tin, ngoi ra chng cn bao qut ton b nhng ng dng thng mi v
k thut. H phn tn tr thnh tiu chun t chc v mt tnh ton. N c
th c s dng cho vic thc hin tng tc h thng tnh ton a mc ch
trong UNIX v h tr cho phm vi rng ca thng mi v ng dng cng nghip
ca nhng my tnh

I.2. Cc c trng c bn ca h phn tn


a. Kt ni ngi s dng vi ti nguyn
Chia s ngun ti nguyn l mt c tnh c bn ca h thng phn tn, n l
c s cho nhng c tnh khc v n nh hng n nhng kin trc phn mm
c sn trong cc h phn tn. Cc ngun ti nguyn c th l mc d liu, phn
cng v cc thnh phn ca phn cng. Cc ngun ti nguyn c phn bit t
mt d liu c qun l vi nhng qu trnh x l n bi nhu cu ca vi qu
trnh x l chia s chng
b. Tnh trong sut (transparency)
Mt h phn tn c gi l trong sut nu n c kh nng che du tnh ri rc
v nhng nhc im c th ca n i vi ngi s dng cui v ngi lp trnh
ng dng. C 8 dng trong sut :
Trong sut truy cp : che du cch biu din d liu v cch thc truy cp
ti nguyn.

Trong sut v tr : che du v tr thc ca ti nguyn.

Trong sut di tr : che du kh nng di tr (di chuyn t ni ny sang ni


khc) ca ti nguyn.
Trong sut nh v li : che du kh nng ti nguyn c th di chuyn t ni
ny n ni khc ngay c khi ang c s dng.

Trong sut bn sao : che du cc bn sao c nhn ra.

Trong sut v tng tranh.


-3-

H thng file phn tn

Trong sut v li.

Trong sut truy cp nhanh.

c. Tnh m (openess)
Mt h phn tn c gi l c tnh m nu n c kh nng b sung thm cc
dch v mi m khng lm nh hng xu n cc dch v c.
d. Tnh co dn (scalability)
Mt h phn tn c gi l c tnh co dn nu n c th thch nghi c vi
nhng s thay i qui m ca h thng.. Tnh co dn th hin trn 3 kha cnh.

D dng b sung thm ti nguyn v ngi s dng.

H thng thay i qui m v mt a l.

H thng thay i qui m v qun tr.

e. Tnh chu li (Fault tolerance)


X l c nhng li xy ra trong qu trnh lm vic. Bn cnh tnh chu li
lun i km theo l khc phc li.
f. Tnh an ton an ninh (security)

II. Cc nguyn l ca h phn tn


Trong phn ny, ta s xem xt 1 cch tng quan, tm tt cc nguyn l ca h
phn tn. Bi nu i su th bn thn trong mi nguyn l li cn c rt nhiu vn
cn phn tch. C tng cng 7 nguyn l c bn i vi 1 h phn tn, bao
gm:
1. Truyn thng (Commmunication).
2. Tin trnh (Processes).
3. nh danh (Naming).
4. ng b ha (Synchronization).
5. Nht qun v nhn bn (Consistency & Replication).
6. Chu li (Fault tolerance).
7. An ton an ninh (Security).
Sau y ta i vo phn tch s b tng nguyn l ca h phn tn.

II.1. Truyn thng


Truyn thng gia cc tin trnh rt quan trng trong mt h phn tn. Truyn
thng c th chia thnh 2 mc:

Truyn thng mc mng my tnh.

Truyn thng mc midleware: bao gm 4 m hnh c s dng rng ri:


Gi th tc t xa (RPC), Triu gi i tng t xa (RMI), Truyn thng hng
thng ip (MOC) v Truyn thng hng dng (SOC).

II.1.1. Truyn thng mc mng


M hnh OSI c thit k cho php cc h thng m truyn thng vi nhau,
phc v cho cc ng dng phn tn.
Cc tng trong m hnh OSI:
1. Tng vt l (Physical layer)
-4-

H thng file phn tn


2. Tng lin kt d liu (Data link)
3. Tng mng (Network)
4. Tng vn chuyn (Transport)
5. Tng phin (Session)
6. Tng trnh din (Presentation)
7. Tng ng dng (Application)
Mi tng ca m hnh OSI gii quyt mt phn ca vic giao tip. V mi
tng li c giao thc ring ca n.
Mi h thng m c cc qui tc v nh dng, ni dung, v ng ngha ca
thng ip gi v nhn cc qui tc ny c gi l cc giao thc (protocol). 1
nhm cc my tnh c th truyn thng c vi nhau, cn phi c cc giao thc
thng nht gia cc my tnh. C 2 loi giao thc khc nhau: giao thc hng kt
ni (Connection-Oriented protocol) phi thit lp kt ni trc khi truyn.nhn d
liu, sau khi xong phi gii phng kt ni. V giao thc phi kt ni (ConnectionlessOriented protocol): khng cn kt ni, thng tin c truyn ngay khi sn sng.

II.1.2. Truyn thng mc midleware


a. Gi th tc t xa (Remote Procedure Call):
RPC cho php gi cc th tc nm trn cc my khc. Khi 1 tin trnh trn my
A gi 1 th tc trn my B, th tin trnh gi trn my A s b tm dng, thay vo
s thc thi th tc c gi trn my B. Phng php ny c gi l Gi th
tc t xa (RPC). y l k thut c s dng rng ri nht trong cc h phn tn.
RPC xy ra vi cc bc tm tt nh sau:
1. Th tc client gi client stub mt cch bnh thng.
2. Client stub xy dng mt thng ip v gi h iu hnh cc b.
3. H iu hnh ca client gi thng ip n h iu hnh t xa.
4. H iu hnh t xa gi thng ip cho server stub.
5. Server stub m gi cc tham s ra v gi server.
6. Server thc thi v tr kt qu n stub.
7. Server stub ng gi n vo thng ip v gi h iu hnh cc b.
8. H iu hnh ca server gi thng ip cho h iu hnh ca client.
9. H iu hnh ca client trao thng ip n client stub.
10. Stub m gi kt qu v tr v cho client.
b. Triu gi i tng t xa (Remote Object Invocation):
K thut hng i tng c dng rt ph bin hin nay trong vic pht
trin cc ng dng phn tn (distributed) v khng phn tn (non-distributed). Mt
trong iu quan trng ca i tng l n n giu i nhng g bn trong ca n
vi bn ngoi, m n s ch cung cp cc giao din (interface). Hng tip cn
ny cho php cc i tng d dng c thay th v chnh sa. RPC v ROI
gip n du thng tin trong cc h phn tn, tng cng s truy cp trong sut.
c. Truyn thng hng thng ip (Message Oriented Communication)
C ch truyn thng ip c hai loi:
1. Truyn thng tm thi hng thng ip.
-5-

H thng file phn tn


2. Truyn thng hng thng ip di lu.
d. Truyn thng hng dng (Stream Oriented Communication)
Cng c mt s dng truyn thng m yu t p ng thi gian ng vai tr ct
yu nh d liu m thanh hoc hnh nh chng hn. Do cn phi c 1 c ch
truyn thng hng dng.

II.2 Tin trnh


Tin trnh (process) l 1 chng trnh ang trong qu trnh thc thi ngha l mt
chng trnh hin ang c thc thi bi mt trong cc b x l o ca h iu
hnh. i vi tin trnh th vn qun l v lp lch cho cc tin trnh nhng vn
quan trng cn gii quyt. Nhiu tin trnh c th ng thi chia s cng mt
CPU v cc ti nguyn phn cng khc.

II.2.1 Lung (threads) v m hnh a lung (multi-threading)


Lung (thread) tng t mt tin trnh, tuy nhin cng c im khc bit c
bn gia lung vi tin trnh. Mt lung l mt n v x l c bn trong h thng .
Mi lung x l tun t on code ca n, s hu mt con tr lnh, tp cc thanh
ghi v mt vng nh stack ring. Cc lung chia s CPU vi nhau ging nh cch
chia s gia cc tin trnh: khi 1 lung ang x l th cc lung khc s phi ch
cho n lt. Mt lung cng c th to lp cc lung con. V 1 tin trnh c th
s hu nhiu lung.
Mt thuc tnh quan trng ca lung l chng cho php kha cc li gi h
thng m khng cn phi kha ton b tin trnh m c lung ang chy.
K thut a lung (multi-threading) cho php khai thc tnh song song khi thc
thi mt chng trnh trn mt h thng nhiu b x l. Khi , mi lung c gn
cho mt CPU khc nhau trong khi d liu dng chung c lu tr trong b nh
chnh dng chung. Phng php ny thng c dng trong mi trng UNIX.

II.2.2 Di tr m (code migration)


Di chuyn tin trnh t my ny sang my khc l mt nhim v phc tp v
tn km nhng n s ci thin v mt hiu sut. Ton b hiu sut h thng c th
c nng ln, nu cc tin trnh c di chuyn t my c mc x l qu
nhiu n my c mc x l t hn. Di tr m ng c th gip tng hiu sut
bng cch tn dng c ch song song m khng cn quan tm n vn lp
trnh song song. Bn cnh l tnh mm do ca m di tr. Cch xy dng ng
dng phn tn truyn thng l tch ri ng dng thnh cc phn khc nhau, v
quyt nh phn no c thc thi. Tuy nhin nu m c th di chuyn gia cc
my khc nhau ta c th cu hnh ng h phn tn.
Quy c 1 tin trnh bao gm 3 thnh phn :
1. Code segment : cha tp lnh chng trnh.
2. Resource segment: cha cc tham chiu n ti nguyn bn ngoi m
tin trnh cn.
3. Execution segment : cha trng thi thc thi hin hnh ca tin trnh.
C hai m hnh c bn cho vic di tr m (di tr tin trnh) :
M hnh di ng yu (weak mobility): ch chuyn code segment km theo 1
s iu kin ban u. Mt c im ca m hnh m di tr yu l mt chng trnh
c chuyn lun bt u trng thi khi to ca n. Li th ca di tr yu l
tnh n gin, n ch cn my ch c th thc thi m l c.
-6-

H thng file phn tn


M hnh di ng mnh (strong mobility): chuyn lun c 3 thnh phn. c
im ny ca m hnh ny l tin trnh ang chy c th c dng, sau di
chuyn n my khc v ri c thit lp li trng thi b dng trc . R
rng m hnh m di tr di ng mnh tt hn nhiu so vi m hnh m di tr yu,
tuy nhin s kh thc hin hn.

II.2.3 Tc t mm (software agents)


Agent c 2 c tnh c bn l: t tr v tng tc. Ngoi ra cn c cc c
tnh ring tu theo tng tc t, l:
1. Tnh di ng: tng ng ta s c tc t di ng (mobile agent).
Mt tc t di ng l mt tc t c kh nng chuyn i gia cc my khc
nhau. Cc tc t di ng i hi phi c tnh di ng mnh. Cc tc t di ng
thng yu cu phi h tr m hnh m di ng mnh (strong mobility), tuy khng
nht thit.
2. Tnh thng minh: tng ng ta s c tc t thng minh (intelligent agent).
Ngoi ra ta cn c cc loi tc t khc nh:
Tc t giao din (interface agent) gip h tr cho ngi s dng trong vic
chy mt hoc nhiu ng dng.
Tc t thng tin (information agent) l tc t lin quan mt thit vi tc t
giao din. Chc nng chnh ca cc tc t ny l qun l thng tin t nhiu ti
nguyn khc nhau. Qun l thng tin gm sp xp, sng lc,
Thuc tnh
Autonomous
Reactive
Proactive

Chung cho tt
c cc tc t ?
C
C
C

M t

C th hot ng trn chnh n


p ng ng lc thay i mi trng.
Khi to cc hnh ng tc ng n mi
trng.
Communicative C
C th trao i thng tin vi ngi s dng
v cc tc t khc.
Continuos
Khng
Khong thi gian sng (life) tng i di
Mobile
Khng
C th di tr t ni ny n ni khc
Adaptive
Khng
C kh nng hc
Mt vi thuc tnh quan trng ca tc t gia cc loi tc t khc nhau.

II.3. nh danh
Cc tn ng vai tr quan trng trong tt c cc h thng my tnh. Chng
c dng chia s cc ti nguyn, nh danh duy nht cc thc th, tham
chiu n cc niVic t tn to c s cho php cc tin trnh c th truy cp
n thc th thng qua tn ca chng.
Trong mt h thng phn tn, vic inh danh thng c thc thi phn tn
trn nhiu my. C ba vn chnh trong vic inh danh trong h phn tn.
1. t tn theo cch gn gi vi con ngi.
2. Cc tn c s dng nh v cc thc th di ng.
3. Gii quyt cch t chc tn.

II.3.1. Cc khi nim c bn


Tn (name): l mt chui cc bit hoc cc k t c dng tham chiu
n 1 thc th trong h phn tn.
-7-

H thng file phn tn


c th thao tc trn mt thc th, ta cn phi truy cp (access) vo thc
th . Do chng ta cn mt im truy cp (access point). Tn ca access point
c gi l a ch (address). Mt thc th c th c nhiu access point. Access
point c th thay i ti nhng thi im khc nhau. V d: khi bn s dng mt
laptop v di chuyn t vng ny n vng khc th chc chn a ch IP ca my
s b thay i.

nh danh (identifier): l mt loi tn c nhng c tnh sau:


1. Mt nh danh tham chiu nhiu nht n 1 thc th.
2. Mi thc th c tham chiu nhiu nht bi 1 nh danh.
3. Mt nh danh lun tham chiu ti cng 1 thc th.

Nh dng nh danh, chng ta d dng hn khi cp n mt thc th.


Chng ta cng khng th s dng a ch lm nh danh c v address c th
thay i.
Khng gian tn (namespace): l 1 cch t chc cc tn trong h phn tn.
Biu din bng 1 th c hng - th tn (name graph).
Phn gii tn (name resolution): duyt th tn theo namepath tm kim
tn hoc nh danh ca 1 thc th.

II.3.2. nh v thc th di ng
Mt phng php ph bin h tr cc thc th di ng trong mng c phm
vi ln l home-based, bng cch a ra 1 a im ch (home location), ni s
gi li vt ca a im hin ti ca thc th. Trong thc t th a im ch
thng c chn ti ni m thc th c to ra. Mt v d v k thut homebased l trong Mobile IP (IP di ng) Mi host di ng s dng a ch IP c nh.
Tt c cc giao tip n a ch IP u tin s c n mobile hosts home
agent (ni qun l cc host di ng). Ni qun l ny c t trn mt mng LAN
tng ng vi a ch mng cha trong a ch IP ca host di ng. Bt c khi no
host di ng chuyn ti mt mng khc, n u yu cu mt a ch tm thi
dng cho cc hot ng giao tip. a ch chuyn tip (care of address) ny c
ng k ti home agent.
Khi home agent nhn c mt gi tin gi cho mt host di ng, n s tm
kim a im hin ti ca host di ng . Nu host di ng ang mng cc
b hin hnh th gi tin s c chuyn tip mt cch d dng. Ngc li, n s
to mt ng ngang ti ni m host di ng ang nm bng cch gi (wrap) d
liu trong mt gi IP v gi n a ch chuyn tip m n ang qun l. Cng lc
th ni gi gi tin i c thng bo ca a im hin ti ca host di ng. Ch
rng a ch IP c s dng mt cch hiu qu khi c 1 nh danh cho host di
ng.
Ngoi hng tip cn trn cn nhiu hng khc na gii quyt vn
thc th di ng.

II.3.2. Xo b nhng thc th khng cn c tham chiu


lm gim bt nhng vn lin quan n vic xa nhng thc th khng
cn c tham chiu, h phn tn cung cp 1 s cc tin ch t ng xa mt
thc th khi n khng cn cn na. Nhng tin ch c gi chung l h thng
thu gom rc phn tn (distributed garbage collectors). Trong phn ny chng ta s
tm hiu mi quan h gia vic nh danh (naming) v tham chiu cc thc th
(referencing entities), v vic t ng thu gom nhng thc th khng cn c
tham chiu na.
-8-

H thng file phn tn

II.4. ng b ha
Trong h phn tn, vic tnh thi gian ca mi my tnh l khc nhau, v vy
cn phi c mt khi nim gi l thi gian vt l thng nht v thi gian gia
cc my tnh trn ton cu. Bn cnh , khi cc tin trnh cng yu cu mt n
v d liu trong cng mt thi gian th s khng trnh khi tng tranh bt kh
khng. Nhng iu trn chnh l cc vn chnh cn c gii quyt trong vic
ng b ho.

II.4.1. ng b ho ng h vt l
Mi my tnh u ci t 1 ng h vt l, l cc mch m xung nhp.
Tht ra chng khng phi ng h trong quan im thng thng. Nhiu khi ta gi
chng l cc b m nh thi (timer). B nh thi trong my tnh thng l tinh
th thch anh chy rt chnh xc. Khi c gi mt hiu in th, tinh th thch
anh dao ng vi tn s n nh ty thuc vo loi tinh th . Lin kt vi tinh th
thch anh l hai thanh ghi, 1 b m (counter) v thanh ghi gi (holding register).
Mc d tn s ca b dao ng tinh th lun kh n nh, n khng th m
bo cc tinh th trong cc my tnh khc nhau u chy chnh xc cng tn s.
Thc t khi mt h thng c nhiu my tnh th tt c cc tinh th s chy vi tn
s khc nhau cht t, dn gy ra s mt ng b v gi tr c ra s khc nhau. S
khc nhau v gi tr thi gian c gi l s sai lch ca ng h. V kt qu ca
s sai khc ny l chng trnh c s i hi thi gian lin kt vi file, i tng,
tin trnh, hay thng ip s khng cn chnh xc.
Trong mt s h thng thi gian thc, thi gian ng h l rt quan trng. i
vi nhng h thng ny i hi c cc ng h vt l ngoi. Vic dng nhiu ng
h vt l nh th s ny sinh ra 2 vn :
1. Lm th no ng b chng vi ng h th gii thc.
2. Lm th no ng b chng vi nhau.
Vic ng b gia cc ng h vt l cn phi da vo 1 thi gian chun c
gi tr ton cu thi gian phi hp ton cu UTC (universal coordinated time).
Nu cc my tnh c cc wwv receiver th vic ng b ha s c thc
hin theo UTC. Ngc li, nu cc my tnh khng c wwv receiver th phi s
dng cc gii thut ng b ha ng h vt l. C 3 gii thut ph bin, l:
1. Gii thut Cristian.
2. Gii thut Berkeley.
3. Gii thut trung bnh.
Tt c cc thut ton u c cng m hnh h thng c bn. Mi my xem nh
c mt b m thi gian, n to ra mt ngt H ln trong mt giy. Gi gi tr ca
ng h ny l C. Khi thi gian UTC l t, th gi tr ca ng h trn my p s l
Cp(t). Trong mt th gii l tng chng ta c Cp(t) = t cho tt c p v t. Hay ni
cch khc, l tng l C(p).t = 1.
B nh thi thc khng ngt chnh xc H ln trong mt giy. Theo l thuyt, b
nh thi vi H = 60 cn pht ra 216000 tick trong mt gi. Thc t nhng sai s
tng i t c vi cc chip m thi gian hin i t khong 10-5, c ngha
l mt my no c th ly gi tr t 215998 n 216002 tick trong mt gi. Mt
cch chnh xc hn, tn ti mt hng s tho mn:
1 - dC.dt 1 +
-9-

H thng file phn tn


m b nh thi lm vic chnh xc. Hng s c xc nh bi nh sn xut
v c gi l Maximum Drift Rate.

II.4.2. ng b ho ng h logic
a. Tem thi gian Lamport (1978)
ng b ng h logic, Lamport nh ngha mt mi quan h gi c gi l
happens-before (xy ra - trc khi). S kin a xy ra trc s kin b (K hiu:
ab) c gi l ng nu:
1. a, b l hai s kin xy ra trong cng 1 tin trnh, v a xy ra trc b.
2. a, b khng thuc mt tin trnh nhng a gi mt thng ip i v b l s
kin nhn thng ip .
Happens before l mt quan h ko theo, v th nu ab v bc th ta s c
ac. Nu hai s kin x v y xy ra trong hai tin trnh khc nhau (thm ch khng
gin tip qua i tng th ba) th xy l khng ng, v c yx cng th.
Nhng s kin ny c gi l ng thi.
Nu ta c s kin x, th k hiu C(x) l tem thi gian ca x, tha mn cc iu
kin sau:

Nu a xy ra trc b trong cng 1 tin trnh th C(a) < C(b).

Nu a v b biu din tng ng vic gi nhn thng ip th C(a) <


C(b).

Mi s kin phn bit a v b th C(a) C(b).

b. Nhn thi gian vector (Vector Timestamps)


Mt nhn thi gian vector VT(a) c gn cho mt s kin a c thuc tnh. Nu
s kin a trc s kin b th ta c VT(a) < VT(b). Vector nhn thi gian c xy
dng bng cch mi tin trnh Pi duy tr mt vector Vi vi hai thuc tnh sau:
1. Vi[i] l s s kin xy ra cho n by gi Pi.
2. Nu Vi[j] = k th Pi hiu rng k s kin xy ra Pi.
Thuc tnh u tin c duy tr bi vic tng Vi[i] ng thi vi mi s kin
mi xy ra Pi. Thuc tnh th hai c duy tr bng cc piggy-backing vector
cng vi cc thng ip c gi

II.4.3. Trng thi tng th (global state)


II.4.4. Cc gii thut bu chn (election algorithm)
Nhiu thut ton phn tn i hi 1 tin trnh ng vai tr nh iu phi vin
(coordinator), ngi khi xng (initiator), hoc khng th thc hin 1 vai tr c
bit. Trong phn ny ta s xem xt cc thut ton bu chn iu phi vin.
Thut ng iu phi vin c dng nh 1 tn tng qut cho tin trnh c bit.
Nu tt c cc tin trnh u ging ht nhau, khng c cc c im phn bit,
th khng c cch no chn ra mt tin trnh c bit. V th chng ta s gi s
rng mi tin trnh c mt con s duy nht, v d nh a ch mng ca n ( n
gin ta cng cho rng mi tin trnh trn 1 my). Ni chung, cc thut ton bu
chn s c gng xc nh tin trnh vi s tin trnh (process number) l cao nht
v ch nh n l iu phi vin. Cc thut ton khc nhau th s khc nhau trong
cch xc nh ny.
a. Gii thut p o (bully algorithm Garcia Molina, 1982)
- 10 -

H thng file phn tn


Khi mt tin trnh bt k ch rng iu phi vin khng cn p ng cc yu
cu na, th n bt u mt cuc bu c. Mt tin trnh P s t chc 1 cuc bu
theo cc bc sau:
1. P gi mt thng ip bu c (ELECTION) cho tt c cc tin trnh vi s
tin trnh cao hn.
2. Nu khng c ai phn hi, P s thng c v tr thnh iu phi vin.
3. Nu c ai vi s tin trnh cao hn tr li li, n chuyn li, v cng vic
ca P xong.
b. Gii thut vng (ring algorithm)
Gi s rng cc tin trnh c sp theo trt t vt l v logic mi tin
trnh bit c tin trnh k tip l ai. Khi mt tin trnh thng bo khng tm thy
iu phi vin, n xy dng mt thng ip bu c gm s hiu ring ca n v
gi thng ip cho tin trnh k tip n. Nu tin trnh k tip down, bn gi s
b qua v nhy n tin trnh k tip trn vng, cho n khi mt tin trnh ang
chy c xc nh. Ti mi bc, tin trnh gi s thm s hiu tin trnh
(process number) ca chnh n vo danh sch trong thng ip n tr thnh 1
ng vin trong vic bu iu phi vin.

II.4.5. Loi tr nhau (mutual exclusion)

Gii thut tp trung (centralized algorithm).

Gii thut phn tn (distributed algorithm).

Gii thut s dng token (token ring algorithm).

II.4.6. Giao tc phn tn (distributed transaction)


a. Cc tnh cht ca giao tc - ACID
1. A (nguyn t - Atomic): i vi th gii bn ngoi th giao tc khng th
phn chia c na.
2. C (nht qun - consistent): giao tc khng xm phm cc bt bin ca h
thng.
3. I (cch ky - isolated): cc giao tc ng thi khng gy tr ngi cho nhau.
4. D (lu bn-durable):khi 1 giao tc cam kt th cc thay i l ko di lu
bn.
b. Phn loi giao tc (Classifications of Transactions)

Giao tc phng (flat transaction)

L giao tc n gin nht, tha mn 4 tnh cht ACID trn. Hn ch chnh ca


giao tc phng l chng khng cho php tch ring cc kt qu c cam kt
(commited) hay hy b (aborted). Ni cch khc mc ca tnh nguyn t ca
giao tc phng l yu.

Giao tc lng nhau (nested transaction)

Khc phc cc hn ch ca giao tc phng ta s dng giao tc lng nhau. Mt


giao tc lng nhau c cu trc t mt s giao tc con, hay ni cch khc l trong
giao tc li bao gm cc giao tc khc. Mi giao tc con cng c th thc thi mt
hay nhiu giao tc con ca chnh n.

Giao tc phn tn (distributed transaction).

- 11 -

H thng file phn tn


iu khin tng tranh, c 2 tip cn: iu khin tng tranh bi quan
(pessimistic concurrency control) v iu khin tng tranh lc quan (optimistic
concurrency control).

II.5. Nht qun v nhn bn


Trong h phn tn, vic s dng cc bn sao ng vai tr kh quan trng. C
nhng l do sau ta dng cc bn sao:
1. Tng tnh tin cy. Nu mt h thng file c sao lu n c th tip tc lm
vic sau khi gp s c bng cch chuyn n lm vic vi cc bn sao khc.
C nhiu bn sao gip bo v chng c vic d liu b h hng.
2. Tng hiu nng, t tng tnh sn sng s dng ti nguyn.
Tuy nhin, ta cng phi tr gi cho vic s dng cc bn sao. Vn c t
ra y l lm th no m bo tnh nht qun.
C 2 nhm m hnh nht qun:
Cc m hnh nht qun ly d liu lm trung tm (data centric consistency
models)
Cc m hnh nht qun ly client lm trung tm (client centric consistency
models).

II.5.1. Cc m hnh nht qun ly d liu lm trung tm


a. Cc m hnh nht qun mnh
Cn c vo bn thn cc thao tc n l c.ghi trn cc d liu dng chung,
ta c cc m hnh nht qun mnh. Bao gm:
M hnh nht qun cht (strict consistency): khi tha iu kin sau: Bt k
thao tc c no trn n v d liu x th u s tr v mt gi tr tng ng vi
thao tc ghi gn nht trn x.
M hnh nht qun tun t (sequential consistency): l 1 m hnh nht qun
yu hn 1 t so vi m hnh nht qun cht. N c a ra bi Lamport (1979),
theo ng cnh b nh c chia s cho cc h thng a vi x l M hnh nht
qun tuyn tnh.
M hnh nht qun tuyn tnh (linearizability consistency): m hnh nht
qun ny yu hn m hnh nht qun cht nhng li mnh hn m hnh nht qun
tun t
M hnh nht qun nhn qu (causal consistency): phn trc chng ta
cng ni n tnh nhn qu khi cp n vector tem thi gian. Nu s kin B
b tc ng v nh hng bi s kin A trc , tnh nhn qu i hi rng mi
ngi phi thy A trc khi thy B.

M hnh nht qun FIFO.

b. Cc m hnh nht qun yu


M hnh nht qun yu (weak consistency): m hnh ny c nhng c
im sau:
1. Truy cp n cc bin ng b ho (synchronization variables) c kt
hp vi mt kho d liu (data store), nht qun mt cch tun t.
2. Khng c thao tc trn mt bin ng b c php thc hin cho n khi
tt c cc thao tc ghi trc hon thnh mi ni.
- 12 -

H thng file phn tn


3. Khng c thao tc c ghi trn cc n v d liu c php thc hin
cho n khi tt c cc thao tc trc n cc bin ng b c thc
hin.
M hnh nht qun i ra (release consistency): ni chung mt kho d liu
c gi l nht qun nh nu n tun theo cc qui tc sau:
1. Trc khi mt thao tc c ghi hoc ghi trn n v d liu chia s c
thc hin, tt c yu cu thc hin trc bi cc tin trnh phi c
hon tt thnh cng.
2. Trc khi mt s gii phng (i ra - release) c php thc thi, tt c
cc thao tc c v ghi trc thc hin bi cc tin trnh phi c hon
tt.
3. S truy cp n cc bin ng b ho l nht qun FIFO

M hnh nht qun i vo (entry consistency)

II.5.2. Cc m hnh nht qun ly client lm trung tm

M hnh nht cui cng (eventual consistency).

M hnh nht qun c u (monotonic reads).

M hnh nht qun ghi u (monotonic writes).

M hnh nht qun c thao tc ghi (read your writes).

M hnh nht qun ghi theo sau c (writes your reads).

II.5.3. Cc giao thc phn tn


a. Sp t cc bn sao (replica placement)
Vn thit k chnh t ra cho kho d liu phn tn, l quyt nh xem khi
no, u, v do ai sp t cc bn sao ca kho d liu. C 3 loi bn sao nh
sau:

Cc bn sao thng trc (permanent replicas).

Cc bn sao my ch khi to (server-initiated replicas)

Cc bn sao my khch khi to (client-initiated replicas)

b. Lan truyn cp nht (update propagation)


Vn c gii quyt y l lm th no lan truyn cc cp nht t 1
bn sao n cc bn sao khc.

II.6. Chu li
Mt c tnh ring bit ca h phn tn gip phn bit vi h thng my n l
khi nim ca li ring phn (partial failure). Mt li ring phn c th xy ra khi
mt thnh phn trong h thng b s c, v li ny c th nh hng n hot
ng chung ca cc thnh phn khc. Mt mc tiu quan trng trong thit k h
phn tn l xy dng nn 1 h thng m n c th t ng hi phc li cc li
ring phn m khng lm nh hng g nghim trng n ton b hiu nng.

II.6.1. Cc khi nim c bn


Sau y l cc i hi cho 1 h phn tn:
Tnh sn sng (availability): h thng sn sng s dng ngay bt k lc no.
Ni chung, thuc tnh ny m bo cho h thng lun hot ng mt cch chnh
xc mi thi im c yu cu v sn sng hot ng theo yu cu ca ngi
s dng.
- 13 -

H thng file phn tn


Tnh tin cy (reliability): h thng chy lin tc m khng b li. Ngc vi
tnh sn sng, tnh tin cy c nh ngha lin quan n mt khong thi gian
thay v mt im thi gian. Mt h thng c tin cy cao c th lm vic lin tc
m khng b gin on trong khong thi gian kh di
Tnh an ton (safety): h thng c li tm thi th vn khng c thm ho
xy ra. V d nh cc tin trnh hot ng trong h thng iu khin nng lng
nguyn t hay a con ngI ln v tr cn mt an ton cao. Nu cc h thng
iu khin nh th tm thi hng trong 1 khonh khc, hu qu tht kinh khng.
Tnh bo tr c (maintainability): kh nng ny gip h thng b li nhanh
chng khc phc li.
Nu mt h thng c c c 4 tnh trn th c gi l mt h thng c tin
cy (dependability).
Khi phn loi cc li ca h phn tn, ta c 3 loi li sau: Li nht thi
(transient faults) l nhng li ch xy ra 1 ln, mt i, v khng lp li na. Li lp
(intermittent faults) l nhng li xy ra, mt i, v sau lp li. Li lu di hay cn
gi l li thng trc (permanent faults).
Bn cnh cc loi li trn, ta cn c cc m hnh li sau: li sp (crash
failure) khi server b treo, li b st (omission failure) khi server khng p ng
c nhu cu gi hoc nhn, li thi gian (timing failure) khi thi gian c tr li
nhng li qu thi gian quy nh, li p ng (respond failure) server c tr li
nhng khng ng, v cui cng l li tu tin (arbitrary failure) khi server tr li 1
cch tu tin vo cc thi im ty tin.

II.6.2. Che du nhng h hng bng s d tha.


Nu mt h thng phi chu li, cch tt nht l c gng n i s xut hin ca
cc li t nhng tin trnh khc. K thut chnh cho vic che du li l s dng
d tha.
C 3 loi d tha:
D tha thng tin: bit tha c thm vo cho php hi phc nhng bit
b sai khc, b li. V d, m Hanmming c th c thm vo d liu truyn
hi phc khi c nhiu trn ng truyn.
D tha thi gian: mt hnh c thc hin, v sau , nu cn, n li
c thc hin ln na.
D tha vt l: l 1 k thut rt ph bin cho vic chu li. N c dng
trong sinh vt hc (ng vt c v th c 2 mt, 2 tai, 2 phi), trong k thut hng
khng (Boeing 747 c n 4 ng c nhng ch dng 3 ci bay), trong th thao
(nhiu trng ti ch trong 1 tnh hung phm li). N cng c dng chu li
trong cc mch in t

II.6.3. Khi phc tin trinh (process resilience)


khi phc tin trnh, ta t chc thnh cc nhm tin trnh ging nhau. Cc
nhm tin trnh trn c th ng, ni cch khc chng c th thm vo hoc bt i
cc thnh vin. Tuy nhin, vn cn gii quyt y s l qun l cc nhm tin
trnh nh th no. Nu ng v phng din nhm, ta s c gii php cho vn
trn l phn thnh nhm ngang hng v nhm phn cp. Tng ng, nu ng
trn phng din thnh vin ca nhm, ta s c: qun l tp trung v qun l phn
tn.
Ngoi ra, ta cn phi tnh n nn c bao nhiu bn sao tin trnh. l vn
che du li v c ch dng bn sao.
- 14 -

H thng file phn tn

II.6.4. Truyn thng theo m hnh client.server tin cy


Trong nhiu trng hp, tnh chu li trong h phn tn ch tp trung vo cc
tin trnh b li. Tuy nhin, chng ta cng cn quan tm n cc li truyn thng.
Trong thc t, khi xy dng cc h thng truyn thng tin cy, vn ct yu l
phi kim sot cc li b st v li sp . Cc li tu tin c th xy ra di dng
sao chp cc thng ip, kt qu l trong cc h thng mng, cc thng ip ny
c th c lu gi trong mt thi gian kh di v sau li c a ln mng
sau khi ngi gi gi i mt thng ip truyn li.
Cc phng php truyn thng tin cy:

Truyn thng im ti im (Point to point communication)

Ng ngha RPC trong cc li hin thi (RPC Semantics in the Presence of


Failures)

II.6.5. Truyn thng theo m hnh nhm tin cy


Mi tin trnh thit lp 1 kt ni im - imm vi tin trnh khc m n mun
truyn thng. Hin nhin, mt t chc nh vy l khng hiu qu khi n c th
hoang ph di thng mng. Tuy nhin, nu s lng tin trnh nh, th nh th vic
t c tin cy xuyn sut nhiu knh im-im tin cy l kh n gin,
khng h phc tp.

II.6.6. Cam kt phn tn (distributed commit)


Gii thut cam kt 2 pha (2PC) vi 2 pha l: pha bu c (voting phase) v pha
quyt nh (decision phase). Tuy nhin, khc phc trng hp iu phi vin b
sp , ngi ta xut ra gii thut cam kt 3 pha 3PC.

II.6.5. Phc hi li (recovery)


Mt khi c li xy ra, th vic hi phc li l iu ht sc cn thit.
Phc hi li li (backward recovery): a h thng t trng thi li hin
hnh tr v trng thi ng trc .
Phc hi li tin (forward recovery): mt khi h thng i vo trng thi li,
thay v phi quay lui, ta c gng em h thng n trng thi ng mi trc
m ti ta li c th tip tc thc hin bnh thng.

II.7. An ton an ninh


II.7.1. M u
a. Mi e do bo mt, cc chnh sch v c ch an ton an ninh
Bo mt trong h thng my tnh l chng ta c gng bo v cc dch v v d
liu ca h thng, chng li cc s e do. Sau y l 4 loi e do vn bo
mt m chng ta cn xem xt:
1. Interception (Chn): nhm ni n tnh hung mt phn t no khng
c u quyn m li ginh c quyn truy cp vo cc dch v hoc d liu.
Hay ni cch khc l cc truy cp tri php, nghe trm.V d: Giao tip thng
qua phng tin truyn thng gia hai i tng b nghe trm bi mt i tng
no . S chn ng cng xy ra khi d liu b sao chp khng hp php khi
vo th mc ca ngi khc trong h thng file.
2. Interruption (Ngt): nhm ni n tnh hung trong cc dch v hoc d
liu tr nn mt tc dng, b ph hu, khng tm thyv d nh khi mt file b h
hng hay b mt. Trong trng hp ny cc dch v hoc d liu b mt k no
c ch tm ph hoi nhm lm cho ngi khc khng th truy cp c.
- 15 -

H thng file phn tn


3. Modification (Bin i): s bin i gy ra s thay i d liu lm cho d
liu khng cn gi nguyn c nhng c im ban u. Thng d liu b chn
ng tc c k truy nhp bt hp php v sau thay i d liu truyn i, thay
i chng trnh b mt truy nhp vo cc hot ng ca ngi c php s
dng hp php chng trnh.
4. Fabrication (Ch to): nhm ch n trng thi trong vic pht sinh cc
d liu thm vo hay cc hot ng bt thng. V d: Mt k xm nhp c thm
cho bng c 1 mc (entry) vo file mt khu hay c s d liu.
Cc c ch bo mt:
Encryption (Mt m): l nn tng ca bo mt trong h thng my tnh. M
ho s chuyn i d liu thnh mt dng no khin cho mt k xm nhp tri
php khng hiu c. M ha cng cung cp c ch cho php kim tra tnh ton
vn d liu.
Authentication (Xc thc): c s dng nhn dng chnh xc cc yu
cu ca user, client, serverTrong trng hp ca client, tin c bn trc khi
server p ng nhu cu ca client l server phi nhn dng c client. Thng
thng, server nhn dng client thng qua password, ngoi ra cn cc phng
php nhn dng khc.
Authorization (U quyn): sau khi client c xc thc, iu cn thit l
kim tra xem khi no client c cp quyn bt u thc hin cc hnh ng
p ng yu cu t user. Hay ni cch khc, u quyn gip kim tra cc quyn
c thc hin cc hnh ng yu cu.
Auditing (Kim ton): cng c kim ton c s dng pht hin ra
client no truy nhp vo ci g v bng cch no. Mc d kim nh khng tht s
cung cp bt c tnh nng bo v no chng li s e do bo mt nhng n tht
s hu dng trong vic phn tch tm ra nhng l hng bo mt sau c cch
chng li x xm nhp. Cng chnh v l do ny, cc hacker khng bao gi li
du vt c th dn n vic pht hin ra h.

II.7.2. Knh an ton (secure channels)


C 3 phng php xc thc chnh:
Xc thc da trn kho b mt: y c xem l mt phng php c l
ph bin trong vic chuyn cc thng tin quan trng thi im m my tnh cha
pht trin. Khi my tnh c ra i v pht trin th vic m ho bng kho b mt
c thc hin trn cc h thng my tnh. N c m ho vi s lng kho a
dng hn v cc hm dng m ho cng phc tp hn. Vic ci tin cc kho
ny c xem l vn cn thit. Ci tin y l ci tin v kch thc ca kho
phi c m rng v cc hm m ho kho phi c phi c la chn cn
thn sao cho thng tin b ly i nhng khng s dng c do khng gii m
c n. Mt trong s cc thut ton c xem nh p ng c yu cu ci
tin ny l thut ton DES.
Xc thc s dng 1 trung tm phn phi kho: mt trong nhng vn khi
s dng kha b mt xc thc l tnh co dn. Nu h phn tn c N my
ch, th h thng ni chung cn qun l N(N-1).2 kha, v mi my ch phi qun l
N-1 kha (v mi my ch u i hi chia s mt kho chia s vi mi N-1 my
ch khc). Mt s la chn khc l s dng mt trung tm phn phi kha (KDCKey Distribution Center). KDC chia s kha b mt vi cc my ch, nhng khng
c hai my ch no c cng mt kha chia s. Nh vy nh s dng KDC chng
ta ch cn qun l N kha thay v N(N-1).2, iu ny r rng l mt s ci tin.
- 16 -

H thng file phn tn

Xc thc s dng kho cng khai.

II.7.3. Kim sot truy cp (access control)


K thut m ha kt hp vi ma trn iu khin truy cp (access control
matrix) c th c thi hnh trong trng hp h phn tn c lp, cch ly vi th
gii bn ngoi. Cn trong trng hp bn ngoi cng c php truy cp vo h
thng th chng ta phi s dng bc tng la (firewall). C hai kiu tng la :
1. Cng lc cc gi tin (packet-filtering gateway).
2. Cng mc ng dng (application-level gateway)

M di ng an ton (secure mobile code): trong h phn tn th l kh nng


di tr m gia cc host l ht sc cn thit v quan trng. Tuy nhin, m di ng
li xut hin km theo cc mi e da an ninh nghim trng. V d nh, khi gi 1
tc t qua Internet, ta s phi chng li nhng host nguy him, c nh n cp
hoc sa i thng tin ca tc t. Mt vn khc l cc host cn c bo v
chng li cc tc t gy hi.
II.7.4. Qun tr an ton an ninh

Qun tr kho (key management)

Qun tr nhm an ton (secure group management)

Qun tr u quyn (authorization management)

II.7.5. Kerberos
Mt trong nhng h thng an ton an ninh c s dng rng ri l
Kerberos. Kerberos c pht trin bi MIT. N c da trn giao thc xc thc
Needman-Schroeder m ta ni phn trn (giao thc xc thc s dng trung
tm phn phi kha - KDC). Mc ch ca n l to lp knh an ton gia client v
server.

II.7.6. SESAME
SESAME l 1 h thng an ton an ninh khc, n cng kh ging vi
Kerberos. Tuy nhin, n li dng m ho cng khai kt hp vi cc kho b mt
chia s. D n SESAME c bt u bi s n lc tham gia ca cc cng ty ln
Chu u, nhm pht trin cc chun an ton-an ninh cho h thng m.
SESAME c vit tt t Secure European System for Application in a Multivendor Environment.

II.7.7. Thanh ton in t (electronic payment system)


Ta c 2 loi h thng thanh ton in t:
Thanh ton trc tip gia ngi bn v ngi mua. Cc hnh thc thanh
ton c th l tin mt, chuyn khon, th tn dng.
Thanh ton da trn vic chuyn tin gia cc ngn hng: lnh chuyn tin
(money order), phiu ghi n (debit order)

III. H thng qun tr file (tp) phn tn


Chia s d liu l 1 trong nhng chc nng c bn ca h phn tn. H thng
file phn tn cho php nhiu tin trnh cng chia s d liu trong khong thi gian
di 1 cch an ton v tin cy. Tt c 7 nguyn l m ta ni trn u c p
dng cho cc h thng file phn tn.
Tm tt ni dung:
- 17 -

H thng file phn tn


Trong phn ny ta xem xt h thng file phn tn ng vai tr nh 1 m
thc cho cc h phn tn. Ta s gii thiu 2 h thng file phn tn l Sun NFS
(Network File System - H thng file mng) v Coda. Trong 2 h thng , ta s
tp trung vo phn tch k NFS.

Ta cng s xem xt ngn gn thm v 3 h thng file khc.

V cui cng l so snh gia cc h thng file phn tn vi nhau.

III.1. Sun Network File System


Tn y l H thng file mng ca Sun Microsystem - thng c gi tt
l NFS. NFS ban u c pht trin bi Sun dnh cho cc my trm UNIX, tuy
nhin n cng c th chy tt trn cc h iu hnh khc. tng c bn ca
NFS l mi file server (my ch file) cung cp 1 khung nhn c chun ha v
h thng file cc b ca n. Ni cch khc, bt k h thng file cc b c thi
hnh nh th no, th mi NFS server (my ch h thng file mng) h tr cng
m hnh. M hnh ny cng vi 1 giao thc truyn thng cho php cc client truy
cp n cc file lu tr trn server. Hng tip cn ny cho php 1 tp khng
thun nht cc tin trnh, c kh nng chy trn cc my v cc h iu hnh khc
nhau, cng chia s 1 h thng file chung.
S lc lch s ca NFS:
Phin bn u tin ca NFS khng c pht hnh m ch c lu
hnh ni b trong Sun.

Phin bn th 2 c kt hp trong h iu hnh SunOS 2.0 (1985).

Vi nm sau, phin bn th 3 ca NFS c pht hnh (1994) ri n


phin bn 4.

III.1.1. Tng quan v NFS


a. Kin trc ca NFS
Trong m hnh Dch v file t xa (remote file service), cc client truy cp 1 cch
trong sut n h thng file c qun l bi 1 server xa. V th, thng thng
cc client khng bit ch thc s ca cc file. Thay vo , chng c cung cp
1 giao din n h thng file, tng t nh giao din ca cc h thng file cc b
thng thng. Trong trng hp ring, client ch c cung cp 1 giao din cha
nhiu cc thao tc file khc nhau, server ch c nhim v thc thi cc thao tc file
. Chnh v vy m hnh ny cn c gi l M hnh truy cp t xa (remote
access model). (H.1)
File trn server
server

client
Yu cu t client
truy cp file t xa.
H.1. M hnh truy cp t xa

Tri li, trong m hnh Upload . Download (ti ln . ti xung) th 1 client ch truy
cp n 1 file cc b sau khi ti n xung (download) t server. Mt khi client
hon tt thao tc vi file xong th n s ti file ln (upload) li server, file
c th c cc client khc s dng. Dch v FTP ca Internet dng theo chnh
cch ny. (H.2)
client

File di
chuyn
n
- 18
client

server
File c

H thng file phn tn

H.2. M hnh upload.download


NFS da trn UNIX, tuy nhin n cng c th dng cho nhiu h iu hnh
khc nhau. Vi tt c h thng UNIX hin i, ni chung NFS c thc thi theo
kin trc phn tng nh sau (H.3)
Client
Server
Tng gi h thng

Tng gi h thng

Tng h thng file o (VFS)

Tng h thng file o (VFS)

Giao din h
thng file cc b

NFS client

NFS server

RPC client
stub

RPC server
stub

Giao din h
thng file cc b

mng
H.3. Kin trc NFS c bn dnh cho h thng UNIX
Mt client truy cp n h thng file s dng li gi h thng c cung cp
bi h iu hnh ca n. Tuy nhin, giao din h thng file UNIX cc b c thay
bi 1 giao din n H thng file o (VFS). Cc thao tc trn giao din VFS hoc
c chuyn n 1 h thng file cc b, hoc c chuyn n 1 thnh phn
ring bit gi l NFS client, m trch vic iu khin truy cp n cc file c
lu server t xa. Trong NFS, tt c client server giao tip thng qua cc RPC.
NFS client thi hnh cc thao tc h thng file NFS khi cc RPC n server. Lu
rng cc thao tc c a ra bi giao din VFS c th khc vi cc thao tc
c a ra bi NFS client. Nh vy tng chnh ca VFS l n i s khc bit
gia cch thng file.
bn server, chng ta thy t chc hon ton tng t. NFS server c nhim
v x l cc yu cu n t client.
Ta thy, mt li ch quan trng ca s trn l s c lp ca cc h
thng file cc b. Theo nguyn tc th n s khng h quan tm d h iu hnh
ti client hay server chy 1 h thng file UNIX, 1 h thng file Windows 2000, hay
thm ch l 1 h thng file MS-DOS c. Ch c 1 iu quan trng cn ch l cc
h thng file ny phi ty theo m hnh h thng file c a ra bi NFS.
- 19 -

H thng file phn tn

b. M hnh h thng file


M hnh h thng file c a ra bi NFS cng ging nh m hnh c a
ra bi h thng da trn UNIX. Cc file s c xem nh dy tun t cc byte.
Chng c t chc phn cp trong 1 th nh danh, trong cc nt biu din
cc th mc v cc file. truy cp 1 file, client phi tm tn ca n trong 1 dch v
nh danh (naming service) v s nhn c iu khin file kt hp (associated
file handle). Ngoi ra mi file c 1 s cc thuc tnh m gi tr ca chng c th
c tm v thay i. Ta xem xt chi tit chng phn sau.
Cc thao tc vi file ca NFS phin bn 3 v 4 :
Thao tc to mi (creat) c s dng to ra 1 file, y cng s khc
bit gia NFS phin bn 3 vi phin bn 4. Trong phin bn 3, thao tc ny
c dng to ra cc file chnh quy (regular file), trong khi cc file phi chnh
quy (non-regular file) li c to ra bi cc thao tc ring khc. Thao tc lin
kt c dng to cc lin kt cng, cn symlink s c dng to cc
lin kt biu trng (symbolic link). Mkdir to cc th mc con. i vi cc file
c bit nh cc file thit b, cc socket th c to bi thao tc mknod. Tuy
nhin, trong phin bn 4 th thao tc to mi li c dng to ra 1 file phi
chnh quy, bao gm c cc lin kt tng trng, cc th mc v cc file c bit.
(H.4)
Thao
tc

Ph.bn
3

Ph.bn 4

M t

Creat

Khng

To 1 file chnh quy

Creat

Khng

To 1 file phi chnh quy

Link

To 1 lin kt cng n 1 file

Symlink

Khng

To 1 lin kt tng trng n 1 file

Mkdir

Khng

To 1 th mc con trong th mc cho

Mknod

Khng

To 1 file c bit

Rename

i tn 1 file

Remove

Xa 1 file khi 1 h thng file

Rmdir

Khng

Xa 1 th mc con rng khi 1 th mc

Open

Khng

M 1 file

Close

Khng

ng 1 file

Lookup

Tm 1 file theo tn ca n

Readdir

c cc mc trong 1 th mc

Readlink C

c tn ng dn lu trong 1 lin kt biu


trng

Getattr

Ly cc gi tr thuc tnh ca 1 file

- 20 -

H thng file phn tn


Setattr

Thit lp1 hoc nhiu gi tr thuc tnh ca 1


file

Read

c d liu ch trong 1 file

Write

Ghi d liu vo 1 file

H.4. Danh sch cc thao tc h thng file c h tr bi NFS

Thao tc rename c dng thay i tn ca 1 file c.

File s b xa bi thao tc remove. Trong phin bn 4 th thao tc ny s


xa bt k loi file no. Tuy nhin trong phin bn 3 th rmdir s xa th mc
con. Mt file c xa bi tn ca n, v khi s cc lin kt cng n n s b
gim i 1. Nu s cc ng lin kt gim xung 0 th file s b hy i.
Phin bn 4 cho php cc client m v xa cc file (chnh quy). m 1 file,
client s cung cp tn file , cng vi cc gi tr khc nhau cho cc thuc tnh. Sau
khi 1 file c m thnh cng, client c th truy cp file bng iu khin file
(file handle) ca n. iu khin cng c dng ng file, bng cch
client c th ni vi server rng n khng cn truy cp n file na. server khi ny
c th gii phng trng thi m n duy tr cung cp cho client truy cp
n file.
Thao tc lookup (tm) c dng truy tm 1 iu khin file cho 1 tn
ng dn cho trc.
Thao tc readlink (c lin kt) c dng c d liu lin kt vi 1
symbolic link.
Cc file s c cc thuc tnh km theo. Cc thuc tnh in hnh l: kiu ca
file, di file, nh danh (identifier) ca h thng file cha file , v ln cui
cng file c chnh sa. Cc thuc tnh ca file c th c hoc thit lp bng
cch s dng cc thao tc getattr v setattr.
Cui cng l cc thao tc c (read) d liu t 1 file, v ghi (write) d liu
vo 1 file. Vi thao tc c file (c thng ti), client ch ra s lng cc byte v
khong cch gia cc byte c. client s c tr v s cc byte c
c. Vi thao tc ghi d liu vo file, client phi ch r ra v tr bt u ghi
trong file, s lng cc byte c ghi, v d liu ghi.

III.1.2. Truyn thng


Mt iu quan trng trong NFS l s c lp vi h iu hnh, kin trc
mng, v cc giao thc vn chuyn. V d nh, cc client chy trn h thng
Windows vn c th giao tip vi 1 my ch file (file server) UNIX.
Trong NFS, tt c truyn thng gia client v server u theo giao thc Open
Network Computing RPC (ONC RPC). Ni chung th ONC RPC hon ton tng
t vi cc h thng RPC khc.
Mi thao tc NFS u c th thi hnh khi 1 th tc n t xa gi n 1 file
server. V d nh, c d liu t 1 file ln u tin, trc ht 1 client thng
thng phi dng thao tc lookup truy tm iu khin file, sau n mi c th
gi 1 yu cu c (H.5a).
Trong v d ny ca ta, client kt hp c yu cu tm v yu cu c vo trong
1 RPC n (H.5b). Trong trng hp phin bn 4, ta cng cn phi thao tc m
file trc khi hnh ng c din ra. Sau khi iu khin file c tm thy, s
chuyn sang m file, v sau server mi tip tc vi thao tc c. Nh vy ta c
- 21 -

H thng file phn tn


th thy, ton b ch cn c 2 thng ip phi trao i gia client v server. Cc
thao tc s c nhm li vi nhau trong 1 th tc ghp (compound procedure).
Nu c li thao tc d bt k l do g, th khng thao tc no na trong th tc
ghp c thc hin, v kt qu cho n lc s c tr v cho client. V d
nh, nu thao tc truy tm b li, th vic m file tip theo s khng c thc hin
na.
client

server

client

Truy tm

Truy tm tn

server

Truy tm tn
M file

thi gian

Truy tm
M
c

c d liu

thi gian

c d liu

H.5. (a) c d liu t 1 file trong NFS phin bn 3. (b). c d liu s dng
th tc ghp trong phin bn 4.

III.1.3. Stateless - Stateful


NFS l 1 h thng client server truyn thng, m trong cc client gi yu
cu n 1 file server (my ch file) thc hin cc thao tc trn file. Mt trong
nhng im phn bit khi s snh vi cc h thng file phn tn khc, l vic cc
server c th l stateless (tm dch l phi trng thi). Ni cch khc, giao thc NFS
khng i hi cc server duy tr bt k trng thi client no. NFS phin bn 2 v
3 th vn cn dng cch tip cn ny, tuy nhin n phin bn 4 th khng dng
na. Li ch chnh ca cch tip cn ny l n gin. V d, khi 1 stateless
server b sp, th v c bn ta khng cn pha phc hi (recovery phase) a
server tr li trng thi trc .
phin bn 4, hng tip cn stateless b b i d rng giao thc theo
cch ny cho php server khng cn phi duy tr nhiu thng tin trn cc client ca
n. Bn cnh stateless ta cn c hng tip cn stateful (tm dch l theo trng
thi). Mt trong nhng l do quan trng dng stateful l do NFS phin bn 4 c
th lm vic qua cc mng din rng (wide-area networks). Chnh iu ny i hi
cc client phi hiu qu trong vic s dng cc b nh m (cach). T cn phi
c cc giao thc nht qun b m (cach consistency protocol). Ta cn c dp bn
thm v vn ny phn sau.

III.1.4. nh danh
Cng nh bt k h phn tn no khc, vic nh danh cng ng vai tr quan
trng trong NFS. tng chnh cho m hnh nh danh NFS l cho cc client
truy cp trong sut y n 1 h thng file t xa c duy tr bi 1 server. S
trong sut ny c c bi client c th t (mount) 1 h thng file t xa vo trong
h thng file cc b ca n. (H.6).
Thay v phi t (mount) ton b c h thng file sang, th NFS cho php cc
client ch cn t 1 phn ca h thng file m thi (H.6). Mt server c gi l
- 22 -

H thng file phn tn


xut (export) 1 th mc i khi n lm cho th mc cng c bn client. Th
mc xut i c th c t trong 1 khng gian tn cc b ca client.
Nh th, theo nguyn tc th ngi s dng khng chia s cc khng gian tn.
Ta hy xem li (H.6), file c tn l .remote.vu.mbox ti client A li c tn l
.work.me.mbox ti client B. Bi vy, tn ca file ph thuc vo vic cc client t
chc khng gian tn ca chng nh th no, v ni t cc th mc c xut
sang. Nhng b li, theo cch ny th vic chia s cc file s tr nn kh khn
hn. V d nh, A khng th ni cho B bit tn m A dng gn cho file, bi
tn ca s hon ton khc khi n nm trong khng gian tn ca B. Tuy nhin,
cng c vi cch khc phc vn ny. Cch thng dng nht l cung cp
cho mi client 1 khng gian tn c chun ha. V d nh, mi client u
dng th mc cc b chun l .usr.bin t 1 h thng file vo (trn cc client
khc cng c h thng file ).
Client A
Server
Client B
remote

users

bin

work

vu

steen
mbox

bin
me

mbox

Xut th mc
t sang client

mbox

Xut th mc
t sang client

H.6. t (mounting) 1 phn h thng file t xa trong NFS


y ta ch rng, 1 NFS server cng c th t (mount) vo bn thn n cc
th mc c xut sang bi cc server khc. Tuy nhin, n li khng c php
xut cc th mc ny sang cho cc client ca n. gii quyt c vic ny, ta
hy xem xt v d sau (H.7).
Gi s rng server A c h thng file FSA , m t xut i th mc
.packages. Th mc ny cha 1 th mc con l .draw ng vai tr nh 1 im t
(mount point) cho h thng file FSB, c xut sang bi server B v c t bi
A. n phin server A cng s xut .packages.draw sang cho cc client ca n, v
ta gi s rng client t .packages vo trong th mc cc b .bin ca n (H.7).
Th mc xut sang Client c cha
th mc con nhp t Server B sang

Client

Server A

Server B

packages

bin

draw

draw

install

install
- 23 -

install

H thng file phn tn

H.7 .Vic t (mounting) cc th mc t nhiu server trong NFS


Nu vic phn gii tn b lp (nh trong trng hp NFS phin bn 3), th
phn gii tn .bin.draw.install, client s lin h vi server A khi n phn gii cc
b .bin v yu cu A tr v 1 iu khin file cho th mc .draw. Trong trng hp
, server A s tr v 1 iu khin file bao gm 1 nh danh cho server B, ch c
B c th phn gii phn cn li ca tn ng dn, trng hp ny l .install. Nh
ta ni, loi phn gii tn ny khng c NFS h tr.

a. iu khin file
Mt iu khin file l 1 tham chiu n 1 file trong h thng file. N khng ph
thuc vo tn ca file m n tham chiu n. Mt iu khin file c to ra bi
server ang c h thng file trn , v l duy nht i vi tt c cc h thng file
c xut i bi server. iu khin file c to ra khi file c to ra. Client
khng bit ni dung thc ca iu khin file. iu khin file dng 32 byte trong
NFS phin bn 2, nhng cng c th ty bin di ln n 64 byte trong phin
bn 3 v 128 byte trong phin bn 4.
Mt iu khin file c thc thi nh 1 nh danh thc s cho 1 file trong h
thng file. iu ny c ngha l chng no file cn tn ti, th n s ch c 1 iu
khin file. Mt trong li ch ca iu khin file l lm tng hiu nng. Bi mt khi
hu ht cc thao tc file ch i hi 1 iu khin file thay v tn ca file, nh vy
client c th trnh phi lp li vic tm tn file trc mi thao tc vi file. Mt li
ch khc na l client c th truy cp n file ngay m khng ph thuc vo tn
(tn hin ti) ca n.
V 1 iu khin file c th c lu tr cc b ti 1 client, nn c 1 im quan
trng cn ch l 1 server khng th ti s dng li 1 iu khin file sau khi
xa file. Bi nu khng, 1 client c th b li khi truy cp n file.
truy cp n cc file 1 h thng file xa, client s cn phi cung cp cho
server 1 iu khin file ca th mc, cng vi tn ca file hoc th mc c
phn gii. NFS phin bn 3 gii quyt vn ny thng qua 1 giao thc t
(mount protocol) ring bit. Sau khi t, client c a iu khin file gc (root
file handle) ca h thng file t, m sau c th dng nh 1 im bt u
cho vic truy tm cc tn file. iu khin file gc c th c s dng tm iu
khin file khc trong h thng file ca server. Nh vy ta c thm im li l
khng cn n 1 giao thc t. Thay vo , vic t (mounting) ny c th c
tch hp vo trong giao thc chun dnh cho vic truy tm file.

b. Automounting
Nh chng ra ni trn, m hnh nh danh NFS (NFS naming model) v
c bn cung cp cho ngi s dng khng gian tn ca h. Vic chia s trong m
hnh ny c th s kh khn mt khi ngi s dng t tn khc nhau cho cng 1
file. Mt trong nhng gii php cho vn ny l cung cp cho mi ngi s
dng 1 khng gian tn cc b c chun ha, ri sau mi client u dng
th mc cc b chun t h thng file vo.
- 24 -

H thng file phn tn


Mt vn na vi m hnh nh danh NFS l phi quyt nh xem khi no
th 1 h thng file t xa s c t (mount) sang. Chng ta hy xem xt 1 h
thng ln vi hng ngn ngi s dng. Gi s rng mi ngi s dng u c 1
th mc cc b .home c dng t cc th mc ch (home directories) ca
ngi s dng khc sang. V d nh th mc ch ca Alice l .home.alice, mc
d cc file thc ra c lu tr trn 1 server xa. Th mc ny c th c t
(mounted) vo 1 cch t ng khi Alice vo my tnh ca mnh. Thm vo ,
Alice cng c th truy cp n cc file cng cng (public file) ca Bob bng cch
truy cp qua th mc .home.bob ca Bob. Nh vy, ta thy mt trong nhng li
ch ca hng tip cn ny l tan b h thng s trong sut i vi Alice. Tuy
nhin cch tip cn ny cng c nhng nhc im ca n.
Vic t cc h thng file t xa trong NFS (tht ra l th mc c xut i
exported directories), s c iu khin bi 1 automounter, n chy nh 1 tin
trnh ring bit trn my ca client. Ta hy xem xt 1 automounter n gin c
thi hnh nh 1 server NFS cp ngi s dng (user-level NFS server) trn h iu
hnh UNIX. Gi s rng, th mc ch ca tt c ngi s dng l c sn thng
qua th mc cc b .home, nh trn ta m t. Khi 1 my client khi ng,
automounter s bt u vi vic t th mc ny. Nh vy, h khi 1 chng trnh
c gng truy cp n .home, nhn UNIX (UNIX kernel) s thc hin thao tc truy
tm (lookup) n NFS client, trong trng hp ny, n s thc hin vic yu cu
n automounter vi vai tr nh 1 NFS server (H.8).
V d, gi s rng Alice ng nhp. Chng trnh ng nhp s th c th
mc .home.alice tm kim thng tin, chng hn nh cc kch bn ng nhp
(login script). Automounter v th s nhn yu cu truy tm th mc con
.home.alice. Trc tin n to 1 th mc con .alice trong .home. Sau n tm
xem NFS server no xut i th mc ch (home directory) ca Alice ri t th
mc trong .home.alice. Vn y l automounter phi c bao gm lun
trong cc thao tc file m bo tnh trong sut. Nu 1 file c tham chiu
khng c sn bi h thng file tng ng cha c t sang, th automounter
cng phi bit.
My server

My client
1.Tm /home/alice
NFS client

Automounter

users
3. Yu cu t
alice

2.To th mc con alice


Giao din h thng file cc b
home
alice

t th mc
con alice
sang client t
bn server

- 25 -

H thng file phn tn


H.8. Mt automounter n gin cho NFS
Cch tip cn trn cng c nhc im ca n. V 1 trong nhng gii php
n gin l automounter t cc th mc vo trong 1 th mc con c bit,
v thit lp 1 lin kt tng trng (symbolic link) n mi th mc c t.
(H.9)
Trong v d ny, th mc ch (home directories) ngi s dng c t sang
thnh th mc con ca .tmp_mnt. Khi Alice ng nhp, automounter t th mc
ch ca Alice trong .tmp_mnt.home.alice v to 1 lin kt biu trng .home.alice
tham chiu n th mc con .

tmp_mnt

home

alice

home

/tmp mnt/home/alice
lin kt tng trng
H.9. S dng cc lin kt biu trng.

c. Cc thuc tnh ca file


Mt NFS file c 1 s cc thuc tnh kt hp. Trong phin bn 4, tp cc thuc
tnh file c chia ra thnh:
1 tp cc thuc tnh bt buc (mandatory attributes) - mi s thc thi u phi
h tr.
1 tp cc thuc tnh c ngh (recommended attributes) - nn c h
tr l tt nht.
V thm 1 tp cc thuc tnh c nh danh (named attributes).
Cc thuc tnh c nh danh (named attributes) c m ho thnh 1 mng
ca cc cp (thuc tnh, gi tr), trong thuc tnh c biu din l 1 chui
(string) v gi tr ca n l 1 dy cc byte. Chng c lu tr cng vi file (hoc
th mc) v NFS s cung cp cc thao tc c v ghi cc gi tr thuc tnh.
C tng cng 12 thuc tnh file bt buc (H.10a).
Thuc tnh

M t

TYPE

Kiu ca file (chnh quy, th mc, lin kt biu


trng).

SIZE

di ca file tnh bng byte

CHANGE
FSID

Cho client bit nu c khi no file b thay i


nh danh duy nht ca h thng file.
- 26 -

H thng file phn tn


(a)
Thuc tnh

M t

ACL

Mt danh sch iu khin truy cp c kt hp vi


file.

FILEHANDLE
FILEID
FSLOCATIONS
OWNER

Cung cp iu khin file.


nh danh duy nht cho file.
nh v trn mng, ni h thng file ny c th c
tm thy
Tn (chui.k t) ca ch s hu file.

TIME-ACCESS

Thi im m d liu file c truy cp ln cui.

TIME-MODIFY

Thi im m d liu file c chnh sa ln cui.

TIME-CREAT

Thi im m d liu file c to ra.


(b)

H.10. (a) Mt s cc thuc tnh file bt buc ph bin trong NFS. (b) Mt s cc
thuc tnh file c ngh ph bin.
Cc thuc tnh file c ngh ph bin c lit k trong (H.10b). Phin bn
4 NFS hin ti c n 43 thuc tnh c ngh.

III.1.5. ng b ha
Cc file trong 1 h thng file phn tn c chia s bi nhiu client. Nu vic
chia s khng bao gi xy ra, th qu tht nh th chng cn ngha ca h thng
file phn tn. Vic chia s cc file i hi cn phi c s ng b ha. S ng b
ha s l kh n gin nu cc file c gi trn 1 server trung tm. Tuy nhin khi
y hiu nng s l 1 vn . Bi th, cc client thng c php gi 1 bn sao
cc b ca file trong khi chng ang c v ghi ni dung file. Cch ny tng t
vi m hnh upload.download phn u ta ni (H.2).

a. Ng ngha ca vic chia s file


Khi 2 hoc nhiu hn ngi s dng chia s cng 1 file, th cn thit phi nh
ngha ng ngha (semantics) ca vic c v ghi 1 cch chnh xc trnh phin
toi. gii thch cc ng ngha ca vic chia s file trong NFS, trc ht chng
ta hy xem xt 1 vi vn c lin quan n vic chia s file.
File gc

My client #1

My n
Tin trnh A

Tin trnh A

c
1. Ghi c
File server

1. Ghi c
Tin trnh B

- 27 -

2. c ab

H thng file phn tn

H.11. (a) Trn 1 vi x l n, khi 1 thao tc c theo sau 1 thao tc ghi, th gi


tr c tr v bi c gi tr va c ghi. (b) Trong 1 h phn tn vi b m,
cc gi tr c c th c tr v.
Trong cc h thng vi x l n cho php cc tin trnh chia s file, chng hn
nh UNIX, ng ngha (semantics) thng l khi 1 thao tc c theo sau 1 thao tc
ghi, thao tc c tr v gi tr va lc c khi (H.11). Tng t nh th, khi 2
thao tc ghi xy ra k tip nhau, theo sau l 1 thao tc c, gi tr c l nhng gi
tr c lu bi ln ghi cui cng. Trong thc t, h thng s bt p 1 thi gian
tuyt i vi tt c cc thao tc v lun lun tr v gi tr gn nht. Ta gi m hnh
ny l ng ngha UNIX (UNIX semantics). Trong 1 h phn tn, ng ngha UNIX
c th d dng c c vi iu kin ch c 1 file server v cc client khng gi
cc file. Tt c cc thao tc c v ghi u n trc tip file server, v file server
s x l chng 1 cch tun t.
Tuy nhin trong thc t, hiu nng ca 1 h phn tn thng rt thp nu trong
tt c cc yu cu file u phi i n 1 server. Vn ny s c gii quyt
bng cch cho php cc client duy tr cc bn sao cc b ca cc file thng
c dng nhiu (heavily used files) trong b nh m ring (cc b) ca n.

b. Kho file trong NFS


Trong NFS, vic kho file c iu khin bi 1 giao thc ring bit, v c
thc thi bi 1 b qun l kha (lock manager). Tuy nhin, v nhiu l do khc nhau,
vic kha file s dng giao thc kha NFS khng c ph bin. trong phin
bn 4, vic kha file c tch hp vo trong giao thc truy cp file NFS. Cch
tip cn ny lm mi vic n gin hn cho cc client khi kha file.
Tuy nhin, vic kha file trong 1 h thng file phn tn cng phc tp bi cc
client v server c th li trong khi cc kha vn c gi li. Khi , vic khi
phc li 1 cch thch hp s tr nn quan trng m bo tnh nht qun ca
cc file c chia s.
By gi ta hy xem xt c th vic kha file trong NFS phin bn 4. Kha file
trong phin bn 4 ny kh n gin, ch cn 4 thao tc c lin quan n vic kha
file ny (H.12)
Thao tc

M t

Lock

To ra 1 kha cho 1 dy cc byte

Lockt

Kim tra xem kha xung t c cp hay


- 28 -

H thng file phn tn


khng
Locku

Xa 1 kha khi 1 dy cc byte

Renew

Hi phc (lm mi li) thi gian cp cho


kha

H.12. Cc thao tc trong NFS phin bn 4 lin quan n kha file.


Thao tc lock (kha) c dng yu cu 1 kha c (read lock) hoc
kha ghi (write lock) trn 1 dy lin tip cc byte trong file.
Thao tc lockt c dng kim tra xem th c kha xung t no tn ti
hay khng. V d nh, 1 client c th kim tra xem c kha c no c cp
trn 1 dy cc byte xc nh trong file hay khng, trc khi n yu cu 1 kha
ghi cho cc byte . Trong trng hp xung t, n s cho bit chnh xc nguyn
nhn ca vic xung t v c dy byte m xung t xy ra trn na.

xo 1 kha khi 1 file ta dng thao tc locku.

Cc kha u c cp cho 1 thi gian xc nh (thi gian ny c quyt


nh bi server). Tr phi 1 client hi phc li (lm mi li - renew) khong thi gian
trn cc kha c cp, cn nu khng th server s t ng hu cc kha
i.
Bn cnh cc thao tc ny, cng cn c 1 cch na kha 1 file, l chia
s ch t trc (share reservation). N c dng thc thi NFS trn cc h
thng da trn Windows. Khi 1 client m 1 file, n s xc nh, ch ra kiu truy cp
m n yu cu (c th l READ, WRITE hoc BOTH), v kiu truy cp m server
s t chi cc client khc (NONE, READ, WRITE hoc BOTH). bit chnh xc
iu g s xy ra khi 1 client mi 1 file , m file c m thnh cng bi 1
client khc, ta hy xem (H.13) sau:
Trng thi t chi file hinhnh

Yu cu
truy cp

NONE

READ

WRITE

BOTH

READ

Thnh cng

Li

Thnh
cng

Li

WRITE

Thnh cng

Thnh cng

Li

Li

BOTH

Thnh cng

Li

Li

Li

(a)
Trng thi t chi file c yu cu
Trng
thi truy
cp hin
hnh

NONE

READ

WRITE

BOTH

READ

Thnh cng

Li

Thnh
cng

Li

WRITE

Thnh cng

Thnh cng

Li

Li

BOTH

Thnh cng

Li

Li

Li

(b)
H.13. Kt qu ca thao tc c vi share reservation trong NFS.
- 29 -

H thng file phn tn

III.1.6. Lu m (caching) v bn sao (replication)


Cng nh cc h thng file phn tn khc, NFS s dng b m cho client
tng hiu nng. Thm vo , n cng h tr vic to cc bn sao ca file.

a. Lu tm cho client (client caching)


Trc y, vic lu tm (caching) trong phin bn 3 ca NFS c nhiu
nhc im, n dn n vic c nhiu cch thc hin theo nhng chnh sch khc
nhau. V hu ht cc cch u khng m bo c tnh nht qun. Tuy
nhin, n phin bn 4, c 1 s thay i m bo tnh nht qun ny. M
hnh lu tm (caching model) tng qut ca NFS nh sau: (H.14)
B nh m

ng dng
ca client

NFS server

m a
mng
H.14. Lu tm (m) bn pha client trong NFS
Mi client c th c 1 b nh m (memory cach) cha d liu trc c
t server. Ngoi ra, cn c th c m a (disk cach) c thm vo m rng
b nh m, s dng chung cc tham s nht qun.
NFS phin bn 4 s dng 2 cch cho vic lu tm (m) d liu file - caching
file data. Cch n gin nht l khi 1 client m 1 file v lu tm d liu m n
nhn c t server nh vo thao tc c. Thao tc ghi cng c th c thc
hin trong b nh m. Khi client ng file, NFS yu cu rng, nu c s thay i
no c din ra, th d liu c lu tm phi c y v li server. Mt
khi 1 file c lu tm, th client c th gi d liu ca n trong b m thm
ch sau khi ng file. NFS i hi rng, bt k khi no client m 1 file ng
trc (m c lu tm), client phi ngay lp tc revalidate (ti hiu lc) d
liu lu tm.
Thm 1 im ta cn ch na l server c th u nhim (delegate) 1 s quyn
ca n n cho client mt khi file c m. Open delegation (u nhim m file)
din ra khi my client c php x l c b cc thao tc ng v m (file) t cc
client khc trn cng 1 my. Thng thng th server phi m nhim vic kim
sot d cho vic m 1 file c thnh cng hay khng. Vi Open delegation, my
client i khi cng c cho php t a ra cc quyt nh, trnh vic phi cn
lin lc vi server.
Mt h qu ca vic u nhim 1 file n client, l server khi cn c th gi
tr li (recall) u nhim, v d nh, khi 1 client khc trn 1 my khc cn nhn
quyn truy cp n file. Server c th gi client -ang c u nhim - tr li
u nhim (H.15). Mt khi gi li theo c ch ny th i hi server phi lu li vt
ca cc client m n u nhim file n.
1. Client yu cu file
Client

bn sao cc b
(local copy)

Server
2. Server u nhim file
- 30 3. Server gi tr u nhim

File c

H thng file phn tn

H.15. C ch gi tr li y nhim file trong NFS phin bn 4.


Vic lu tr tm iu khin file v cc th mc cng dng cch tip cn ging
nh trn.

b. Bn sao cc server
NFS phin bn 4 h tr khng nhiu cho vic nhn bn file. Ch ton b h
thng file mi c th c nhn bn (bao gm cc file, cc thuc tnh, cc th
mc, v cc khi d liu).

III.1.7. Chu li
a. Li RPC
Vn vi c ch RPC khi c dng bi NFS l n khng m bo tnh
tin cy. Trn thc t, cc client v server RPC stub c th c sinh ra da trn
hoc l giao thc vn chuyn hng kt ni tin cy nh TCP, hoc l giao thc
vn chuyn phi kt ni khng tin cy nh UDP.
Mt trong nhng vn chnh na, l thiu vic tm ra cc yu cu trng lp
(duplicate request). Nh vy s xy ra trng hp, khi 1 hi p RPC b mt v
client truyn li (retransmit) thnh cng yu cu gc n server, v kt qu l
server s phi thc hin li yu cu thm ln na.
Nhng vn trn c khc phc bng 1 b m cc yu cu trng lp
(duplicate-request cache) thc thi bi server. Mi yu cu RPC t client s c
mang theo 1 nh danh giao tc (transaction identifier - XID) duy nht phn
header ca n, v n s c server lu tm khi n n server. Ch cn server
khng gi hi p, n s ch nh yu cu RPC ang c thc hin. Khi yu cu
c x l xong, hi p kt hp (associated reply) ca n s c lu tm li,
sau hi p s chnh thc c gi tr cho client.
C 3 tnh hung c t ra cn gii quyt y:
Trong trng hp th nht (H.16a), client gi i 1 yu cu, v khi ng 1
b nh thi. Nu ht thi gian trc khi c hi p, client s truyn li yu cu
gc vi XID ging nh c. Tuy nhin, bn pha server, th do server cha hon
tt xong yu cu ban u, v th n s t chi yu cu m client truyn li.
Trng hp 2, server c th nhn 1 yu cu c truyn li ch sau khi n
gi i hi p cho client. Nu thi im n ca yu cu c truyn li gn
st vi thi im m serv7er gi hi p (H.16b), th server s kt lun rng vic
truyn li vi vic hi p l b cho nhau, v v th server cng li t chi yu
cu truyn li .
Client

Client

Server

XID = 1234

XID = 1234
XID = 1234

hi p

Server

x l
yu cu

Client

Server

XID = 1234

- 31 XID = 1234

hi p b mt

H thng file phn tn

H.16. Ba tnh hung ca vic x l truyn li. (a) Yu cu vn ang c thc


hin. (b) Hi p va mi c tr v. (c) Hi p gi trc , nhng b li.
Trong trng hp th 3, hi p b mt v yu cu truyn li s c p
ng bng cch gi n client cc kt qu m trc y ta lu tm trong b
m (H.16c). y ta ch rng cc kt qu ca thao tc file vn lun c duy
tr trong b m.

b. Kha file khi c li


Vic kha file trong NFS phin bn 3 c x l thng qua 1 server ring bit.
Theo cch ny, th cc vn c lin quan n chu li c x l bng cch kha
server. Trong phin bn 4, vn c gii quyt tng i n gin. kha 1
file, client a ra 1 yu cu kha n server. Gi s rng kha c cp cho
client, th ta cng c th gp rc ri mt khi client hoc server b sp .
gii quyt vn client b sp, server a ra 1 lease (dnh ring) trn mi
kha m n cp cho client. Mt khi lease ht hn, server s xa kha i, bng
cch n gii phng cc ti nguyn lin kt (tc cc file). cho server khi xa
1 kha, client s lm mi li (hi phc li - renew) lease ca n trc khi b ht
hn bng thao tc renew. Tuy nhin cng c tnh hung cc kha b xa i, ngay
c khi client khng b sp . Vic xa khng ng ny c th xy ra nu khng
th a thao tc renew n cho server, v d do khi mng tm thi b t chng
hn.
Khi 1 server b sp v sau c phc hi, c th n s mt thng tin trn
cc kha m n cp cho client. Trong phin bn 4, ngi ta a thm vo 1
grace period (tm dch l giai on tm hon) m trong giai on ny client c th
khi phc, ci to li cc kha c cp trc cho n. Vic hi phc kha
ny khng h ph thuc vo vic hi phc cc d liu b mt khc. Trong sut
grace period, ch cc yu cu khi phc kha ni chung mi c chp nhn, cn
cc yu cu kha thng thng khc s b t chi cho n chng no grace
period kt thc.
Nh ta thy trn, vic dng cc lease trn cc kha s lm ny sinh ra nhiu
vn lin quan n tnh n nh ca vic gi thng ip lm mi lease. V d
nh, nu thng ip ny b li hoc n server tr, th lease v tnh s b ht hn
d cho n yu cu c lm mi li. Trong c 2 trng hp ny, server s
khc phc bng cch phi a ra 1 lease mi cho client, trc khi client sau tip
tc dng file.

c. U quyn m khi c li
U quyn m c a ra gii quyt vn 1 client hoc server b sp

III.1.8. An ton an ninh


- 32 -

H thng file phn tn


Nh ta ni trc, tng chnh ca NFS l 1 h thng file t xa s
c hin din ti client nh th n l 1 h thng file cc b ca client. Cng chnh
v vy m an ton an ninh trong NFS lun c tp trung chnh vo truyn thng
gia client v server. Truyn thng an ton c ngha l c 1 knh an ton c
thit lp gia server v client, nh trong phn II.7.2 ta cp.
Thm vo , cc RPC an ton, th cn thit phi iu khin cc truy cp
n file, vic ny c x l, iu khin bi cc thuc tnh file iu khin truy cp
(access control file attributes) trong NFS. Mt file server ph trch vic xc minh
cc quyn truy cp ca cc client ca n, ta s gii thch iu ny ngay sau y.
Cng vi an ton cc RPC, kin trc an ton an ninh NFS c gii thiu trong
(H.17)
Client
Server
Tng h thng file o

Tng h thng file o

iu khin truy cp
Giao din h
thng file cc b

iu khin truy cp
NFS client

NFS server

RPC client
stub

RPC server
stub

Giao din h
thng file cc b

Knh an ton

H.17. Kin trc an ton an ninh NFS

a. RPC an ton
Trong NFS phin bn 4, th ch c vic xc thc c quan tm khi ta ni n 1
RPC an ton. C 3 cch xc thc:
System authentication (xc thc h thng): l phng thc xc thc c
s dng rng ri nht. Xc thc h thng cn l phng thc xc thc da trn
UNIX. Trong , cc client n gin ch chuyn ID ngi dng (user ID) v ID
nhm (group ID) ca n n cho server, cng vi 1 danh sch cc nhm m n
phi i hi l thnh vin. Thng tin ny c client gi i di hnh thc c th
hiu c ca 1 vn bn c m ho (plaintext).
Secure NFS (NFS an ton): phng thc xc thc ny s dng trao i
kha Diffie Hellman thit lp 1 kha phin (sesion key), n c dng trong
cc phin bn NFS c. Cch xc thc ny tt hn so vi xc thc h thng,
nhng b li n phc tp hn, do n cng t c dng hn.
V giao thc xc thc th 3 l Kerberos (phin bn 4) m ta tng
cp n trong phn II.7.5 trc y.
Trong NFS phin bn 4, an ton an ninh cng c nng cao vi vic h
tr RPCSEC - GSS. RPCSEC-GSS l 1 b khung (framework) an ton an ninh
tng qut, c th h tr rt nhiu c ch an ton an ninh cho vic thit lp cc
knh truyn an ton. Khng nhng h tr cho cc h thng xc thc khc nhau,
m n cn h tr c vic tch hp cc thng ip (message integrity) v s cn
- 33 -

H thng file phn tn


mt (confidentiality), 2 c tnh khng c h tr trong cc phin bn NFS trc
y. RPCSEC-GSS c da trn 1 giao din chun cho cc dch v an ton an
ninh, c tn l GSS-API.

b. iu khin truy cp
U quyn (authorization) trong NFS cng tng t vi secure RPC (RPC an
ton): n cung cp cc c ch, nhng li khng ch r ra chnh sch c th no.
Vic iu khin truy cp c h tr bi thuc tnh file ACL (ACL file attribute).
Thuc tnh ny l 1 danh sch cc mc (entry) iu khin vic truy cp, trong
mi mc ch ra cc quyn truy cp cho 1 nhm hoc 1 ngi s dng xc nh.
Thao tc

M t

Read_data

Cho php c d liu cha trong 1 file.

Write_data

Cho php chnh sa d liu ca file.

Append_data
Execute
List_directory
Add_file
Add_subdirectory
Delete

Cho php thm d liu vo file.


Cho php thc thi 1 file
Cho php lit k ni dung ca 1 th mc.
Cho php thm 1 file mi vo th mc
Cho php to 1 th mc con trong 1 th mc
Cho php xa 1 file

Delete_child

Cho php xa 1 file hoc th mc trong 1 th mc

Read_acl

Cho php c ACL (danh sch iu khin truy cp)

Write_acl

Cho php ghi ACL

Read_attributes

Kh nng c cc thuc tnh c bn khc ca file.

Write_attributes

Cho php thay i cc thuc tnh c bn khc ca file.

Read_named_attrs Cho php c cc thuc tnh c nh danh ca file.


Write_owner

Cho php thay i ch.

Write_named_attrs Cho php ghi cc thuc tnh c nh danh ca file.


Synchronize

Cho php truy cp cc b 1 file ti server vi cc thao tc


c, ghi ng b.

H.18. Phn loi cc thao tc c nhn din bi NFS i vi vic iu khin


truy cp.
NFS phn bit nhiu loi thao tc khc nhau. Ta ch n thao tc
Synchronize (ng b ha), thao tc ny dng bo cho bit rng, 1 tin trnh
cng ch vi server c th trc tip truy cp vo 1 file c hay khng, b qua
giao thc NFS t c th tng hiu nng. M hnh NFS cho vic iu khin
truy cp c nhiu ng ngha hn so vi hu ht cc m hnh UNIX, bi vic i hi
NFS c th lin tc vi h thng Windows 2000.
- 34 -

H thng file phn tn


Mt iu khc na lm cho iu khin truy cp file khc bit so vi cc h
thng file chng hn nh UNIX, l vic truy cp c th c ch nh cho
nhng ngi s dng khc nhau v nhng nhm khc nhau. Bi theo truyn
thng th vic truy cp n 1 file c ch nh dnh cho 1 ngi s dng (ch s
hu ca file), 1 nhm ngi s dng (chng hn cc thnh vin ca 1 nhm d
n), v cho mi ngi khc. NFS c nhiu loi ngi dng v tin trnh khc nhau
c trnh by trong bng sau (H.19)
Kiu
dng

ngi M t

Owner

Ch s hu file

Group

Nhm cc ngi s dng c lin h vi file.

Everyone

Bt k ngi s dng hoc tin trnh no.

Interactive

Bt k tin trnh no ang truy cp file t 1 trm tng tc.

Network

Bt k tin trnh no ang truy cp file qua mng.

Dialup

Bt k tin trnh ang truy cp file thng qua kt ni dialup n


server.

Batch

Bt k tin trnh ang truy cp file nh 1 phn ca cng vic theo


khi.

Anonymous

Nhng ai truy cp file m khng xc thc.

Authenticated

Bt k ngi s dng hoc tin trnh c xc thc.

H.19. Cc loi ngi dng v tin trnh khc nhau c phn bit bi NFS i
vi vic iu khin truy cp.

III.2. H thng file Coda


Coda c pht trin ti trng i hc Carnegie Mellon (CMU) vo nhng
nm 1990, v by gi n c tch hp vo cc h iu hnh da trn UNIX
ph bin, chng hn nh Linux.
Coda l 1 h thng file phn tn c tnh co dn (v qui m - scalable), c tnh
an ton (secure), v c tnh sn sng cao (high available). Coda l hu du ca h
thng file Andrew (AFS) phin bn 2, cng do CMU pht trin. N kt tha nhiu
im trong kin trc ca AFS. Vi AFS, n c th c thc thi vi khong 10.000
my trm cn truy cp n h thng. p ng yu cu ny, cc nt AFS s
c chia thnh 2 nhm. Nhm th nht bao gm 1 s tng i t cc Vice file
server, chng s c qun tr 1 cch tp trung. Nhm cn li bao gm 1 lng
rt ln cc my trm Virtue , a cho cc ngi s dng v cc tin trnh truy
cp n h thng file.
Truy cp trong sut n
1 Vice file server

- 35 -

H thng file phn tn

H.20. T chc tng th ca AFS


Coda cng c t chc ging vi AFS. Mi my trm Virtue c 1 tin trnh
cp ngi dng (user-level) th c gi l Venus, vai tr ca n tng t nh
NFS client m trc y ta xt. Mt tin trnh Venus c nhim v cung cp truy
cp n cc file c duy tr trn cc Vice file server.
Khng ging nh NFS, Coda cung cp 1 khng gian tn chia s tng th
(globally shared name space) c duy tr bi cc Vice server. Cc client truy cp
n khng gian tn ny bng 1 th mc con c bit trong khng gian tn cc b
ca chng, chng hn nh .afs. Mi khi 1 client truy tm 1 tn trong th mc con
ny, Venus m bo rng phn thch hp ca khng gian tn chia s c t
(mount) sang client.

Truyn thng

Vic truyn thng gia cc tin trnh trong Coda c thc hin bng cch
dng cc RPC. Tuy nhin, h thng RPC2 dnh cho Coda phc tp hn nhiu so
vi cc h thng RPC truyn thng chng hn nh ONC RPC, c dng bi
NFS.
RPC2 cn h tr cc side effect (tm gi l hiu ng mt). Mt side effect l 1
c ch m bng cch client v server c th truyn thng s dng 1 giao thc
ng dng c th (application-specific). V d, 1 client ang m 1 file ti 1 video
server. iu cn thit trong trng hp ny l thit lp 1 lung d liu lin tc
vi ch truyn ng thi (nh nhau v thi gian). Hay ni cch khc, d liu
truyn t server n client c m bo nm trong khong ln nht n b nht
thi gian tr u cui (end-to-end delay). RPC2 cho php client v server thit lp
1 kt ni ring bit truyn d liu video n client kp thi.
Mt c im khc na m RPC2 khc so vi cc h thng RPC cn li, l
n h tr k thut multicasting.

Tin trnh

Vi Coda th c 1 s khc bit r rng gia cc tin trnh client v tin trnh
server. Tng ng vi client v server l cc tin trnh Venus v Vice. C 2
kiu tin trnh c t chc bn trong nh 1 tp cc lung ng thi (concurrent
threads). Cc lung trong Coda khng c s u tin v n hot ng trong ton
khng gian ngi s dng.

nh danh

Coda duy tr 1 h thng tn tng t nh UNIX. Cc file c nhm li vo


trong nhng n v gi l volume. Mt volume ging vi 1 phn vng a UNIX
(tc l 1 h thng file thc s). Volume quan trng bi 2 l do. Th nht, chng
- 36 -

H thng file phn tn


to ra n v c bn c dng cu trc nn ton b khng gian tn. L do th
2 l chng to ra n v cho sao vic lp bn pha server.
C mt iu quan trng m ta cn ch l khi 1 volume t khng gian tn
chia s c t vo trong khng gian tn ca client, Venus s theo cu trc ca
khng gian tn chia s (shared name space). Cng nh vy, cc client c m
bo rng cc file chia s qu thc c tn nh nhau, d vic phn gii tn li da
trn 1 thc thi cc b khng gian tn. Nh th, ta thy cch tip cn ny khc c
bn so vi NFS.

ng b ha.

Lu tm (caching) v nhn bn (replication).

Chu li.
III.3. Cc h thng file phn tn khc
Ngoi 2 h thng file m ta ni trn, th cn c 1 s cc h thng file khc
na. Tuy nhin, hu ht u ging vi NFS hoc Coda. y ta xt n 3 h
thng file khc na, l Plan 9, XFS, v SFS.
Trong Plan 9 th mi ti nguyn u c i x nh 1 file. Cn XFS l 1 v d
in hnh ca 1 h thng file khng c server (serverless). V cui cng l SFS,
l 1 h thng file m trong cc tn file cng cha thng tin an ton an ninh.

1. Plan 9 - Ti nguyn thng nht vi file


Trong Plan 9, tt c cc ti nguyn u c truy cp theo cng 1 cch, c th
l cc thao tc v c php ging file. tng ny c k tha t UNIX, tuy
nhin n tt v nht quan hn trong Plan 9. Mi server a ra 1 khng gian tn
phn cp n cc ti nguyn m n iu khin. Mt client c th t vo cc b 1
khng gian tn c a ra bi server, nh vy vic xy dng khng gian tn
ring ca chnh n tng t vi cch tip cn trong NFS. cho php vic chia
s, cc phn
ca khng gian tn ny cng s c chun ha.
Gateway
File Server

NS1

CPU Server
NS3

NS2

Tin trnh

Giao din
mng

i ra
Internet

Client t sang
NS1 (khng gian
tn 1) v NS2

NS2

NS1

NS3

NS2

Client

Client

H.21.T chc tng qut ca Plan 9


Mt h thng Plan 9 bao gm 1 tp cc server cung cp ti nguyn cho cc
client di dng khng gian tn cc b. truy cp n cc ti nguyn ca 1
server, client t khng gian tn ca server vo trong khng gian tn ca chnh n.
y ta ch rng, trong Plan 9 s khc bit gia client v server khng thc s
- 37 -

H thng file phn tn


qu r rng. V d nh, cc server thng hnh ng nh cc client, trong khi cc
client li cng c th xut ti nguyn ca chng sang cho server. T chc ca Plan
9 c trnh by trong (H.21)

2. XFS - h thng file khng c server (serverless)


xFS c pht trin nh 1 phn ca d n Berkeley NOW. y ta cn ch
l c 1 h thng file phn tn khc hon ton khc c gi l XFS (X vit hoa)
c pht trin cng thi im vi xFS. Sau ny, ta dng xFS v XFS ch
ni n h thng c pht trin l 1 phn h thng ca d n NOW.
Vic thit k m khng c server ca XFS l 1 iu kh l. Ton b h thng
file c phn tn qua nhiu my, bao gm cc client. Hng tip cn ny tri
ngc vi cc h thng file khc, thng thng c t chc theo kiu tp trung,
thm ch cn c nhiu server dng cho vic phn tn v to bn sao cc file.
XFS c thit k hot ng trn mng cc b, trong cc my c kt
ni vi nhau thng qua cc ng lin kt tc cao. XFS c thit k vi mc
ch t co dn cao (tc thay i v quy m - scalability) v c tnh chu li cao.
Trong kin trc ca XFS, c 3 loi tin trnh khc nhau:
Storage server (lu tr server): l tin trnh c nhim v lu tr cc phn
ca 1 file. Chng thc thi 1 dy (array) cc a o tng t nh vic thc thi ca
cc dy a di dng RAID.
Metadata manager (qun l siu d liu): l tin trnh c nhim v lu li
vt, ni 1 khi d liu file tht s c lu
Client: l 1 tin trnh chp nhn cc yu cu ca ngi s dng thao tc
trn file.
Mt nguyn l thit k c bn ca XFS l bt k my no cng c th ng
vai tr ca client, manager, server. Trong 1 h thng i xng hon ton, mi my
s c c 3 tin trnh trn chy. Tuy nhin, cng c th s dng cc my dnh
chy cc tin trnh storage server, trong khi my khc li ch chy tin trnh client
hoc tin trnh manager (H.22)
Client

Manager

Manager

Storage
server

Client
Client

Storage
server

Storage
server

Manager

H.22. Phn tn cc tin trnh ca XFS qua nhiu my.

3. SFS - an ton an nnh c th thay i, co dn (scalable security)


Trong H thng file an ton (Secure File System SFS), nguyn l thit k
chnh l tch ring ra vic qun l ca cc kho vi an ton an ninh h thng
file. Hay ni cch khc, SFS m bo rng cc client khng th truy cp 1 file m
khng s hu 1 kho b mt thch hp.
T chc tng th ca SFS c trnh by trong (H.23). m bo tnh di
chuyn c qua nhiu my, SFS tch hp nhiu thnh phn NFS phin bn 3
khc nhau. Trn my client, c c thy 3 thnh phn, khng tnh n chng trnh
ca ngi s dng. NFS client c s dng nh 1 giao din n cc chng
trnh ngi s dng, v trao i thng tin vi SFS client. SFS client c nhim v
- 38 -

H thng file phn tn


thit lp 1 knh an ton vi SFS server. N cng c nhim v giao tip vi tc t
ngi dng SFS (SFS user agent), l 1 chng trnh t ng x l xc thc
ngi s dng.
My client

Chng
trnh ngi
dng

NFS client

RPC

My server

Tc t
ngi dng
(user agent)

Xc thc
server

SFS client

NFS client

RPC

SFS client

H.23. T chc ca SFS.


bn pha server cng c 3 thnh phn. Cc NFS server giao tip vi SFS
server, thao tc nh 1 NFS client n NFS server. SFS server s to tin trnh
nhn (core process) ca SFS. Tin trnh ny c nhim v x l cc yu cu file t
cc SFS client.

III.4. So snh gia cc h thng file phn tn


1. Trit l ca h thng
Mc tiu ca cc h thng file khc nhau th thng cng khc nhau.
Nh NFS, th mc ch ca n l cung cp 1 h thng cho php client truy
cp trong sut n 1 h thng file c lu ti 1 server t xa xc nh.
Vi Coda th khc, mc tiu ca n l tnh sn sng cao (high available).
Coda tha k mc ch thit k ca AFS, trong mt iu quan trng l tnh
co dn (scalability). Vic kt hp tnh sn sng cao vi tnh co dn gip phn bit
Coda vi hu ht cc h thng file phn tn khc.
Mc ch chnh ca Plan 9 l cung cp 1 h thng chia s thi gian
(timesharing) phn tn, trong tt c cc ti nguyn c truy cp theo cch nh
nhau, m c th l nh 1 file.
Vi XFS th mc ch ca n cng kh ging vi cc h thng file phn tn
khc, l tnh sn sng cao v tnh co dn. Tuy nhin, iu quan trng l t
c mc tiu ny bng 1 h thng m khng c server (serverlesss).
Mc tiu ca SFS li l an ton an ninh c thay i, co dn (scalable
security). N thc hin mc tiu ny bng cch chia tch vic qun l vi an ton
an ninh h thng file v cho php ngi dng bt u dch v SFS (SFS service)
ca h m khng c s can thip t 1 authority (quyn) trung tm.

2. Truyn thng
Khi so snh v truyn thng, th hu ht cc h thng file phn tn u da
trn cc dng ca RPCs.
Vi NFS, Coda v SFS th u s dng trc tip 1 h thng RPC c s
(underlying RPC system), i khi c ti u thm x l cc trng hp c
bit.
- 39 -

H thng file phn tn


Plan 9 cng s dng 1 h thng RPC, nhng trn thc t giao thc
c bin i i p ng cc thao tc file ca n, iu ny lm cho n khc i
cht so vi cc giao thc cn li.
XFS cng bt u vi 1 h thng RPC x l, iu khin tt c cc truyn
thng. Tuy nhin bi l do hiu nng v mt s l do khc na trong XFS, m h
thng RPC c thay th bng cc active messages.

3. Tin trnh
Cc h thng khc nhau cch m client ng vai tr i vi ton h thng
file.
Vi vic dng cch t chc client-server, trong NFS phin bn 3, hu ht
cc cng vic thc s ch c lm bi file server, trong khi 1 NFS client ch
n thun yu cu cc thao tc c server tin hnh. i vi NFS phin bn
4 th cc client c cho php lu tm cc file v x l cc thao tc 1 cch cc
b.
Vi AFS v Coda pha client ta s c tin trnh Venus, m nhim 1 lng
ln cng vic bn pha client.
Ngc li, cc nh pht trin Plan 9 li c gng lm sao gi cho cc
client n gin n mc c th. Tuy nhin 1 tin trnh client cng c cho php
lu tm (caching) cc file, nhng h thng vn lm vic tt nu cc b m khng
c dng g c.
Cc server cng rt khc nhau khi so snh gia cc h thng.

4. nh danh
C 2 hng tip cn cn bn trong vic t chc khng gian tn. Hng th
nht l mi ngi s dng ly khng gian tn ring ca chnh h. Cch ny
c dng trong NFS v Plan 9. Nhc im ca khng gian tn trn mi ngi
dng nh th ny, l kh chia s cc file da trn tn ca n. V gim bt
nhc im ny, cc phn ca khng gian tn s c chun ha.
Hng tip cn th 2 l cung cp 1 khng gian tn chia s tng th, c
dng trong Coda, xFS v SFS. Trong tt c cc h thng ny, mi ngi s dng
cng c kh nng gia thm vo khng gian tn tng th 1 khng gian tn cc b
ring. V d, SFS client s cho php 1 ngi s dng to cc b cc lin kt biu
trng (symbolic link). Cc tn ny l ring t vi ngi dng, v s khng th thy
vi ngi dng cc SFS client khc.
Ngoi ra, cng c nhiu im khc nhau i vi tham chiu file gia cc h
thng file phn tn.

5. ng b ha
NFS cung cp cc ng ngha phin (session semantics), iu ny c ngha
ch cc cp nht ca tin trnh cui ng file l c nh bi server.
Trong Coda, cc ng ngha giao tc (transactional semantics) c h tr
theo hng, ch cc phin c cho php ny mi c th c tun t ha. Tuy
nhin, trong thao tc b ngt kt ni, cc ng ngha c th khng c m
bo, bi th dn n cp nht cc xung t cn c gii quyt sau ny.
Bi cc thao tc trn file trong Plan 9 c bn c x l bi file server, nn
Plan 9 cung cp cc ng ngha UNIX. Cc ng ngha ny cng c cung cp bi
xFS.

6. Lu tm (caching) v nhn bn (replication)


- 40 -

H thng file phn tn


Tt c cc h thng m ta xt u h tr vic lu tm bn pha client. Ch c
Plan 9 l mi cc thao tc ghi c chuyn tc th n server. Cc h thng khc
u thc thi cc m ghi li (write-back caches), cho php 1 client thc hin 1 lot
cc thao tc ghi trn d liu c lu tm trc khi y thng vo b m.
Cc h thng file phn tn ny cng h tr vic sao lp file bi server.

7. Chu li
i vi Coda, n dng m lu tm v cc bn sao ca n c th t
c tnh sn sng cao (high available).
Cn trong xFS, k thut striping c dng bo v server n khi b
sp .
Vic hi phc da trn client c dng trong NFS. Theo cch ny, 1
server b mt thng tin khi n b sp , th cc client c php khi phc li
cc ti nguyn nh cc kha chng hn.
XFS th s dng cc im kim tra (checkpoint), v cc client ghi li nht k
(log) phc v vic phc hi n im m d liu ca manager (b qun l ) nht
qun vi thng tin c lu trong nht k.

8. An ton an ninh
NFS phin bn 4 tch bit gia c ch an ton an ninh vi vic thc thi cc
c ch ny. thc thi cc knh an ton, NFS cung cp 1 giao din chun dng
RPCSEC-GSS, bng cch cc h thng an ton an ninh ang tn ti c th
c truy cp. NFS phin bn 4 cn cung cp 1 danh sch m rng cc thao tc
c dng cho iu khin truy cp (ACL).
Coda v Plan 9 cng cung cp cc knh truyn an ton, nhng c 2 u
thc thi da trn giao thc xc thc Needham Schroeder. Cc kha mt chia s
c dng trong cch tip cn ny. Coda cng c cch khc vi NFS trong vic
iu khin truy cp. N ch x l iu khin truy cp i vi cc thao tc trn th
mc. Vi Plan 9 (v c xFS) th ch yu theo hng tip cn UNIX chun, bng
cch phn bit cc thao tc c, ghi, v thc thi.
SFS c cch ring ca n cung cp cc knh an ton. N da vo c
ch xc thc server vi ngi s dng, c th dng thm cc tc t c bit. SFS
k tha cc c ch iu khin truy cp t NFS phin bn 3.
Bng (H.24) gip tng hp li s so snh gia 5 h thng file phn tn.
NFS

Coda

Plan 9

xFS

SFS

Mc tiu
thit k

Truy cp
trong sut

Tnh sn
sng cao

Tnh nh
nhau

H thng
khng
server

An ton an
ninh thay
i

M hnh
truy cp

T xa

Up.Download

T xa

Log-based

T xa

Truyn
thng

RPC

RPC

c bit

Thng ip
linh ng

RPC

Tin trnh
client

Thin.Fat

Fat

Thin

Fat

Va

Cc nhm

Khng

Khng

Khng

- 41 -

H thng file phn tn


server
Khng
gian tn

Mi client

Ton cc

Mi tin
trnh

Ton cc

Ton cc

Phm vi
ID file

File server

Ton cc

Server

Ton cc

H thng
file

Ng
ngha
chia s

Phin

Giao tc

UNIX

UNIX

Khng
c ch ra

n v
lu tm
(m)

File (v4)

File

File

Khi

Khng
c ch ra

Nhn bn

Ti thiu

ROWA

Khng

Striping

Khng

Chu li

Truyn
thng tin
cy

Nhn bn v
lu tm

Truyn
thng tin cy

Striping

Truyn
thng tin
cy

Hi phc

Da vo
client

Khi phc

Khng c
ch ra

im kim
tra v ghi
nht k

Khng
c ch ra

Cc knh
an ton

Cc c ch
ang tn ti

Needham
Schroeder

Needham
Schroeder

Khng
ng dn
tn

T chng
nhn

iu
khin truy
cp

Nhiu thao
tc

Cc thao tc
th mc

Da trn
UNIX

Da trn
UNIX

Da trn
NFS

IV. Kt lun
H phn tn l 1 h thng c chc nng v d liu phn tn trn cc trm (my
tnh) c kt ni vi nhau qua 1 mng my tnh. Vic thit k 1 h phn tn phi
tun theo 7 nguyn l m ta cp n phn u.
Trong vic xy dng cc h phn tn, th 1 trong nhng m thc quan trng
ca n l cc h thng file phn tn. Nh ta bit, chia s d liu l 1 trong
nhng chc nng c bn ca h phn tn. H thng file phn tn cho php nhiu
tin trnh cng chia s d liu trong khong thi gian di 1 cch an ton v tin cy.
trn ta cng xem xt 1 s cc h thng file kh ph bin nh: NFS, Coda,
Plan 9, xFS, SFS. Khi phn tch cc h thng ny, gip ta hiu su hn v cc
nguyn l ca 1 h phn tn ni chung.
Tuy c nhiu c gng ca bn thn, nhng bi s hn ch v kin thc nn
trong tiu lun vn cn nhiu sai st. Cui cng, em xin cm n thy GS-TS.
Nguyn Thc Hi gip em trong sut qu trnh hon tt tiu lun ny.
Cc ti liu tham kho c dng trong tiu lun:
- 42 -

H thng file phn tn


[1]. Distributed
M.V.Steen.

system:

principles

and

paradigms

A.S.Tanenbaum,

[2]. Distributed system: concepts and design G.Couloms, J.Dollimore,


T.Kinberg.
[3]. Cc a ch website:

http:..www.cs.sfu.ca.CC.401.tiko.lecnotes.ch4.3.pdf

http:..en.wikipedia.org.wiki.Network_File_System_(Sun)

http:..courses.washington.edu.css434.students.NFS.ppt

- 43 -

Vous aimerez peut-être aussi