999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

模型驅動的高性能計算集群配置管理

2021-02-27 03:23:54韋建文王一超文敏華林新華周子豪
實驗室研究與探索 2021年1期
關鍵詞:方法模型

韋建文, 王一超, 文敏華, 林新華, 周子豪

(上海交通大學網絡信息中心,上海200240)

0 引 言

高性能計算集群是為求解大型計算問題、由多個節點通過高速網絡連接而組成的集群,其能否有效工作很大程度上取決于集群中各節點是否處于協調一致的配置狀態。集群節點從上架通電到下線退役發生的軟件配置調整,都可歸入配置管理的范疇,包括為節點初始化做的離線配置和不中斷節點服務的在線配置。傳統配置方法關注配置的具體操作,譬如“使用useradd命令添加用戶”“用戶已存在該如何處理”等。受限于命令式配置的建模能力,傳統配置方法很難快速正確地將復雜系統配置到預期狀態,而由此導致作業運行效率低甚至集群下線,將嚴重影響高性能計算集群的正常使用。

“基礎設施即代碼”(Infrastructure as Code,IaC)[1]是為解決復雜系統配置問題而提出的方法,其核心理念是專注表達配置的需求——即構建配置建模,具體煩瑣的配置操作則由程序在模型驅動下完成。

以表1 所示的添加用戶為例,配置建模使用“聲明式”描述,相比配置過程使用的“命令式”描述,能更加簡潔準確地表達配置意圖。盡管由模型驅動的配置管理在云計算領域已獲得廣泛應用,但這項技術是否適合于物理機占比高、異構硬件數量多的高性能計算集群,仍需要進一步探索。

表1 “聲明式”與“命令式”配置對比

上海交通大學高性能計算平臺是國內規模最大的校級計算平臺之一[2],已建成π1.0(2013 年上線)、π2.0(2019 年上線)兩代集群,理論計算能力超過3PFlops,存儲容量超過10 PB,配備CPU計算節點、多路胖節點、GPU計算節點等總計超過1 000 個物理節點,以及數十個虛擬管理節點。將這些節點配置成一個協同工作的集群,是一項很有挑戰性的工作。本文介紹一種以配置模型為核心的高性能計算集群配置管理方法,包括:配置管理工具選型、Puppet特性、模型驅動的集群配置管理流程、配置時間對比和配置集群的流程展示。

1 配置管理工具選型

在“基礎設施即代碼”實踐中,配置管理與編程解題有很多共同點。如圖1 所示。

程序員使用高級語言編寫程序代碼,經編譯器編譯后得到可執行程序,執行后輸出計算結果。類似地,管理員使用建模語言描述配置模型,經配置管理工具翻譯后得到可執行腳本,執行后將目標節點配置到預期狀態。程序員在選擇編程工具鏈時會考察編程語言的表達能力、執行效率、第3 方庫豐富程度以及對版本回溯等軟件工程特性的支持。同樣地,管理員選擇配置管理工具時,也會重點考察建模能力、配置速度、模塊數量、對版本回溯的支持和部署難度。

圖1 配置管理執行流程

現有主流開源配置管理工具特性對比見表2。表中,Puppet使用了語法類似Ruby 的定制語言,具有很強的建模能力,又因為使用了獨立的客戶端所以配置速度快,龐大的社區提供了超過6 000 個模塊,且可與git版本控制系統[7]整合提供變更回溯功能。盡管Puppet部署難度要比其他配置管理工具高,但其提供的層次化建模、邏輯與數據分離特性對管理復雜集群配置提供了極大的便利。

表2 主流開源配置管理系統對比

2 Puppet配置管理工具

Puppet配置管理工具的3 個主要組件如圖2 所示,包括建模組件、主控節點和客戶端。管理員使用建模組件構建的配置模型由主控節點編譯后變成可執行腳本,客戶端執行腳本把目標節點配置到預期狀態。

圖2 Puppet配置管理系統組件

2.1 Puppet建模組件

Puppet的配置模型包含“邏輯”與“數據”兩個要素,分別描述“配置什么”和“配置參數”。

模型的邏輯使用名為Puppet DSL 的特定領域描述語言(Domain Specific Language,DSL)描述。這個語言專為配置管理設計,不僅提供了完成基礎配置所需的函數,如安裝特定RPM包、啟動特定服務等,還包含了用于構建復雜功能的語言特性,如變量、數據結構、條件分支等。Puppet 推薦使用名為“角色-剖繪”(Roles-Profiles)編碼規范[8]把模型代碼分散到多個文件中。這個編碼規范使用角色和剖繪兩層抽象,分別描述節點的功能(如compute、nameserver等)以及實現這些功能所需的軟件棧(如slurm、bind 等)。部分具有共性功能的模型代碼(如配置MySQL、SLURM)可發布在Puppet Forge 社區[9]或GitHub[10]供其他用戶使用。Puppet社區提供的模塊數量和質量一直在不斷提高,已經積累了超過6 000 個模塊,涵蓋了高性能計算集群所需絕大部分軟件棧。

