分布式文件系統(tǒng)_第1頁
分布式文件系統(tǒng)_第2頁
分布式文件系統(tǒng)_第3頁
分布式文件系統(tǒng)_第4頁
分布式文件系統(tǒng)_第5頁
已閱讀5頁,還剩64頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

第12章分布式文件系統(tǒng)

分布式系統(tǒng)的關(guān)鍵部分:文件系統(tǒng)

文件服務(wù)和文件服務(wù)器(1)

文件服務(wù):文件系統(tǒng)為客戶所提供的內(nèi)容的

規(guī)范說明

它描述了可用的原語,它們所使用參數(shù)以及

執(zhí)行的操作

文件服務(wù)確定了文件系統(tǒng)對客戶的界面

文件服務(wù)器是一個運(yùn)行于某些機(jī)器上的進(jìn)程

并幫助實現(xiàn)文件服務(wù)

良好的分布式系統(tǒng),用戶不知道文件系統(tǒng)是

如何實現(xiàn)的

文件服務(wù)和文件服務(wù)器Q)

文件服務(wù)器是在某臺機(jī)器上運(yùn)行的用戶進(jìn)程

(有時是內(nèi)核進(jìn)程)

系統(tǒng)會有多個文件服務(wù)器,提供不同的文件

服務(wù)

12.1分布式文件系統(tǒng)設(shè)計

兩個不同的部件:文件服務(wù)和目錄服務(wù)

文件服務(wù):單個文件上的操作相關(guān),諸如讀、

寫和添加

目錄服務(wù):維護(hù)目錄有關(guān),在目錄上加、刪

文件等等

12.2.1文件服務(wù)的接口

什么是文件?

兩種文件類型

文件類型1

文件是一個不加解釋的字節(jié)序列

文件信息的意義與結(jié)構(gòu)全部由應(yīng)用程序來決

操作系統(tǒng)對之無興趣

文件類型2

文件可被組織成一串記錄

可使用操作系統(tǒng)調(diào)用來讀寫某個記錄

大多數(shù)支持把文件視作字節(jié)序列的概念

而不是關(guān)鍵記錄的序列

文件屬性

不包括在文件內(nèi)容中的

有關(guān)文件的若干條信息

常見的屬性:所有者,文件大小,建立日期

和訪問許可

文件服務(wù)通常會提供一些對屬性進(jìn)行讀寫操

作的原語

文件可否修改

文件被創(chuàng)建之后,是否可被修改

?通常它們可以

?“不可改變的(immutable)”文件

僅有CREATE和READ文件操作

一個文件一旦創(chuàng)建,它就不能改變

容易支持文件緩存和復(fù)制,

消除了由于文件改變而要更新所有副本所引

起的問題

文件保護(hù)⑴

?存取能力表

每一個用戶都持有一張稱作存取能力表的票

據(jù)

用于它訪問的每一個對象

存取能力指定了哪種形式的訪問是被允許的

文件保護(hù)(2)

?存取控制表

一個文件對應(yīng)一個隱式或顯式的用戶表

指明可能訪問該文件的用戶及可能的訪問形

兩種類型文件服務(wù):

-文件的上載/下載模式

?遠(yuǎn)程訪問模式

文件上載/下載模式(1)

?只提供兩種操作:讀文件和寫文件

?讀操作:

是將整個文件從服務(wù)器送到申請的客戶

?寫操作:

將整個文件從客戶傳遞到服務(wù)器

在服務(wù)器和客戶之間移動整個文件

文件可以按需要而保存在內(nèi)存或本地磁盤上

只提供了物理存儲和傳輸

文件上載/下載模式(2)

?優(yōu)點:概念上的簡潔性

沒有復(fù)雜的文件服務(wù)接口

整體文件傳送效率很高

?缺點:客戶端必須有足夠的存儲空間

只需文件一小部分,傳整個文件浪費

(a)上載/下載模式

客戶機(jī)向服務(wù)器發(fā)出訪問請求

(b)遠(yuǎn)程訪問模式

遠(yuǎn)程訪問模式

?文件服務(wù)提供

打開和關(guān)閉文件、文件讀和寫、文件內(nèi)的移

動(LSEEK)

考察和修改文件屬性等等操作

?文件系統(tǒng)運(yùn)行在服務(wù)器上,而不是客戶機(jī)上

.優(yōu)點:在客戶機(jī)上無須太多的空間,

消除零碎空間中放入整個文件的問題

12.1.2目錄服務(wù)器

