存储调研:BeeGFS并行文件系统体系结构
ThinkParQ成立于2013年底,由BeeGFS背后的一些關(guān)鍵人物組成,為BeeGFS客戶提供專業(yè)的支持,服務(wù)和咨詢。BeeGFS原名為FhGFS,是由Fraunhofer Institute為工業(yè)數(shù)學(xué)計(jì)算而設(shè)計(jì)開發(fā),由于在歐洲和美國(guó)的中小型HPC系統(tǒng)性能表現(xiàn)良好,在2014年改名注冊(cè)為BeeGFS并受到科研和商業(yè)的廣泛應(yīng)用。
? ? ? BeeGFS既是一個(gè)網(wǎng)絡(luò)文件系統(tǒng)也是一個(gè)并行文件系統(tǒng)。客戶端通過網(wǎng)絡(luò)與存儲(chǔ)服務(wù)器進(jìn)行通信(具有TCP/IP或任何具有RDMA功能的互連,如InfiniBand,RoCE或Omni-Path,支持native verbs 接口)。通過BeeGFS添加更多的服務(wù)器,其容量和性能被聚合在單個(gè)命名空間中。
? ? ? BeeGFS是遵循GPL的“免費(fèi)開源”產(chǎn)品,文件系統(tǒng)沒有許可證費(fèi)用。無(wú)論誰(shuí)想要自己使用,都可以從www.beegfs.com下載并安裝使用。由ThinkParQ提供專業(yè)支持,系統(tǒng)集成商可以為客戶構(gòu)建使用BeeGFS的解決方案。
1.BeeGFS操作系統(tǒng)兼容性
? ? BeeGFS具備良好的兼容性,支持包括x86,x86_64,ARM和OpenPower等硬件平臺(tái)和RHEL、Scientific Linux、CentOS、SuSE Linux Enterprise Server、SuSE Linux Enterprise Desktop、OpenSuSE、Debian和Ubuntu在內(nèi)的Linux操作系統(tǒng)版本。
2.BeeGFS系統(tǒng)架構(gòu)
? ? ? BeeGFS實(shí)現(xiàn)了ObjectData和MetaData的分離。ObjectData是用戶希望存儲(chǔ)的數(shù)據(jù),而MetaData是包括訪問權(quán)限、文件大小和位置的“關(guān)于數(shù)據(jù)的數(shù)據(jù)”,MetaData中最重要的是如何從多個(gè)文件服務(wù)器中找到具體對(duì)應(yīng)的文件,這樣才能使客戶端獲取特定文件或目錄的MetaData后,可以直接與ObjectData服務(wù)器對(duì)話以檢索信息。
? ? ? BeeGFS可以面向需要大型或快速存儲(chǔ)的每個(gè)人服務(wù),如傳統(tǒng)領(lǐng)域是高性能、高吞吐量計(jì)算和大型研究數(shù)據(jù)。Object Storage Servers和MetaData Servers的數(shù)量可以彈性伸縮。因此,可以通過擴(kuò)展到適當(dāng)數(shù)量的服務(wù)器來(lái)滿足不同性能要求。
? ? ?BeeGFS是一個(gè)基于Linux的文件系統(tǒng),BeeGFS所有的部分(如客戶端,服務(wù)器)都在Linux操作系統(tǒng)下運(yùn)行,到目前為止還不支持其他平臺(tái)。搭建一套BeeGFS至少需要管理服務(wù)器(MS)、對(duì)象存儲(chǔ)服務(wù)器(OSS)、元數(shù)據(jù)服務(wù)器(MDS)和文件系統(tǒng)Client四個(gè)主要組件和有兩個(gè)守護(hù)進(jìn)程。
-  
Helper-daemon守護(hù)進(jìn)程,文件系統(tǒng)客戶端需要一個(gè)“helper-daemon”才能在客戶端上運(yùn)行。
 -  
Admon守護(hù)進(jìn)程在存儲(chǔ)集群中運(yùn)行,并讓系統(tǒng)管理員更好地了解發(fā)生了什么,但它不是必需的組件,BeeGFS在沒有它的情況下也是完全可運(yùn)行操作的。
 
