# 源码下载链接:源码Gitee链接
#全部软件下载链接:百度网盘
包说明:
openlava.tar.gz 源码包
openlava-4.0-origin.tar configur文件的源码包
openlava-4.0-1.x86_64.rpm 生成的rpm包
安装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... no
checking for Tcl_CreateInterp in -ltcl8.6... no
checking for Tcl_CreateInterp in -ltcl86... no
checking for Tcl_CreateInterp in -ltcl8.5... no
checking for Tcl_CreateInterp in -ltcl85... no
checking for Tcl_CreateInterp in -ltcl8.4... no
checking for Tcl_CreateInterp in -ltcl84... no
checking for Tcl_CreateInterp in -ltcl8.3... no
checking for Tcl_CreateInterp in -ltcl83... no
checking for Tcl_CreateInterp in -ltcl8.2... no
checking for Tcl_CreateInterp in -ltcl82... no
checking for Tcl_CreateInterp in -ltcl8.1... no
checking for Tcl_CreateInterp in -ltcl81... no
checking for Tcl_CreateInterp in -ltcl8.0... no
checking for Tcl_CreateInterp in -ltcl80... no
configure: error: cannot build openlava without tcl8.*
比如请下载完整的软件包
# 编译,make,这里的-j参数定义了使用线程数,这里是2线程
# 可以用下面的命令查看线程数
# grep 'processor' /proc/cpuinfo | sort -u | wc -l
make -j 2 # 安装
make install
安装好后,可以查看之前在configure定义的prefix路径,即/data/openlava,里面会有make的二进制文件。
[root@o-node1 openlava]# cd /data/openlava/
[root@o-node1 openlava]# ll
总用量 8
drwxr-xr-x 2 root root 4096 10月 12 11:42 bin
drwxr-xr-x 2 root root 22 10月 12 11:42 etc
drwxr-xr-x 2 root root 52 10月 12 11:42 include
drwxr-xr-x 2 root root 4096 10月 12 11:42 lib
drwxr-xr-x 2 root root 6 10月 12 11:42 log
drwxr-xr-x 2 root root 125 10月 12 11:42 sbin
drwxr-xr-x 3 root root 17 10月 12 11:42 share
drwxr-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/
(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.sh
major="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的所有服务器,都应当有该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.openlava
Begin ClusterAdmins
Administrators = openlava
End ClusterAdmins
Begin Host
HOSTNAME 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/openlava
Script for starting up and shutting down openlava
Usage: /data/openlava/etc/openlava { start | stop | status | restart }
[root@o-node1 ~]# /data/openlava/etc/openlava start
[root@o-node1 ~]# /data/openlava/etc/openlava status
lim pid: <992>
res pid: <997>
sbatchd pid: <1003>
mbatchd: <1014>
管理节点会显示上述四个进程,计算节点只有三个,没有mbatchd进程
设置环境变量,如果退出terminal重新terminal忽略此步
[root@o-node1 openlava-4.0]# source /data/openlava/etc/openlava.sh
chkconfig openlava on
chkconfig --list openlava
openlava 0:off 1:off 2:on 3:on 4:on 5:on 6:off
新增/usr/lib/systemd/system/openlava.service,并添加以下内容:
[Unit]
Description=openlava
Wants=network-online.target
After=network.target
[Service]
Type=simple
RemainAfterExit=yes
Restart=on-failure
RestartSec=5s
ExecStart=/usr/bin/bash /data/openlava/etc/openlava start
ExecReload=/usr/bin/bash /data/openlava/etc/openlava restart
ExecStop=/usr/bin/bash /data/openlava/etc/openlava stop
KillMode=none
LimitMEMLOCK=infinity
Delegate=yes
[Install]
WantedBy=multi-user.target
[Unit]
Description=openlava
Wants=network-online.target
After=network.target
使用方法:
systemctl daemon-reload
systemctl enable openlava
systemctl start openlava
[openlava@o-node1 ~]$ source /data/openlava/etc/openlava.sh
[openlava@o-node1 ~]$ bsub sleep 100
Job <101> is submitted to default queue .
[openlava@o-node1 ~]$ bhosts
HOST_NAME STATUS JL/U MAX NJOBS RUN SSUSP USUSP RSV
o-node1 closed - 1 1 1 0 0 0
[openlava@o-node1 ~]$ bjobs -u all
JOBID USER STAT QUEUE FROM_HOST EXEC_HOST JOB_NAME SUBMIT_TIME
101 openlav RUN normal o-node1 o-node1 sleep 100 Oct 12 15:03
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 [email protected]:/data/openlava
在slave这里启动openlava。
# 在slave安装路径运行,因为没有连接到/etc/init.d/,所以还是就只好在绝对路径中执行了
/data/openlava/etc/openlava start
# 在server中重载
badmin reconfig
lsadmin reconfig
[root@o-node2 ~]# /data/openlava/bin/bhosts
HOST_NAME STATUS JL/U MAX NJOBS RUN SSUSP USUSP RSV
server_149 ok - 2 0 0 0 0 0
如果报错请查看是不是少了什么文件,从server在copy过来。
[root@o-node2 ~]# /data/openlava/etc/openlava start
Starting daemons...
/data/openlava/sbin/lim: error while loading shared libraries: libtcl8.5.so: cannot open shared object file: No such file or directory
lim started
/data/openlava/sbin/res: error while loading shared libraries: libtcl8.5.so: cannot open shared object file: No such file or directory
res started
/data/openlava/sbin/sbatchd: error while loading shared libraries: libtcl8.5.so: cannot open shared object file: No such file or directory
sbatchd started
因为我们缺少必要的libtcl8.5.so。用Find在Server查找一下,再cpoy到Slave。
[root@o-node1 ~]# find / -name libtcl8.5.so
find: ‘/run/user/0/gvfs’: Transport endpoint is not connected
find: ‘/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 reconfig
lsadmin 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 localhost
Export 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