?提供創(chuàng)建和刪除目錄、對文件命名和改名

把文件從一個目錄移向另一個目錄

?文件命名規(guī)則:

可以是從1到某個最大的數(shù)字,字符或一些

特殊字符

文件擴(kuò)展名:

文件名劃分為兩部分,通常用一個分開

名字第二部分,稱為文件擴(kuò)展名,標(biāo)識了文

件的類型

擴(kuò)展名而用一個顯性屬性來達(dá)到這個目的

目錄和子目錄

目錄下包含子目錄,可把相關(guān)文件放在一起

系統(tǒng)提供創(chuàng)建、刪除、進(jìn)入以及移動子目錄

和從子目錄中查找文件的功能

層次型文件系統(tǒng)

子目錄可再包含子目錄從而形成樹型目錄

目錄的鏈接

某些系統(tǒng)中,能創(chuàng)建到任一目錄的鏈接或指

不僅構(gòu)建樹,而且構(gòu)建任意目錄圖,功能更

強(qiáng)

設(shè)計分布式文件系統(tǒng)的一個關(guān)鍵問題

所有機(jī)器和進(jìn)程都應(yīng)該對目錄層次有相同的

認(rèn)識

應(yīng)有一個全局性的,并為所有機(jī)器所確認(rèn)的

根目錄

目錄的藪邕指向目錄

機(jī)器1

(a)也)

目錄樹在一臺機(jī)器內(nèi)在在兩臺機(jī)器內(nèi)的目錄圖

(b)所有客戶機(jī)對某文件系統(tǒng)都有相同認(rèn)識的系統(tǒng)

(c)不同的客戶機(jī)對某文件系統(tǒng)有不同認(rèn)識的系統(tǒng)

名稱解析透明性

定位透明性

服務(wù)器可以在網(wǎng)絡(luò)中隨意移動,其路徑名也

無需改動

文件在移動時無需改變其名稱時,稱為定位

獨立性

在路徑名中嵌入了服務(wù)器名稱顯然不是定位

獨立的

不易實現(xiàn)的,是一個在分布式系統(tǒng)中所希望

具有的性質(zhì)

名稱解析三個處理方式:

?機(jī)器+路徑解析,諸如/machine/path或

machine:path

?把遠(yuǎn)程文件系統(tǒng)安裝到本地文件層次中

?對所有機(jī)器都視同一致的單一名稱空間

前兩項容易實現(xiàn)

后者較困難,需要仔細(xì)地設(shè)計

兩級名稱解析(1)

?二級命名法

對用戶:文件(及其它對象)有符號名

對機(jī)器:有系統(tǒng)內(nèi)部使用二進(jìn)制名

要提供這兩個名字解析間的一種映射

在一個有多個自含文件服務(wù)器的系統(tǒng)中

二進(jìn)制名實質(zhì)上就是一個本地的I?結(jié)點數(shù)

通用名稱解析方案:

二進(jìn)制名指向服務(wù)器和里面的某個特定文件

兩級名稱解析Q)

?符號鏈

符號鏈?zhǔn)且粋€目錄項,映射到一個(服務(wù)器

文件名)中的字符串上

通過字符串,可通過命名的服務(wù)器找到二進(jìn)

制名

符號鏈本身實際上就是路徑名

兩級名稱解析(3)

?利用二進(jìn)制名能力

查找一個ASCII碼名字

包括物理的或邏輯的機(jī)器號

或適當(dāng)?shù)姆?wù)器網(wǎng)絡(luò)地址

物理地址就可用來向服務(wù)器發(fā)消息

通過通過廣播或者在名字服務(wù)器上查找

能夠定位一個虛擬地址

12.1.3文件共享的語義

?多用戶文件共享要嚴(yán)格定義讀與寫語義

?UNIX語義學(xué)

當(dāng)READ操作接著WRITE操作時

READ所返回的值正是剛寫入的

類似地,當(dāng)兩個WRITE操作連續(xù)出現(xiàn)后跟

一個READ操作

讀的值是最后一次寫的值

?系統(tǒng)按絕對的時間序列執(zhí)行所有操作

且總是返回最后一次操作的值

單一服務(wù)器文件系統(tǒng)

在實踐中,單一服務(wù)器文件系統(tǒng)性能,通常很差

改進(jìn):允許客戶機(jī)在其私有空間中維護(hù)文件本地副

客戶在本地修改緩存區(qū)文件

接著另一個客戶從服務(wù)器讀取該文件

