OpenLava

OpenLava是基于LSF早期的开源版本发展而来,其免费开源兼容IBM LSF的工作负载调度器。当你需要执行某项业务时候(比如跑渲染之类的),当有服务器处于空闲状态时候,可以直接ssh到另一个服务器 ,在当前服务器中的shell再执行。

 
角色和名称 IP,mask24 备注
Server_149 192.168.2.149  
Slave_87 192.168.2.87  
Slave_78 192.168.2.78  
Slave_57 192.168.2.57  

Server主节点

安装

IBM的LSF做得很好,但是LSF是付费的,openlava是模仿来做的,功能基本上大差不差。后来openlava被IBM收购了,所以openlava的教程可能就偏少了。

# 安装一下编译所需要的环境
yum -y install tcl-devel ncurses-devel

需要下载openlava的源代码,openlava-4.0.tar.gz,我分享到百度网盘:url

先解压,解压后就是源码了,安装分三步:配置(configure)、编译(make)、安装(make install),如果前一步失败,后一步也不能正常进行。

# 解压到当前文件夹,会生成个同名openlava文件夹
tar -zxvf openlava-4.0.tar.gz

# 进入源码文件夹中
cd openlava-4.0
# 配置configgure,加上prefix参数,配置安装路径,方便以后维护
# 请注意报错信息,如果缺少某些依赖需要安装才可以进行下一步
./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@server_149 openlava-4.0]# ll /data/openlava/
total 8
drwxr-xr-x. 2 root root 4096 2022-09-01 19:13 bin
drwxr-xr-x. 2 root root 22 2022-09-01 19:13 etc
drwxr-xr-x. 2 root root 52 2022-09-01 19:13 include
drwxr-xr-x. 2 root root 4096 2022-09-01 19:13 lib
drwxr-xr-x. 2 root root 6 2022-09-01 19:13 log
drwxr-xr-x. 2 root root 125 2022-09-01 19:13 sbin
drwxr-xr-x. 3 root root 17 2022-09-01 19:13 share
drwxr-xr-x. 3 root root 20 2022-09-01 19:13 work

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

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

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

#可以cp
cp -rf ~/openlava-4.0/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/

配置用户和主机

创建用户和用户组

存在/data/openlava/etc/lsf.cluster.<用户名>文件,以openlava用户为例,即对应的配置文件为/data/openlava/etc/lsf.cluster.openlava

请注意要先配置好了NIS Server ,在Server上配置,在Slave上配置NIS Client,以方便同步用户在其他Slave。关于NIS请见我之前的文章。也可以一个一个ssh进去,本地创建,但是注意id要一致。

# 创建用户和组,名称,openlava
[root@server_149 ~]# groupadd --system openlava
[root@server_149 ~]# useradd --system -g openlava -d /usr/lib/openlava -s /sbin/nologin openlava
# 设置目录权限
[root@server_149 ~]# chown -R openlava:openlava /data/openlava/
[root@server_149 ~]#

编辑配置文件/data/openlava/etc/lsf.cluster.openlava,依据规划:

角色和名称 IP,mask24
Server_149 192.168.2.149
Slave_87 192.168.2.87
Slave_78 192.168.2.78
Slave_57 192.168.2.57

在Begin Host和End Host之间写入Slave信息。

#-----------------------------------------------------------------------
# T H I S I S A O N E P E R C L U S T E R F I L E
#
# This is a sample cluster definition file. There is a cluster
# definition file for each cluster. This file's name should be
# lsf.cluster.<cluster-name>.
# See lsf.cluster(5) and the "LSF Administrator's Guide".
# Begin ClusterAdmins
Administrators = openlava
End ClusterAdmins Begin Host
HOSTNAME model type server r1m RESOURCES
# yourhost IntelI5 linux 1 3.5 (cs)
# 只修改这里就可以了,用vim,yy复制注释,p粘贴,修改一下yourhost就可以了
server_149 IntelI5 linux 1 3.5 (cs)
slave_97 IntelI5 linux 1 3.5 (cs)
slave_78 IntelI5 linux 1 3.5 (cs)
slave_57 IntelI5 linux 1 3.5 (cs)
End Host Begin ResourceMap
RESOURCENAME LOCATION
# tmp2 [default]
# nio [all]
# console [default]
End ResourceMap 

