網(wǎng)絡(luò)文件系統(tǒng)_第1頁
網(wǎng)絡(luò)文件系統(tǒng)_第2頁
網(wǎng)絡(luò)文件系統(tǒng)_第3頁
網(wǎng)絡(luò)文件系統(tǒng)_第4頁
網(wǎng)絡(luò)文件系統(tǒng)_第5頁
已閱讀5頁,還剩6頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、萬物歸一網(wǎng)絡(luò)文件系統(tǒng)微軟老道在吸取瓜董的思想之后,終于創(chuàng)立了自己的理論。武當(dāng)?shù)膫}庫就像一個大的卷,一個大的磁盤陣列。它可以劃分出多個LUN供多個使用者使用。而每個使用者必須有自己的文件系統(tǒng),因為這個LUN只是一個卷設(shè)備,只提供了不計其數(shù)的房間存放貨物。至于怎么存放貨物。需要由使用者自己決定和管理,也就是用文件系統(tǒng)來管理卷,像理貨員作貨物記錄一樣。微軟老道把瓜董的思想用在了存儲上,他把文件系統(tǒng)的功能從使用者處遷移到了磁盤陣列之上,讓磁盤陣列自己管理存儲空間。而對外提供統(tǒng)一的用戶接口(貨物存取單據(jù)v2.0),使得使用者不用再記錄某某文件和卷上扇區(qū)或者簇塊的對應(yīng)關(guān)系,這個工作統(tǒng)統(tǒng)由盤陣上的集中式文件

2、系統(tǒng)模塊處理。使用者只需通過網(wǎng)絡(luò)告訴這個文件系統(tǒng)需要存取什么文件,長度是多少就可以了。具體存取數(shù)據(jù)的過程,由集中式文件系統(tǒng)來做,使用者只需等待接收數(shù)據(jù)就可以了。同樣,在存文件的時候,使用者只需告訴文件系統(tǒng)要存哪些數(shù)據(jù),提供一些文件名、長度、哪個目錄下等信息就可以了,至于文件存到卷的哪些空余扇區(qū)完全由盤陣上的文件系統(tǒng)邏輯來處理,使用者不必關(guān)心。位于盤陣上的集中式文件系統(tǒng)得益于包交換網(wǎng)絡(luò),可以同時處理多個使用者的請求。它可以給每個使用者提供各自的文件夾目錄,并且可以為這些目錄限定允許存放的最大數(shù)據(jù)量??傊募到y(tǒng)可以實現(xiàn)的任何功能都可以在盤陣上實現(xiàn)。1網(wǎng)絡(luò)文件系統(tǒng)使用者如何與盤陣上的集中式文件系

3、統(tǒng)進(jìn)行交互呢?當(dāng)然是通過網(wǎng)絡(luò)來傳遞數(shù)據(jù)。由于一直以來的習(xí)慣,以太網(wǎng)加TCP/IP成為了首選的網(wǎng)絡(luò)方式。除了底層傳輸網(wǎng)絡(luò),還必須定義上層的應(yīng)用邏輯。針對上層邏輯,微軟定義了自己的一套規(guī)范,叫做CIFS(CommonInternet File System),意思是Internet范圍的FS。Linux和UNIX系統(tǒng)用了另一種方式,稱為NFS(Network File System),這些上層協(xié)議都是利用TCP/IP協(xié)議進(jìn)行傳輸?shù)?。以上描述的模型統(tǒng)稱為“網(wǎng)絡(luò)文件系統(tǒng)”。這種文件系統(tǒng)邏輯不是在本地運(yùn)行,而是在網(wǎng)絡(luò)上的其他節(jié)點(diǎn)運(yùn)行,使用者通過外部網(wǎng)絡(luò)將讀寫文件的信息傳遞給運(yùn)行在遠(yuǎn)端的文件系統(tǒng),也就是調(diào)