? ? ? 在設(shè)計(jì)上,BeeGFS旨在與符合POSIX標(biāo)準(zhǔn)的本地文件系統(tǒng)(例如ext4,xfs或zfs)一起用于數(shù)據(jù)存儲(chǔ)。 這樣系統(tǒng)管理員可以選擇他們喜歡和熟練的本地文件系統(tǒng),減少其他系統(tǒng)或工具的學(xué)習(xí)成本。
Management Server(MS):
? ? ? ?系統(tǒng)中必須要有一個(gè)MS, BeeGFS安裝的所有配置文件必須指向同一個(gè)MS。MS維護(hù)所有文件系統(tǒng)組件的列表,包括Client,MetaData Servers,MetaData Targets,Storage Servers和Storage Targets。此外,MS具有正常、低和關(guān)鍵三個(gè)標(biāo)簽選項(xiàng)來(lái)標(biāo)記Storage Targets和MetaData Targets。當(dāng)創(chuàng)建新文件時(shí),這些標(biāo)簽會(huì)影響目標(biāo)選擇的方式,標(biāo)簽是根據(jù)目標(biāo)可用空間分配的。運(yùn)行在MetaData Server上目標(biāo)選擇器將優(yōu)選標(biāo)記為正常的目標(biāo)。
MetaData Server(MDS):
? ? ? ?MDS包含系統(tǒng)中Meta Data的信息。MetaData服務(wù)器無(wú)限制可擴(kuò)展。每個(gè)MDS都有一個(gè)MetaData Target(MDT,存儲(chǔ)MDS的Meta Data)。MDT上文件系統(tǒng)的推薦選擇是ext4,因?yàn)樗鼘?duì)小文件和小文件操作提供很好性能。MDT通常由SSD組成并推薦采用RAID1或RAID10進(jìn)行RAID保護(hù),選擇RAID5/6對(duì)元數(shù)據(jù)隨機(jī)小IO訪問模式將導(dǎo)致MetaData性能嚴(yán)重下降。
? ? ? BeeGFS全局文件系統(tǒng)中的每個(gè)目錄都附加到處理其內(nèi)容的一個(gè)MDS。如果目錄A的MetaData由MDS#1處理,則位于A中的文件的MetaData存儲(chǔ)在存儲(chǔ)#1上。由于將目錄分配給MDS是隨機(jī)BeeGFS可以有效利用大量的MDS。只要目錄數(shù)量明顯大于MDS的數(shù)量,則每個(gè)MDS上的分配的目錄數(shù)量和大致相等。
? ? ? 有一個(gè)例外,根級(jí)別目錄始終在MDS#1上,這樣就定義了一個(gè)入口點(diǎn)。頂級(jí)目錄具有指向MDS的鏈接,其中包含有關(guān)子目錄的信息。有了這個(gè)信息,客戶端可以走路徑目錄樹,找到負(fù)責(zé)特定目錄的MDS。與機(jī)械驅(qū)磁盤相比,SSD可以降低時(shí)延并提供大量的隨機(jī)IOPS,強(qiáng)烈推薦把SSD使用在MetaDataTarget上。
? ? ? ?對(duì)于不同應(yīng)用場(chǎng)景來(lái)說,線程的數(shù)量的選擇有沒有完美的建議,一方面,如果線程太多將浪費(fèi)系統(tǒng)內(nèi)存和CPU資源,并且可能會(huì)因?yàn)樵S多任務(wù)切換而對(duì)性能產(chǎn)生負(fù)面影響。 另一方面,線程太少限制了系統(tǒng)的性能。
ObjectStorage Server(OSS):
? ? ??OSS是存儲(chǔ)文件內(nèi)容的主要服務(wù)。每個(gè)OSS可能具有一個(gè)或多個(gè)Object Storage Targets(OST),OST可以是本地文件系統(tǒng)(如xfs,ext4或zfs)或LUN。典型的OST推薦6到12個(gè)硬盤并采用RAID6級(jí)別,因此具有36個(gè)驅(qū)動(dòng)器的OSS可能會(huì)組成3個(gè)OST,每個(gè)OST都是帶有12個(gè)磁盤。
? ? ? ?OSS是用戶空間啟動(dòng)的完全多線程的守護(hù)進(jìn)程。它將適用于任何符合POSIX標(biāo)準(zhǔn)的本地文件系統(tǒng),底層文件系統(tǒng)可能根據(jù)工作負(fù)載或個(gè)人喜好和經(jīng)驗(yàn)來(lái)挑選。OSS線程數(shù)量取決于OSS服務(wù)的OST的性能和數(shù)量。與MDS不同,OST上的IO通常是大的順序IO。
? ??
? ? ? BeeGFS的主要功能之一就是條帶,在BeeGFS文件系統(tǒng)中,每個(gè)目錄都有兩個(gè)非常重要的屬性,定義了這些目錄中的文件的處理方式。
-  
numtargets定義文件創(chuàng)建的目標(biāo)數(shù)量。如果選擇4,則每個(gè)文件將獲得4個(gè)OST,分配給該文件的數(shù)據(jù)存儲(chǔ)在這些OST中。
 -  
