SLURM 是一個類似 Sun Grid Engine (SGE) 的開源分布式資源管理軟件,用於超級計算機和大型計算節點集群,可高度伸縮和容錯。SUN 被賣給 Oracle 後,好用的 SGE 變成 Oracle Grid Engine 並且從 6.2u6 版本開始成為商業軟件了(可以免費使用90天),所以我們不得不另尋其他的開源替代方案,SLURM 是上次在德班高性能會議的時候一位陌生人介紹的,聽上去不錯。
SLURM 通過一對冗余集群控制節點(冗余是可選的)來管理集群計算節點,是由一個名為 slurmctld 的管理守護程序實現的,slurmctld 提供了對計算資源的監視、分配和管理,並將進入的作業序列映射和分發到各個計算節點上。每個計算節點也有一個守護程序 slurmd,slurmd 管理在其上運行的節點,監視節點上運行的任務、接受來自控制節點的請求和工作、將工作映射到節點內部等等。圖示如下:
監控帶寬
復制代碼
代碼如下:
$ apt-get install slurm
它會用字符來顯示文本圖形。
例如:
復制代碼
代碼如下:
$ slurm -i
$ slurm -i eth1
選項
按 l 顯示 lx/tx 指示燈.
按 c 切換到經典模式.
按 r 刷新屏幕.
按 q 退出.
控制節點
在控制節點和計算結點分別安裝 slurm 包,這個包裡面既含有控制節點需要的 slurmctld 也含有計算結點需要的 slurmd:
復制代碼
代碼如下:
# apt-get install slurm-llnl
控制節點和計算結點之間需要通信,通信就需要認證,slurm 支持兩種認證方式:Brent Chun’s 的 authd 和 LLNL 的 MUNGE,MUNGE 是專為高性能集群計算打造的,這裡我們選用 MUNGE,生成 key 後啟動 munge 認證服務:
復制代碼
代碼如下:
# /usr/sbin/create-munge-key
Generating a pseudo-random key using /dev/urandom completed.
# /etc/init.d/munge start
使用 SLURM Version 2.3 Configuration Tool 在線配置工具生成配置文件,然後把配置文件拷貝控制節點以及各個計算結點的 /etc/slurm-llnl/slurm.conf(是的,控制節點和計算結點使用同一個配置文件)。
有了配置文件和啟動了 munge 服務後就可以在控制節點啟動 slurmctld 服務了:
復制代碼
代碼如下:
# /etc/init.d/slurm-llnl start
* Starting slurm central management daemon slurmctld [ OK ]
把控制節點生成的 munge.key 拷貝到各個計算結點:
復制代碼
代碼如下:
# scp /etc/munge/munge.key ubuntu@slurm01:/etc/munge/
登陸計算節點後啟動 munge 服務(注意需要改變 munge.key 的 owner 和 group 為 munge,否則會啟動失敗)和 slurmd 服務:
復制代碼
代碼如下:
# ssh ubuntu@slurm01
# chown munge:munge munge.key
# /etc/init.d/munge start
* Starting MUNGE munged [ OK ]
# slurmd
在控制節點上(slurm00)測試一下是否順利連接到計算結點(slurm01),並且簡單運行一個程序 /bin/hostname 看看效果吧:
復制代碼
代碼如下:
# sinfo
PARTITION AVAIL TIMELIMIT NODES STATE NODELIST
debug* up infinite 1 idle slurm01
# srun -N1 /bin/hostname
slurm01