安装需求
- 基本硬件配置建议:
- CPU 4核或以上(LSF 没有最低 CPU 需求,此处只是建议)
- 内存 8G或以上( 当没有作业在运行时, Linux x86-64 上集群中的 LSF 守护程序将使用大约 488 MB 内存。)
- 交换空间通常配置为物理内存的两倍
- 节点硬件资源的高低,取决于集群运行作业的多少、作业类型(偏向于CPU、还是偏向于内存)
- LSF管理节点的配置要求,可以参考:Management host selection
- 操作系统要求: 官方正式支持的各种系统,常用为Linux系统。
- 配置共享存储。
- 用户统一管理, 提前设置好LSF管理用户(lsfadmin或者一个普通用户)。
- 集群需要时间同步。
- root用户可以免密从管理节点到其他节点运行ssh。 节点之间要求双向解析主机和IP。
软件包
# 源码下载链接:源码Gitee链接
#全部软件下载链接:百度网盘
包说明:
openlava.tar.gz 源码包
openlava-4.0-origin.tar configur文件的源码包
openlava-4.0-1.x86_64.rpm 生成的rpm包
安装配置流程
安装Openlava
源码安装
安装Server节点
(1)安装一下编译所需要的环境
[root@o-node1 ~]# yum -y install rpm-build rpmdevtools automake autoconf libtool tcl-devel ncurses-devel git
(2)解压安装包
[root@o-node1 ~]# tar xf openlava.tar.gz && cd openlava
(3)分别生成aclocal.m4和configure文件
如使用 openlava-4.0-origin.tar 软件包,无需此操作。
[root@o-node1 openlava]# aclocal && autoconf[root@o-node1 openlava]# autoreconf -i
其中生成的两个文件
aclocal.m4: 是由aclocal这个perl脚本程序自动生成的,而aclocal的定义是:"aclocal - create aclocal.m4 by scanning configure.ac"
configure:则是由autoconf根据GNU m4宏处理器处理aclocal.m4文件,生成的一个脚本。
# 配置configgure,加上prefix参数,配置安装路径,方便以后维护
# 请注意报错信息,如果缺少某些依赖需要安装才可以进行下一步
(4)源码编译安装
mkdir /data./configure --prefix=/data/openlava
# 如果发现报错,比如:
checking for Tcl_CreateInterp in -ltcl... nochecking for Tcl_CreateInterp in -ltcl8.6... nochecking for Tcl_CreateInterp in -ltcl86... nochecking for Tcl_CreateInterp in -ltcl8.5... nochecking for Tcl_CreateInterp in -ltcl85... nochecking for Tcl_CreateInterp in -ltcl8.4... nochecking for Tcl_CreateInterp in -ltcl84... nochecking for Tcl_CreateInterp in -ltcl8.3... nochecking for Tcl_CreateInterp in -ltcl83... nochecking for Tcl_CreateInterp in -ltcl8.2... nochecking for Tcl_CreateInterp in -ltcl82... nochecking for Tcl_CreateInterp in -ltcl8.1... nochecking for Tcl_CreateInterp in -ltcl81... nochecking for Tcl_CreateInterp in -ltcl8.0... nochecking for Tcl_CreateInterp in -ltcl80... noconfigure: error: cannot build openlava without tcl8.*
比如请下载完整的软件包
# 编译,make,这里的-j参数定义了使用线程数,这里是2线程
# 可以用下面的命令查看线程数
# grep 'processor' /proc/cpuinfo | sort -u | wc -lmake -j 2 # 安装make install
安装好后,可以查看之前在configure定义的prefix路径,即/data/openlava,里面会有make的二进制文件。
[root@o-node1 openlava]# cd /data/openlava/[root@o-node1 openlava]# ll总用量 8drwxr-xr-x 2 root root 4096 10月 12 11:42 bindrwxr-xr-x 2 root root 22 10月 12 11:42 etcdrwxr-xr-x 2 root root 52 10月 12 11:42 includedrwxr-xr-x 2 root root 4096 10月 12 11:42 libdrwxr-xr-x 2 root root 6 10月 12 11:42 logdrwxr-xr-x 2 root root 125 10月 12 11:42 sbindrwxr-xr-x 3 root root 17 10月 12 11:42 sharedrwxr-xr-x 3 root root 20 10月 12 11:42 work
(5)拷贝配置文件
以及源码中的config/配置文件。
这里的安装路径是/data/openlava/,源代码解压的路径是~/openlava/
需要将这些文件进行cp或者ln -s软连接也可以。
可以cp:
cp -rf ~/openlava/config/* /data/openlava/etc/cp -rf /data/openlava/etc/openlava /etc/init.d/cp -rf /data/openlava/etc/openlava.sh /etc/profile.d/cp -rf /data/openlava/etc/openlava.csh /etc/profile.d/
也可以ln -s:
cp -rf ~/openlava-4.0/config/* /data/openlava/etc/ln -s /data/openlava/etc/openlava /etc/init.d/ln -s /data/openlava/etc/openlava.sh /etc/profile.d/ln -s /data/openlava/etc/openlava.csh /etc/profile.d/
rpm包安装Openlava
(1)源码生成rpm包
注:Package里的rpm可以直接使用,此步骤可以跳过
安装依赖
[root@o-node1 ~]# yum -y install rpm-build rpmdevtools automake autoconf libtool tcl-devel ncurses-devel git
解压安装包
[root@o-node1 ~]# tar xf openlava.tar.gz && cd openlava
修改版本
注:如果不修改版本,安装后版本是3.1,需要修改安装目录的路径才能正常使用
[root@o-node1 openlava]# vi rpm.shmajor="4"minor="0"[root@openlava openlava]# vi spec/openlava.spec%define major 4%define minor 0%define release 1 # 这是软件包的版本......Prefix: /opt # 默认的安装路径
(2)执行rpm.sh脚本
[root@o-node1 openlava]# ./rpm.sh
注:生成的rpm包在:/root/rpmbuild/RPMS/x86_64/openlava-4.0-1.x86_64.rpm
通过rpm包安装
注:默认安装路径是/opt/openlava-4.0
[root@o-node1 ~]# yum -y localinstall openlava-4.0-1.x86_64.rpm
配置用户和主机
添加openlava系统服务账号
使用openlava的所有服务器,都应当有该user和usergroup,所有openlava用户的id必须相同
可以通过指定id,在本地创建;也可以通过nis共享创建。
存在/data/openlava/etc/lsf.cluster.<用户名>文件,以openlava用户为例,即对应的配置文件为/data/openlava/etc/lsf.cluster.openlava。
# 创建用户和组,名称:openlava
[root@o-node1 ~]# useradd openlava
#或
[root@o-node1 ~]# groupadd -g 2000 --system openlava[root@o-node1 ~]# useradd --system -u 2000 -g openlava -d /usr/lib/openlava -s /sbin/nologin openlava
设置目录权限
[root@o-node1 ~]# chown -R openlava:openlava /data/openlava/
添加主机
修改配置
[root@o-node1 openlava-4.0]# vim /data/openlava/etc/lsf.cluster.openlavaBegin ClusterAdminsAdministrators = openlavaEnd ClusterAdminsBegin HostHOSTNAME model type server r1m RESOURCES# yourhost IntelI5 linux 1 3.5 (cs)o-node1 IntelI5 linux 1 3.5 (cs)# 加了主机后才能执行lsadmin limstartup等命令。End Host
服务管理
启动服务
启动、查看、停止openlava进程:
[root@o-node1 ~]# /data/openlava/etc/openlavaScript for starting up and shutting down openlavaUsage: /data/openlava/etc/openlava { start | stop | status | restart }[root@o-node1 ~]# /data/openlava/etc/openlava start
[root@o-node1 ~]# /data/openlava/etc/openlava statuslim pid: <992>res pid: <997>sbatchd pid: <1003>mbatchd: <1014>
管理节点会显示上述四个进程,计算节点只有三个,没有mbatchd进程
source环境变量
设置环境变量,如果退出terminal重新terminal忽略此步
[root@o-node1 openlava-4.0]# source /data/openlava/etc/openlava.sh
设置开机自启动
chkconfig openlava onchkconfig --list openlavaopenlava 0:off 1:off 2:on 3:on 4:on 5:on 6:off
使用systemd管理openlava服务
新增/usr/lib/systemd/system/openlava.service,并添加以下内容:
[Unit]Description=openlavaWants=network-online.targetAfter=network.target[Service]Type=simpleRemainAfterExit=yesRestart=on-failureRestartSec=5sExecStart=/usr/bin/bash /data/openlava/etc/openlava startExecReload=/usr/bin/bash /data/openlava/etc/openlava restartExecStop=/usr/bin/bash /data/openlava/etc/openlava stopKillMode=noneLimitMEMLOCK=infinityDelegate=yes[Install]WantedBy=multi-user.target[Unit]Description=openlavaWants=network-online.targetAfter=network.target
使用方法:
systemctl daemon-reloadsystemctl enable openlavasystemctl start openlava
测试
[openlava@o-node1 ~]$ source /data/openlava/etc/openlava.sh[openlava@o-node1 ~]$ bsub sleep 100Job <101> is submitted to default queue <normal>.[openlava@o-node1 ~]$ bhostsHOST_NAME STATUS JL/U MAX NJOBS RUN SSUSP USUSP RSVo-node1 closed - 1 1 1 0 0 0[openlava@o-node1 ~]$ bjobs -u allJOBID USER STAT QUEUE FROM_HOST EXEC_HOST JOB_NAME SUBMIT_TIME101 openlav RUN normal o-node1 o-node1 sleep 100 Oct 12 15:03
安装Slave节点
slave作为从节点也需要安装openlava,其中lsf.cluster.openlava要保持一致,注意/etc/hosts也需要配置正确!
一般情况有三种方法:
Slave也和Server一样配置安装openlava(经历make等过程);
也可以直拷贝Slave编译好的二进制文件,如果有lib文件缺失copy一下;
或者使用NFS来同名挂载,如果有lib文件缺失copy一下。(按理来说这个最推荐的,但是因为之前有介绍过nfs了,这次就使用copy大法)
拷贝二进制文件
本次以第二种情况为例子:拷贝已经Server编译好软件包的全部,包括配置文件。
scp -r -P 22 /data/openlava root@192.168.2.87:/data/openlava
在slave这里启动openlava。
# 在slave安装路径运行,因为没有连接到/etc/init.d/,所以还是就只好在绝对路径中执行了
/data/openlava/etc/openlava start
# 在server中重载
badmin reconfiglsadmin reconfig
[root@o-node2 ~]# /data/openlava/bin/bhostsHOST_NAME STATUS JL/U MAX NJOBS RUN SSUSP USUSP RSVserver_149 ok - 2 0 0 0 0 0
如果报错请查看是不是少了什么文件,从server在copy过来。
[root@o-node2 ~]# /data/openlava/etc/openlava startStarting daemons.../data/openlava/sbin/lim: error while loading shared libraries: libtcl8.5.so: cannot open shared object file: No such file or directorylim started/data/openlava/sbin/res: error while loading shared libraries: libtcl8.5.so: cannot open shared object file: No such file or directoryres started/data/openlava/sbin/sbatchd: error while loading shared libraries: libtcl8.5.so: cannot open shared object file: No such file or directorysbatchd started
因为我们缺少必要的libtcl8.5.so。用Find在Server查找一下,再cpoy到Slave。
[root@o-node1 ~]# find / -name libtcl8.5.sofind: ‘/run/user/0/gvfs’: Transport endpoint is not connectedfind: ‘/run/user/1000/gvfs’: Permission denied/usr/lib64/libtcl8.5.so[root@o-node1 ~]# scp -P 22 /usr/lib64/libtcl8.5.so root@o-node2:/usr/lib64/libtcl8.5.so 100% 1213KB 22.7MB/s 00:00
再两边restart一下就可以了。
# Server和Slave
/data/openlava/etc/openlava restart
# 如果有配置文件修改,请更新一下配置
badmin reconfiglsadmin reconfig
配置共享
配置o-node1
[root@o-node1 openlava]# yum -y install nfs-utils[root@o-node1 openlava]# echo "/data *(rw,sync,no_root_squash)" >> /etc/exports[root@o-node1 openlava]# systemctl restart nfs-server[root@o-node1 openlava]# showmount -e localhostExport list for localhost:/data *
配置o-node2
[root@o-node2 openlava]# yum -y install nfs-utils[root@o-node2 ~]# echo "192.168.253.133:/data /data nfs defaults 0 0" >> /etc/fstab[root@o-node2 ~]# mount -a[root@o-node2 data]# cd /data/openlava/etc[root@o-node2 openlava]# cd etc/[root@o-node2 etc]# source openlava.sh[root@test01 conf]# echo "LSF_RSH=ssh" >> lsf.conf[root@test01 conf]# lsfstartup
添加一台新主机到集群需要配置
(1)新主机安装依赖包:yum install -y tcl-devel ncurses-devel
(2)新主机通过NFS将openlava安装目录、users主目录 挂载到集群中
(3)新主机通过NIS将user同步到服务器
(4)新主机yum -y install psmisc
(5)新主机拷贝/data/softwares/openlava/etc/openlava到/etc/init.d/
(6)新主机,拷贝/data/softwares/openlava/etc/openlava.sh到/etc/profile.d/
(7)master主机的/etc/hosts 中添加 新主机的 ip hostname
(8)新主机的/etc/hosts 中添加 master主机的 ip hostname 和 新主机的 ip hostname
(9)集群中的 /etc/hosts 应当保持同步
(10)添加lsf主机,修改 /data/softwares/openlava/etc/lsf.cluster.openlava
(11)启动openlava,/etc/init.d/openlava start
(12)在OpenLava master服务器执行重载
badmin reconfig
lsadmin reconfig