ssh免密登录

免密登录之前有文章写过了,感兴趣的可用于去我主页看一下详细的介绍,这里直接快速进行。

# 生成秘钥
ssh-keygen -t ed25519
# 三次回车 # 将server的公钥copy给全部的slave,依次yes,输入密码
ssh-copy-id root@192.168.2.87 -p 22
ssh-copy-id root@192.168.2.78 -p 22
ssh-copy-id roo配置t@192.168.2.57 -p 22

hosts

依据之前的IP和host设定,设置一下Hostname,和Hosts文件。

 hostnamectl set-hostname server_149
# hosts文件应该会写吧
# ip(空格)域名
# 127.0.0.1 server
# 用echo追加吧
echo -e '192.168.2.149 server_149\n192.168.2.87 slave_87\n192.168.2.78 slave\n192.168.2.57 slave_57'

server写好的host可以直接scp给slave。

#当然,你确保hosts中没有其他内容,不然就覆盖了,谨慎使用!安全起见,还是用>>追加吧,
scp -P 22 /etc/hosts root@192.168.2.87:/etc/hosts 

Slave

Slave作为从节点也需要安装openlava,其中lsf.cluster.openlava要保持一致,注意/etc/hosts也需要配置正确!

拷贝已经Server编译好软件包的全部,包括配置文件。当然使用NFS也可以。

scp -P 22 /data/openlava root@192.168.2.87:/data/openlava

在slave这里启动openlava。

# 在slave运行
/data/openlava/etc/openlava start # 在server中重载
badmin reconfig
lsadmin reconfig
[root@slave_87 log]# /data/openlava/bin/bhosts
HOST_NAME STATUS JL/U MAX NJOBS RUN SSUSP USUSP RSV
server_149 ok - 2 0 0 0 0 0
slave_57 ok - 1 0 0 0 0 0
slave_78 ok - 1 0 0 0 0 0
slave_87 ok - 1 0 0 0 0 0

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

[root@slave_87 ~]# /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查找一下。

[root@server_149 ~]# 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@server_149 ~]# scp -P 22 /usr/lib64/libtcl8.5.so root@192.168.2.87:/usr/lib64/
libtcl8.5.so 100% 1213KB 22.7MB/s 00:00

再两边restart一下就可以了。

# server和client
/data/openlava/etc/openlava restart
# 如果有配置文件修改
badmin reconfig
lsadmin reconfig

Linux的OpenLava配置的更多相关文章

  1. 在Linux虚拟机下配置tomcat

    1.到Apache官网下载tomcat http://tomcat.apache.org/download-80.cgi 博主我下载的是tomcat8 博主的jdk是1.8 如果你们的jdk是1.7或 ...

  2. 在Linux虚拟机下配置jdk的环境变量

    1.到Oracle公司的官网里下载好jdk,网址 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133 ...

  3. Linux网络属性配置

    目录 IP地址分类 如何将Linux主机接入到网络中 网络接口的命名方式 ifcfg系列命令 如何配置主机名 如何配置DNS服务器指向 iproute2系列命令 Linux管理网络服务 永久生效配置路 ...

  4. 阿里云服务器Linux CentOS安装配置(零)目录

    阿里云服务器Linux CentOS安装配置(零)目录 阿里云服务器Linux CentOS安装配置(一)购买阿里云服务器 阿里云服务器Linux CentOS安装配置(二)yum安装svn 阿里云服 ...

  5. 阿里云服务器Linux CentOS安装配置(九)shell编译、打包、部署

    阿里云服务器Linux CentOS安装配置(九)shell编译.打包.部署 1.查询当前目录以及子目录下所有的java文件,并显示查询结果 find . -name *.java -type f - ...

  6. 阿里云服务器Linux CentOS安装配置(八)nginx安装、配置、域名绑定

    阿里云服务器Linux CentOS安装配置(八)nginx安装.配置.域名绑定 1.安装nginx yum -y install nginx 2.启动nginx service nginx star ...

  7. 阿里云服务器Linux CentOS安装配置(七)域名解析

    阿里云服务器Linux CentOS安装配置(七)域名解析 1.购买域名 登录阿里云,左侧菜单点击[域名],然后[域名注册],完成域名购买.(一般首年45元) 2.添加域名解析 在域名列表里点击你的域 ...

  8. 阿里云服务器Linux CentOS安装配置(六)resin多端口配置、安装、部署

    阿里云服务器Linux CentOS安装配置(六)resin多端口配置.安装.部署 1.下载resin包 http://125.39.66.162/files/2183000003E08525/cau ...

  9. 阿里云服务器Linux CentOS安装配置(五)jetty配置、部署

    阿里云服务器Linux CentOS安装配置(五)jetty配置.部署 1.官网下载jetty:wget http://repo1.maven.org/maven2/org/eclipse/jetty ...

