• 源码安装Openlava 4.0


    安装需求

    • 基本硬件配置建议:
      • 节点硬件资源的高低,取决于集群运行作业的多少、作业类型(偏向于CPU、还是偏向于内存) 
      • CPU  4核或以上
      • 内存  8G或以上
      • 交换空间通常配置为物理内存的两倍
      • 管理节点的配置要求,可以参考:Management host selection
    • 操作系统要求: 官方正式支持的各种系统,常用为Linux系统。
    • 配置共享存储。
    • 用户统一管理, 提前设置好openlava管理用户。
    • 集群需要时间同步。
    • 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 软件包,无需此操作。

    1. [root@o-node1 openlava]# aclocal && autoconf
    2. [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)源码编译安装

    1. mkdir /data
    2. ./configure --prefix=/data/openlava

    # 如果发现报错,比如:

    1. checking for Tcl_CreateInterp in -ltcl... no
    2. checking for Tcl_CreateInterp in -ltcl8.6... no
    3. checking for Tcl_CreateInterp in -ltcl86... no
    4. checking for Tcl_CreateInterp in -ltcl8.5... no
    5. checking for Tcl_CreateInterp in -ltcl85... no
    6. checking for Tcl_CreateInterp in -ltcl8.4... no
    7. checking for Tcl_CreateInterp in -ltcl84... no
    8. checking for Tcl_CreateInterp in -ltcl8.3... no
    9. checking for Tcl_CreateInterp in -ltcl83... no
    10. checking for Tcl_CreateInterp in -ltcl8.2... no
    11. checking for Tcl_CreateInterp in -ltcl82... no
    12. checking for Tcl_CreateInterp in -ltcl8.1... no
    13. checking for Tcl_CreateInterp in -ltcl81... no
    14. checking for Tcl_CreateInterp in -ltcl8.0... no
    15. checking for Tcl_CreateInterp in -ltcl80... no
    16. configure: error: cannot build openlava without tcl8.*

    比如请下载完整的软件包

    # 编译,make,这里的-j参数定义了使用线程数,这里是2线程

    # 可以用下面的命令查看线程数

    1. # grep 'processor' /proc/cpuinfo | sort -u | wc -l
    2. make -j 2   # 安装
    3. make install

    安装好后,可以查看之前在configure定义的prefix路径,即/data/openlava,里面会有make的二进制文件。

    1. [root@o-node1 openlava]# cd /data/openlava/
    2. [root@o-node1 openlava]# ll
    3. 总用量 8
    4. drwxr-xr-x 2 root root 4096 10月 12 11:42 bin
    5. drwxr-xr-x 2 root root   22 10月 12 11:42 etc
    6. drwxr-xr-x 2 root root   52 10月 12 11:42 include
    7. drwxr-xr-x 2 root root 4096 10月 12 11:42 lib
    8. drwxr-xr-x 2 root root    6 10月 12 11:42 log
    9. drwxr-xr-x 2 root root  125 10月 12 11:42 sbin
    10. drwxr-xr-x 3 root root   17 10月 12 11:42 share
    11. drwxr-xr-x 3 root root   20 10月 12 11:42 work

    (5)拷贝配置文件

    以及源码中的config/配置文件。

    这里的安装路径是/data/openlava/,源代码解压的路径是~/openlava/

    需要将这些文件进行cp或者ln -s软连接也可以。

    可以cp:

    1. cp -rf ~/openlava/config/* /data/openlava/etc/
    2. cp -rf /data/openlava/etc/openlava  /etc/init.d/
    3. cp -rf /data/openlava/etc/openlava.sh /etc/profile.d/
    4. cp -rf /data/openlava/etc/openlava.csh /etc/profile.d/

    也可以ln -s:

    1. cp -rf ~/openlava-4.0/config/* /data/openlava/etc/
    2. ln -s /data/openlava/etc/openlava /etc/init.d/
    3. ln -s /data/openlava/etc/openlava.sh /etc/profile.d/
    4. 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,需要修改安装目录的路径才能正常使用

    1. [root@o-node1 openlava]# vi rpm.sh
    2. major="4"
    3. minor="0"
    4. [root@openlava openlava]# vi spec/openlava.spec
    5. %define major 4
    6. %define minor 0
    7. %define release 1   # 这是软件包的版本
    8. ......
    9. 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

    #或

    1. [root@o-node1 ~]# groupadd -g 2000 --system openlava
    2. [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/

    添加主机

    修改配置

    1. [root@o-node1 openlava-4.0]# vim  /data/openlava/etc/lsf.cluster.openlava
    2. Begin   ClusterAdmins
    3. Administrators = openlava
    4. End    ClusterAdmins
    5. Begin   Host
    6. HOSTNAME          model          type  server  r1m  RESOURCES
    7. # yourhost                  IntelI5      linux   1      3.5    (cs)
    8. o-node1                  IntelI5      linux   1      3.5    (cs)
    9. # 加了主机后才能执行lsadmin limstartup等命令。
    10. End     Host

    服务管理

    启动服务

    启动、查看、停止openlava进程:

    1. [root@o-node1 ~]# /data/openlava/etc/openlava
    2. Script for starting up and shutting down openlava
    3. Usage: /data/openlava/etc/openlava { start | stop | status | restart }
    4. [root@o-node1 ~]# /data/openlava/etc/openlava start
    5. [root@o-node1 ~]# /data/openlava/etc/openlava status
    6. lim pid: <992>
    7. res pid: <997>
    8. sbatchd pid: <1003>
    9. mbatchd: <1014>

    管理节点会显示上述四个进程,计算节点只有三个,没有mbatchd进程

    source环境变量

    设置环境变量,如果退出terminal重新terminal忽略此步

    [root@o-node1 openlava-4.0]# source /data/openlava/etc/openlava.sh

    设置开机自启动

    1. chkconfig openlava on
    2. chkconfig --list openlava
    3. openlava 0:off 1:off 2:on 3:on 4:on 5:on 6:off

    使用systemd管理openlava服务

    新增/usr/lib/systemd/system/openlava.service,并添加以下内容:

    1. [Unit]
    2. Description=openlava
    3. Wants=network-online.target
    4. After=network.target
    5. [Service]
    6. Type=simple
    7. RemainAfterExit=yes
    8. Restart=on-failure
    9. RestartSec=5s
    10. ExecStart=/usr/bin/bash /data/openlava/etc/openlava start
    11. ExecReload=/usr/bin/bash /data/openlava/etc/openlava restart
    12. ExecStop=/usr/bin/bash /data/openlava/etc/openlava stop
    13. KillMode=none
    14. LimitMEMLOCK=infinity
    15. Delegate=yes
    16. [Install]
    17. WantedBy=multi-user.target
    18. [Unit]
    19. Description=openlava
    20. Wants=network-online.target
    21. After=network.target

    使用方法:

    1. systemctl daemon-reload
    2. systemctl enable openlava
    3. systemctl start openlava

    测试

    1. [openlava@o-node1 ~]$ source /data/openlava/etc/openlava.sh
    2. [openlava@o-node1 ~]$ bsub sleep 100
    3. Job <101> is submitted to default queue .
    4. [openlava@o-node1 ~]$ bhosts
    5. HOST_NAME          STATUS       JL/U    MAX  NJOBS    RUN  SSUSP  USUSP    RSV
    6. o-node1            closed          -      1      1      1      0      0      0
    7. [openlava@o-node1 ~]$ bjobs -u all
    8. JOBID   USER    STAT  QUEUE      FROM_HOST   EXEC_HOST   JOB_NAME   SUBMIT_TIME
    9. 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 root@192.168.2.87:/data/openlava

    在slave这里启动openlava。

    # 在slave安装路径运行,因为没有连接到/etc/init.d/,所以还是就只好在绝对路径中执行了

    /data/openlava/etc/openlava start  

    # 在server中重载

    1. badmin reconfig
    2. lsadmin reconfig
    1. [root@o-node2 ~]# /data/openlava/bin/bhosts
    2. HOST_NAME          STATUS       JL/U    MAX  NJOBS    RUN  SSUSP  USUSP    RSV
    3. server_149         ok              -      2      0      0      0      0      0

    如果报错请查看是不是少了什么文件,从server在copy过来。

    1. [root@o-node2 ~]# /data/openlava/etc/openlava start
    2. Starting daemons...
    3. /data/openlava/sbin/lim: error while loading shared libraries: libtcl8.5.so: cannot open shared object file: No such file or directory
    4. lim started
    5. /data/openlava/sbin/res: error while loading shared libraries: libtcl8.5.so: cannot open shared object file: No such file or directory
    6. res started
    7. /data/openlava/sbin/sbatchd: error while loading shared libraries: libtcl8.5.so: cannot open shared object file: No such file or directory
    8. sbatchd started

    因为我们缺少必要的libtcl8.5.so。用Find在Server查找一下,再cpoy到Slave。

    1. [root@o-node1 ~]# find / -name libtcl8.5.so
    2. find: ‘/run/user/0/gvfs’: Transport endpoint is not connected
    3. find: ‘/run/user/1000/gvfs’: Permission denied
    4. /usr/lib64/libtcl8.5.so
    5. [root@o-node1 ~]# scp -P 22 /usr/lib64/libtcl8.5.so root@o-node2:/usr/lib64/
    6. libtcl8.5.so                                            100% 1213KB  22.7MB/s   00:00

    再两边restart一下就可以了。

    # Server和Slave

    /data/openlava/etc/openlava restart

    # 如果有配置文件修改,请更新一下配置

    1. badmin reconfig
    2. lsadmin reconfig

    配置共享

    配置Server

    1. [root@o-node1 openlava]# yum -y install nfs-utils
    2. [root@o-node1 openlava]# echo "/data *(rw,sync,no_root_squash)" >> /etc/exports
    3. [root@o-node1 openlava]#  systemctl restart nfs-server
    4. [root@o-node1 openlava]# showmount -e localhost
    5. Export list for localhost:
    6. /data *

    配置Slave

    1. [root@o-node2 openlava]# yum -y install nfs-utils
    2. [root@o-node2 ~]# echo "192.168.253.133:/data /data  nfs defaults 0 0" >> /etc/fstab
    3. [root@o-node2 ~]# mount -a
    4. [root@o-node2 data]# cd /data/openlava/etc
    5. [root@o-node2 openlava]# cd etc/
    6. [root@o-node2 etc]# source openlava.sh
    7. [root@test01 conf]# echo "LSF_RSH=ssh"  >> lsf.conf
    8. [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

  • 相关阅读:
    ARM体系结构
    2020年下半年~2022下半年下午题易错总结
    一篇文章带你弄懂Kerberos的设计思路
    git merge 如何撤销
    22071.11.28
    运维理想和现实,你是?
    计算机毕业设计Java大型商场应急预案管理系统(源码+系统+mysql数据库+lw文档)
    管理集群工具之LVS
    darknet 训练分类网络
    干货!《阿里云可观测技术峰会演讲实录合辑》重磅发布
  • 原文地址:https://blog.csdn.net/Blueberry521/article/details/133946710