# 源码下载链接:源码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 root@192.168.2.87:/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
配置Server
- [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 *
配置Slave
- [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