chunksize指定在客戶端移動(dòng)到下一個(gè)目標(biāo)之前,在該分配的目標(biāo)OST上存儲(chǔ)多少數(shù)據(jù)。
 
? ? ? 文件條帶的目標(biāo)是提高單個(gè)文件的性能以及容量,假設(shè)OST容量大小為30 TB,提供500MB/s性能,那么4個(gè)OST目標(biāo)之間的文件大小可以增長(zhǎng)到120TB,并以2 GB/s進(jìn)行訪問。
文件系統(tǒng)客戶端(Client):
? ? ? BeeGFS客戶端是在Linux中運(yùn)行的一個(gè)內(nèi)核模塊,必須編譯以匹配使用的內(nèi)核。客戶端是GPL提供的開源產(chǎn)品。BeeGFS客戶端服務(wù)提供了一個(gè)正常的掛載點(diǎn),使您的應(yīng)用程序可以直接訪問BeeGFS存儲(chǔ)系統(tǒng),客戶端包含兩個(gè)守護(hù)進(jìn)程服務(wù)。
-  
beegfs-helperd守護(hù)程序?yàn)閎eegfs-client提供了一些輔助功能(DNS和寫日志文件功能等),它是由同一主機(jī)上運(yùn)行的beegfs-client訪問,不需要任何其他配置。
 -  
beegfs-client加載客戶端內(nèi)核模塊,如果需要,它將重新編譯內(nèi)核模塊。重新編譯使用自動(dòng)構(gòu)建過程完成,該過程在內(nèi)核版本更改時(shí)啟動(dòng)。
 
