Slurm任務調度系統部署和測試(源碼)(1)


1. 概述

slurm任務調度系統,主要應用在HPC集群資源管理和任務調度。具體信息參見slurm官方網站:https://slurm.schedmd.com/
部署Slurm任務調度系統,需要部署NTP內網時間同步服務器,LDAP全局認證服務器,Mysql數據庫服務器
本篇博客主要記錄如何部署和使用slurm任務調度系統。

1.1 節點信息

節點主機名 操作系統 主機地址 主機角色
node11 centos6.5_x86_64 192.168.10.11 主控制器
node12 centos6.5_x86_64 192.168.10.12 備控制器
node13 centos6.5_x86_64 192.168.10.13 數據存儲主控制器
node14 centos6.5_x86_64 192.168.10.14 數據存儲備控制器
node15 centos6.5_x86_64 192.168.10.15 MySQL數據庫服務器

2. 節點准備

本篇博客的節點,均有已經部署好NTP和LDAP服務客戶端的node11克隆,減少部署過程的繁瑣。
KVM克隆虛擬機,參見博客《KVM虛擬機管理——虛擬機克隆.md
博客園地址:https://www.cnblogs.com/liwanliangblog/p/9193910.html
根據博客內容指導,很容易克隆出其他幾台虛擬機,提供slurm任務調度環境部署和測試。

3. 部署NTP服務器

筆記內鏈:《NTP服務部署和測試.md
博客園地址:https://www.cnblogs.com/liwanliangblog/p/9194004.html
NTP時間服務器部署完成之后,需要同步各個節點的時間。

注:對於節點的NTP同步,可以采用pdsh並行工具完成
pdsh並行工具安裝和使用,參見筆記內鏈:《並行管理工具——pdsh.md
博客園地址:https://www.cnblogs.com/liwanliangblog/p/9194146.html

4. 部署LDAP服務器

筆記內鏈:《LDAP-openldap服務部署和測試(YUM安裝).md
博客園地址:https://www.cnblogs.com/liwanliangblog/p/9193916.html

5. 部署Munge認證服務

筆記內鏈:《MUNGE服務部署和測試.md
博客園地址:https://www.cnblogs.com/liwanliangblog/p/9194032.html

6. 部署Mysql數據庫服務

本篇博客在node15上安裝MySQL數據庫
筆記內鏈:《MySQL數據庫服務器(YUM)安裝.md
博客園:https://www.cnblogs.com/liwanliangblog/p/9194704.html

7. 部署slurm

7.1 創建slurm用戶

需要創建slurmadmin全局用戶,用於運行slucrmctld和slurmdbd;
slurmd因為負責節點的狀態,因此需要root權限,不需要創建;
同樣在LDAP中創建slurmadmin用戶
參見博客:《LDAP-openldap服務部署和測試(YUM安裝).md
博客園地址:https://www.cnblogs.com/liwanliangblog/p/9193916.html

7.2 掛載全局文件系統

在前面的博客中提到,把虛擬機console的/usr/local,作為全局共享目錄,通過NFS文件系統實現共享。
在虛擬機console上,需要啟動NFS共享。編輯/etc/exports,內容如下圖所示:

執行命令:exportfs -r,使得配置的內容生效,通過"exportfs"查看配置是否生效
執行命令:pdsh -a "yum -y install nfs-utils rpcbind",安裝掛載NFS需要的軟件包
執行命令:pdsh -a "service rpcbind start",開啟rpcbind服務,否則掛載會報錯
執行命令:pdsh -a "mount -t nfs 192.168.10.8:/usr/local /usr/local",對節點進行NFS文件系統掛載
執行命令:pdsh -a "df -h | grep -w local",對掛載情況進行檢查

7.3 slurm下載

從slurm官方網站下載最新版本slurm,下載地址為:https://www.schedmd.com/downloads.php
本篇博客主要部署兩個版本

  • slurm-16.05.3.tar.gz 該版本已經被官網廢棄,本篇博客因為工作需要繼續使用
  • slurm-17.11.7.tar.bz2 截至博客更新時的最新版本

7.4 編譯安裝

因為規划在node15上部署了MySQL數據庫(虛擬機console並未部署MySQL),而在編譯slurm時,需要使用到mysql_config,因此需要在node15上進行編譯
將slurm-16.05.3.tar.gz拷貝至node15,然后解壓,編譯,安裝

  1. 解壓
    執行命令:tar -zxvf slurm-16.05.3.tar.gz -C /tmp
  2. YUM安裝依賴環境
    執行命令:yum -y install libgnomeui-devel readline-devel curl-devel
  3. 進入目錄,配置configure
    執行以下命令:
    ./configure \
    --prefix=/usr/local/globle/softs/slurm/16.05.3 \
    --sysconfdir=/usr/local/globle/softs/slurm/16.05.3/etc \
    --localstatedir=/var  \
    --enable-pam \
    --enable-memory-leak-debug \
    --enable-front-end --enable-salloc-kill-cmd \
    --enable-simulator \
    --enable-multiple-slurmd \
    --with-pam_dir=/lib64 \
    --with-zlib \
    --with-rrdtool \
    --with-mysql_config=/usr/lib64/mysql/ \
    --with-munge=/usr/local/globle/softs/munge/0.5.12/ \
    --with-ssl \
    --with-libcurl    
    注:上述部分--with選項,實際並沒有編譯。通過查看config.log的WARNING可以確認是否安裝。mysql_config指定的是mysql_config的路徑,而非文件
  4. 編譯安裝
    執行命令make進行編譯,執行命令make install進行安裝
  5. 創建配置文件目錄
    上述過程完成后,可以在/usr/local/globle/softs/slurm下查看已經安裝的目錄,但是此時該目錄下並沒有etc,log,state等目錄,因此需要手動創建
    執行命令:mkdir etc log state
    修改目錄屬性:chmod 777 log
  6. 拷貝配置文件模板
    在源碼目錄下的etc目錄中,存放着配置文件的模板文件
    執行命令:cp slurm.conf.example cgroup.conf.example slurmdbd.conf.example /usr/local/globle/softs/slurm/16.05.3/etc/