Puppet使用名為Hiera 的程序組織模型中的數據。Hiera提供了從最細粒度的“節點”到最粗粒度“全局默認”之間多粒度層次化的參數匹配方法。Hiera可從節點角色、操作系統或其他特征搜索參數,并按照用戶指定的優先級替換或合并參數,若搜索失敗將使用默認的全局參數。Hiera 很好地處理了配置數據中“一般”與“特殊”的關系,通過多粒度參數匯聚避免重復配置在多處出現。Hiera 使用“邏輯”與“數據”分離的編程理念,使得敏感配置信息得以從配置邏輯中分離出來得到保護。

2.2 Puppet配置變更跟蹤

Puppet提供了“文件”和“模型”兩個級別的配置變更跟蹤機制。在文件一級,Puppet 主控節點會備份file函數每一次對配置文件所做的修改,管理員可以查看、對比和恢復配置文件的歷史記錄。在模型一級,Puppet與git 集成,跟蹤整個配置模型,即“邏輯+數據”的代碼變更歷史。管理員可使用“git 簽出”抽取任意時刻的模型應用到目標節點,或使用“git分支”創造多個獨立于生產環境的配置模型。Puppet配置變更跟蹤機制是實現配置回溯和獨立測試環境的基礎。

3 使用Puppet配置高性能集群

使用Puppet建模組件構建了上海交大高性能計算集群的配置模型,并借助Puppet配置變更跟蹤特性搭建了可回溯可測試的在線配置流程,結合Cobbler操作系統部署工具,搭建了無須人工干預的節點離線配置流程。

3.1 使用Puppet構建高性能計算集群的配置模型

按照Roles-Profiles 編碼規范,集群節點的角色和所需軟件棧見表3。

表3 節點角色分配表

具體地,lib/facter/role.rb配置文件通過正則表達式為其指定角色變量puppet_role 和計算節點子類型變量puppet_subtype,接著在角色文件中引入所需軟件棧剖繪。從Puppet Forge和GitHub站點選取軟件棧對應的模塊加剖繪文件,并針對高性能計算領域特有的軟硬件系統,如Omni-Path 網絡[11]、SLURM 調度系統[12]編寫了Puppet 擴展模塊。Hiera 使用“角色(role)-子類(subtype)-節點(node)”的優先級順序合并參數。git代碼倉庫的多個分支分別對應不同的測試環境,每個環境都可獨立地分配“角色-剖繪”配置、使用其他外部模塊、指派配置數據。

3.2 使用Puppet進行可回溯的在線配置

在線配置用于完成那些無須重啟節點的維護操作,包括SLURM 隊列設置、增加軟件包、調整告警檢查閾值等。

如圖3 所示,基于生產環境的模型新建git測試環境分支,在這個分支上修改模型選擇個別節點應用新模型,確認新配置模型工作正常后再將git分支的修改合并到生產環境分支。在所有節點上應用更新后的配置模型。在新的git 分支調試新模型時,可以使用git revert撤回某一個錯誤修改,或者用git checkout 回滾到某個歷史狀態,還可以使用puppet agent -t --environment production把測試分支的集群配置復位到生產環境狀態,然后開啟新的git 分支繼續“開發-測試-合并”的流程。

3.3 使用Puppet進行無人值守離線配置

Cobbler[13]節點部署工具和Puppet 配置工具用于無人值守離線配置,可以一鍵完成節點上線的流程。離線配置適合重大更新,如操作系統大版本升級、更換節點角色等。

如圖4 所示,首先,管理員通過IPMI設置目標節點通過PXE網絡啟動并重啟節點,節點從Cobbler 服務器獲得啟動鏡像和Kickstart文件[14],重新部署操作系統。然后,安裝程序調用puppet 客戶端在這個新部署的操作系統上配置其他服務組件。最后,安裝程序退出,節點自動上線提供服務。經測試,這個流程可并發部署超過1 000 個物理機或虛擬機。通過調整Cobbler和Kickstart的設置,還可以定制每個節點使用的操作系統和分區方案。

圖3 在分支環境測試配置變更

圖4 無人值守部署流程圖

4 性能測試

4.1 配置時間對比

以“配置SLURM作業調度系統”和“配置一個新的節點”這兩個任務為例,傳統配置方法和模型驅動的Puppet方法的工作效率對比見表4。

模型驅動方法在準備階段時間、執行階段時間和需要撰寫代碼行數均優于傳統配置方法。傳統配置方法在“配置SLURM 調度系統”時,需要單獨為slurmctld、slurmdbd、slurmd 這幾個服務維護內容相似的配置文件,并配置相應的MUNGE、SSSD等服務;Puppet配置方法則可以共享SLURM 主要配置信息,并直接使用現成的SLURM、MUGNE、SSSD 配置模塊。傳統配置方法在“配置一個新的節點”時,需要額外編寫配置流程,或在操作系統部署后人工運行配置程序;Puppet配置方法則可完全復用已有的配置流程,只需在Kickstart 文件末尾加入一行調用puppet 客戶端的代碼。除此以外,模型驅動的配置方法引入了模塊化設計、變更追溯等軟件工程方法,使管理員能夠像發布軟件一樣,保障質量地進行配置變更,這是傳統配置方法做不到的。