第二個客戶會得到一個陳舊的文件

解決方法:向服務(wù)器播送對緩存區(qū)文件的全部修改

概念盡管簡單,但處理是低效率的

(a)在單處理器上,當(dāng)READ跟隨WRITE,返回的值是剛才寫入

的值

(b)有緩存區(qū)的分布式系統(tǒng)中,可能被返回的是陳舊值

替代解法:會話語義(sessionsemantics)

放松文件共享的語義學(xué)要求

新的規(guī)則:“對打開文件的修改,僅對修改

該文件的進(jìn)程是初始可見的”

重新定義了正確的操作的實際行為

當(dāng)A關(guān)閉文件時,它送一個副本給服務(wù)器

所以后續(xù)的READ得到了所需要的新值

會話語義的問題

?更多的客戶同時在同一個緩存區(qū)上修改會怎

樣?

?一種解決方法:

當(dāng)每個文件依次關(guān)閉時,其值回送給服務(wù)器

?最后的結(jié)果取決于誰最后關(guān)閉

不可更改文件

操作只有CREATE與READ

雖然文件不能更新,但可以更新目錄

問題就不存在了

共享文件的第四個方法:原子事務(wù)

確保在事務(wù)中的所有調(diào)用都會按序執(zhí)行

不會被任何其它的、并發(fā)的事務(wù)所干擾

方式評論

UNIX語義在文件上的每一操作

對所有進(jìn)程均是立即可見的

會話語義在文件關(guān)閉之前,

變化對其它進(jìn)程是不可見的

不可變文件不能更新,簡化了共享和復(fù)制處理

原子事務(wù)所有修改有,全是-或-全不是的性質(zhì)

12.2.1文件的使用

文件使用的模式

多數(shù)文件較?。ǖ陀?0k)

讀比寫要多得多

讀和寫是順序的,很少隨機(jī)訪問

多數(shù)文件壽命很短

文件共享是不尋常的

平均看進(jìn)程只使用少量文件

存在不同特性的顯然不同的文件類型

12.2.2系統(tǒng)結(jié)構(gòu)

“客戶機(jī)和服務(wù)器有差別嗎?”

在一些系統(tǒng)中(比如:NFS)

客戶機(jī)和服務(wù)器之間沒有差別

另一個極端

客戶機(jī)和服務(wù)器在軟硬件上是完全不同的

服務(wù)器甚至可以運(yùn)行和客戶機(jī)不同的操作系

統(tǒng)

怎樣構(gòu)造文件和目錄服務(wù)

一種方法:兩種服務(wù)組織到單獨的服務(wù)器里

用戶送一個符號名給目錄服務(wù)器

目錄服務(wù)器返回服務(wù)器可以識別的二進(jìn)制文

件名

目錄在

文件文件

層次化目錄

層次化目錄有可能分段處在多個服務(wù)器上

經(jīng)常地尋找路徑名,特別是多重目錄服務(wù)器

費用會很昂貴

提示快捷棧

保存最近查找的名字以及查找的結(jié)果

另一種方法:把它們分隔開

擁有兩個服務(wù)器將需要更多的通訊

客戶機(jī)的狀態(tài)(1)

一個派認(rèn)為服務(wù)器應(yīng)是無狀態(tài)(stateless)的

當(dāng)客戶機(jī)向服務(wù)器發(fā)出請求,服務(wù)器執(zhí)行了

這個請求

發(fā)送回答信息,在請求之間,沒有保留客戶

機(jī)狀態(tài)信息

每個請求必須自我包含信息

包含全文件名及文件內(nèi)的偏移量,以允許服

務(wù)器完成工作

信息增加了消息的長度

客戶機(jī)的狀態(tài)Q)

另一派認(rèn)為保留客戶機(jī)請求間的狀態(tài)信息是

完全有必要的

服務(wù)器狀態(tài)

容錯較短的請求消息

無需OPEN/CLOSE調(diào)用較好的性能

不在表上浪費服務(wù)器空間有可能預(yù)讀

打開文件數(shù)量無限制較易實現(xiàn)

客戶機(jī)失效時不受影響文件加鎖有可能

12.2.3緩存區(qū)處理(Caching)

四個地方存放文件:

服務(wù)器硬盤

服務(wù)器主存

客戶機(jī)硬盤(若存在的話)

客戶機(jī)主存

服務(wù)器硬盤

所有文件在服務(wù)器的硬盤上

文件可被所有客戶機(jī)所訪問

一個文件只有一套拷貝,不存在一致性問題

