一種分布式文件系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)_第1頁
一種分布式文件系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)_第2頁
一種分布式文件系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)_第3頁
一種分布式文件系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)_第4頁
一種分布式文件系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、一種分布式文件系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)程煒燁(華中科技大學(xué) 計(jì)算機(jī)學(xué)院 湖北武漢 430074摘要 :分布式文件系統(tǒng)在集群存儲(chǔ)中起著重要的作用, 。 本文詳細(xì)介紹了一種分布式文件系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn), 著重?cái)⑹隽私y(tǒng)一名字空間的設(shè)計(jì)和 Linux 下客戶端文件系統(tǒng)的實(shí)現(xiàn)。該分布式文件系統(tǒng)的讀寫性能比網(wǎng)上 鄰居有明顯的優(yōu)勢。關(guān)鍵詞 :集群存儲(chǔ);統(tǒng)一名字空間;超級(jí)塊;目錄項(xiàng);索引節(jié)點(diǎn)The design and implement of a distribute file systemCHENG Weiye(School of Computer Science, Huazhong University of S

2、cience and Technology, Wuhan 430074, China Abstract: Distribute file system plays an important role in cluster storage. The design and implement of the distribute file system is discussed in detail, especially the design of global name space and the implement of file system in Linux.Key words: clust

3、er storage; global name space; super block; directory entry; index node1引言為了滿足文件存儲(chǔ)的新的要求(大容量、高可 靠性、高可用性、高性能、動(dòng)態(tài)可擴(kuò)展性、易維護(hù) 性 ,設(shè)計(jì)一種好的分布式文件系統(tǒng)越來越成為需 要。分布式文件系統(tǒng)使得分布在多個(gè)節(jié)點(diǎn)上的文件 如同位于網(wǎng)絡(luò)上的一個(gè)位置便于動(dòng)態(tài)擴(kuò)展和維護(hù)。 由于分布式文件系統(tǒng)中的數(shù)據(jù)可能來自很多不同 的節(jié)點(diǎn),它所管理的數(shù)據(jù)也可能存儲(chǔ)在不同的節(jié)點(diǎn) 上,這使得分布式文件系統(tǒng)中有很多設(shè)計(jì)和實(shí)現(xiàn)與 本地文件系統(tǒng)存在巨大的差別。下面主要講述分布 式文件系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)中所要面對(duì)和解決的主要

4、問題 錯(cuò)誤!未找到引用源。 。2軟件總體結(jié)構(gòu)設(shè)計(jì)一個(gè)好的分布式文件系統(tǒng)是集群存儲(chǔ)的 關(guān)鍵。我們設(shè)計(jì)的分布式文件系統(tǒng)通過統(tǒng)一名字空 間管理使得分布在多個(gè)服務(wù)器上的文件如同位于 網(wǎng)絡(luò)上的一個(gè)位置便于動(dòng)態(tài)擴(kuò)展和維護(hù)。我們把整個(gè)系統(tǒng)主要?jiǎng)澐挚蛻舳伺c服務(wù)器端兩 部分。 客戶端包括 MVFS 文件系統(tǒng), CC 模塊 (Client Cache , CNS 模塊(Client Name Space ,CN 模塊 (Client Network 。服務(wù)器端包括 SC 模塊(Server Cache , SNS 模塊(Server Name Space ,SN 模塊 (Server Network 。應(yīng)用程序的

5、 I/O請(qǐng)求首先送 給 MVFS 文件系統(tǒng), MVFS 文件系統(tǒng)根據(jù)文件句柄 獲得本文件系統(tǒng)的全局文件名并把對(duì)文件的訪問 轉(zhuǎn)換為對(duì) CC 的訪問。 CC 收到請(qǐng)求之后,如果在 Cache 中沒有發(fā)現(xiàn)對(duì)應(yīng)的數(shù)據(jù),則將請(qǐng)求發(fā)給 CNS 層, CNS 層根據(jù)全局文件名獲得該文件所在的服務(wù) 器。最終通過 CN 層將命令發(fā)給服務(wù)器。服務(wù)器端 SN 層通過網(wǎng)絡(luò)接待命令后,將命令傳遞給 SNS 層 負(fù)責(zé)將全局文件名轉(zhuǎn)化成本地的文件名, 然后到 SC 層去查找,如果在 Cache 中找不到,最終會(huì)通過本 地的文件系統(tǒng)完成對(duì)應(yīng)的 I/O 請(qǐng)求。 整個(gè)系統(tǒng)的總 體結(jié)構(gòu)如圖 1所示。在服務(wù)器端還有一個(gè)全局管理程序(

6、心跳協(xié)議 程序 。通過該心跳協(xié)議程序,所有的存儲(chǔ)節(jié)點(diǎn)的 所共享出來的文件構(gòu)成了整個(gè)文件系統(tǒng)的單一的 全局邏輯樹,從而可以讓客戶端見到唯一確定的全 局邏輯樹。 客 戶 端圖 1 總體結(jié)構(gòu)圖3 關(guān)鍵技術(shù)3. 1統(tǒng)一名字空間的設(shè)計(jì)與實(shí)現(xiàn)統(tǒng)一名字空間是指服務(wù)器上的每一個(gè)目錄和 文件在我們的文件系統(tǒng)中都有一個(gè)統(tǒng)一的,唯一的 名字。要實(shí)現(xiàn)統(tǒng)一名字空間就必須將服務(wù)器上的本 地局部路徑與文件系統(tǒng)中的全局路徑一一對(duì)應(yīng),所 以我們在每一個(gè)服務(wù)器上都存放了一個(gè)本地配置 文件來記錄這個(gè)映射關(guān)系,每個(gè)服務(wù)器應(yīng)該根據(jù)所 有服務(wù)器的本地配置文件而形成一個(gè)全局配置 文 件。本地配置文件的第一行主要記錄其版本號(hào)。后 面的每一行

7、是一條記錄,主要包括共享的全局路徑 (客戶端看到的文件或目錄名及物理路徑(服務(wù) 器上存放的文件或目錄名 。而全局配置文件的第一行主要記錄其版本號(hào),服務(wù) 器個(gè)數(shù)及每個(gè)服務(wù)器的 IP , 后面的每一行是一條記 錄,與本地配置文件的記錄相識(shí),只是多了一個(gè)服 務(wù)器 IP 的信息當(dāng)服務(wù)器啟動(dòng)后,首先根據(jù)自己的本地配置文 件生成一個(gè)全局配置文件,然后廣播自己的本地配 置文件。當(dāng)服務(wù)器接收到其他服務(wù)器的本地配置文 件后,會(huì)根據(jù)這個(gè)本地配置文件修改全局配置文 件。當(dāng)全局配置文件中不包括該服務(wù)器的信息即第 一行沒有該服務(wù)器的 IP , 我們將全局配置文件的版 本號(hào)改為兩個(gè)配置文件中版本號(hào)的稍大者,并修改 服務(wù)器

8、個(gè)數(shù),添加服務(wù)器的 IP 及對(duì)應(yīng)的記錄。如 果全局配置文件中已包括該服務(wù)器的信息且全局 配置文件的版本號(hào)大則不用修改,否則將全局配置 文件的版本號(hào)修改成接收文件的版本號(hào),并修改服 務(wù)器個(gè)數(shù),添加服務(wù)器的 IP 及對(duì)應(yīng)的記錄。 當(dāng)修改了某個(gè)服務(wù)器的信息后, 我們應(yīng)該將本 地配置文件的版本號(hào)修改為全局配置文件的版本 號(hào)加一,然后廣播自己的本地配置文件。當(dāng)獲得一個(gè)全局配置文件后我們還應(yīng)將其轉(zhuǎn) 化為一棵目錄文件樹使得在客戶端對(duì)一個(gè)文件或 目錄的操作能夠轉(zhuǎn)換成對(duì)服務(wù)器上得操作。 為了方便查找, 我們將全局配置文件轉(zhuǎn)化為一 棵二叉樹,以全局配置文件中記錄的全局路徑來建 樹。其中樹的根節(jié)點(diǎn)代表者全局路徑的根

9、目錄。樹 中節(jié)點(diǎn)的左兒子為其子目錄,右兒子與其在同一級(jí) 目錄上。3. 2客 戶端文 件系統(tǒng) 的設(shè)計(jì) 與實(shí) 現(xiàn)文件系統(tǒng)應(yīng)該提供一組服務(wù),使用戶能夠處理 數(shù)據(jù),以執(zhí)行所需要的操作,包括創(chuàng)建文件、刪除 文件、組織文件、讀 /寫文件、控制文件的訪問權(quán) 限等。Linux 通過 VFS (虛擬文件系統(tǒng)為各種文件 系統(tǒng)提供統(tǒng)一的接口。 VFS 是內(nèi)核中的一個(gè)軟件層 次,負(fù)責(zé)處理所有與文件系統(tǒng)有關(guān)的系統(tǒng)調(diào)用。我 們通過像 VFS 注冊了一種文件系統(tǒng) MVFS , 使得用戶 的請(qǐng)求可以由我們提供的函數(shù)來處理 錯(cuò)誤!未找到引用源。 。 MVFS 文件系統(tǒng)中主要包括超級(jí)塊,目錄項(xiàng)和 索引節(jié)點(diǎn)。 MVFS 文件系統(tǒng)的

10、總體結(jié)構(gòu)如圖所示。 子目錄的目錄項(xiàng)圖 2 MVFS文件系統(tǒng)的總體結(jié)構(gòu)文件系統(tǒng)的超級(jí)塊主要記錄文件系統(tǒng)的數(shù)據(jù) 塊大小,存放文件系統(tǒng)設(shè)備的設(shè)備號(hào)以及該文件系 統(tǒng)根目錄的目錄項(xiàng)的指針,在 MVFS 文件系統(tǒng)中, 我們在超級(jí)塊中還存放了要連接的服務(wù)器的 IP 和 使用的用戶名和密碼。 MVFS 文件系統(tǒng)的目錄項(xiàng)描述 文件系統(tǒng)中與某個(gè)文件索引節(jié)點(diǎn)相鏈接的一個(gè)目 錄項(xiàng) (可以是文件 , 也可以是目錄 ,同時(shí)通過鏈表 記錄了父目錄與它下面的子目錄和文件的關(guān)系。而 索引節(jié)點(diǎn)記錄了關(guān)于這個(gè)目錄或文件的一些系統(tǒng) 信息,比如文件的所有者,文件相關(guān)的一些權(quán)限記 錄,關(guān)于文件的若干個(gè)時(shí)間戳。要想訪問服務(wù)器上的目錄和文件

11、, 必須先掛載 MVFS 文件系統(tǒng)。當(dāng)掛載 MVFS 文件系統(tǒng)時(shí),我們的 處理流程如圖 3所示。 圖 3 MVFS掛載流程在初始化超級(jí)塊, 索引節(jié)點(diǎn)時(shí), 需要將它們的 成員函數(shù)賦值。 MVFS 文件系統(tǒng)主要通過將一些函數(shù) 如對(duì)目錄的讀取以及對(duì)文件的創(chuàng)建和讀寫與它的 索引節(jié)點(diǎn)關(guān)聯(lián),使得以后對(duì)該目錄或文件的操作都 由這些函數(shù)來實(shí)現(xiàn)。其中對(duì)目錄的讀取方法如圖所示: 圖 3 目錄的讀取流程首先根據(jù)文件句柄獲得對(duì)應(yīng)的目錄項(xiàng)結(jié)構(gòu), 而 目錄項(xiàng)結(jié)構(gòu)存放了對(duì)應(yīng)的全局目錄名,因此可以得 到對(duì)應(yīng)的全局目錄名。當(dāng)我們獲得了該目錄下的目 錄名或文件名后,可以調(diào)用 VFS 提供的回調(diào)函數(shù) filldir 。 VFS 會(huì)

12、為這些目錄和文件分配目錄項(xiàng)結(jié) 構(gòu),并將它們鏈接起來 錯(cuò)誤!未找到引用源。 。對(duì)于文件的讀寫,首先根據(jù)文件句柄獲 得對(duì)應(yīng)的目錄項(xiàng)結(jié)構(gòu),從目錄項(xiàng)結(jié)構(gòu)可以得到對(duì)應(yīng) 的全局文件名。然后以全局文件名,緩沖區(qū),要讀 的大小,文件偏移為參數(shù)向 CC 層發(fā)出讀或?qū)懳募?命令。當(dāng) CC 層的函數(shù)返回時(shí),要讀或?qū)懙臄?shù)據(jù)已 在緩沖區(qū)里。4性能測試我們在相同環(huán)境下,客戶端和服務(wù)器均為 P4 PC 平 臺(tái) , 配置 512MB 的 DDR RAM,通過千兆網(wǎng)連接,分 布采用我們的分布式文件系統(tǒng)和網(wǎng)上鄰居,使用 IOMETER 對(duì)不同負(fù)載的讀請(qǐng)求進(jìn)行測試,具體的測 試結(jié)果如圖 4所示。從圖中可知,我們的分布式文 件系統(tǒng)的

13、讀性能要比網(wǎng)上鄰居好的多。 圖 4 網(wǎng)上鄰居和分布式文件系統(tǒng)的讀性能比 較5結(jié)束語本文詳細(xì)介紹了分布式文件系統(tǒng)的設(shè)計(jì)和實(shí) 現(xiàn),著重論述了實(shí)現(xiàn)過程中采用的關(guān)鍵技術(shù)。隨著 對(duì)分布式文件系統(tǒng)的進(jìn)一步開發(fā),將會(huì)對(duì)系統(tǒng)的性 能、擴(kuò)展性、可用性等方面進(jìn)行完善。參考文獻(xiàn)1 Mary Baker, John Ousterhout, Availability in the Sprite Distributed File System, ACM Operating Systems Review,25(2, pages 95-98, April 1991.2 Roger Haskin, The Shark Cont

14、inuous Media File Server, Proceedings of IEEE 1993 Spring COMPCON, San Fransisco, CA, Feb. 1993, pp. 12-17.3 Xiaohui Shen, Alok Choudhary, DPFS: A Distributed Parallel File System, Proceedings of the 2001 International Conference on Parallel Processing (ICPP014 John Wilkes, Richard Golding, Carl Staelin, and Tim Sullivan, “ The HP AutoRAID hierarchical storage system ”, Proceedings of the ACM Symposium on Operating Systems Principles, pp.96-108

溫馨提示

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

評(píng)論

0/150

提交評(píng)論