為了展示BeeGFS存儲(chǔ)集群中通常存在哪些服務(wù),前面分析都是基于所有服務(wù)都在不同的主機(jī)上運(yùn)行 。
? ? ? 一般在小型應(yīng)用場(chǎng)景,BeeGFS的相關(guān)服務(wù)(Client和Server組件)的任意組合(如上圖)也可以在同一臺(tái)機(jī)器上一起運(yùn)行。當(dāng)BeeGFS完全使用沒有獨(dú)立的專用存儲(chǔ)服務(wù)器時(shí),我們稱之為“融合設(shè)備”。
3.BeeGFS安裝和設(shè)置
? ? ? 有兩種方式可以安裝BeeGFS,一種是基于GUI(使用圖形化Java界面),另一種是手動(dòng)(使用shell命令)。
? ?圖形化安裝是基于圖形化Java界面連接到BeeGFS Admon(Administration and Monitoring)服務(wù)實(shí)現(xiàn)。一般來(lái)說,無(wú)經(jīng)驗(yàn)的用戶建議基于GUI的安裝,但對(duì)老司機(jī)來(lái)說,手動(dòng)安裝是最佳選擇,因?yàn)镚UI不能提供手動(dòng)安裝的完全靈活性。
4.BeeGFS調(diào)優(yōu)和配置
? ? ? BeeGFS的調(diào)優(yōu)包含了存儲(chǔ)服務(wù)器格式化調(diào)優(yōu)、元數(shù)據(jù)服務(wù)器調(diào)優(yōu)、客戶端調(diào)優(yōu)、條帶化、網(wǎng)絡(luò)(Infiniband和以太網(wǎng))調(diào)優(yōu)和高速緩存調(diào)優(yōu),具體請(qǐng)參考BeeGFS配置指導(dǎo),這里不再贅述。
? ? beegfs-ctl工具從默認(rèn)位置讀取BeeGFS的配置文件(beegfs-client.conf),雖然該工具也可以在沒有客戶端配置文件的情況下使用,但在相應(yīng)機(jī)器上存在這樣的基本客戶端配置時(shí),通常更方便。
5.BeeOND Burst Buffer
? ? ?BeeOND(BeeGFS On Demand)用來(lái)創(chuàng)建一個(gè)或多個(gè)BeeGFS實(shí)例來(lái)滿足云環(huán)境中臨時(shí)工作文件系統(tǒng)需求。另外,BeeOND在計(jì)算節(jié)點(diǎn)內(nèi)部聚本地SSD或硬盤的性能和容量提供了額外的性能和Burst Buffer能力。
? ? ? 如今,大多數(shù)HPC集群系統(tǒng)使用專用全局并行文件系統(tǒng)提供高吞吐量,但是計(jì)算節(jié)點(diǎn)通常配備(或可以輕松配備)本地硬盤或固態(tài)硬盤,BeeOND就是很好利用特定計(jì)算任務(wù)的計(jì)算節(jié)點(diǎn)磁盤資源來(lái)提供更高的系統(tǒng)性能。
? ? ? ?Beeond可以獨(dú)立于全局共享并行文件系統(tǒng),這就意味著無(wú)論并行文件系統(tǒng)是BeeGFS還是其他技術(shù)都可以使用Beeond。Beeond使用時(shí)需要?jiǎng)?chuàng)建一個(gè)新的單獨(dú)文件系統(tǒng)掛載點(diǎn)。任何如cp或rync標(biāo)準(zhǔn)工具都可將數(shù)據(jù)寫入和遷出BeeOND,但Beeond軟件包本身包含一個(gè)并行copy工具,用于在BeeOND實(shí)例和另一個(gè)文件系統(tǒng)之間傳輸數(shù)據(jù)。
? ? ? 由于BeeOND啟動(dòng)非常簡(jiǎn)單,所以可以輕松將BeeOND與Torque或Slurm工作負(fù)載管理器集成,可以通過一個(gè)命令啟動(dòng)和停止新的BeeGFS實(shí)例,所以當(dāng)計(jì)算作業(yè)啟動(dòng)時(shí),您可以輕松地添加腳本命令,以便在作業(yè)完成時(shí)停止。另外,在計(jì)算節(jié)點(diǎn)使用BeeOND帶來(lái)了以下幾方面的優(yōu)勢(shì):
-  
?BeeOND很容易消除全局并行文件系統(tǒng)的IO重載和令人難以接受的浪涌性IO。無(wú)論如何,在作業(yè)運(yùn)行時(shí)創(chuàng)建的臨時(shí)數(shù)據(jù)不必一定需要移動(dòng)到全局持久并行文件系統(tǒng)中。即使在作業(yè)結(jié)束后,應(yīng)該持久化保存的數(shù)據(jù)也可以更好地先存儲(chǔ)到Beeond實(shí)例中,然后以大塊的順序IO復(fù)制到全局持久并行文件系統(tǒng)中,獲得最大的帶寬。
 -  
在BeeOND上運(yùn)行的應(yīng)用程序不會(huì)干擾全局持久并行文件系統(tǒng)中的其他用戶,反過來(lái),也可以在不受其他用戶影響的情況下獲得BeeOND提供的性能。
 -  
采用運(yùn)行在SSD之上的BeeOND可以極大地加速高性能計(jì)算任務(wù),結(jié)合多個(gè)計(jì)算節(jié)點(diǎn)的SSD不僅可以輕松實(shí)現(xiàn)高帶寬,還可以提供高IOPS性能,以便處理大文件小IO型的IOPS業(yè)務(wù)。
 -  
BeeOND Burst Buffer軟件直接部署在計(jì)算節(jié)點(diǎn)服務(wù)器上,不會(huì)增加任何硬件成本。
 
