最近给实验室的服务器集群安装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