李傳冰,李 弘,蘭 婷,鄭江山,秦 宏
(中國科學技術大學 物理學院 工程與應用物理系,合肥 230026)
超級計算機是通過網絡將數量龐大的計算節點連接起來,以達到增強計算能力的目的.在全球超級計算機top 500的榜單上,中美兩國長期交替霸占榜首.2010年10月,天河一號二期(天河-1A)以峰值速度每秒4700萬億次,成為當時世界上最快的超級計算機.2013年6月起至2016年6月,最快的超級計算機是位于廣州的天河二號[1].2018年6月8日,美國橡樹嶺實驗室宣布開發出全球最快的超級計算機“頂點”(Summit).理論上計算速度可以達到每秒20億億次,超過迄今最快的中國超算“神威·太湖之光”,有實力重奪全球第一.
高性能計算目前在社會的應用極其廣泛,航空航天、汽車制造、氣象預測、芯片制造、軍事情報搜集,這些都需要極強的算力,才能得出準確的計算結果[2,3].而這些結果對工業設計,前沿理論的推進起著重大作用.在當今科研界,主流的三大研究方式,理論、實驗、數值模擬,三者相輔相成,缺一不可.高性能計算支撐的數值模擬,完美的再現了無法在現實中實現的實驗,既節約了高昂的實驗成本,也避免了破壞環境生態.目前,在科研界內應用高性能計算最多的幾個領域是核聚變、生物醫藥、微電子.尤其是核聚變的研究,在很多實驗條件不成熟的情況下,用計算機模擬是最好的研究方式,既能夠驗證理論,也能夠提供對實驗裝置設計的指導,在科學研究中能夠提供難以估量的價值,它的作用是理論和實驗無法替代的.
現在,有諸多Tokamak大科學裝置都使用了超級計算機.2010年8月,在德國的Forschungszentrum Jülich(FZJ)有一個超級計算機專門為磁約束核聚變服務,耗資1000萬歐元,由歐盟出資50%,德國出資40%,EFDA成員國出資10%組建的,浮點運算的峰值可以達到101 Tflops,可以有效加快ITER的研究進展.英國的卡爾漢姆聚變能研究中心(CCFE)為了支持JET和MAST項目也有一個超級計算機名叫Diego,通過Myrinet的網絡架構將36臺HP的服務器連接起來.在印度,等離子體研究中心的Aditya托克馬克,有一個用網線和光纖連接的集群,600臺服務器,提供網絡、郵箱、域名解析等服務.在日本,于2012年至2016年投入使用一個計算能力強大的集群,名叫HELIOS,包含有4500個計算節點,72 000個核心,總的運算峰值可以達到1.5 Pflops,完全用于核聚變研究領域,一半計算資源給日本使用,另一半資源給歐洲使用.可以清楚的看到,高性能集群在托克馬克中的廣泛應用.在科研探索中起著極其重要的作用,強大的計算能力可以飛速推進數值模擬的發展.
受控核聚變是人類實現最終能源的夢想,磁約束是目前實現受控核聚變的主流技術思路之一.磁約束有三種位形[4-7]: ① 仿星器,② 托克馬克,③ 反場箍縮.反場箍縮[8-11](Reversed Field Pinch,RFP)是β值(等離子體的壓強與磁能的比值)最大的磁約束聚變位形.反場箍縮最主要的優點是工程實施簡單,β值高,能夠通過歐姆加熱直接點火.位于中國科學技術大學的大型反場箍縮磁約束聚變實驗裝置“Keda Torus eXperiment”(KTX)實驗裝置采用的就是反場箍縮位形.
KTX的數據先通過采集卡存儲在本地,之后再用網絡傳輸數據至集群.采集卡分為低速采集和高速采集.低速采集250 KB/s,每次采集有900道,高速采集60 MB/s,每次采集有十幾道,放電時長10-20 ms,最多至200 ms.一年的實驗月有6個月,每周有3天實驗日,一天有200炮實驗數據.按照最大的原則計算,一年高速采集的數據至多3.5 TB左右,低速采集的數據最多13 TB,兩者合計不會超過20 TB.
KTX對數據的存儲有以下一些要求:
(1)容錯性.如果一個存儲單元出現了損壞,可以不間斷的接收新數據的存入,還能完成原有數據的復制和轉移.
(2)冗余性.將整個文件的兩個或更多副本存儲在不同的服務器上,或將每個文件分割到多個服務器上.從多個客戶端并行訪問副本.
(3)有較快的讀寫性能.
(4)兼容性好.
(5)易于安裝和配置.
KTX實驗裝置的數據還需要有效的處理,所以需要高性能集群有較高的計算能力.快速做好數據的預處理才能高效的將計算結果演化為圖像,呈現給研究者面前,用于做更深入的物理分析.由于一炮數據具有多通道的特點,KTX實驗組對同時處理大批量數據具有強烈的需求,所以對集群的并行處理能力有較高要求.
針對上述的KTX實驗裝置的計算和存儲需求,設計了集群的相關參數,并做了相關配置和部署.
為了滿足核聚變研究領域的需求——可以較快的存儲、讀取、在線處理數據,在集群的設計與部署中必須保證足夠的計算性能以及文件系統的讀寫性能.CPU核心數量多才能同時處理較多的作業,在線同時處理KTX一炮多達數百道實驗數據.CPU的主頻高,運算速度快才能快速的計算數據.文件系統讀寫性能佳,才可以勝任快速存儲實驗數據,也能夠在需要的時候,快速地將數據從集群中讀取出來.
集群平臺為聯想深騰X8800超算集群平臺.有42個計算刀片,刀片式服務器的型號均為Lenovo Think System SN550,每個刀片有兩個物理CPU,每個CPU有16個計算核心.處理器都是Intel Xeon 可擴展處理器金牌6142,主頻2.6 GHz.集群的理論浮點運算峰值可達110 Tflops.每個刀片有128 GB內存外加一塊240 GB的企業級SSD硬盤.另外還有兩臺機架式服務器用作管理和登陸,型號為Lenovo Think System SR550,每臺機架式服務器有兩個物理CPU,每個CPU有8個核心,主頻2.1 GHz,處理器是Intel Xeon可擴展處理器金牌4110配置.每個機架式服務器有64 GB內存,4塊600 GB的SAS 2.5寸熱插拔硬盤.最后有6臺IO節點,也是機架式服務器,型號與管理節點相同,用來管理和負載均衡I/O.
存儲系統是Lenovo Storage D3284,集中式存儲架構,GPFS并行文件系統.總容量1.12 PB,實際容量可利用率超過70%.數據盤數量達到112塊,系統實測總聚會IO帶寬大于4.0 GB/s.
網絡系統有兩套,一個是計算網絡,另一個是管理網絡.計算網絡采用56 Gbps FDR Infiniband 網絡,互連所有節點(包括計算節點、管理節點、IO節點),保證整個集群計算刀片點對點帶寬56 Gbps.管理網絡采用1 Gb以太網連接到所有節點,IPMI監控管理網絡,能夠實現全部服務器的遠程監控管理.
本系統中最大的優勢是采用了Infiniband高速網絡,用作點對點傳輸數據.Infiniband高速網絡有效解決了傳統I/O總線造成的系統瓶頸[12].Infiniband 支持的是RDMA協議,它允許應用程序直接讀取或寫入遠程內存,而無內核干預和內存拷貝發生,故而有很強的讀寫性能[13].
xCAT是一個高級的集群管理工具,xCAT給高性能集群、云計算、數據中心提供了一體化管理服務.xCAT的實施規模可以很大,可以管理多達1000多臺節點.xCAT是開源的,可以得到公開的參考資料.xCAT能夠十分方便地遠程給高性能集群部署系統,也能夠批量下發命令給各從節點,完成各種控制,包括對所有從節點遠程開關機.xCAT能夠實現集群的全自動化安裝,也即是基于網絡的無人看守式的安裝系統[14,15].
xCAT在做系統部署前會定義一系列數據表,存儲在xCAT的數據庫中.為了使將來集群工作時,各種網絡能夠高效、穩定地提供服務,設計和定義好集群的網絡表是很重要的.xCAT中定義的集群網絡分兩種,以太管理網絡和infiniband高速網絡.使用tabedit network命令設置網絡配置,定義網段和子網掩碼,以及主服務器master的IP.使用tabedit hosts命令配置主機名列表和IP列表.使用tabedit mac命令配置各服務器的網卡mac地址.
在完成一系列數據表的定義后,對服務器進行群組劃分,便于以后分組控制,統一執行主服務器master的遠程命令.給集群定義了四個組.
(1)all,代表全部服務器.
(2)computeserver,所有計算刀片構成的組.
(3)ioserver,所有IO節點構成的組.
(4)slaves,除了頭節點master以外的所有服務器.
待完成數據表后,給劃分好群組的服務器導入相應的系統鏡像,給各個備選的系統鏡像配置合適的分區文件,以及需要安裝的軟件包,還有安裝完系統后需要配置的軟件服務,例如ntp、rsyslog等服務.根據群組的設計,集群的服務器分為三類.第一類是兩臺管理節點,一臺用作集群主服務器master,同時作為并行作業調度器的頭節點;另一臺用作登陸節點.第二類是計算刀片,有42個節點,用來執行并行作業計算任務.第三類是IO節點,有6臺,用作管理和平衡負載文件系統的讀寫.
最后使用nodeset命令開始無人看管式遠程部署系統,每個服務器以PXE的方式啟動,推入系統鏡像.
KTX實驗組不僅需要集群可以快速處理、讀取數據,還需要集群有足夠的安全機制能夠保障數據的安全性.KTX一年當中只有一半的時間是實驗期,因此實驗數據的產出來之不易,一旦數據有損壞或者丟失,對核聚變的研究都會造成不小的損失.所以針對前文中提到的存儲需要具有容錯性、冗余性,對GPFS并行文件系統進行了安全設計.
GPFS文件系統本身具有數據安全性.GPFS文件系統是一種日志文件系統,為不同節點建立各自獨立的日志,日志中記錄metadata的分布,一旦節點發生故障后,可以保證快速恢復數據.GPFS的fail-over功能通過規劃,將數據分布到不同failure group內達到高可用性,減少單點故障的影響.為了保證數據可用性,GPFS在多個failure group內為每個數據實例做備份[16].
GPFS有一套可用性判斷機制來保證數據完整性與系統安全.GPFS 提供三套不同的 quorum 機制來判斷系統當前的狀態,其中File system Descriptor Quorum 是系統內置的,不能做配置,另外兩種 Node Quorum 和 Tiebreaker Quorum 方式只能選擇其中一個,根據系統環境與可靠性分析來選擇使用哪一種機制.File system Descriptor Quorum的File system Descriptor描述的是文件系統信息的數據.在幾個不同的 failuregroup 的磁盤上創建 GPFS 文件系統時,文件系統的配置信息(簡寫為 FD)會被拷貝寫到多個磁盤上,以實現冗余備份.FD quorum 的機制是通過判斷含有 FD 磁盤的在線數量來判斷當前系統是否正常,當超過半數的含有 FD 的磁盤掉線時,就判斷為系統故障,文件系統就會自動關閉.Node Quorum 是通過主機狀態來判斷系統可用性的機制.GPFS 文件系統集群中,可以設置多個主機節點為 quorum node.Node Quorum 的機制是通過判斷 quorum node 的狀態來判斷系統是否正常,當超過半數的 quorum node 在線時,判斷系統為正常,反之,將關閉文件系統.Tiebreaker Quorum 是通過磁盤的狀態來判斷系統的可用性.可以設置系統通過監視指定的一些磁盤作為 Tiebreaker Disk.當超過半數的Tiebreaker Disk 掉線時,則判斷系統故障,文件系統將會自動關閉.Tiebreaker Quorum最多只能配置兩個用來監控磁盤狀態的 quorum 主機,當 2 臺 quorum 主機都宕機的話,GPFS 系統也將會關閉.根據以上三種判斷機制,GPFS 自動判斷系統的狀態,當異常發生時自動關閉系統以保護系統和數據的完整性.
基于上面闡述的 GPFS 可用性機制,可以看出GPFS 是通過上述的三種 quorum 機制來檢查資源是否超過半數狀態正常來判斷系統狀態好壞.在設計 GPFS文件系統集群的時候需要注意最好保證各種資源數都為 2N+1 個(N是指數量),也即數量為奇數,來獲得系統最大的可用性.根據FD Quorum的設計,一般情況下,丟失一個 failure group 的磁盤實際不影響數據的完整性,但是由于FD Quorum 2N+1 的機制發揮作用,文件系統仍將會關閉,所以在創建一個 GPFS 文件系統時,可以通過增加一個很小的本地的磁盤作為第三個failure group.以實現 2N+1 的冗余設計.本地的磁盤可以設置為只保存 GPFS 文件系統信息(FD),實際不參與數據讀寫.Node Quorum機制如果采用了 2N+1 個quorum node,那么這個系統就能容忍N個主機節點的離線.Tiebreaker Quorum 機制只能配置兩個 quorum 主機,但是只要 tiebreaker 磁盤在線,有一個 quorum 主機狀態正常,系統也能正常工作,這意味著至少有一臺quorum 主機在線.如果是主機節點數較多的情況,采用Tiebreaker Quorum機制其可靠性不如 Node Quorum機制.
鑒于集群的規模,采用Node Quorum模式.6臺IO節點是quorum-manager node,登陸節點是quorum node,6臺IO節點作為仲裁管理節點,當它們損壞一半時,才會關閉文件系統.登陸節點則存儲GPFS文件系統信息.按照這種安全機制,冗余性是很強的,保證了KTX實驗數據存儲時的安全要求.使用讀寫測試工具IOzone,對GPFS文件系統進行壓力測試,一方面是檢查GPFS文件系統的性能,另一方面,檢驗并行文件系統的穩定性,從結果來看,文件系統的讀、寫性能在4.9 GB/S、2.8 GB/s左右.測試結果放在/gpfs目錄下,下面為測試的結果:


