- 相關(guān)推薦
高性能計算機分布式內存文件系統的網(wǎng)絡(luò )性能優(yōu)化方法論文
高性能計算應用對計算節點(diǎn)內存的不均衡需求導致節點(diǎn)之間內存利用率差異較大,為充分利用高性能計算機的內存資源,產(chǎn)生了基于計算節點(diǎn)內存構建分布式文件系統的需求。此時(shí),基于Socket的網(wǎng)絡(luò )通信成為制約系統性能的主要瓶頸。
高性能計算應用對計算節點(diǎn)內存的不均衡需求導致計算節點(diǎn)之間內存利用率差異較大,為充分利用高性能計算機的內存資源,為緩解這一狀況,產(chǎn)生了基于計算節點(diǎn)空閑內存構建分布式內存文件系統的需求。當存儲介質(zhì)從磁盤(pán)變?yōu)閮却,系統服務(wù)端I/O性能大幅提高,基于Socket的網(wǎng)絡(luò )通信成為制約系統性能的主要瓶頸。針對這一問(wèn)題,本文提出一種基于RDMA的數據傳輸機制RBP,通過(guò)在讀、寫(xiě)不同場(chǎng)景下靈活配置和使用RBP,大幅提高了系統的網(wǎng)絡(luò )傳輸性能。
1 相關(guān)工作
1.1 MooseFS
近年來(lái),大數據、云計算、高性能計算蓬勃發(fā)展,分布式文件系統取得長(cháng)足進(jìn)步。其中,GFS(Google File System)提出的以大量不可靠的服務(wù)器為基礎構建高可靠的存儲系統的設計思想[1],對分布式文件系統發(fā)展具有重要意義。GFS并不開(kāi)源,因此選擇設計接近的開(kāi)源系統MooseFS[2],其具備支持POSIX語(yǔ)義、易擴展、部署維護簡(jiǎn)便等特點(diǎn),包括四個(gè)部件:
元數據管理服務(wù)器Master,負責提供維護元數據,提供元數據服務(wù),管理數據存儲服務(wù)器等。
元數據日志服務(wù)器Metalogger,負責備份Master的變化日志文件。
數據存儲服務(wù)器Chunkserver,在Master的調度下,為客戶(hù)端提供數據傳輸和存儲服務(wù)。
客戶(hù)端Client,通過(guò)FUSE[3](File system in Userspace)掛載到MooseFS系統。
1.2 RDMA
RDMA是一種高帶寬、低延遲的網(wǎng)絡(luò )傳輸控制技術(shù),通過(guò)將可靠傳輸協(xié)議固化于網(wǎng)卡,支持繞過(guò)內核的數據零拷貝。當前,大多數高性能計算機的計算節點(diǎn)之間采用支持RDMA的網(wǎng)絡(luò )互連。以TH-1A系統為例,其采用支持RDMA的自主設計的高速互聯(lián)網(wǎng)絡(luò )[4]。通過(guò)Ping Pong方式測試,計算節點(diǎn)之間的最小單邊延遲低至1.57us。通過(guò)流水傳輸方式測試,單向數據傳輸峰值帶寬高達6.34GB/s。
1.3 相關(guān)研究
分布式存儲系統的分布式特性決定了其對通信是敏感的,因而往往要求通信能夠提供更高的帶寬和更低的延遲。鑒于RDMA通信在帶寬和延遲方面的良好特性,研究人員在如何利用RDMA通信機制改進(jìn)分布式存儲系統網(wǎng)絡(luò )性能方面做了很多工作。如N.S. Islam、M. W. Rahman等人為改進(jìn)HDFS(Hadoop Distributed File System的寫(xiě)性能,在HDFS客戶(hù)端增加Java適配器,以便借助UCR(Unified Communication Runtime)提供的功能使用RDMA進(jìn)行通信[5]。Christopher Mitchell、Yifeng Geng等人設計了一個(gè)名為Pilaf的分布式內存鍵值對存儲,根據鍵值對存儲以讀請求為主的特點(diǎn),實(shí)現了一個(gè)基于RDMA的get操作,用來(lái)處理只讀的服務(wù)請求,可以獲得顯著(zhù)的性能收益[6]。顯然,在利用RDMA改進(jìn)分布式存儲系統網(wǎng)絡(luò )性能時(shí),需要考慮分布式系統的特點(diǎn)、部署方式、額外開(kāi)銷(xiāo)等諸多因素。
2 MooseFS基于Socket的性能瓶頸
MooseFS在處理一個(gè)讀/寫(xiě)請求過(guò)程中,有2個(gè)環(huán)節涉及實(shí)際的數據操作:一是Chunkserver對本地磁盤(pán)進(jìn)行I/O操作,二是Client與Chunkserver之間通過(guò)Socket傳輸數據。當MooseFS部署在磁盤(pán)時(shí),Chunkserver中的數據塊以EXT4等本地文件系統的文件形式存儲在磁盤(pán)中;當把MooseFS部署在內存時(shí),則可以借助tmpfs等內存文件系統實(shí)現。
為對比基于磁盤(pán)和內存兩種形式,服務(wù)端I/O性能和系統I/O性能方面的差異,以寫(xiě)為例進(jìn)行測試。Chunkserver使用TH-1A部署的Lustre系統作為本地文件系統。實(shí)驗結果表明,相比基于磁盤(pán)的存儲形式,基于內存存儲可以使Chunkserver的寫(xiě)性能提高數倍,然而對系統整體寫(xiě)性能的提升非常有限。此時(shí)系統的性能受到基于Socket的數據傳輸性能的制約。
3 優(yōu)化方法
3.1 基于RDMA的高速緩沖池RBP
RBP的原理是預先注冊一塊或多塊支持RDMA操作的內存區,按照系統需求將這片區域劃分成不同規格的緩沖塊RBB(RDMA Buffer Block)。再根據不同用途,將同樣規格的RBB組織成不同的緩沖池RBP,并配合一套專(zhuān)用API,以RBB為單位提供高性能的數據傳輸服務(wù)。
(1)RBP的結構設計
RBB由描述區、請求區和數據區三部分組成。描述區負責提供RBB進(jìn)行RDMA通信信息,包括RBB數據區所在注冊?xún)却鎱^的端點(diǎn)信息、數據區偏移、大小等。請求區負責提供傳輸控制消息,包括Socket連接描述符、請求類(lèi)型、請求數據偏移、大小等。數據區負責提供位于注冊?xún)却鎱^的存儲空間。在利用RBB進(jìn)行RDMA通信時(shí),RBB需要在通信兩端成對使用。
RBP,即RDMA緩沖池,RBP的基礎是一個(gè)由RBB作為元素的雙向鏈表,此外還包括RBP所包含的注冊?xún)却鎱^數組,用于進(jìn)行RBB管理的計數器,互斥量,條件變量等。
(2)RBP的使用方式
RBP的使用方式分為顯式和隱式兩種,顯式使用是指使用者在RBP創(chuàng )建好后就分配得到全部的RBB,此后由使用者自行管理,適用于用途明確且管理簡(jiǎn)單的情形;隱式使用是指使用者在需要時(shí)從RBP分配RBB,使用完后再將RBB釋放,由專(zhuān)門(mén)的RBP管理模塊進(jìn)行管理,RBB分配與釋放對使用者是透明的,適于用作臨時(shí)用途的情形。一次基于RBP完整的RDMA通信可以分為三個(gè)階段:
數據準備,本地節點(diǎn)將數據寫(xiě)入到分配的RBB數據區中,并向遠程節點(diǎn)發(fā)送控制消息。
數據接收,本地或遠程節點(diǎn)根據控制信息通過(guò)RDMA操作讀/寫(xiě)RBB數據區中的數據。
資源釋放,本地和遠程節點(diǎn)釋放此前分配的RBB。
3.2 讀優(yōu)化
(1)增加特定的讀RBP
Client的每個(gè)讀請求都會(huì )被分配1個(gè)數據區,于是為Client增加了一個(gè)64MB的Req RBP,其RBB大小等于Chunk大小,設為4MB,用于提供讀請求的數據區,從而繞過(guò)臨時(shí)數據緩沖區,直接利用RDMA通信從Chunkserver讀取數據。但是,Req RBP中RBB較大,限制了其數量,無(wú)法滿(mǎn)足多線(xiàn)程下大量請求對數據區的需求。于是Client增加一個(gè)作為臨時(shí)數據緩沖區的Read RBP,與Req RBP互為補充。為配合Client的RBP,Chunkserver增加一個(gè)作為臨時(shí)數據緩沖區Read RBP。兩端Read RBP的RBB大小均與CB相同,設為64KB。此外,讀優(yōu)化中的RBP都是隱式使用,因此兩端都需要RBP管理模塊。
(2)引入連續讀流水線(xiàn)
RBP對RBB的分配和釋放非常靈活,完全可以利用一個(gè)RBB準備數據,另一個(gè)RBB向Client提供數據,因此,在Chunkserver的讀服務(wù)線(xiàn)程中對采用RMDA進(jìn)行連續讀的情形引入了流水線(xiàn)。
(3)設計多通道策略
為了充分利用Client端Req RBP和Read RBP兩個(gè)RBP的性能,增加了策略控制。當讀請求的接收區大小超過(guò)1MB時(shí),首先從Req RBP分配RBB作為數據區,若分配失敗則繼續采用原有的方式分配內存。由于傳輸非連續小數據時(shí)更適合采用Socket。因此,Chunkserver在提供數據時(shí)決定采用哪種通信方式,當要傳輸的數據小于32KB時(shí),采用Socket通信,其他情況,采用RDMA通信;谝陨喜呗,讀請求的數據傳輸有3條數據通道。如圖1(a)所示,通道①②都通過(guò)RDMA讀取數據,通道①為Client采用Req RBP接收數據,通道②為Client采用Read RBP接收數據;通道③通過(guò)Socket讀取數據。
3.3 寫(xiě)優(yōu)化
(1)增加特定的寫(xiě)RBP
Client已存在一個(gè)用于提高寫(xiě)性能的Write Cache,于是增加一個(gè)顯示使用的Write RBP,將Write RBP與Write Cache進(jìn)行合并。為實(shí)現合并,Write RBP的大小與Write Cache設置保持一致,在初始化Write Cache時(shí),每個(gè)CB都會(huì )綁定一個(gè)從Write RBP分配的RBB。同時(shí),Write RBP初始化后由Write Cache進(jìn)行管理。
為配合Client增加的Write RBP,Chunkserver增加一個(gè)Write RBP作為臨時(shí)數據緩沖區,其RBB大小等于CB大小。Chunkserver的Write RBP與Read RBP均由RBP管理模塊進(jìn)行管理。
(2)設計多通道策略
出于和讀相同的考慮,寫(xiě)同樣支持RDMA和Socket兩種通信方式。不同的是,由Client端在將CB寫(xiě)入ChunkServer前決定采用哪種通信方式。因此,寫(xiě)請求的數據傳輸會(huì )存在2條數據通道,如圖1(b)所示,通道(1)通過(guò)RDMA寫(xiě)入數據,通道(2)通過(guò)Socket寫(xiě)入數據。
4 性能評測
(1)測試環(huán)境
硬件環(huán)境:TH-1A系統,6個(gè)計算節點(diǎn),1個(gè)作為Master,4個(gè)作為Client,1個(gè)大內存節點(diǎn)作為Chunkserver。
軟件版本:MooseFS3.0.73,IOR2.10.1。
測試方法:測試文件大小為2GB,塊大小從16KB到4MB不等,采用直接IO模式進(jìn)行順序讀、寫(xiě)測試。
(2)測試結果與分析
客戶(hù)端對比測試在1個(gè)Client下進(jìn)行,分別采用1、2、4、8個(gè)進(jìn)程進(jìn)行并行讀寫(xiě),以測試單個(gè)客戶(hù)端的整體性能。測試結果如圖2所示,在相同文件塊大小和相同進(jìn)程數時(shí),改進(jìn)后系統的順序讀寫(xiě)速度全面優(yōu)于原系統。讀速度最大可達到原系統的2.02倍;寫(xiě)速度最大可達到原系統的2.63倍。此外,當原系統進(jìn)程數從4個(gè)增加到8個(gè)時(shí),已無(wú)明顯提升,說(shuō)明接近基于Socket通信下的性能上限。但對于改進(jìn)后系統,讀塊大小超過(guò)64KB的文件和寫(xiě)塊大小超過(guò)512KB的文件,速度依然隨進(jìn)程數增加而穩定提高。
服務(wù)端對比測試在1個(gè)Chunkserver下進(jìn)行,采用4個(gè)Client,每個(gè)Client采用單進(jìn)程進(jìn)行并發(fā)讀寫(xiě),以測試單個(gè)服務(wù)端在順序讀寫(xiě)時(shí)提供的聚合帶寬,測試結果如圖3所示。改進(jìn)后系統的單個(gè)服務(wù)端在順序讀時(shí),向4個(gè)Client提供的帶寬最大可達到原系統的2.04倍;順序寫(xiě)時(shí)的帶寬最大可以達到原系統的2.35倍。而且順序寫(xiě)時(shí)的帶寬最大值為4.42GB/s,占到計算節點(diǎn)之間RDMA通信最大單向帶寬的接近70%。
5 結束語(yǔ)
本文提出一種基于RDMA的數據傳輸機制RBP,在MooseFS原有控制流程的基礎上,采用多種切實(shí)有效的設計,使其在RDMA網(wǎng)絡(luò )下的數據傳輸性能得到大幅提升,但對小數據和多進(jìn)程的支持還存在改進(jìn)空間。下一步考慮結合數據預取、寫(xiě)合并、最小匹配等技術(shù),使RBP具有更全面的性能表現和更廣泛的應用前景。
【高性能計算機分布式內存文件系統的網(wǎng)絡(luò )性能優(yōu)化方法論文】相關(guān)文章:
網(wǎng)絡(luò )視頻系統性能測試及優(yōu)化11-22
分布式網(wǎng)絡(luò )系統中的數據訪(fǎng)問(wèn)設計與優(yōu)化03-18
大容量?jì)却嫖募到y設計及μC/OS下的實(shí)現03-18
無(wú)線(xiàn)通信網(wǎng)絡(luò )的優(yōu)化論文11-07
關(guān)于初中地理教學(xué)方法優(yōu)化初探論文11-07
大數據技術(shù)在移動(dòng)通信網(wǎng)絡(luò )優(yōu)化的運用論文06-09