8. slurm配置

詳細的配置文件參數詳解,參見官方提供的文檔:https://slurm.schedmd.com/slurm.conf.html

8.1 配置slurm.conf

編輯slurm集群主配置文件:/usr/local/globle/softs/slurm/16.05.3/etc/slurm.conf
筆記內鏈:《slurm.conf系統初始配置.md
博客園地址:https://www.cnblogs.com/liwanliangblog/p/9201624.html

8.2 配置slurmdbd.conf

編輯slurm集群數據庫主配置文件:/usr/local/globle/softs/slurm/16.05.3/etc/slurmdbd.conf
筆記內鏈:《slurmdbd.conf系統初始配置.md
博客園地址:https://www.cnblogs.com/liwanliangblog/p/9201634.html

8.3 配置cgroup.conf

編輯slurm集群cgroup機制配置文件:/usr/local/globle/softs/slurm/16.05.3/etc/cgroup.conf
筆記內鏈:《cgroup.conf系統初始配置.md
博客園地址:https://www.cnblogs.com/liwanliangblog/p/9201639.html

8.4 配置數據庫和測試

本篇博客前面部分已經在虛擬機node15上創建了MySQL數據庫。

8.4.1 node15創建數據庫並授權

在node15上,執行:mysql -uroot -p,輸入密碼進入數據庫系統
創建數據庫:create database slurm_acct_db;
授權node13訪問:grant all privileges on slurm_acct_db.* to 'slurmadmin'@'192.168.80.13' identified by 'liwanliang';
授權node14訪問:grant all privileges on slurm_acct_db.* to 'slurmadmin'@'192.168.80.14' identified by 'liwanliang';
刷新授權表:flush privileges;

8.4.2 測試連接

在node13和node14節點,分別進行MySQL數據庫的連接。這要求node13和node14必須安裝了mysql軟件包。
在node13和node14上,分別執行:rpm - qa |grep mysql查看是否安裝mysql軟件包。若未安裝,執行:yum -y install mysql安裝
在node14和node14上,分別執行:mysql -h 192.168.80.15 -uslurmadmin -p,輸入密碼進行數據庫連接測試。
進入數據庫之后,執行:show databases;查看是否存在slurm_acct_db數據庫,驗證數據庫授權是否正確。

9. slurm啟動

9.1 啟動數據庫存儲服務slurmdbd

可以采用slurmdbd -vvvvDDDD,進行調試啟動,查看是否啟動過程中有無錯誤。若無錯誤,可以以絕對路徑的方式啟動進程。
slurmdbd存在主備節點,node13作為slurmdbd主節點。若配置文件中未配置slurmdbd的備份節點,則在node14上無法啟動slurmdbd。
如需啟動,需要修改配置文件。
注:在線使用過程中,如果修改了slurmdbd.conf配置,可以通過sacctmgr reconfig重新加載配置文件。前提是配置文件不能夠出現錯誤,否則會造成當前在線的服務over

9.2 注冊集群信息

在啟動控制器slurmctld之前,需要將slurm.conf中配置的slurm集群名稱添加到數據庫中。
否則會在啟動slurmctld時,提示未注冊集群。
執行命令:/usr/local/globle/softs/slurm/16.05.3/bin/sacctmgr add cluster myslurm,根據提示輸入y即可在slurmdbd中,注冊集群名稱
驗證。執行命令:/usr/local/globle/softs/slurm/16.05.3/bin/sacctmgr show cluster,即可查看當前注冊的slurm集群信息。

9.3 啟動控制器slurmctld

在節點node11上,執行命令:slurmctld -vvvvDDDD,進行調試啟動,查看啟動過程中是否存在錯誤,若無錯誤,則可以后台啟動。
在節點node12上,執行同樣的命令,即可啟動slurmctld的備份控制器。具體使用和測試,參見《Slurm任務調度系統部署和測試(源碼)(2).md》。
注:在線使用過程中,如果修改了slurmctld.conf配置,可以通過scontrol reconfig重新加載配置文件。前提是配置文件不能夠出現錯誤,否則會造成當前在線的服務over

10. 錯誤及解決

10.1 未安裝編譯器

如下圖提示,執行命令:yum -y install gcc gcc-c++ automake autoconf

10.2 未發現PAM庫路徑

如下圖提示,執行命令:find / -name libpam.so*,可確認系統中是否存在pam庫,並且能夠確認路徑,然后在configure配置的--with-pam_dir=/lib64

10.3 啟動slurmdbd日志報錯

在交互式調式結束后,結束slurmdbd進程。然后直接啟動時,從slurmdbd的日志報錯如下圖所示:

10.4 節點狀態DOWN

在完全配置成功之后,節點啟動了slurmd,但是通過sinfo看到的節點狀態始終為down。同步了節點時間,關閉節點防火牆和selinux均為解決問題。
最后通過查閱官方的FAQ,詳細的FAQ地址:https://slurm.schedmd.com/faq.html。最后把slurm.conf中的ReturnToService=0改為ReturnToService=2解決

<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM