Openlava安装教程 | QIMING.INFO

Openlava安装教程

OpenLava是一个开源的HPC项目,是100%免费、开源、兼容IBM Spectrum LSF的工作负载调度器,支持各种高性能计算和分析应用。
由于OpenLava的命令行和文件格式与大多数LSF功能相兼容,因此用户和管理员都将非常熟悉OpenLava的操作。组织和机构可以充分利用数以百计的商业和开源软件的已有集成,保留他们在设计、集成和技能方面的已有投资,并快速摆脱在生产环境中对商业许可证的依赖和限制。
目前国内关于Openlava的安装教程几乎没有,故写此篇来介绍,有不对之处还请指正。

1 系统要求

支持主流的64位x86 Linux发行版,包括RHEL、CentOS、SUSE、和Ubuntu

2 网络要求

安装Openlava需要:a)主机联网 b)各个主机可以互相通信,即可以互相Ping通对方主机名。
使用快捷键CTRL+ALT+T(或者在桌面点击右键,选择open terminal)进入系统的终端界面:

2.1 查看系统主机名

在安装开始前,我们需要知道本机器的主机名,在终端输入hostname –f即可看到

2.2 测试两台主机的网络状况

当设置好网络之后结果应如下所示:

1
2
3
4
5
6
[jensd@master ~]$ ping -c 1 node
PING node (192.168.202.102) 56(84) bytes of data.
64 bytes from node (192.168.202.102): icmp_seq=1 ttl=64 time=0.380 ms
--- node ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.380/0.380/0.380/0.000 ms

1
2
3
4
5
6
[jensd@node ~]$ ping –c 1 master
PING master (192.168.202.101) 56(84) bytes of data.
64 bytes from master (192.168.202.101): icmp_seq=1 ttl=64 time=0.211 ms
--- master ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.211/0.211/0.211/0.000 ms

3 下载准备

进入Openlava官方网站:http://www.openlava.org/ ,点击Download标签,下载安装包:openlava-2.2.tar.gz,将文件存储于主机某个指定位置(例如将文件存放于浏览器自动下载的~/Download目录下)

4 安装Openlava

以下文档以CentOS 7操作系统为例,其中:主机 master作为集群中的管理主机,node为本集群中的一个执行主机。
注:在一个Openlava集群中,可以有很多个执行主机,此处仅以node这一台执行主机为例。

4.1 管理主机安装Openlava

4.1.1 安装依赖包

打开终端,在终端中逐条输入以下命令,以安装Openlava所需要的依赖包:

1
2
3
yum update
yum upgrade
yum install tcl-dev ncurses-dev autoconf libtool

注:如在Ubuntu系统下,指令稍有变化:

1
2
3
sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get install -y tcl-dev ncurses-dev autoconf libtool

4.1.2 打开防火墙

1
2
3
sudo iptables -I INPUT -p tcp --match multiport --dports 1024:65535 -j ACCEPT
sudo iptables -I INPUT -p udp --match multiport --dports 1024:65535 -j ACCEPT
sudo iptables-save|sudo tee /etc/sysconfig/iptables

4.1.3 解压Openlava安装包

1
2
3
cd ~/Download
tar zxvf openlava-2.2.tar,gz
cd openlava-2.2

4.1.4 执行安装

1
2
3
./configure --prefix=/opt/openlava
make
sudo make install

4.1.5 添加Openlava用户

1
2
# Create a Openlava user to own all lsf processes
sudo useradd -r openlava

4.1.6 复制默认配置文件

1
2
3
4
5
# Copy the configurations to the system
cd config
sudo cp openlava /etc/init.d
sudo cp lsf.cluster.openlava lsf.conf lsf.shared lsb.params lsb.hosts /opt/openlava/etc/
sudo cp openlava.sh openlava.csh /etc/profile.d/

4.1.7 配置环境变量

1
. /etc/profile.d/openlava.sh

4.1.8 编辑lsf.cluster.openlava文件

1
2
cd /opt/openlava/etc
vi lsf.cluster.openlava

如下所示为需要新增的文字,其中,第一行为系统认为的管理主机,因此将管理主机的主机名放在灰色部分的第一行,并将后续需要加入集群的执行主机主机名依次加入该列表:

1
2
3
4
5
Begin   Host
HOSTNAME model type server r1m RESOURCES
master IntelI5 linux 1 3.5 (cs)
node IntelI5 linux 1 3.5 (cs)
End Host

4.1.9 编辑/etc/hosts

将需要加入本集群的主机名用以下命令添加至/etc/hosts:
sudo printf “33.33.33.31 master\n33.33.33.32 node\n” | sudo tee -a /etc/hosts
如需添加更多主机,可参照如下列表:
33.33.33.31 master
33.33.33.32 node
33.33.33.33 node1
33.33.33.34 node2
33.33.33.35 node3

4.1.10 确保安装权限正确

1
sudo chown -R openlava:openlava /opt/openlava

4.1.11 验证安装

开启Openlava服务,如出现如下字段则表示安装成功且Openlava服务已开启:

1
2
3
4
5
6
[jensd@master ~]$ sudo /etc/init.d/openlava start
Stopping daemons...
Starting daemons...
lim started
res started
sbatchd started

1
2
3
4
5
[jensd@master ~]$ lsid
openlava project 2.2, Nov 6 2017

