源码安装Openlava 4.0

安装需求

  • 基本硬件配置建议:
  • 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... 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/

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.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系统服务账号

使用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进程

source环境变量

设置环境变量,如果退出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

使用systemd管理openlava服务

新增/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节点

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

你可能感兴趣的:(Openlava,Openlava)