微軟HPC羣集添加Linux計算節點

HPC羣集系統中計算資源的管理是重要的一塊,若是可以實現計算做業能夠在異構操做系統上面協同運做,無疑將是一大亮點,微軟HPC pack自2012 upate3開始,支持本地linux做爲計算節點,微軟官網寫到如何添加linux計算節點進入HPC羣集的方法,但僅是Ubuntu版本的操做,並且有些關鍵步驟並無寫出,致使若是不是很懂linux的微軟系統管理員作起來會遇到各類問題,所以老王經過本文將實際環境中安裝涉及到的步驟所有呈現,並討論linux計算節點爲微軟HPC羣集帶來的可能性。html


本文以hpc pack 2016 update1爲例node

支持的linux版本:SUSE Linux Enterprise Server 12,Red Hat Enterprise Linux 7.1,CentOS 6.7,Ubuntu Server 14.04 LTS和16.04 LTSpython


環境介紹linux

08dcweb

10.0.0.2 255.0.0.0docker


hpc01-head.oa.comshell

windows server 2016數據中心版json

Enterprise 10.0.0.8 255.0.0.0 dns 10.0.0.2windows

HPC 18.0.0.1 255.0.0.0centos


linuxnode1 

Centos6.7

Enterprise 10.0.0.51 255.0.0.0 dns 10.0.0.2

HPC 18.0.0.3 255.0.0.0


老王總結的配置步驟以下


  1. 爲linux主機修改主機名

  2. 在windows dns服務器上添加linux主機DNS記錄,確保安裝過程當中head主機能夠找到linux計算節點

  3. 爲linux主機導入windows環境根證書,頭節點證書公鑰,確保證書能夠驗證,linux主機能夠正確打開https://頭節點fqdn(此步驟需重啓生效)

  4. 在linux主機上面添加頭節點主機名和FQDN名稱進入/etc/resolv.conf,最好使用永久生效方式,確保互相正常解析

  5. 經過FileZilla或其它工具,將hpc pack linux aget tar gz,setup.py,頭節點帶私鑰證書拷貝進入linux目錄

  6. 在linux主機安裝hpc pack agent代理須要聯網經過yum install下載依賴組件,所以須要讓安裝過程linux主機能夠臨時聯網下載組件

  7. 經過python命令開始安裝setup.py,正常狀況下centos或redhat安裝完成後都有這個命令,若是在終端輸入python無效,需自行下載安裝

  8. 嚴格按照setup.py腳本指示安裝代理

  9. 檢查安裝過程日誌,以及nodemanager.json,若是出現主機名,需修改成FQDN,由於主機名稱沒法經過SSL驗證

  10. 一切順利,安裝成功後,通過一杯茶的時間,能夠在頭節點看到被添加進來的linux計算節點,聯機便可



1.爲linux主機修改主機名,最好安裝時指定,不然可使用hostname linuxnode01修改

2018-04-28_173607.png

2.在windows dns服務器上添加linux主機DNS記錄

2018-04-28_175117.png

3.導出windows CA根證書與頭節點安裝證書,不帶私鑰版本,導出格式選擇Base 64編碼

2018-04-25_103621.png


2018-04-28_174440.png

導出完成後獲得兩個文件,一個是頭節點安裝證書不帶私鑰的cer,一個是企業根信任證書的cer,若是是自簽名證書僅導出安裝證書不帶私鑰的cer便可

2018-04-28_174726.png

直接將文件後綴重命名爲pem,便於咱們在linux上面導入證書

2018-04-28_174810.png

經過filezilla工具,拷貝這兩張證書,放置到centos或redhat的/etc/pki/ca-trust/source/anchors路徑下

2018-04-28_175331.png

在centos或redhat上面進入bin目錄下,輸入update-ca-trust,更新證書列表,會將咱們放進anchors的證書導入

2018-04-25_104013.png

導入以後重啓操做系統,在瀏覽器欄輸入https://hpc01-head.oa.com ,出現如下結果,即表明配置成功

