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