? ? ? BeeOND在BeeGFS中呈現(xiàn)為一個(gè)標(biāo)準(zhǔn)的軟件包,可以通過使用發(fā)行版的包管理器進(jìn)行安裝。BeeOND也是依賴BeeGFS服務(wù)器和客戶端組件,這種依賴體現(xiàn)在相應(yīng)的包依賴關(guān)系,并將自動(dòng)安裝。BeeOND基于計(jì)算節(jié)點(diǎn)在軟件層面實(shí)現(xiàn)了Burst Buffer功能,可以廣泛兼容不同并行文件系統(tǒng)。
? ? ? BeeOND 聚合計(jì)算節(jié)點(diǎn)內(nèi)部的性能和 SSD 容量,并在計(jì)算任務(wù)計(jì)算期間以 Burst Buffer的方式持續(xù)增加性能,這在云環(huán)境或者 scratch數(shù)據(jù)場(chǎng)景是非常有用的。接下來(lái)的時(shí)間,我們一起談?wù)?BeeGFS 的其他特性,如配額、鏡像、網(wǎng)絡(luò)等特性。
6.BeeGFS 配額特性
? ? ? BeeGFS 配額支持基于用戶和組的配額,通過兩個(gè)步驟實(shí)現(xiàn)。第一步首先查詢用戶和組在 BeeGFS 上使用的數(shù)據(jù)量和塊文件數(shù),第二步實(shí)施配額,允許定義用戶和組的配額限制。?目前只支持基與 ZFS使用的空間配額,而不支持 ZFS 用戶和組使用文件數(shù)配額。
? ? ? BeeGFS 配額系統(tǒng)需要使用存儲(chǔ)服務(wù)器 Target 目標(biāo)上的底層本地文件系統(tǒng)(例如 XFS 和 EXT4)的配額信息。因此,存儲(chǔ) Target目標(biāo)的底層文件系統(tǒng)也需要支持配額跟蹤。在元數(shù)據(jù) Target 目標(biāo)上不需要配額支持。當(dāng)啟用配額執(zhí)行時(shí), BeeGFS 管理守護(hù)程序會(huì)定期從 BeeGFS 存儲(chǔ) Target 目標(biāo)中收集配額信息,檢查是否超出的配額限制.
? ? ? BeeGFS 的內(nèi)置配額功能跟蹤和執(zhí)行基于用戶和組配額。如果要跟蹤使用的空間或基于子目錄樹的文件數(shù)量,您可能需要查看Robin hood 策略引擎, Robin hood 可以定期對(duì)文件系統(tǒng)進(jìn)行并行掃描,并將發(fā)現(xiàn)的文件和目錄信息存儲(chǔ)在 SQL 數(shù)據(jù)庫(kù)中。一方面采用數(shù)據(jù)庫(kù)的各種查詢可以快速檢索結(jié)果。另一方面可以在 Robin hood 中定義某些事件的自動(dòng)操作。
? ? ? 由于 BeeGFS 在元數(shù)據(jù)服務(wù)器(通常為閃存存儲(chǔ))上保留所有掃描元數(shù)據(jù),為了確保 Robin hood 的 SQL 數(shù)據(jù)庫(kù)不會(huì)降低掃描速度,建議將 Robin hood 數(shù)據(jù)庫(kù)存儲(chǔ)在閃存上。
7.BeeGFS的 Buddy 鏡像
? ? ? 從 2012.10 發(fā)行版開始, BeeGFS 提供對(duì)元數(shù)據(jù)和文件鏡像的支持。鏡像功能集成到 BeeGFS 服務(wù)中,因此該功能不需要單獨(dú)的服務(wù)或第三方工具支持。元數(shù)據(jù)鏡像和文件內(nèi)容鏡像可以彼此獨(dú)立使用。
? ? ? ?從 BeeGFS v6.0 開始,元數(shù)據(jù)鏡像也以高可用性功能擴(kuò)展,高可用性和據(jù)鏡像基于所謂的 Buddy 組實(shí)現(xiàn)。一般來(lái)說, Buddy 組是一對(duì)內(nèi)部管理數(shù)據(jù)副本的兩個(gè) Target 目標(biāo)。
? ? ???存儲(chǔ)服務(wù)器 Buddy Mirroring 也可以與奇數(shù)個(gè)存儲(chǔ)服務(wù)器一起使用(偶數(shù)當(dāng)時(shí)是可以的),這是因?yàn)?BeeGFS 的 Buddy 組由獨(dú)立的存儲(chǔ) Target 目標(biāo)組成,獨(dú)立于服務(wù)器的,如以下示例圖所示, 采用 3 個(gè)服務(wù)器和 2 個(gè) Target 存儲(chǔ)目標(biāo),存儲(chǔ) Buddy 組由不同服務(wù)器提供的 Target 目標(biāo)組成,甚至可以由連接到同一服務(wù)器的 2 個(gè) Target目標(biāo)組成。
? ? ? 需要注意的是元數(shù)據(jù)服務(wù)器要求是偶數(shù),在正常操作中,Buddy 組中的一個(gè) Target 存儲(chǔ)目標(biāo)(或元數(shù)據(jù)服務(wù)器)被認(rèn)為是primary 的,而另一個(gè)是 secondary 的。更新操作將始終發(fā)送到primary 服務(wù)器負(fù)責(zé)鏡像過程。?文件和元數(shù)據(jù)采用同步鏡像方式完成,數(shù)據(jù)在兩個(gè) Target 存儲(chǔ)目前完成后才返回客戶端。
? ? ? 如果 Buddy 組的 Primary 存儲(chǔ)目標(biāo)或 Primary 元數(shù)據(jù)服務(wù)器無(wú)法訪問,它將被標(biāo)記為 Offline,并切換到 Secondary 上。Secondary 將變成新的 Primary, 故障透明切換,改變的數(shù)據(jù)將同步到所有節(jié)點(diǎn)以證系統(tǒng)的一致性。
? ? ??默認(rèn)情況下,新文件系統(tǒng)實(shí)例的鏡像功能是被禁用。可以使用命令行工具啟用鏡像功能。在啟用元數(shù)據(jù)或存儲(chǔ)鏡像之前,首先需要定義 Buddy 組,因?yàn)?Buddy 組是鏡像的基礎(chǔ)。
8.BeeGFS 支持 API 概述
? ? ? 除了 POSIX 接口外, BeeGFS 還提供了其他 API 來(lái)更好地控制數(shù)據(jù)存放位置,查詢附加信息或通過其他接口訪問數(shù)據(jù)。
-  
條帶化 API 允許應(yīng)用程序開發(fā)人員創(chuàng)建具有單獨(dú)條帶模式的文件,這些文件將針對(duì)特定文件的訪問模式進(jìn)行調(diào)整或調(diào)優(yōu)。
 -  