Iozone命令后接的參數-i 0 -i 1指的是做write/rewrite和read/re-read測試,-r 1M指定測試塊大小為1 MB,-s 32 g指定測試文件大小為32 GB,-t 4指定測試時使用4線程,-+m nodelist指定節點列表.根據結果代碼所示,四線程總的寫速度是2.8 GB/s,四線程中最快的寫速度是986 MB/s,最慢的寫速度是447 MB/s;四個線程總的讀速度是4.9 GB/s,四個線程中最快的讀速度是1.3 GB/s,最慢的讀速度是1.1 GB/s.驗證了GPFS文件系統有相當好的讀寫性能,能夠快速讀寫文件.
我們使用6臺IO節點作為仲裁管理節點,在2N+1的Node Quorum冗余機制下,應該能夠保證在3臺IO節點離線的情況下,文件系統仍然能正常的工作.為了驗證GPFS文件系統的冗余性,我們做了如下測試.分別在有6臺、5臺、4臺、3臺仲裁管理節點正常工作的情況下,使用IOzone工具測試集群的讀寫速率.測試結果如圖1所示.

圖1 GPFS文件系統冗余性檢測
從圖1中可以看出仲裁管理節點的個數從6臺減少到3臺的過程中,GPFS文件 系統的讀寫速率維持在4.5 GB/s、2.8 GB/s附近.可見2N+1的Node Quorum機制發揮了作用,最多在半數的仲裁管理節點失效的情況下,GPFS文件系統仍然能夠正常工作,而且讀寫速率不受大的影響.GPFS文件系統的冗余性得到了保證,這樣避免了以后在集群的使用中單點故障的問題,數據的安全性得到了大大的增強.
為了方便核聚變的研究,安裝并部署了一個高性能集群,考慮到KTX實驗組的需求,一方面是能夠快速的處理、存儲、讀取數據,另一方面保證數據有足夠的安全保障.據此,對集群的設計進行了優化.
集群開啟超線程后一共有2688個邏輯CPU,每個CPU的主頻2.6 GHz,理論峰值浮點運算能力達到110 Tflops,保證了強大的計算能力.在實際的Linpack測試當中發現浮點運算的峰值不理想,經過研究發現,是因為CPU的內存通道沒有占滿,每個物理CPU有6通道,但是只裝了兩根內存條.為了提升浮點運算性能,每臺刀片加裝8根同類型內存條,一共加滿到12根內存條.另外集群選用GPFS并行文件系統,高達4.9 GB/s、2.8 GB/s的讀寫速率,提供了優秀的讀寫性能.選用infiniband高速網絡,保證了較高的網絡傳輸速度和較低的延遲率,并使用xCAT管理工具對集群進行了有效穩定的管理.設計了KTX實驗數據存放于GPFS并行文件系統的安全保障機制,保證了數據的容錯性、冗余性、穩定性.
未來KTX實驗室會將實驗數據大規模存入,數據都是HDF5格式的,下一步會規劃與設計快速讀取基于HDF5數據格式的方案,并設計和完善在線處理數據的功能.