源码安装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... 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/114274.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DDOS攻击的有效防护方式有哪些?

DDoS攻击简介&#xff1a; DDoS攻击&#xff0c;即分布式拒绝服务攻击&#xff08;Distributed Denial of Service&#xff09;&#xff0c;是一种网络攻击&#xff0c;旨在通过向目标服务器发送大量恶意请求&#xff0c;使服务器资源耗尽&#xff0c;无法满足合法用户的需求&a…

网络协议--ARP:地址解析协议

4.1 引言 本章我们要讨论的问题是只对TCP/IP协议簇有意义的IP地址。数据链路如以太网或令牌环网都有自己的寻址机制&#xff08;常常为48 bit地址&#xff09;&#xff0c;这是使用数据链路的任何网络层都必须遵从的。一个网络如以太网可以同时被不同的网络层使用。例如&#…

git创建与合并分支

文章目录 创建与合并分支分支管理的概念实际操作 解决冲突分支管理策略Bug分支Feature分支多人协作 创建与合并分支 分支管理的概念 分支在实际中有什么用呢&#xff1f;假设你准备开发一个新功能&#xff0c;但是需要两周才能完成&#xff0c;第一周你写了50%的代码&#xf…

shell的case选择

shell笔记 case语法结构 case语法结构 Caseesac语句与其他语言中的switch.case 语句类似&#xff0c;是一种多分支选择结构。case语句匹配一个值或一个模式&#xff0c;如果匹配成功&#xff0c;执行相匹配的命令。 case语法结构&#xff1a; case expr in #expr为表达式&am…

《动手学深度学习 Pytorch版》 9.6 编码器-解码器架构

为了处理这种长度可变的输入和输出&#xff0c; 可以设计一个包含两个主要组件的编码器-解码器&#xff08;encoder-decoder&#xff09;架构&#xff1a; 编码器&#xff08;encoder&#xff09;&#xff1a;它接受一个长度可变的序列作为输入&#xff0c;并将其转换为具有固定…

React +AntD + From组件重复提交数据(已解决)

开发场景&#xff1a; react Hooks andt 提交form表单内容给数据库(使用antd的form组件) 问题描述 提交是异步的&#xff0c;请提交方式是POST 方式 提交表单内容给后端&#xff0c;却产生了两次提交记录&#xff08;当然&#xff0c;数据新增了两条数据&#xff09;。可以…

基于WebRTC的程序因虚拟内存不足导致闪退问题的排查以及解决办法的研究

目录 1、WebRTC简介 2、问题现象描述 3、将Windbg附加到目标进程上分析 3.1、Windbg没有附加到主程序进程上&#xff0c;没有感知到异常或中断 3.2、Windbg感知到了中断&#xff0c;中断在DebugBreak函数调用上 3.3、32位进程用户态虚拟地址和内核态虚拟地址的划分 …

引用折叠、万能引用、右值引用、move、完美转发

大家好&#xff0c;我叫徐锦桐&#xff0c;个人博客地址为www.xujintong.com。平时记录一下学习计算机过程中获取的知识&#xff0c;还有日常折腾的经验&#xff0c;欢迎大家来访。 在写STL源码的时候遇到的问题&#xff0c;在这里写一篇笔记记录一下。 一、引用折叠 引用折叠…

分享5个解决msvcp140.dll丢失的方法,全面解析msvcp140.dll丢失的原因

一、MSVCP140.dll是什么&#xff1f; 首先&#xff0c;我们需要了解什么是MSVCP140.dll。MSVCP140.dll是一个动态链接库文件&#xff0c;它是Microsoft Visual C 2015 Redistributable的一部分。这个文件包含了运行使用C编写的应用程序所需的一些函数和类。因此&#xff0c;当…

【单元测试】--测试驱动开发(TDD)

一、什么是测试驱动开发 测试驱动开发&#xff08;Test-Driven Development&#xff0c;TDD&#xff09;是一种软件开发方法&#xff0c;其核心思想是在编写实际代码之前&#xff0c;首先编写测试用例。TDD 的主要步骤如下&#xff1a; 编写测试用例&#xff1a;首先&#xf…

MongoDB URL链接 如何设置账号密码

个人博客&#xff0c;求关注。。 MongoDB URL链接 如何设置账号密码 假设你的账号是root&#xff0c;你的密码也是root&#xff0c;则 mongodb://username:passwordlocalhost:27017完美&#xff0c;再见。

探索LLM在图上学习的潜力10.14 暂停

探索LLM在图上学习的潜力 摘要介绍初步知识 摘要 Learning on Graph已经引起了极大的关注&#xff0c;因为它在现实世界中有广泛的应用。在具有文本节点属性的图形上进行学习的最流行的流程主要依赖于图神经网络&#xff08;GNN&#xff09;&#xff0c;并利用浅层文本嵌入作为…

Maven系列第8篇:大型Maven项目,快速按需任意构建

本篇涉及到的内容属于神技能&#xff0c;多数使用maven的人都经常想要的一种功能&#xff0c;但是大多数人都不知道如何使用&#xff0c;废话不多说&#xff0c;上干货。 需求背景 我们需要做一个电商项目&#xff0c;一般都会做成微服务的形式&#xff0c;按业务进行划分&am…

【LeetCode 算法专题突破】滑动窗口(⭐)

文章目录 前言1. 长度最小的子数组题目描述代码 2. 无重复字符的最长子串题目描述代码 3. 最大连续1的个数 III题目描述代码 4. 将 x 减到 0 的最小操作数题目描述代码 5. 水果成篮题目描述代码 6. 找到字符串中所有字母异位词题目描述代码 7. 串联所有单词的子串题目描述代码 …

关于我对 jeecg-boot 的项目理解、使用心得和改进建议

一句话总结&#xff1a; JeecgBoot帮助我提升了后端技术水平&#xff0c;入门了前端&#xff0c;让我在公司内部慢慢能够成长为全栈开发。 一、项目理解 JeecgBoot 项目的核心理念是快速开发、低代码、易扩展。它采用了前后端分离的架构&#xff0c;后端使用Spring Boot Myba…

用节点亲和性把 Pod 分配到节点

用节点亲和性把 Pod 分配到节点 当前集群信息&#xff1a; rootk8s-master:~# kubectl get node -o wide NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME k8s…

cuda PyTorch

1. GPU对应的CUDA版本 nvidia-smi CUDA Version: 12.2 GPU diver 大于cuda toolkit&#xff0c; pytorch 版本根据cuda toolkit 2. 查看nvcc的版本&#xff08;即cuda toolkit 版本&#xff09; nvcc --version Cuda compilation tools, release 12.2, V12.2.91 Build cud…

微信小程序OA会议系统数据交互

前言 经过我们所写的上一文章&#xff1a;微信小程序会议OA系统其他页面-CSDN博客 在我们的是基础面板上面&#xff0c;可以看到出来我们的数据是死数据&#xff0c;今天我们就完善我们的是数据 后台 在我们去完成项目之前我们要把我们的项目后台准备好资源我放在我资源中&…

element-table + el-pagination 实现分页多选功能

首先&#xff0c;在 el-table 中添加 :row-key“getRowKeys” 和 selection-change 事件&#xff08;当选择项发生变化时会触发该事件&#xff09;。然后&#xff0c;给多选框的一列添加 :reserve-selection“true”。 <!-- 表格 --> <div><el-table class&quo…