最近給實驗室的服務器集群安裝SGE,摸索了一天多,踩了好些坑,現在將其安裝和配置過程記錄下來,以免以后需要使用時又忘記了。
一、准備工作
1、關閉集群中所有節點的防火牆
#service iptables stop #chkconfig iptables off
(centos7中命令稍有不同)
2、關閉所有節點中的selinux
#vi /etc/selinux/config 設置 SELINUX=disabled
3、設置節點的機器名
假設共有三個節點master、node1、node2,分別在三個節點上進行設置
# vi /etc/sysconfig/network 設置 HOSTNAME=節點計算機名稱
4、設置hosts
在三個節點上均進行修改
#vi /etc/hosts 192.168.1.120 master.local master 192.168.1.130 node1.local node1 192.168.1.140 node2.local node2 第一列為各節點的IP,第二列是設置的節點的域名,第三列為節點機器名。看有些博主的博文,第二列沒有,有一些二三列的順序不同,本人沒有測試過結果是否有影響。
二、NIS安裝和配置
NIS是一種用戶管理服務,可以在主控節點上進行用戶和密碼管理,其他的節點有用戶登錄的需求時,才到這台服務器上請求相關的帳號密碼等使用者資料,而不需要在所有節點上都設置相同的用戶和密碼,極大方便了用戶的管理。在使用SGE進行任務管理時,用戶的任務可能會分配到其他節點運行,該節點如果不能識別該用戶,任務就無法運行,所以必須使用NIS
master節點安裝與配置
1、master安裝必須軟件
#yum install -y rpcbind yp-tools ypserv
2、master節點設置NIS域名
#nisdomainname life.com #vi /etc/rc.local 添加 nisdomainname life.com # vi /etc/sysconfig/network 添加 NISDOMAIN=life.com
3、master節點文件配置
#vi /etc/sysconfig/network 添加 YPSERV_ARGS="-p 1011" #vi /etc/sysconfig/yppasswdd 添加 YPPASSWDD_ARGS="--port 1012" #vi /etc/ypserv.conf 替換為: dns: no files: 30 xfr_check_port: yes * : * : shadow.byname : port * : * : passwd.adjunct.byname : port
4、master節點啟動服務並設置開機啟動
#service rpcbind start #service ypserv start #service yppasswdd start #chkconfig rpcbind on #chkconfig ypserv on #chkconfig yppasswdd on
5、master節點創建庫
#/usr/lib64/yp/ypinit -m
6、master更新NIS賬戶和資料庫
#make -C /var/yp
其余節點安裝與配置
1、軟件安裝和NIS域名設置,與master節點的安裝的步驟1和2完全相同
2、文件配置
#cat /etc/nsswitch.conf 設置: passwd: files nis shadow: files nis group: files nis hosts: files nis dns #cat /etc/sysconfig/authconfig 設置 USENIS=yes #cat /etc/pam.d/system-auth 設置 password sufficient pam_unix.so sha512 shadow nis nullok try_first_pass use_authtok #cat /etc/yp.conf 設置 domain life.com(這里為NIS域名) server 192.168.1.120(master節點的IP)
3、啟動NIS並設置開機啟動
#service rpcbind start #service ypbind start #chkconfig rpcbind on #chkconfig ypbind on
4、測試與master節點能否正常通訊
#yptest
5、回到master節點進行NIS賬戶同步
#/usr/lib64/yp/ypinit -m #make -C /var/yp #make -C /var/yp passwd
三、NFS安裝
NSF是一種文件共享服務,安裝NFS是為了方便SGE在不同節點的安裝,有了NFS后就不需要在每一個節點都下載一個SGE
NFS服務端
1、安裝軟件
#yum -y install nfs-utils
2、啟動NFS服務並設置開機啟動
#service nfs start #chkconfig nfs on
3、文件配置,設置共享目錄
#vi /etc/exports /SGE 192.168.1.120/24(insecure,rw,root_squash,async)
4、重啟rpcbind和NFS
#service rpcbind restart #service nfs restart
NFS客戶端
1、安裝軟件,啟動服務並設置開機啟動,與上述的服務端安裝步驟1和2完全相同
2、新建目錄 /SGE(最好與服務端的目錄完全相同,更加方便)、進行掛載
#mkdir /SGE #mount -t nfs 192.168.1.160:/SGE /SGE
如果掛載時出現該目錄忙的錯誤信息,說明你進入了該目錄,需要退出去才能掛載
3、查看是否掛載成功
#mount |grep /SGE
4、設置開機自動掛載
#vi /etc/fstab 添加 192.168.1.160:/SGE /SGE nfs defaults 0 0
四、SGE安裝和配置
master節點配置
1、安裝必須的軟件
#yum -y install epel-release jemalloc-devel openssl-devel ncurses-devel pam-devel libXmu-devel hwloc-devel hwloc hwloc-libs java-devel javacc ant-junit libdb-devel motif-devel csh ksh xterm db4-utils perl-XML-Simple perl-Env xorg-x11-fonts-ISO8859-1-100dpi xorg-x11-fonts-ISO8859-1-75dpi
2、下載SGE並解壓
#wget http://arc.liv.ac.uk/downloads/SGE/releases/8.1.9/sge-8.1.9.tar.gz #tar zxvf sge-8.1.9.tar.gz
3、安裝SGE
#cd sge-8.1.9/source/ #sh scripts/bootstrap.sh && ./aimk && ./aimk -man #export SGE_ROOT=/SGE/gridengine && mkdir $SGE_ROOT #./scripts/distinst -local -allall -libs -noexit
4、創建sgeadmin用戶和組,並設置權限
#groupadd -g 490 sgeadmin #useradd -u 495 -g 490 -r -m -c "SGE Admin" sgeadmin
#chown -R sgeadmin.sgeadmin /BiO/gridengine
5、配置sge_qmaster
#cd $SGE_ROOT #./install_qmaster
之后一直回車即可
#cp /SGE/gridengine/default/common/settings.sh /etc/profile.d/
#source /etc/profile.d/settings.sh
6、開啟任務調度信息收集
#vi /SGE/gridengine/default/common/sched_configuration
設置:
schedd_job_info true
7、啟動SGE管理
#/etc/init.d/sgemaster.xxx restart
xxx為安裝過程中設置的名稱
8、將master節點加入到運行節點中
#cd $SGE_ROOT #./install_execd
一直回車即可
#/etc/init.d/sgeexecd.xxx start
9、添加node1和node2節點
#qconf -ah node1 #qconf -ah node2
運行節點配置,以node1為例
1、創建sgeadmin用戶和組
#groupadd -g 490 sgeadmin #useradd -u 495 -g 490 -r -m -c "SGE Admin" sgeadmin
2、配置
#export SGE_ROOT=/SGE/gridengine #cd $SGE_ROOT #./install_execd
一直回車即可
#cp /SGE/gridengine/default/common/settings.sh /etc/profile.d/
#source /etc/profile.d/settings.sh
3、開啟運行節點
# /etc/init.d/sgeexecd.xxx start
問題:(1)如果配置sge管理節點時報PID錯誤,說明你多次配置了sge管理節點,進程被占用了,需要將該進程先結束掉,再進行管理節點的配置
(2)配置運行節點時遇到sge_shepherd won’t run – dynamic library missing?的情況。
#cd gridengine/bin/lx-amd64 #./sge_shepherd 此時會提示具體的問題,本人遇到問題的是缺少libhwloc.o.5庫,安裝即可,安裝完全后再進行運行節點配置 #yum install hwloc
#cd $SGE_ROOT
#./install_execd