2018-04-27_213348.png

若是出現證書不受信任的提示,則必定要從新配置,檢查證書位置,以及是否導入,務必確保地址能夠正確打開,由於linux裏面對於證書要求很是嚴格,若是SSL證書不信任,是不容許直接打開SSL網站的

2018-04-28_203654.png

可是咱們在linux上面安裝hpc pack代理,最後一步,要經過json裏面NamingServceUri寫出的 https://hpc01-head.oa.com:443/HpcNaming/api/fabric/resolve/singleton/

路徑,去聯繫頭節點註冊計算節點,若是這一步信任不作,那麼最後一步這個地址是沒辦法打開的,這樣即使linux端安裝代理成功了,可是linux計算節點也不會顯示在windows 頭節點中


4.在linux主機上面添加頭節點主機名和FQDN名稱進入/etc/resolv.conf,這一步是爲了讓linux主機可以正常解析頭節點主機,其實咱們在linux上面設置了dns後,理論上來講應該就已經能夠解析了,ping頭節點主機名和FQDN均可以ping通,可是以前曾經有外國朋友提到過這是一個bug,告知咱們仍需添加/etc/resolv.conf,做爲雙保險咱們最好仍是加上

添加方法使用linux vi編輯器

終端中輸入vi /etc/resolv.conf打開編輯器 ,輸入完成後鍵入ESC,而後鍵入:w保存文檔

此爲臨時性修改方法,一旦重啓後即失效,雖能夠確保代理安裝過程無誤,但若是有了解linux的朋友仍是建議使用永久修改方法

2018-04-26_172118.png

添加完成後嘗試在頭節點ping linux節點主機名,主機名加域名,在linux節點ping頭節點主機名,FQDN名,都能ping通即配置成功


5.經過FileZilla或其它工具,將hpcnodeagent.tar.gz,setup.py,頭節點安裝時帶私鑰證書拷貝進入一個linux目錄

2018-04-28_194140.png

hpcnodeagent.tar.gz,setup.py能夠在hpc pack 頭節點安裝包解壓目錄中找到

2018-04-28_194312.png

HPCcom.pfx是咱們安裝hpc pack 頭節點時申請的證書,導出那張證書,帶私鑰一塊兒導出



6.在linux主機安裝hpc pack agent代理須要聯網經過yum install下載依賴組件,所以須要讓安裝過程linux主機能夠臨時聯網下載組件


hpc pack liunx agent安裝的時候須要聯機下載一些必備組件,實驗中老王臨時把HPC網絡接入了vmwareNAT網絡,實際企業環境建議臨時讓其中一個網絡聯網,或臨時新加入一個網卡

若是安裝linux hpc pack代理時不能聯網,則會出現如下錯誤

2018-04-27_214135.png

7.經過python命令開始安裝setup.py,正常狀況下centos或redhat安裝完成後都有這個命令,若是在終端輸入python無效,需自行下載安裝


進入setup.py所在目錄運行python命令

python setup.py -install -connectionstring:'hpc01-head'-certfile:'/opt/HPCcom.pfx' -certpassword:'123.com' -managehosts

2018-04-29_084300.png

若是怕麻煩能夠直接輸入python setup.py,會彈出setup.py幫助內容,直接能夠複製粘貼,再修改成咱們的內容

2018-04-28_195305.png

嚴格按照setup.py說明安裝代理,一個參數和大小寫都不能錯,最好是直接複製示例內容而後修改

2018-04-28_195331.png

在安裝步驟進行到大約這裏時

2018-04-28_195640.png

打開/opt/hpcnodemanager/nodemanager.json,檢視NamingServceUri一欄,若是是hpc01-head這樣的主機名,請必定把它改爲hpc01-head.oa.com

2018-04-28_195923.png