4、用遠(yuǎn)程的文件系統(tǒng)模塊,而不是在本地內(nèi)存中調(diào)用文件系統(tǒng)的API來進(jìn)行。所以網(wǎng)絡(luò)文件系統(tǒng)又叫做遠(yuǎn)程調(diào)用式文件系統(tǒng),也就是RPCFS(RemoteProcedureCallFileSystem)。相對于SAN來說,這種網(wǎng)絡(luò)文件系統(tǒng)不僅磁盤或卷在遠(yuǎn)程節(jié)點(diǎn)上,連文件系統(tǒng)功能也搬運(yùn)到了遠(yuǎn)程節(jié)點(diǎn)上。本地文件系統(tǒng)可以直接通過主板上的導(dǎo)線訪問內(nèi)存來調(diào)用其功能。而網(wǎng)絡(luò)文件系統(tǒng)只能通過網(wǎng)絡(luò)適配器上連接的網(wǎng)線而不是主板上的導(dǎo)線來訪問遠(yuǎn)端的文件系統(tǒng)功能。網(wǎng)絡(luò)文件系統(tǒng)在網(wǎng)絡(luò)上傳遞的是些什么內(nèi)容呢?下面用抓包的方式來分析一下。1)CIFS協(xié)議網(wǎng)絡(luò)包分析在某個用CIFS訪問方式的目錄下新建一個文本文檔,然后將它刪除。此過程中

5、抓取網(wǎng)絡(luò)流量。在CIFS方式下,僅僅上述兩個動作,就引發(fā)了網(wǎng)絡(luò)上數(shù)百個包的流量(如圖10-10所示),可見CIFS是一個開銷非常大的NAS協(xié)議。這里就不一一分析每個包了。2NFS協(xié)議網(wǎng)絡(luò)包分析圖10-10 CIFS協(xié)議交互的數(shù)據(jù)包在一臺Linux客戶端上使用NFSv3來Mount一臺NFS服務(wù)器上的某個目錄到本地的/mnt目錄下。進(jìn)入這個目錄,然后用touch a命令來創(chuàng)建一個名為a的文件,然后執(zhí)行via,進(jìn)入編輯模式,不作到任何修改,退出,之后用rma命令來刪除這個文件。其間抓取網(wǎng)絡(luò)上的流量。提示10.128.132.45是NFS客戶端的IP地址,10.128.132.175是NFS服務(wù)器端

6、的IP地址。分析結(jié)果已經(jīng)去除了不必要的TCP包以及TCP_ACK等包。圖10-11顯示的是這個過程中網(wǎng)絡(luò)上雙方所交互的主要數(shù)據(jù)包。圖1可以看到,NFS協(xié)議的開銷遠(yuǎn)遠(yuǎn)小于CIFS協(xié)議。完成相似動作,NFS只需要交互十幾個包即可。下面來分析每個包的作用。Frame1(如圖10-12所示):客戶端在創(chuàng)建文件之前,首先做了一次lookup操作,來查找當(dāng)前目錄中是否已經(jīng)有同名文件;如果有,則拒絕創(chuàng)建。圖中的DH表示DirectoryHandle,是一個32字節(jié)長的字段,這個值用來指代目錄名稱。在第一次訪問某個目錄時,NFS服務(wù)端會動態(tài)分配這個值,將其通知給客戶端。隨后的訪問請求中,客戶端將使用這個值而不

7、是目錄名稱來向NFS服務(wù)端發(fā)起針對這個目錄的請求。圖提示圖中DH值的hash值為0x98f8d6bb,為了表示方便,抓包軟件將其hash成一個4字節(jié)的值,這個hash值并不是存在于網(wǎng)絡(luò)包中的。本例中,/mnt目錄被指定的DH值的hash值就是0x98f8d6bb。Frame2(如圖10-13所示):為NFS服務(wù)端對Frame1的回應(yīng)。通過ERR_NOENT可以判斷出當(dāng)前目錄并沒有名為a的文件。Frame4(如圖10-14所示):客戶端隨即發(fā)起了“Create Call”,創(chuàng)建“a”文件。Frame5(如圖10-15所示):NFS服務(wù)端對客戶端Frame4的回應(yīng)。創(chuàng)建成功,服務(wù)端返回File H