客戶機(jī)主內(nèi)存服務(wù)器磁盤

網(wǎng)絡(luò)

可存放文件的四個地方

13-9

服務(wù)器主存

在服務(wù)器主存上緩存最近使用過的文件

可使性能獲得高的提升

主存一般都比磁盤小

需要算法決定文件的哪部分留在緩存區(qū)

客戶機(jī)的主存

客戶機(jī)主存有三種選擇

方案一最簡單:把緩存文件直接放在用戶進(jìn)

程自有地址空間中

大多數(shù)進(jìn)程只讀一個文件一項

所以在庫中設(shè)緩存區(qū)并沒有多大的價值

在客戶機(jī)主存中運(yùn)用緩存區(qū)的不同方式

(a)無緩存區(qū)

(b)在每一進(jìn)程中設(shè)緩存區(qū)

(c)在內(nèi)核中設(shè)緩存區(qū)

(d)視作用戶進(jìn)程的緩存區(qū)管理器

客戶機(jī)緩存區(qū)地方是內(nèi)核

缺點是,需要內(nèi)核的調(diào)用

這種緩存區(qū)比在進(jìn)程中設(shè)緩存區(qū)效果為好

方案二:緩存區(qū)在不同的用戶級緩存區(qū)

管理器中

優(yōu)點:內(nèi)核同文件系統(tǒng)代碼無關(guān)

容易編程,因為它它完全隔離

且更具靈活性

緩存區(qū)一致性

客戶機(jī)把不一致性引入了系統(tǒng)

方法評價

遍寫工作,但不影響寫的操作

延遲寫更好的性能,但可能帶來二義性

閉寫滿足會話語義要求

集中控制UNIX語義,但魯棒性和可伸縮性差

不可改變的文件

吸引力,可在機(jī)器上進(jìn)行緩存處理的能力

不用擔(dān)心機(jī)器會有改變它的可能性

12.2.4復(fù)制性(replication)

分布式系統(tǒng)常常提供文件復(fù)制服務(wù)給他們的客戶

主要的原因中有:

可靠性:每一文件的各自獨立的副本增強(qiáng)了可靠性

有效性:即使在服務(wù)器關(guān)閉時,也允許訪問文件

性能:所有文件放在一臺服務(wù)器上會造成性能瓶頸

多服務(wù)器上復(fù)制文件,最輕載的將會被使用

符號名多重二進(jìn)制地址(a)顯式文件復(fù)制

(b)空閑復(fù)制

(a)

(c)使用組的文件復(fù)制

13-12

三種復(fù)制

復(fù)制關(guān)鍵問題是透明度問題

顯式文件復(fù)制;空閑復(fù)制;組通訊

顯式文件復(fù)制

程序員控制整個復(fù)制進(jìn)程

進(jìn)程在某服務(wù)器上創(chuàng)建個文件

如果需要的話,可以在其他服務(wù)器上備份多份

如果目錄服務(wù)器允許文件的多份拷貝同時存在

那么備份的網(wǎng)上地址都與文件名相關(guān)

只要給出文件名,所有的備份都能被找到

空閑復(fù)制(Lazyreplication)

每個文件只在一服務(wù)器中建立

在服務(wù)器空閑時自動復(fù)制到另外的服務(wù)器中

復(fù)制過程對用戶透明

在后臺復(fù)制文件時,注意原文件是否已被修

改過

組通訊方式

全部“寫”調(diào)用同時發(fā)往所有服務(wù)器

后備文件與原件同時產(chǎn)生

空閑復(fù)制與組通訊方式主要有兩個區(qū)別:

在空閑復(fù)制方式中只須一個服務(wù)器地址,而

不是一個組;

空閑復(fù)制空閑時在后臺進(jìn)行

而組通訊方式中,所有文件同時產(chǎn)生

如何更新

原本復(fù)制(primarycopyreplication)

一臺服務(wù)器被指定為主機(jī)。其它的當(dāng)作輔機(jī)

已復(fù)制文件需要更新時,首先告訴主機(jī),把主機(jī)文

件修改

然后主機(jī)命令輔機(jī),要求它們修改

缺點:一旦被指定主機(jī)不能工作,對文件的修改不

能進(jìn)行

復(fù)制更可靠的方法:“投票表決法(voting)”

基本思想:無論讀或?qū)懸褟?fù)制文件時,用戶應(yīng)向多

臺服務(wù)器提出請求并獲得同意

"幽靈表決法(vot

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論