注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Wei Ding blog

 
 
 

日志

 
 

[转载] OpenPBS/Torque安装手册  

2012-02-10 10:45:46|  分类: pipeline |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
PBS是由NAS(National Academy of Sciences)开发的面向批作业调度以及系统资源管理的软件包。它主要用于管理使用UNIX或Linux的同构或异构的机群系统。PBS是一个商用软 件,拥有完善的解决方案和技术支持,但是价格昂贵。OpenPBS是对PBS系统的开源实现,遵循开源软件的相关约定,所以任何个人和组织都可以自由获得 其源代码并修改之。OpenPBS目前的最新版本为2.3.16。本文介绍的对象即为OpenPBS 2.3.16版,为简洁起见,本文下面不再另行说明版本,默认是2.3.16版。
请注意,在使用OpenPBS 2.3.16提交作业时,提交者用户名长度不能大于15个字符。
一、 OpenPBS的结构OpenPBS主要由三个主要部件组成:
PBS服务守护进程:    pbs_server      负责接收作业提交,位于服务节点
PBS调度守护进程:    pbs_sched      负责调度作业,位于服务节点
PBS MOM守护进程: pbs_mom              负责监控本机并执行作业,位于所有计算节点
二、在单个节点上安装OpenPBS本节介绍的是通过编译源代码的方式安装OpenPBS。
由于整个OpenPBS都被安装在一台计算机上,所以上述pbs_server、pbs_mom和pbs_sched都会被安装在一起。
具体步骤如下:
1. 安装前提:a)机器上安装有合适版本的Linux(包括Redhat9、AS3、AS4等)、gcc编译器以及其他所需的包;
b)安装者能以root帐户登录计算机;
c)下载合适的源码形式安装包,如pbs.tar.gz
2. 以root帐号登录计算机3. 用tar zxf pbs.tar.gz命令释放安装包到指定位置,譬如:/opt/OpenPBS_2_3_16/4. 进入解压得到的目录,执行命令:a)./configure  –disable-gui  –set-server-home= {YOUR_PBS_HOME}
说明:有的环境下可能是—with-server-home,具体可以通过./configure –-help查看
b) ./configure –enable-docs –disable-gui
其中:
–disable-gui:说明不安装GUI组件,因为该组件不常用,且对linux的tcl等库的版本颇为挑剔,往往使安装进程无法继续
–set-server-home: 指定OpenPBS的工作目录,默认是 /usr/spool/PBS/
5. 执行make6. 执行make install,这样就可以把OpenPBS安装到指定工作目录中7. 下面设置OpenPBS(假设工作目录为/usr/spool/PBS/)a)设置服务器名:编辑/usr/spool/PBS/server_name 文件,填写本机机器名(如cngrid217)
b)设置机群所有机器名:编辑/usr/spool/PBS/server_priv/nodes文件,填写本机机器名
c)设置MOM进程配置文件:编辑 /usr/spool/PBS/mom_priv/config文件,写入如下内容
$logevent 0×1ff
$clienthost server_host
其中server_host是本机的机器名,譬如mydemocluster
8. 启动OpenPBSa)启动mom进程:(任意路径下)执行命令  pbs_mom
b)启动调度器进程:执行命令  pbs_sched
c)启动OpenPBS服务器进程,创建pbs数据库
执行命令  pbs_server -t  create
其参数 -t  create 只在首次启动server进程时才需要
9. 创建并设置作业队列:a)         用qmgr创建队列normal
qmgr -c “c q normal”
其中:
-c    表示其后是命令
c     表示创建
q     表示队列
b)        设定队列的类型为可执行队列
qmgr -c “s q normal queue_type=Execution”
其中s表示设置。
c)        设定队列中任务的最大运行时间为24小时(CPU时间)
qmgr -c “s q normal resources_max.cput=24:00:00″
d)        设定该队列中任务最小运行时间为1秒(CPU时间)
qmgr -c “s q normal resources_min.cput=1″
e)         设定该队列中任务默认运行时间为12分钟(CPU时间)
qmgr -c “s q normal resources_default.cput=12:00″
f)         使队列生效
qmgr -c “s q normal enabled=true”
g)        启用队列
qmgr -c “s q normal started=true”
h)        将normal队列设定为默认队列
qmgr -c “s s default_queue=normal”
i)          在创建完成normal队列后,还可按照a~h各步骤创建拥有其他属性的队列
j)          为了方便安装过程,同时也避免重复操作时出错,可使用已有的配置文件完成队列设置工作:
i.              设配置文件名为 pbsconf
ii.              使用命令 qmgr < pbsconf 导入队列设置
10. 将PBS做成系统服务,以便随时启动、关闭它a编辑/etc/pbs.conf文件,填入如下内容:
pbs_home=/usr/spool/PBS
pbs_exec=/usr/local
start_server=1
start_sched=1
start_mom=1
b)        将OpenPBS解压目录中的 ……/src/tools/init.d/pbs文件复制到/etc/init.d/pbs
c)        执行命令chkconfig –add pbs
d)        用chkconfig –list | grep pbs  命令查看pbs服务是否已被加入
e)         现在就可以使用如下命令启动、关闭pbs了:
i.              启动pbs:     service pbs start
ii.              关闭pbs:     service pbs stop
iii.              重启pbs:     service pbs restart
11. 检查安装是否成功:a)         进入一个非root帐户
b)        执行命令 echo hostname >test.pbs  创建一个返回机器名的pbs脚本ben
c)        执行qsub test.pbs 命令,提交作业
d)        如果在test.pbs所在目录下出现test.pbs.o×(其中×是以0开始的某个非负整数),且其内容为本机机器名,则说明openPBS已经开始正常工作
三、在多节点机群上安装OpenPBS本节介绍的是在一个由多个节点组成的计算机机群上安装OpenPBS。在这多个节点之间应有一个节点作为服务节点,负责调度作业,其他节点是计算节点,负责接收作业并计算之。(服务节点自身也可承担计算任务)
由于OpenPBS由三个部件组成,则在机群内应根据角色不同在节点上安装不同的OpenPBS组件。详细而言,在服务节点上应安装PBS服务守护进程 (pbs_server)、MOM进程(pbs_mom)和作业调度器(pbs_sched),而在从节点上应该只安装MOM进程。
不过为了安装和以后变换节点角色方便,这里可以在所有节点上都安装这三个组件,只不过在启动OpenPBS时,服务节点三个组件全部启动,而计算节点只启动MOM进程。
这里假设有N台节点机,机器名分别为node1、node2、……、nodeN;确定node1为服务节点,所有节点都是计算节点。
具体安装步骤:
1. 安装前提:a)         各节点上都有合适版本的Linux和gcc编译器;
b)        各节点之间能互连
c)        安装者能在每个节点上以root身份登录
d)        已下载合适的pbs源码安装包
2 在所有节点上执行:a)         用root身份登录;
b)        用tar zxf pbs.tar.gz命令释放安装包到指定位置,譬如:/opt/OpenPBS_2_3_16/
c)        进入解压所得目录,通过configure脚本完成初始配置
./configure –disable-gui –set-default-server  {serverName}
其中:
–set-default-server      指定该机群系统的作业服务守护进程所在主机名,在本例中就是node1
d)        执行 make
e)         执行 make install
f)         设置MOM进程配置文件:
编辑 /usr/spool/PBS/mom_priv/config文件,写入如下内容
$logevent 0×1ff
$clienthost server_host
其中server_host是机群服务节点的机器名,譬如在本例中是node1
g)        设置server_name:
编辑 /usr/spool/PBS/server_name文件,写入机群服务节点的机器名,譬如在本例中是node1
3. 在各个计算节点上分别启动MOM守护进程:执行   pbs_mom
4. 在机群服务节点上执行如下步骤:a)         设置PBS服务端配置
编辑 /usr/spool/PBS/server_pri/nodes 文件,写入所有节点的机器名
譬如:
node1
node2
……
nodeN
b)        启动pbs服务器进程
执行命令  pbs_server -t  create
其参数 -t  create 只在首次启动server进程时才需要
c)        启动pbs调度器进程
执行命令  pbs_sched
d)        配置队列(参见前一部分配置队列操作)
如果已经有一个队列配置文件,譬如pdfconf,则可使用命令:
qmgr  < pbsconf  命令直接配置所有队列
5. 将PBS做成系统服务,以便随时启动、关闭它a)         在机群服务节点上编辑/etc/pbs.conf文件,填入如下内容:
pbs_home=/usr/spool/PBS
pbs_exec=/usr/local
start_server=1
start_sched=1
start_mom=1
b)        在机群计算节点(除服务节点外)上编辑/etc/pbs.conf文件,填入如下内容:
pbs_home=/usr/spool/PBS
pbs_exec=/usr/local
start_server=0
start_sched=0
start_mom=1
c)        将各个节点OpenPBS解压目录中的
……/src/tools/init.d/pbs
复制到
/etc/init.d/pbs
d)        在各节点执行命令chkconfig –add pbs
e)         在各节点用chkconfig –list | grep pbs  命令查看pbs服务是否已被加入
f)         现在就可以在各个节点使用如下命令启动、关闭pbs了:
i.              启动pbs:     service pbs start
ii.              关闭pbs:     service pbs stop
iii.              重启pbs:     service pbs restart
6. 检查安装是否成功a)         在任意节点上进入非root身份
e)         进入nfs某个目录,执行命令 echo hostname >test.pbs  创建一个返回机器名的pbs脚本
f)         执行qsub test.pbs 命令,提交作业
g)        如果在test.pbs所在目录下出现test.pbs.o×(其中×是以0开始的某个非负整数),且其内容为前述/usr/spool/PBS/server_pri/nodes文件中位于第一行的主机名,则说明openPBS已经开始正常工作
四、在AMD64optern服务器上安装OpenPBS前面两节所介绍的安装方法针对的是32位版本RedHatLinux AS3/4。事实上随着64位服务器的普及,目前常需要在64位的linux操作系统上安装OpenPBS。不过由于OpenPBS目前的最新版本 2.3.16已有多年历史,尚不能直接安装在64位操作系统上,因此需要在安装前对OpenPBS安装包作一定的调整和修正。具体方法如下:
1. 用tar zxf pbs.tar.gz命令释放安装包到指定位置,譬如:/opt/OpenPBS_2_3_16/2. 修改 /opt/OpenPBS_2_3_16/buildutils/config.suba) 在第212行:
把:
#Recognize the basic CPU types with company name.
vax-* | tahoe-* | i[3456]86-* | i860-* | ….
改为:
vax-* | tahoe-* | i[3456]86-* | x86_64-* | i860-* | ….
b) 第229行:
在:
# Recognize the various machine names and aliases which stand
# for a CPU type and a company and sometimes even an OS
在后面添加:
i*86 | x86_64)
basic_machine=$basic_machine-pc
;;
3. 修改 /opt/OpenPBS_2.3.16/buildutils/makedepend-sha) 第576行
把:
$CPP $arg_cc $d/$s $errout | \
sed -n -e “s;^\# [0-9][0-9 ]*\”\(.*\)\”;$f: \1;p” | \
grep -v “$s\$” | \
sed -e ’s;\([^ :]*: [^ ]*\).*;\1;’ \
>> $TMP
改为:
$CPP $arg_cc $d/$s $errout | \
sed -n -e “s;^\# [0-9][0-9 ]*\”\(.*\)\”;$f: \1;p” | \
grep -v “$s\$” | \
grep -v “>$” | \
sed -e ’s;\([^ :]*: [^ ]*\).*;\1;’ \
>> $TMP
b)
4. 修改…/OpenPBS_2.3.16/src/lib/Liblog/pbs_log.c第92行
#include <pbs_config.h>
在下面增加一行
#include <errno.h>
5. 修改…/OpenPBS_2.3.16/src/server/svr_connect.c第102行
#include <pbs_config.h>
在下面增加一行
#include <errno.h>
6. 按照前面两部分所述内容,完成make、make install、配置等过程。
  评论这张
 
阅读(726)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018