随机推荐

  1. vue 使用npm install安装依赖失败 【问题分析与解决】

    1 进入项目根目录,先通过 npm install 命令安装项目所需依赖,再通过 vue ui 命令打开 Vue Cli 提供的图形化界面,选择项目所在文件夹将项目导入. 出现问题 npm insta ...

  2. 基于.NET6的开源工业物联网网关

    什么是工业物联网网关 工业物联网网关(IIoTGateway)是一种硬件设备或软件程序,作为本地设备(如PLC.扫码枪.机器人.数控机床.非标上位机等)与云端系统(如物联网平台.SCADA系统.MES ...

  3. 无法打开虚拟机“master”(D:\文档\Virtual Machines\master\master.vmx):未找到文件。是否从库中移除“master”?

    今天打开虚拟机的时候,出现了这样的弹窗提示: 无法打开虚拟机"master"(D:\文档\Virtual Machines\master\master.vmx):未找到文件.是否从 ...

  4. Vue回炉重造之三次封装axios

    源码目录 在src目录下建立一个request文件夹.里面建立两个文件: http.js api.js 源码内容 http.js import axios from 'axios' // 引入axio ...

  5. 你是否有一个梦想?用JavaScript[vue.js、react.js......]开发一款自定义配置视频播放器

    前言沉寂了一周了,打算把这几天的结果呈现给大家.这几天抽空就一直在搞一个自定义视频播放器,为什么会有如此想法?是因为之前看一些学习视频网站时,看到它们做的视频播放器非常Nice!于是,就打算抽空开发一 ...

  6. Kali MSF漏洞利用

    一.前言 漏洞利用是获得系统控制权限的重要途经.用户从目标系统中找到容易攻击的漏洞,然后利用该漏洞获取权限,从而实现对目标系统的控制. 二.Metasploitable Metasploitable是 ...

  7. org/apache/poi/POIXMLTypeLoader或者java.lang.NoSuchFieldError: RETURN_NULL_AND_BLANK

    原因是之前我的poi和ooxml版本有点低, 解决方案 将两者版本提高,我是将两者的版本都提高到了3.15

  8. 使用net core 6 c# 的 NPOI 包,读取excel..xlsx单元格内的图片,并存储到指定服务器

    这个是记录,单元格的图片. 直接上代码,直接新建一个 net core api 解决方案,引用一下nuget包.本地创建一个 .xlsx 格式的excel文件 using ICSharpCode.Sh ...

  9. React技巧之中断map循环

    正文从这开始~ 总览 在React中,中断map()循环: 在数组上调用slice()方法,来得到数组的一部分. 在部分数组上调用map()方法. 遍历部分数组. export default fun ...

  10. 多校联训 DP 专题

    [UR #20]跳蚤电话 将加边变为加点,方案数为 \((n-1)!\) 除以一个数,\(dp\) 每种方案要除的数之和即可. 点击查看代码 #include<bits/stdc++.h> ...