当前位置: 首页 > news >正文

Linux的OpenLava配置

OpenLava

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

 

 

角色和名称IP,mask24备注
Server_149192.168.2.149
Slave_87192.168.2.87
Slave_78192.168.2.78
Slave_57192.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_149192.168.2.149
Slave_87192.168.2.87
Slave_78192.168.2.78
Slave_57192.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

相关文章:

  • MySQL如何记忆
  • 【回溯算法】leetcode 78. 子集
  • stm32f4xx-外部中断
  • Tricentis NeoLoad:自动化的企业性能测试平台
  • Linux内核中网络部分结构以及分布
  • 从无到有的基于QT软件的DIY桌面番茄钟(上)
  • Springboot整合ElasticSearch
  • Golang JWT 认证 (三)-添加token自动刷新机制
  • 哈希方法总结
  • 记录get和post的理解误区
  • 2022最全的 App 应 用 测 试 技 巧
  • 【MATLAB教程案例4】直接序列扩频通信系统的MATLAB仿真
  • FORCESPRO的使用教程(暂未完结)
  • Docker 使用 IDEA 内置插件构建上传镜像 与 SSH、FTP 功能使用
  • Clonable 接口 深拷贝与浅拷贝(超详细!!!代码附注释带图)
  • [笔记] php常见简单功能及函数
  • 《网管员必读——网络组建》(第2版)电子课件下载
  • 【每日笔记】【Go学习笔记】2019-01-10 codis proxy处理流程
  • android高仿小视频、应用锁、3种存储库、QQ小红点动画、仿支付宝图表等源码...
  • DataBase in Android
  • go append函数以及写入
  • Hexo+码云+git快速搭建免费的静态Blog
  • JAVA 学习IO流
  • Javascript 原型链
  • Js基础知识(四) - js运行原理与机制
  • JWT究竟是什么呢?
  • k8s 面向应用开发者的基础命令
  • Median of Two Sorted Arrays
  • PHP变量
  • SAP云平台运行环境Cloud Foundry和Neo的区别
  • 对象引论
  • 紧急通知:《观止-微软》请在经管柜购买!
  • 聊聊hikari连接池的leakDetectionThreshold
  • 配置 PM2 实现代码自动发布
  • 如何用Ubuntu和Xen来设置Kubernetes?
  • 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
  • 腾讯优测优分享 | 你是否体验过Android手机插入耳机后仍外放的尴尬?
  • 小程序button引导用户授权
  • 小李飞刀:SQL题目刷起来!
  • 一加3T解锁OEM、刷入TWRP、第三方ROM以及ROOT
  • nb
  • Java性能优化之JVM GC(垃圾回收机制)
  • 进程与线程(三)——进程/线程间通信
  • ​​​​​​​GitLab 之 GitLab-Runner 安装,配置与问题汇总
  • ​学习一下,什么是预包装食品?​
  • # 再次尝试 连接失败_无线WiFi无法连接到网络怎么办【解决方法】
  • #Spring-boot高级
  • $GOPATH/go.mod exists but should not goland
  • $redis-setphp_redis Set命令,php操作Redis Set函数介绍
  • (3)Dubbo启动时qos-server can not bind localhost22222错误解决
  • (9)目标检测_SSD的原理
  • (delphi11最新学习资料) Object Pascal 学习笔记---第2章第五节(日期和时间)
  • (Pytorch框架)神经网络输出维度调试,做出我们自己的网络来!!(详细教程~)
  • (二)hibernate配置管理
  • (二十一)devops持续集成开发——使用jenkins的Docker Pipeline插件完成docker项目的pipeline流水线发布