8、andle(FH)的hash值為0xf03ce91c。FH與DH一樣,在數(shù)據(jù)包中實際上也為一個32字節(jié)長的字段。為了表示方便,抓包軟件將其hash成一個4字節(jié)的值。隨后的交互中客戶端不會用文件名來向服務(wù)端請求操作,而全部用這個File Handle來指代。Frame6(如圖10-16所示):文件“a”創(chuàng)建成功之后,出于保險起見,應(yīng)用程序一般都會緊接著查詢一下文件屬性,順便確認(rèn)文件是否創(chuàng)建成功?!癎etAttr Call”就是用來查詢文件屬性用的一種RPC call。從圖中可以看到對應(yīng)的FH值為0xf03ce91c,NFS服務(wù)端收到這個值就會自動對應(yīng)成文件“a”。Frame7(如圖10-17所示

9、):NFS服務(wù)端對Frame6的回應(yīng)。包中可以看到文件的umask訪問權(quán)限以及atime、mtime、ctime屬性。Frame8(如圖10-18所示):緊接著NFS客戶端發(fā)起了一個查詢/mnt目錄屬性的請求。因為Handle的值為0x98f8d6bb,所以可以判斷這個GetAttrCall是針對/mnt目錄的。Frame9(如圖10-19所示):NFS服務(wù)端對Frame8的回應(yīng)。Frame10(如圖10-20所示):NFS客戶端發(fā)起一個在/mnt目錄中查找文件“a”的請求。這里由于是查找操作,客戶端會假設(shè)不知道“a”文件的FH值,而只知道/mnt目錄的DH值,所以文件名“a”使用的就是ASC

10、II碼的“a”。Frame11(如圖10-21所示):NFS服務(wù)端根據(jù)Frame10中請求的回應(yīng)找到這個文件,F(xiàn)H值是0xf03ce91c。Frame12(如圖10-22所示):NFS客戶端發(fā)起一個SetAttr Call的請求,這個請求的目的是為了改變文件屬性??梢钥吹娇蛻舳苏埱髮⑽募腶time和mtime改為服務(wù)端當(dāng)前的系統(tǒng)時間。Frame13(如圖10-23所示):對Frame12的回應(yīng)??梢钥吹絘time、ctime在之前和之后的不同,當(dāng)然,時間差別都在微妙級,因為這一連串的請求其實是在很短的時間里發(fā)出去并得到應(yīng)答的。Frame15(如圖10-24所示):由于在客戶端執(zhí)行了“rma”

11、的命令,所以客戶端發(fā)起一個對/mnt目錄的訪問請求。其實客戶端在抓包期間一直處于/mnt目錄中,至于為何要重新發(fā)起Access請求,與具體應(yīng)用程序的代碼有關(guān),可能開發(fā)者為了確認(rèn)/mnt目錄的DH值沒有過期,所以重新試探訪問。Frame16(如圖10-25所示):NFS服務(wù)端對Frame15的回應(yīng)。Frame18(如圖10-26所示):此時,客戶端由于輸入了“rma”命令,所以客戶端首先要查詢一下文件“a”的權(quán)限,因此客戶端發(fā)起一個GetAttr的請求來查詢文件“a”的權(quán)限。Frame19(如圖10-27所示):NFS服務(wù)端對Frame18的回應(yīng)。Frame20(如圖10-28所示):NFS客戶端發(fā)起對文件“a”的Access請求。至于為何在刪除文件之前要發(fā)起Access請求,與編碼習(xí)慣有關(guān)。Frame21(如圖10-29所示):NFS服務(wù)端對Frame20的回應(yīng)。Frame23(如圖10-30所示):NFS客戶端發(fā)起Remove請求??梢钥吹絉emove請求中并沒有使用FH,

溫馨提示

  • 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

提交評論