最近给实验室的服务器集群安装SGE,摸索了一天多,踩了好些坑,现在将其安装和配置过程记录下来,以免以后需要使用时又忘记了。

一、准备工作

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

  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安装

  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

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