緩存 API 提供了在 BeeGFS 緩存文件系統(tǒng)(通常為 Beeond 實(shí)例)和全局BeeGFS 之間復(fù)制數(shù)據(jù)的功能。從緩存文件系統(tǒng)預(yù)取和刷新數(shù)據(jù)支持同步和異步方式。
 -  
Hadoop BeeGFS 連接器 API 為 BeeGFS 提供了 Hadoop 文件系統(tǒng)(HDFS)的支持功能,使得 Hadoop 應(yīng)用程序開發(fā)人員可以使用通用 Hadoop API來(lái)訪問 BeeGFS
 
9.BeeGFS 系統(tǒng)配置要求
? ? ?目前,本地 BeeGFS Client 和服務(wù)器組件適用于 x86,x86_64 和 PowerPC/ Cell 架構(gòu)上的 Linux 操作系統(tǒng)。一般來(lái)說, 所有 BeeGFS 組件都可以在單個(gè)機(jī)器上運(yùn)行,甚至只有單個(gè) CPU 內(nèi)核,單個(gè)硬盤和 RAM 小于 1GB 規(guī)格。但實(shí)際運(yùn)用中這可能不是你想做的,所以下面是一些關(guān)于硬件配置的建議。
存儲(chǔ)服務(wù)器配置
-  
存儲(chǔ)服務(wù)器應(yīng)具有至少?4GB 的 RAM?以具有足夠的可用于緩存和客戶端連接緩沖區(qū)的內(nèi)存。根據(jù)磁盤的實(shí)際類型和文件系統(tǒng)客戶端的數(shù)量,每個(gè)附加磁盤的?1GB RAM?通常是一個(gè)不錯(cuò)的選擇。
 -  
如果您使用傳統(tǒng)的 SATA 硬盤(即不是固態(tài)硬盤或快速 SAS 驅(qū)動(dòng)器),則通常需要使用每個(gè)服務(wù)器至少有 8 個(gè)硬盤的 RAID。
 -  
