長期以來,,磁盤帶寬的增長速度都遠(yuǎn)小于計(jì)算能力的增長速度,而雙核,、四核乃至多核服務(wù)器的普及與發(fā)展讓這種不匹配的差距進(jìn)一步拉大,。包括RAID陣列等, 我們目前有多種技術(shù)可提高I/O性能,,并行文件系統(tǒng)也是其中之一,。它可以把多個結(jié)點(diǎn)上的磁盤組織成為一個大的存儲系統(tǒng),提供更大的存儲容量和聚集的I/O 帶寬,,并隨系統(tǒng)規(guī)模的擴(kuò)大而擴(kuò)展,,在多種存儲環(huán)境下發(fā)揮著重要的作用,尤其是集群結(jié)構(gòu)的高性能計(jì)算領(lǐng)域,。 高性能計(jì)算的存儲基石 隨著網(wǎng)絡(luò)的高速發(fā)展,,如何管理高速網(wǎng)絡(luò)上互聯(lián)的計(jì)算機(jī)的集群系統(tǒng),建立一種性能優(yōu)越的并行文件系統(tǒng)是一件非常重要的事情,,這樣可以使整個集群系統(tǒng)可以具備 高可用性,、可擴(kuò)展性和高可靠性,從而構(gòu)建出上千節(jié)點(diǎn)的超大規(guī)模集群計(jì)算機(jī),,為整個網(wǎng)絡(luò)提供性價比高的集群服務(wù)器和超強(qiáng)的網(wǎng)格節(jié)點(diǎn),。 目前各個研究機(jī)構(gòu)和商業(yè)團(tuán)體對并行文件系統(tǒng)的研究比較看重,取得了不少的技術(shù)進(jìn)步和 相關(guān)的商業(yè)產(chǎn)品,,我們對整個分布式并行文件系統(tǒng)研究情況大致可以分為三類: 商業(yè)用途的并行文件系統(tǒng),;公開的分布式并行文件系統(tǒng);供研究的并行文件系統(tǒng),。 并行文件系統(tǒng)工作原理 其中較為成熟的商用并行文件系統(tǒng),像 IBM 的 GPFS,,Intel 的 PFS 等在性能,,可用性上均有良好表現(xiàn),但都價格昂貴,,且需要特殊的存儲設(shè)備的支持,,給普通用戶構(gòu)建集群服務(wù)器帶來困難。對于公開源碼的并行文 件系統(tǒng),,聲譽(yù)最好的是 Clemson 大學(xué)和 NASA 實(shí)驗(yàn)室聯(lián)合開發(fā)的 PVFS,,它相對與傳統(tǒng)的集中存儲 NFS 具有良好的性能。由于它采用單一元數(shù)據(jù)服務(wù)器的集中管理方式和存儲節(jié)點(diǎn)的靜態(tài)配置,,因而不具備容錯性和動態(tài)可擴(kuò)展性,。 另外,,由 HP、Intel 贊助,,Cluster File System 公司開發(fā)的面向?qū)ο蟠鎯Φ牟⑿形募到y(tǒng) Lustre 吸收了很多文件系統(tǒng)(Code,, InterMezzo)的優(yōu)點(diǎn)。它采用智能化的對象存儲設(shè)備(Object Storage Device),,在性能方面具有很大優(yōu)勢,,在可用行和動態(tài)可擴(kuò)展性上的表現(xiàn)仍然有待研究和完善。而 XFS是作為最早的 Serverlesss分布式文件系統(tǒng),,主要側(cè)重于通過合作式緩存來提高讀寫性能,,不具備系統(tǒng)的在線動態(tài)擴(kuò)展功能,并沒能真正實(shí)用起來,。 我們對這些系統(tǒng)分別做出分析,,讓我們可以更深入的了解并行文件系統(tǒng)的構(gòu)成和功能。 xFS:走入象牙塔的學(xué)院派 xFS 通過全部分布數(shù)據(jù)存儲于元數(shù)據(jù)管理的功能減少了集中的瓶頸,。為了獲得更高的性能,xFS 采用了合作緩存,,一種通過各客戶緩存的協(xié)調(diào)合作來替代傳統(tǒng)的集中的服務(wù)端緩存,。在 xFS 中,任何機(jī)器都可以緩存,、存儲或則控制任意的數(shù)據(jù)塊,,這種方式可以提供比傳統(tǒng)文件系統(tǒng)結(jié)構(gòu)更好的性能和可擴(kuò)展性。 xFS并行文件系統(tǒng)存取原理 xFS 的一個主要的特點(diǎn)是它的合作緩存的算法,,即是“N-Chance”算法,。 這種算法動態(tài)地把每個客戶端的緩存分開成塊,以提供給當(dāng)?shù)氐暮湍切┐鎯υ诤献骶彺娴膽?yīng)用程序的應(yīng)用,。算法的置換機(jī)制是綜合應(yīng)用了當(dāng)?shù)?#8220;LRU”信息和重復(fù) 避免(duplicate avoidance)以決定所最應(yīng)該置換的塊,。 實(shí)際上,xFS 所應(yīng)用的緩存結(jié)構(gòu)與遠(yuǎn)端緩存結(jié)構(gòu)以及“Feeley”描述的全局存儲服務(wù)(GMS)具有相類似的構(gòu)想,。GMS 比“N-Chance”算法更具有通用性,,但它沒有提供一致性機(jī)制并且依靠一種集中式的算法來決定塊的置換。Sarkar andHartman 提出了一種基于提示(hint-based)的合作緩存方式,這種方式可以減少客戶機(jī)在通過提示調(diào)用和置換塊是對管理者的依靠性,。實(shí)驗(yàn)表明這種方式可以在 增加少量的負(fù)載的情況下獲得同 xFS 所相似的效果,。 xFS的缺陷包括:它必須維護(hù)在文件級粒度下的緩存一致性,否則可能導(dǎo)致在某些情況下的共享錯誤問題(false-sharing problem),。同時不具備系統(tǒng)的在線動態(tài)擴(kuò)展功能,,這使得xFS在集群文件系統(tǒng)中并沒有真正得到應(yīng)用,,實(shí)際上局限于實(shí)驗(yàn)室的象牙塔中。 COSMOS:自主研發(fā)的實(shí)用型文件系統(tǒng) COSMOS 并行系統(tǒng)是我們國家自己研制的一種可擴(kuò)展單一映象集群的文件系統(tǒng),,它部署在曙光 3000 超級服務(wù)器上,,具有很好的操作性能。COSMOS 的底層基于AIX文件系統(tǒng)JFS,,系統(tǒng)中每個節(jié)點(diǎn)通過高速網(wǎng)絡(luò)互相連接,,COSMOS 構(gòu)建于這些操作系統(tǒng)平臺之上,向用戶提供文件服務(wù),。 COSMOS分片數(shù)據(jù)管理模式 在整個COSMOS 并行系統(tǒng)中,,系統(tǒng)是由核心相關(guān)層(kernel)和用戶層兩部分組成。核心層是在虛擬文件系統(tǒng)一級中實(shí)現(xiàn)的,,它接收來自邏輯文件系統(tǒng)的 I/O 請求,,并以一定的格式轉(zhuǎn)發(fā)給用戶層。而 COSMOS 的用戶層是由 3 類用戶進(jìn)程構(gòu)成,,被分別稱為客戶(client),、元數(shù)據(jù)管理器(manager)和存儲服務(wù)器(storage),它們協(xié)調(diào)工作,,共同完成核心層轉(zhuǎn)發(fā)過 來的I/O請求,。 其中storage實(shí)現(xiàn)具體的數(shù)據(jù)存儲,
client完成數(shù)據(jù)及元數(shù)據(jù)的緩存,,而manager負(fù)責(zé)緩存一致性的維護(hù)及元數(shù)據(jù)的存儲管理,。需要存取 COSMOS 文件系統(tǒng)的節(jié)點(diǎn)要配置
client,本地磁盤上存有 COSMOS 子文件數(shù)據(jù)的節(jié)點(diǎn)要配置 storage,,對于 manager,,通常是平均每數(shù)個節(jié)點(diǎn)才配置一個。 相比較 xFS,,COSMOS 的低層是基于 JFS 來實(shí)現(xiàn)的,,沒有實(shí)現(xiàn)日志管理功能,,因此元數(shù)據(jù)的內(nèi)容和組織是不同的。在
COSMOS 中,,沒有必要記錄在一個節(jié)點(diǎn)中記錄每個數(shù)據(jù)塊的磁盤位置信息,,而是“塊組
ID,起始節(jié)點(diǎn)”對信息被記錄在節(jié)點(diǎn)中,。起始節(jié)點(diǎn)標(biāo)志了起始塊存儲在哪個機(jī)器上,。因?yàn)椴煌木彺嬉恢滦詤f(xié)議,緩存相關(guān)的元數(shù)據(jù)的內(nèi)容和組織也是不相同的,。
為了減少網(wǎng)絡(luò)的負(fù)載,,COSMOS 直接將元數(shù)據(jù)和目錄文件存儲在管理服務(wù)器上,這是與 xFS 不同的另一個方面,,在 xFS
中,,目錄文件和元數(shù)據(jù)都存儲在存儲服務(wù)器上,這是由 xFS 采用的日志結(jié)構(gòu)所決定的,。 GPFS:商業(yè)并行文件系統(tǒng)代表 GPFS文件管理模式 在 GPFS 中,,通過它的共享磁盤結(jié)構(gòu)來實(shí)現(xiàn)它的強(qiáng)大的擴(kuò)展性,一個 GPFS 系統(tǒng)由許多集群節(jié)點(diǎn)組成,,GPFS 文件系統(tǒng)和應(yīng)用程序在上面運(yùn)行,。這些節(jié)點(diǎn)通過光纖交換機(jī)連接磁盤和子磁盤。所有的節(jié)點(diǎn)對所有的磁盤有相同的訪問權(quán),。文件被分割存儲在文件系統(tǒng)中所有的磁盤 上,。用來連接文件系統(tǒng)和磁盤的光纖通道是由存儲區(qū)域網(wǎng)(SAN)所組成,例如光纖通道或者 iSCSI。還有個別的磁盤依附于一些 I/O 節(jié)點(diǎn),,它們通過一個運(yùn)行在通用的網(wǎng)絡(luò)上的軟件層來實(shí)現(xiàn)存取,,例如 IBM 的運(yùn)行于 SP switch 上的虛擬共享磁盤。 GPFS 依靠一個組服務(wù)層,,通過監(jiān)測節(jié)點(diǎn)和通訊連接出錯的早期征兆,,來監(jiān)測節(jié)點(diǎn)錯誤,并且提供了一個組成員協(xié)議,。當(dāng)一個節(jié)點(diǎn)出現(xiàn)錯誤時,,這個服務(wù)層通知其余的節(jié)點(diǎn) 組成員變化了,通過早期的行為來觸發(fā)恢復(fù)程序,。導(dǎo)致通訊失敗的原因,,如網(wǎng)絡(luò)適配器損壞、線纜松動導(dǎo)致孤立節(jié)點(diǎn),、光纖交換機(jī)可以產(chǎn)生了一個不可識別的網(wǎng)絡(luò)分 區(qū)等,。 因?yàn)?GPFS 把數(shù)據(jù)和元數(shù)據(jù)條塊化存儲在文件系統(tǒng)中的所有磁盤上,所以損失單個磁盤也 會不同程度的影響文件,。因此,,典型的 GPFS 用雙重附帶的 RAID 控制器。大型的 GPFS 文件系統(tǒng)分布在多個 RAID 上,,這種情況下,,文件系統(tǒng)塊大小和 RAID 的匹配就非常重要,這樣可以防止寫數(shù)據(jù)時發(fā)生奇偶校驗(yàn)的錯誤,。 作為 RAID 的替代或補(bǔ)充,,GPFS 支持替代機(jī)制,它為每個數(shù)據(jù)和元數(shù)據(jù)塊都分配空間,,將兩份拷貝存在兩個不同的磁盤上,。當(dāng)一個磁盤不可靠時,GPFS會追蹤上面文件塊的更新,,以便磁盤恢復(fù) 時恢復(fù)數(shù)據(jù),。如果磁盤完全無效了,它會用備份來代替所有可能影響到其他磁盤的塊,。數(shù)據(jù)和元數(shù)據(jù)可以單獨(dú)的運(yùn)行這種恢復(fù)機(jī)制,。事實(shí)上當(dāng)一個磁盤部分磁道不可 讀時,元數(shù)據(jù)的恢復(fù)保證了只需要恢復(fù)很少的幾個數(shù)據(jù)塊,,而不需要徹底的去恢復(fù)很多文件,。 PVFS:虛擬并行文件系統(tǒng) PVFS 具有很多優(yōu)點(diǎn),,它可以提供一個全局命名空間,可以將數(shù)據(jù)分配到多個磁盤上,,并且允許使用不同的用戶界面,,還可以包含其它的 I/O 接口來支持大型文件。該并行文件系統(tǒng)最早是Clemson 大學(xué)的并行虛擬文件系統(tǒng)(PVFS)項(xiàng)目,,由于該并行文件系統(tǒng)可開放源代碼進(jìn)行二次開發(fā),,因此在高性能計(jì)算系統(tǒng)的并行文件系統(tǒng)中占有獨(dú)特的地位。 為高速訪問群集中的文件系統(tǒng),,PVFS 將文件數(shù)據(jù)進(jìn)行條塊化劃分,,分散存儲到某些群集節(jié)點(diǎn)(稱作 I/O 節(jié)點(diǎn))的多個磁盤上。條塊化數(shù)據(jù)的方法可在群集上提供相當(dāng)大的存儲容量,,具體容量取決于群集中節(jié)點(diǎn)的數(shù)量,。PVFS 所帶來的存儲容量可以為用戶提供整個集群內(nèi)的大型全局操作空間。 與很多網(wǎng)絡(luò)文件系統(tǒng)或并行文件系統(tǒng)一樣,,PVFS 是利用客戶端-服務(wù)器架構(gòu)實(shí)現(xiàn)的,。它利用一組協(xié)作的用戶空間進(jìn)程(daemon),提供一個群集范圍內(nèi)的一致的命名空間,,并將數(shù)據(jù)條塊化,,分配到多個群集節(jié)點(diǎn)中。 PVFS 客戶和服務(wù)器之間的消息傳遞通過 TCP/IP 來完成,,提供可靠的通訊環(huán)境,。所有的 PVFS 文件系統(tǒng)數(shù)據(jù)都保存在 I/O 節(jié)點(diǎn)的本地文件系統(tǒng)中,本地的文件系統(tǒng)可以是一個硬盤驅(qū)動器上的一個分區(qū),,可以是整個磁盤驅(qū)動器,,也可以利用本地所支持的 Linux 文件系統(tǒng)(例如 ext2,ext3 和 ReiserFS)所提供的多個磁盤驅(qū)動器的邏輯卷,。 PVFS 使用管理節(jié)點(diǎn),,I/O
節(jié)點(diǎn)和計(jì)算節(jié)點(diǎn)三種類型的節(jié)點(diǎn)。一個群集節(jié)點(diǎn)可以提供其中的一種功能,,也可以同時提供其中的兩種功能或三種功能,。但是 PVFS
還是存在不少問題,比方說它的集中的元數(shù)據(jù)管理可能成為整個系統(tǒng)的瓶頸,,可擴(kuò)展性受到一定限制,。還有它的系統(tǒng)中的數(shù)據(jù)沒有采取相應(yīng)的容錯機(jī)制,系統(tǒng)的可用
性有待提高,。由于是采用的靜態(tài)配置,,因此不具備動態(tài)擴(kuò)展性,。 Lustre:前景廣闊的分布式并行文件系統(tǒng) Lustre分布式并行文件系統(tǒng) Lustre 采用分布式的鎖管理機(jī)制來實(shí)現(xiàn)并發(fā)控制,元數(shù)據(jù)和文件數(shù)據(jù)的通訊鏈路分開管理,。與 PVFS 相比,,Lustre 雖然在性能,可用行和擴(kuò)展性上略勝一躊,,但它需要特殊設(shè)備的支持,,而且分布式的元數(shù)據(jù)服務(wù)器管理還沒有實(shí)現(xiàn)。下一個版本的 Lustre 系統(tǒng)將會加入分布式元數(shù)據(jù)管理,,使得其性能得到進(jìn)一步的提升,。 我們期待并行文件系統(tǒng)的發(fā)展,作為網(wǎng)絡(luò)集群系統(tǒng)的重要組成部分,,并行文件系統(tǒng)的發(fā)展將會向著高可用性,、可擴(kuò)展性和高可靠性方向發(fā)展,像分布式的元數(shù)據(jù)管理這些技術(shù)將會不斷的應(yīng)用和改進(jìn)到分布式并行文件系統(tǒng)中,,我們期待著這個領(lǐng)域的繼續(xù)突破,。 |
|