My cluster name is openlava
My master name is master

4.2 执行主机安装Openlava

方法与管理主机基本相同,需要注意的是,在上节第8步(编辑lsf.cluster.openlava文件)时,将管理主机的hostname仍放置在第一行,执行主机的顺序与上节第8步的顺序一致。

5 安装Openlava Web端

5.1 安装依赖包

1
2
3
sudo yum -y install python-django python-pip git python-devel gcc lighttpd lighttpd-fastcgi
sudo pip install flup cython
sudo pip install –v Django==1.8

注:在Ubuntu系统中,指令稍有变化:

1
2
3
sudo apt-get install python-django python-pip git python-devel gcc lighttpd lighttpd-fastcgi
sudo pip install flup cython
sudo pip install –v Django==1.8

5.2 安装openlava-python

从GitHub上下载openlava-python:
sudo git clone https://github.com/irvined1982/openlava-python.git
确认该文件中的变量lsfdir所示为真实的openlava安装目录:
sudo vi openlava-python/openlava/setup.py

1
2
3
4
5
6
7
8
...
# Find lsbatch
try:
lsfdir=os.environ['LSF_ENVDIR']
lsfdir=os.path.join(libdir,"..")

except:
lsfdir='/opt/openlava'

安装openlava-python:

1
2
cd /opt/openlava-python/openlava/
sudo python setup.py install

5.3 安装openlava-web

从GitHub上下载openlava-web:

1
2
3
sudo git clone https://github.com/irvined1982/openlava-web.git
cd openlava-web/
sudo git submodule update --init –recursive

执行安装命令:sudo python setup.py install

5.4 创建Django项目并配置

在/opt目录下创建Django项目openlava_webui:

1
2
3
cd /opt/
sudo django-admin startproject openlava_webui
sudo cp -r /opt/openlava-web/openlavaweb/ /opt/openlava_webui/

编辑/opt/openlava_webui/openlava_webui/urls.py文件及openlavaweb.urls文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
from django.conf.urls import patterns, include, url

from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
# Examples:
# url(r'^$', 'openlava_webui.views.home', name='home'),
# url(r'^blog/', include('blog.urls')),

url(r'^admin/', include(admin.site.urls)),
url(r'^', include('openlavaweb.urls')),
)

编辑/opt/openlava_webui/openlava_webui/settings.py文件来包含openlavaweb:

1
2
3
4
5
6
7
8
9
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'openlavaweb',
)

5.5 设置防火墙

1
2
sudo iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 808 -j ACCEPT
sudo iptables-save|sudo tee /etc/sysconfig/iptables

5.6 打开服务器

1
2
3
4
5
6
7
8
[jensd@master opt]$ sudo python /opt/openlava_webui/manage.py runserver 0.0.0.0:808
Validating models...

0 errors found
December 05, 2017 - 12:31:18
Django version 1.6.8, using settings 'openlava_webui.settings'
Starting development server at http://0.0.0.0:80/
Quit the server with CONTROL-C.

5.7 验证openlava web端

在浏览器中访问地址即可看到web界面:http://0.0.0.0:808/:

5.8 使用Lighttpd

编辑/etc/lighttpd/modules.conf文件:

1
2
3
4
5
6
7
8
9
10
11
server.modules = (
"mod_access",
"mod_alias",
"mod_fastcgi",
# "mod_auth",
# "mod_evasive",
# "mod_redirect",
# "mod_rewrite",
# "mod_setenv",
# "mod_usertrack",
)

编辑/etc/lighttpd/lighttpd.conf文件,将以下代码新增至文件结尾:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
alias.url = (
"/static" => "/opt/openlava_webui/openlavaweb/static/",
"/media" => "/var/www/olweb/media",
)

fastcgi.server = (
"/olweb" => (
"main" => (
# Use host / port instead of socket for TCP fastcgi
"host" => "127.0.0.1",
"port" => 3033,
#"socket" => "/home/user/mysite.sock",
"check-local" => "disable",
)
),
)

开启Lighttpd:sudo systemctl start lighttpd

5.9 创建登录用户

为了可以登录网络接口,需要创建一个用户,在其中设置自己的用户名和密码(创建成功以后可在网页右上角的Login登录并提交作业):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
[jensd@node01 opt]$ sudo python /opt/openlava_webui/manage.py syncdb
Creating tables ...
Creating table django_admin_log
Creating table auth_permission
Creating table auth_group_permissions
Creating table auth_group
Creating table auth_user_groups
Creating table auth_user_user_permissions
Creating table auth_user
Creating table django_content_type
Creating table django_session

You just installed Django's auth system, which means you don't have any superusers defined.
Would you like to create one now? (yes/no): yes
Username (leave blank to use 'root'): jensd
Email address:
Password:
Password (again):
Superuser created successfully.
Installing custom SQL ...
Installing indexes ...
Installed 0 object(s) from 0 fixture(s)

5.10 给Django项目指定端口号:

1
sudo python /opt/openlava_webui/manage.py runfcgi method=prefork host=127.0.0.1 port=3033 pidfile

至此,可在浏览器中输入地址http://master/olweb 访问openlava web端!

-----本文结束感谢您的阅读-----
如我有幸帮到了您,那么,不妨~~~谢谢!
0%