由於咱們在windows端綁定的證書名稱是fqdn名稱,所以咱們導入到linux的證書,也只會匹配fqdn名稱,若是這裏以主機名訪問,則會由於名稱與證書不匹配而沒法直接打開網頁,致使沒辦法向頭節點註冊

2018-04-28_201055.png

安裝成功後,通過一杯茶的時間,能夠在頭節點看到被添加進來的linux計算節點

2018-04-26_210207.png

安裝過程日誌排錯

Linux Node

/opt/hpcnodemanager/logs/nodemanager.txt,hpclinuxagent.log

/opt/hpcnodemanager/nodemanager.json


頭節點

安裝目錄 Microsoft HPC Pack 2016 \ Data \ LogFiles \ Scheduler \ HpcScheduler*.bin

使用hpctrace將bin文件轉換txt查看



聯機linux計算節點,如今linux計算節點已經成功加入到微軟HPC羣集中,能夠正常承載頭節點派發給它的做業任務

2018-04-26_210235.png

支持直接在羣集管理器對linux節點執行命令

2018-04-26_210431.png

支持使用clusrun提交做業直接在linux計算節點執行

2018-04-26_210819.png

支持經過羣集管理器彙總顯示linux計算節點數據

2018-04-26_210903.png


2018-04-26_211009.png

支持經過客戶端程序,portal,提交參數掃描做業至linux節點

2018-04-26_211147.png


Linux計算節點不支持的場景

  1. linux計算節點僅支持單頭節點的部署,若是採用羣集頭節點,則沒法使用linux計算節點

  2. 要在Linux節點上運行MPI應用程序,您必須在節點上安裝本身的MPI。包含在HPC Pack中的Microsoft MPI(MS-MPI)僅在Windows節點上運行。調度程序必須在Linux節點之間創建互信,HPC Pack 2016 Update 1會自動爲用戶生成密鑰對。

  3. 不支持GPU和SOA工做負載 - 目前HPC Pack不支持在Linux節點上調度GPU或運行SOA工做負載

除上述場景外,其它體驗均與windows計算節點一致


OK,乾貨講完,下面隨便聊聊


有些不太瞭解微軟最近幾年變化的朋友可能會詫異,怎麼可能你微軟的羣集還能容許linux節點加入呢,事實上微軟最近幾年正在逐步走向開放的道路上,老王將微軟的開放分爲兩部分,一部分是支持異構化資源,支持和異構資源協同工做,另一部分則是全面擁抱公有云,後面咱們先不表,單說支持異構資源,老王認爲這一點算是個明智之舉,一個企業不可能只有windows或只有linux,若是能有一套工具集中管理windows、linux這固然是企業最但願的,而微軟不少產品正在作到這一點,System Center,powershell,docker,還有咱們這個系列的hpc pack,老王認爲將來在中國,羣集管理平臺,雲管理平臺,IT管理平臺,都將呈現兩個趨勢,一個是異構化,經過一個管理工具能夠管理多家廠商節點 ;一個是自主化,愈來愈多國產廠商將涌現,國產廠商能夠從外國廠商中優秀的功能借鑑。


對於高性能計算羣集來講,總的來講這種羣集相對於高可用羣集來講較爲鬆散,高可用羣集對於每一個羣集的配置有嚴格的配置要求,最好要作到的徹底一致,高性能羣集則沒必要,由於它所須要的是每一個節點可以提供計算能力,各個節點能夠協同並行工做,至於你節點是什麼System,高性能羣集理想狀況下是不須要關注的。


微軟的高性能羣集支持Linux計算節點後帶來的場景思考


1.企業管理員不熟悉linux,只熟悉windows,想搭建一套HPC羣集,微軟自家下降學習成本

2.企業已有linux,可是配置linux hpc羣集過於複雜,管理員能夠挑選微軟hpc pack做爲HPC頭節點,計算節點所有采用linux節點

3.能夠經過在頭節點配置存儲複製或S2D,對象存儲等技術,將一些微軟上面特有的技術,帶給linux計算節點