表4 模型驅動配置和傳統配置方法對比

4.2 使用Puppet部署一個高性能計算集群

圖5 展示了使用模型驅動的配置方法部署一個高性能計算集群的主要過程和耗時。

圖5 集群配置主要流程圖

在管理節點物理機上安裝Cobbler 部署服務和Puppet主控節點服務;在管理節點安裝Ovirt虛擬機管理器服務[15],另選一臺服務器安裝Ovirt宿主機服務;新建Ovirt虛擬機承載集群內的Bind 域名解析、Squid代理、MariaDB數據庫、SLURM 主控節點服務;批量為計算節點部署和配置系統,與此同時使用Spack 軟件包管理器為集群安裝編譯器、MPI 庫、數學庫等工具。傳統部署方法最耗時的操作系統安裝和系統配置部分,被Puppet +Cobbler 無人值守部署流程替代,使得部署一個包含幾十甚至上千計算節點集群的時間,從1 周縮短到了一天。

5 結 語

傳統“命令式”配置方法建模能力受限,不能勝任日益復雜的高性能計算集群配置任務。借鑒“基礎設施即代碼”的思想,將配置問題轉換為建模問題。在以模型為核心的配置管理中,管理員專注編寫配置模型,具體的配置操作交由模型驅動的程序執行。這套方法在開源Puppet配置管理工具基礎上實現,并加入了模塊劃分、邏輯-數據分離、變更追溯等特性提高配置的執行效率、通用性和正確性。這套方法支撐了上海交大校級高性能計算平臺超過1 000 個節點的配置,極大縮短在線配置、離線部署的時間,為開發新的服務內容提供了便利的測試流程。后續將整合“連續集成”技術用于自動驗證和應用配置,進一步將管理員從煩瑣重復的運維工作中解放出來。

猜你喜歡
方法模型
一半模型
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
學習方法
3D打印中的模型分割與打包
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
FLUKA幾何模型到CAD幾何模型轉換方法初步研究
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
賺錢方法
捕魚
主站蜘蛛池模板: 国产第四页| 久久免费观看视频| 又粗又硬又大又爽免费视频播放| 一级毛片在线播放免费| 亚洲香蕉伊综合在人在线| 国产黄色爱视频| 国产精品无码翘臀在线看纯欲| 国产成人免费| 黄色网在线免费观看| 日韩欧美高清视频| 亚洲—日韩aV在线| 国产三级a| 日本欧美成人免费| 国产成人AV综合久久| 青青国产视频| 亚洲综合片| 欧美激情网址| 欧美国产日本高清不卡| 青青青伊人色综合久久| 欧美色视频在线| 97国产成人无码精品久久久| 国精品91人妻无码一区二区三区| 国产特级毛片aaaaaa| 国产一区二区三区免费观看| 成人在线天堂| 久久综合伊人 六十路| 欧美成人影院亚洲综合图| 欧美国产日韩一区二区三区精品影视| 国产亚洲精品资源在线26u| 午夜无码一区二区三区在线app| 毛片基地视频| 欧美亚洲第一页| V一区无码内射国产| 视频国产精品丝袜第一页| 国产91精品调教在线播放| 亚洲一区二区三区麻豆| 国产精品漂亮美女在线观看| 在线看片国产| 国产99视频精品免费视频7| AV不卡在线永久免费观看| 精品国产成人三级在线观看| 91精品国产综合久久不国产大片| 四虎永久在线精品影院| 国产亚洲欧美在线视频| 免费欧美一级| AV无码一区二区三区四区| 国产精品嫩草影院av| 国产美女精品一区二区| 日韩精品一区二区三区大桥未久| 亚洲青涩在线| 国产精品视频免费网站| 欧美一级特黄aaaaaa在线看片| 超清无码一区二区三区| 国内精自视频品线一二区| 超清无码一区二区三区| 58av国产精品| 天天色综网| 亚洲欧美自拍中文| 国产成人盗摄精品| 天天干天天色综合网| 欧美国产菊爆免费观看| 亚洲人成人伊人成综合网无码| 色综合综合网| 午夜啪啪福利| 亚洲欧美日韩天堂| av天堂最新版在线| 4虎影视国产在线观看精品| 麻豆精品久久久久久久99蜜桃| 久久国产精品影院| 女人18毛片久久| 99视频在线看| 国产人人射| 欧美v在线| 在线观看亚洲成人| 久久久久亚洲AV成人人电影软件| 伊人久久婷婷五月综合97色| 黄色成年视频| 国产欧美视频在线观看| 国产人人射| 呦系列视频一区二区三区| 国产性生大片免费观看性欧美| 视频一本大道香蕉久在线播放|