即使存儲(chǔ)服務(wù)器任務(wù)通常不是非常 CPU 密集型, Linux 緩沖區(qū)高速緩存可以通過快速 RAID 陣列產(chǎn)生高 CPU 負(fù)載,因此在這里使用快速 CPU可以實(shí)現(xiàn)高吞吐量,特別是在高速網(wǎng)絡(luò)上通常是件好事。
 -  
注意磁盤數(shù)量(整個(gè)系統(tǒng)和每個(gè)服務(wù)器),網(wǎng)絡(luò)互連帶寬和文件系統(tǒng)客戶端數(shù)量之間的平衡。(例如,根據(jù)您的用例,如果服務(wù)器僅配備 10Gb互連,則每個(gè)服務(wù)器使用超過 12 個(gè)硬盤驅(qū)動(dòng)器可能無(wú)意義)。
 
元數(shù)據(jù)服務(wù)器配置
-  
如果您正在主要使用大文件,那么元數(shù)據(jù)服務(wù)器的工作不會(huì)太多,您可能只想在與存儲(chǔ)服務(wù)器和同一硬盤分區(qū)上運(yùn)行的相同的計(jì)算機(jī)上運(yùn)行它。
 -  
在具有不同類型工作負(fù)載的群集上,您可能希望在存儲(chǔ)服務(wù)器上運(yùn)行元數(shù)據(jù)服務(wù)守護(hù)程序(擁有大量元數(shù)據(jù)服務(wù)器,而不需要為專用計(jì)算機(jī)花費(fèi)額外的資金),但是應(yīng)該使用專用磁盤用于元數(shù)據(jù)存放。?由于元數(shù)據(jù)服務(wù)器正在進(jìn)行大量的小型磁盤隨機(jī)訪問(例如,它們正在讀取和寫入大量小文件),因此如果兩者位于同一磁盤上,則可能會(huì)對(duì)存儲(chǔ)和元數(shù)據(jù)訪問產(chǎn)生顯著的性能影響,因此您可能希望在單獨(dú)的存儲(chǔ)上存放元數(shù)據(jù)。
 -  
如果您有大量客戶端處理許多(小)文件,則元數(shù)據(jù)服務(wù)器上的 CPU 使用率可能會(huì)很高。因此,確保使用快速的 CPU 和快速磁盤(通常為 SSD)來(lái)保證元數(shù)據(jù)的低訪問延遲。
 -  
與總存儲(chǔ)容量相比,元數(shù)據(jù)所需的空間量取決于實(shí)際使用情況(存儲(chǔ)的文件總數(shù))。對(duì)于臨時(shí)文件系統(tǒng),元數(shù)據(jù)所需的空間通常約為總存儲(chǔ)容量的 0.3%至 0.5%左右。
 
客戶端服務(wù)器配置
-  
客戶端不需要特定的 Linux 發(fā)行版,即使是最近的內(nèi)核也可以自由使用。由于 BeeGFS 的客戶端組件設(shè)計(jì)非常輕便,因此沒有特殊的 RAM內(nèi)存或 CPU 要求。
 
管理守護(hù)進(jìn)程配置
-  
管理守護(hù)程序僅使用最少的 CPU 周期和內(nèi)存。訪問管理守護(hù)程序與文件系統(tǒng)性能無(wú)關(guān)。只需在任何存儲(chǔ)/元數(shù)據(jù)服務(wù)器或群集主服務(wù)器上運(yùn)行此守護(hù)程序。
 -  
Admon 守護(hù)程序經(jīng)常存儲(chǔ)和查詢其內(nèi)部數(shù)據(jù)庫(kù)中的大量值,因此它將運(yùn)行一些存儲(chǔ)事務(wù)并使用適量的 RAM 和 CPU 周期。在任何其他存儲(chǔ)/元數(shù)據(jù)服務(wù)器計(jì)算機(jī)上運(yùn)行它通常很好,但是您的集群主機(jī)可能是此守護(hù)程序更好的位置,以確保對(duì)文件系統(tǒng)性能沒有影響。
 
