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. Bika LIMS 开源LIMS集——实验室检验流程概述及主页、面板

    主页 主页左侧为功能入口菜单.右侧含待办提醒,中间为工作区. 工作区功能将主要工作页面置于首页,便于用户操作. Dashboard 面板 系统面板 包括待排定的实验任务.实验中的任务数.复核/审核中的 ...

  2. Javaweb-pom文件

    pom.xml是maven的核心配置文件 <?xml version="1.0" encoding="UTF-8"?> <!--maven版本 ...

  3. npm发布包以及更新包还有需要注意的几点问题(这里以发布vue插件为例)

    前言 在此之前,你需要去npm官网注册一个属于自己的账号,记住自己的账户名以及密码.邮箱,后面会用的到.第一步,安装webpack简易框架 vue init webpack-simple marque ...

  4. Leetcode--Last Stone Weight II

    Last Stone Weight II 欢迎关注H寻梦人公众号 You are given an array of integers stones where stones[i] is the we ...

  5. 原生实现.NET5.0+ 自定义日志

    一.定义一个静态类 声明一个 ReaderWriterLockSlim 对象 用于并发控制 1 /// <summary> 2 /// IO锁 3 /// </summary> ...

  6. Python列表解析式的正确使用方式(一)

    先来逼逼两句: Python 是一种极其多样化和强大的编程语言!当需要解决一个问题时,它有着不同的方法.在本文中,将会展示列表解析式 (List Comprehension).我们将讨论如何使用它?什 ...

  7. idea中enter键不能换行

    idea中enter键不能换行 按enter键只能往下移动 如下图 解决办法: 方式一:按住window + Insert 方式二: 按住Fn + Insert 两种方式总有一种可以 之后就可以按en ...

  8. 把excel的数据导入到SQLSERVER里面,excel的字符串时间在导入sql库显示datetime 数据类型的转换产生一个超出范围的值

    这是我Excel导入的数据,准备把这个varchar(50)时间导入我的userInfo表中的出生日期字段datatime,如果你的数据正常,是可以导入的, 但是有些日期可能超出datatime的最大 ...

  9. 使用Thread类和Runnable接口实现多线程的区别

    使用Thread类和Runnable接口实现多线程的区别 先看两种实现方式的步骤: public class ThreadDemo{ public static void main(String[] ...

  10. 广东省30m二级分类土地利用数据(矢量)

    数据下载链接:百度云下载链接​ 广东省,地处中国大陆最南部,属于东亚季风区,从北向南分别为中亚热带.南亚热带和热带气候,是中国光.热和水资源最丰富的地区之一.主要河系为珠江的西江.东江.北江和三角洲水 ...