4.企業有linux,也有windows,但願同時利用,能夠搭建一套微軟高性能羣集,同時添加linux計算節點,windows計算節點

5.微軟hpc pack目前看來不單獨收費,只要有正規的windows license或azure訂閱便可安裝使用

6.能夠創建windows節點做業模板,linux節點做業模板,若是咱們沒法作到並行程序跨平臺,就可讓用戶寫的程序windows的就只能提交到windows節點,linux的就只提交到linux計算節點

7.利用Docker,HPC Pack如今已與Docker集成。用戶做業能夠提交請求Docker鏡像的做業,而且HPC Job Scheduler將在Docker中啓動該任務。NVIDIA Docker GPU做業和跨Docker MPI做業均受支持


HPC羣集能夠支持Linux計算節點以後,下一步主要須要思考的就是如何能讓做業跨windows節點和linux節點執行,選用什麼樣的並行接口程序來實現跨平臺的並行,在異構系統都具有HPC環境的狀況下,如何可以實現一個做業同時提交給windows和linux節點,都能輸出理想的結果


微軟高性能羣集,Linux,與Azure


老王認爲使用公有云無非是須要考慮兩個平衡,第一個平衡是我有多大程度上能夠信賴公有云,第二個平衡是個人數據有多大程度上不能夠公開給公有云,結合這兩個平衡考慮,選擇出一個能夠接受的負載,放到公有云運行,下面是老王整理的一些HPC羣集和Azure融合的場景,感興趣的朋友能夠結合自身的環境去思考選用


  1. 本地沒有服務器環境,在Azure市場申請搭建HPC羣集,用於完成計算

  2. 構建混合HPC環境,本地搭建HPC頭節點,計算節點,Azure也搭建計算節點,當本地計算環境達到閥值,啓動Azure計算節點輔助完成計算

  3. 本地沒有Windows受權,直接申請Azure虛擬機,自帶系統受權和HPC受權

  4. Azure上面添加linux計算機節點有腳本幫助咱們自動完成

  5. 須要完成重大運算,本地資源不足,臨時開啓Azure虛擬機,運算完成刪除關閉虛擬機


相信一些朋友看事後會對微軟hpc pack產生興趣,這裏老王給出一個個人學習路線建議

  1. 瞭解什麼是高性能羣集

  2. 瞭解什麼是高性能羣集做業管理,做業調度,資源管理

這兩點能夠在百度文庫,國內博客上面得到

3.查看微軟官網,瞭解微軟hpc pack概念,架構,對於做業調度,資源管理等概念如何實現

4.瞭解HPC pack 做業申請過程 ,資源如何管理

這部份內容能夠參考https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/hpc-server-2012-R2-and-2012/jj899615(v%3dws.11)

5.瞭解並行計算,並行計算方式,並行計算程序,這些如何在微軟HPC羣集上面工做

6.實戰添加windows計算節點,添加linux計算節點,配置門戶

7.實戰裸金屬部署windows節點

8.實戰提交做業,觀察HPC做業調度過程

9.熟悉HPC pack羣集管理器,資源管理功能,報表功能

10.瞭解hpc pack在azure上面場景,參考https://docs.microsoft.com/en-us/azure/virtual-machines/linux/classic/ruby-rails-web-app



HPC pack支持整合科學計算環境:NAMD,OpenFOAM,STAR-CCM+環境,InterMPI,Matlab


Matlab整合介紹

https://ww2.mathworks.cn/help/mdce/configure-parallel-computing-products-for-hpc-server.html

https://blogs.technet.microsoft.com/hpc_and_azure_observations_and_hints/2011/12/12/running-matlab-in-parallel-on-a-windows-cluster-using-compiled-matlab-code-and-the-matlab-compiler-runtime-mcr/


NAMD,OpenFOAM,STAR-CCM+環境,InterMPI整合介紹

https://docs.microsoft.com/en-us/azure/virtual-machines/linux/classic/hpcpack-cluster-starccm

相關文章
相關標籤/搜索