9.BeeGFS 支持的網(wǎng)絡(luò)類型
? ? ? BeeGFS 支持?TCP/IP 網(wǎng)絡(luò)、 InfiniBand 協(xié)議(基于 OFED verbs 框架)、 Omni-Path 和 RDMA over Converged Ethernet(RoCE)協(xié)議。存儲(chǔ)服務(wù)器和客戶端 Client 可以同時(shí)支持混合網(wǎng)絡(luò)請(qǐng)求(例如,存儲(chǔ)服務(wù)器配備 Infiniband 和以太網(wǎng)互連,一些客戶端 Client 通過本地 InfiniBand 連接,而其他的 Client 通過 TCP/IP 的 Ethernet進(jìn)行連接)。
? ? ?如 果 主 連 接 路 徑 發(fā) 生 故 障 , 具 有 多 個(gè) 連 接 路 徑 ( 如InfiniBand 和以太網(wǎng)或多個(gè)以太網(wǎng)端口)的客戶端也可以接管實(shí)現(xiàn)網(wǎng)絡(luò)故障轉(zhuǎn)移。
10. 通過 NAS 導(dǎo)出 BeeGFS
? ? 在 BeeGFS 中可以導(dǎo)出成 SMB 或 CIFS 標(biāo)準(zhǔn) NAS 文件系統(tǒng)。將 BeeGFS 客戶端主機(jī)配置為 Samba 服務(wù)器。通過在 BeeGFS 配置權(quán)限和掛載點(diǎn)。重新啟動(dòng) Samba 服務(wù)器服務(wù),就可以從 windows Samba 客戶端訪問 BeeGFS 文件系統(tǒng)。通過 NAS 導(dǎo)出 BeeGFS
? ? ? 在 BeeGFS 中可以導(dǎo)出成 NFS 標(biāo)準(zhǔn) NAS 文件系統(tǒng)。從 2014.01發(fā)行版開始, BeeGFS 支持 Linux 內(nèi)核 NFS 服務(wù)器導(dǎo)出。?通過 NFS 導(dǎo)出 BeeGFS ,通常它比 Samba(SMB)具有更好的性能。為了以 NFS 方式提供文件,請(qǐng)將 BeeGFS 客戶端主機(jī)配置為 NFS 服務(wù)器,并通過 NFS重新導(dǎo)出 BeeGFS 客戶端掛載點(diǎn)。
11.BeeGFS 生態(tài)和合作
? ? ? 由于 BeeGFS 是免費(fèi)的,因此其全球部署情況沒有得到精準(zhǔn)的統(tǒng)計(jì)。 然而,全球約有 100 多個(gè)客戶使用的 BeeGFS 是得到Fraunhofer 的支持的(BeeGFS 由 Fraunhofer 高性能計(jì)算中心開發(fā)和維護(hù),由 ThinkParQ 提供交付和服務(wù)支持)。其中包括大學(xué)和研究機(jī)構(gòu)等學(xué)術(shù)用戶,以及金融或石油和天然氣行業(yè)的營(yíng)利性公司,目前BeeGFS 已經(jīng)得到全球合作伙伴的加盟和支持(如下所示)。
? ? ?值得注意的是全球 TOP500 排名的超算系統(tǒng)中,有多家就是采用BeeGFS,包括德國(guó)法蘭克福歌德大學(xué)的 Loewe-CSC 集群,奧地利維也納大學(xué)的維也納科學(xué)集群(安裝時(shí)排名為#56)(數(shù)據(jù)來(lái)源基維百科),以及挪威奧斯陸大學(xué)的?Abel 集群(安裝時(shí)排名為#96)。從現(xiàn) BeeGFS在全球客戶群體來(lái)看,已經(jīng)快速?gòu)慕逃蒲行袠I(yè)滲透到金融或石油和天然氣等行業(yè)。
? ? ? BeeGFS 的輕量級(jí)架構(gòu)設(shè)計(jì)和對(duì)現(xiàn)在高性能計(jì)算中對(duì)Burst Buffer 技術(shù)需求的精確把握,加上對(duì)開源趨勢(shì)和勢(shì)態(tài)的開懷擁抱將力助 BeeGFS 在商業(yè)上獲得成功。這種種跡象表明, BeeGFS 無(wú)疑將會(huì)是下一個(gè)高性能計(jì)算領(lǐng)域的 Lustre。
總結(jié)
以上是生活随笔為你收集整理的存储调研:BeeGFS并行文件系统体系结构的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: C++继承的使用
 - 下一篇: Comment obtenir des