1、Torque + Maui 配置手册之抛砖引玉篇本文将以应用于实际案例(南航理学院、复旦大学物理系、宁波气象局)中的作业调度系统为例,简单介绍一下免费开源又好用的 Torque+Maui 如何在曙光服务器上进行安装和配置,以及针对用户特定需求的常用调度策略的设定情况,以便可以起到抛砖引玉的作用,使更多的人关注 MAUI 这个功能强大的集群调度器(后期将推出 SGE+MAUI 版本)。本文中的涉及的软件版本 Torque 版本: 2.1.17 maui 版本: 3.2.6p17。1. 集群资源管理器 Torque1.1. 从源代码安装 Torque其中 pbs_server 安装在 node33
2、 上,TORQUE 有两个主要的可执行文件,一个是主节点上的 pbs_server,一个是计算节点上的 pbs_mom,机群中每一个计算节点( node1node16)都有一个 pbs_mom 负责与 pbs_server 通信,告诉 pbs_server 该节点上的可用资源数以及作业的状态。机群的 NFS 共享存储位置为/home ,所有用户目录都在该目录下。1.1.1. 解压源文件包在共享目录下解压缩 torque# tar -zxf torque-2.1.17.tar.gz假设解压的文件夹名字为: /home/dawning/torque-2.1.171.1.2. 编译设置#./conf
3、igure -enable-docs -with-scp -enable-syslog其中,默认情况下,TORQUE 将可执行文件安装在 /usr/local/bin 和/usr/local/sbin 下。其余的配置文件将安装在/var/spool/torque 下默认情况下,TORQUE 不安装管理员手册,这里指定要安装。默认情况下,TORQUE 使用 rcp 来 copy 数据文件,官方强烈推荐使用 scp,所以这里设定-with-scp.默认情况下,TORQUE 不允许使用 syslog,我们这里使用 syslog。1.1.3. 编译安装# make# make installServe
4、r 端安装设置:在 torque 的安装源文件根目录中,执行#./torque.setup root以 root 作为 torque 的管理员账号创建作业队列。计算节点(Client 端)的安装:由于计算节点节点系统相同,因而可以用如下 SHELL script (脚本名字为 torque.install.sh)在其余计算节点上安装:创建 torque.install.sh 脚本#vi torque.install.sh#!/bin/shcd /home/dawning/torque-2.1.17make install使用如下命令:npssh -on node1.32 sh /home/da
5、wning/torque.install.sh 将在每个节点上安装 TORQUE。1.1.4. TORQUE 配置1.1.4.1 在计算节点上配置 TORQUE:在每个计算节点,必须配置 MOM daemon 信任 pbs_server daemon,可以通过编辑/var/spool/torque/server_name 来实现,把 node33 写入该文件即可。#cat /var/spool/torque/server_namenode33其余的配置参数写入/var/spool/torque/mom_priv/config 文件。配置计算节点的数据管理,数据管理允许作业的数据在计算节点和 P
6、BS_Server 之间传递。对于共享文件系统,如 NFS,可以通过在 mom_priv/config 中用$usecp 参数来指定如何映射用户的根目录。$usecp *:/home /home这里集群的 mom_priv/config 内容如下:# MOM server configuration file# if more than one value, separate# rule is defined by the name# host allowed to connect to mom server on privileged port# note: IP address of ho
7、st running pbs_server it by comma.$pbsserver 10.0.68.33$clienthost node33#ideal processor load and max processor load$ideal_load 7$max_load 8# host allowed to connect to Mom server on unprivileged port#Specifies hosts which can be trusted to access mom services as non-root.#By default, no hosts are
8、trusted to access mom services as non-root.$restricted *.node33# Log event :# 0x1ff : log all events + debug events# 0x0ff : just all events$logevent 0x0ff# alarm if the script hang or take very long time to execute$prologalarm 30# Specifies which directories should be staged$usecp *:/home /homeServ
9、er 端资源管理配置指定计算节点为了让 pbs_server 与每个计算节点进行通信,它需要知道要和那些机器联络,集群中的每个计算节点都必须在 nodes 文件中指定,一个 1 行。#rsh node33#cd /var/spool/torque/server_priv#for i in seq 1 32;do echo node$i np=2;done nodes#cat nodesnode1 np=8node2 np=8node3 np=8node4 np=8node5 np=8node6 np=8node7 np=8node8 np=8node9 np=8node10 np=8node1
10、1 np=8node12 np=8node13 np=8node14 np=8node15 np=8node16 np=8node17 np=8node18 np=8node19 np=8node20 np=8node21 np=8node22 np=8node23 np=8node24 np=8node25 np=8node26 np=8node27 np=8node28 np=8node29 np=8node30 np=8node31 np=8node32 np=8 np=8 是说每个节点有 8 个 CPU(其余的以线程来跑)。指定作业的提交节点为 node33,node34,node35
11、 :rootnode33 # qmgr -c set server submit_hosts = node33rootnode33 # qmgr -c set server submit_hosts += node34rootnode33 # qmgr -c set server submit_hosts += node351.1.5. 系统自动启动脚本1. Server 的系统启动脚本/etc/init.d/pbs_server该脚本单独启动/重新启动/暂停/查看状态 TORQUE 中 Server 的守护进程#cp contrib/init.d/pbs_server /etc/init.d
12、/编辑 pbs_server:#vi /etc/init.d/pbs_serverPBS_DAEMON=/usr/local/sbin/pbs_serverPBS_HOME=/var/spool/torque要确保这两个变量设定正确。2. Mom 系统启动脚本/etc/init.d/pbs_mom ,在计算节点执行。该脚本单独启动/重新启动/暂停/查看状态 TORQUE 中 Mom 的守护进程。#cp contrib/init.d/pbs_mom /etc/init.d/#vi /etc/init.d/pbs_momPBS_DAEMON=/usr/local/sbin/pbs_momPBS_H
13、OME=/var/spool/torquePBS_SERVER 端测试:重启 pbs_server,使刚才的配置生效。/etc/init.d/pbs_server restart# verify all queues are properly configured qstat -q# view additional server configuration qmgr -c p s# verify all nodes are correctly reportingpbsnodes -a # submit a basic job - DO NOT RUN AS ROOT su - testuser
14、qstat2. 调度器系统 MAUI 的安装配置2.1.1. 在共享目录下解压缩 MAUI# tar -zxf maui-3.2.6p17.tar.gz假设解压的文件夹名字为: /home/dawning/maui-3.2.6p172.1.2. 编译要是 MAUI 和 TORQUE 无缝的结合在一起,确保管理节点(PBS SERVER)上TORQUE 的路径设置正确 ,#./configure -with-pbs=/usr/local#make#make install2.1.3. MAUI 自启动脚本 rootnode33 maui-3.2.6p17# cp etc/maui.d /etc/
15、init.d/rootnode33 maui-3.2.6p17# vi /etc/init.d/maui.d#!/bin/sh# maui This script will start and stop the MAUI Scheduler# chkconfig: 345 85 85# description: maui#ulimit -n 32768# Source the library functions. /etc/rc.d/init.d/functionsMAUI_PREFIX=/usr/local/maui# let see how we were calledcase “$1“
16、instart)echo -n “Starting MAUI Scheduler: “daemon $MAUI_PREFIX/sbin/mauiecho;stop)echo -n “Shutting down MAUI Scheduler: “killproc mauiecho;status)status maui;restart)$0 stop$0 start;*)echo “Usage: maui start|stop|restart|status“exit 1esac2.1.4. 与 MAUI 结合的 node33 上 TORQUE 设置在 TORQUE 的 qmgr 上rootnode
17、33 maui-3.2.6p18# qmgrMax open servers: 4Qmgr: set server managers += root*.node33Qmgr: set server operators += root*.node33Qmgr: set server scheduling=TrueQmgr: quit要确保 set server scheduling=True 这条,这条语句确保了可以使用 MAUI 调度。其它设置:TORQUE 默认作业的最大运行时间为 3600s(1 个小时),需要根据实际情况进行修改:设定作业运行所需时间资源不超过 7 天:qmgr -c “
18、set queue batch resources_default.walltime=604800“qmgr c “set server query_other_jobs=TRUE”确保每个非管理员帐户可以查看其它帐户的作业信息。2.1.5. MAUI 配置文件rootnode33 vi /usr/local/maui/maui.cfg# maui.cfg 3.2.6p17#edited by dolphin=#SERVERHOST node33SCHEDCFG0 SERVER=node33:42559 MODE=NORMAL#=end=# primary admin must be firs
19、t in listADMIN1 root# Resource Manager Definition#=edited by dolphin#RMCFGNODE33 TYPE=PBSRMNMHOSTRMCFG0 TYPE=PBS HOST=node33#=end=# Allocation Manager DefinitionAMCFGbank TYPE=NONE# full parameter docs at http:/supercluster.org/mauidocs/a.fparameters.html# use the schedctl -l command to display curr
20、ent configurationRMPOLLINTERVAL 00:00:30SERVERPORT 42559SERVERMODE NORMAL# Admin: http:/supercluster.org/mauidocs/a.esecurity.htmlLOGFILE maui.logLOGFILEMAXSIZE 10000000LOGLEVEL 3# Job Priority: http:/supercluster.org/mauidocs/5.1jobprioritization.htmlQUEUETIMEWEIGHT 1 # FairShare: http:/supercluste
21、r.org/mauidocs/6.3fairshare.html#FSPOLICY PSDEDICATED#FSDEPTH 7#FSINTERVAL 86400#FSDECAY 0.80# Throttling Policies: http:/supercluster.org/mauidocs/6.2throttlingpolicies.html# NONE SPECIFIED# Add by dolphin =#JOBNODEMATCHPOLICY EXACTNODE#NODEACCESSPOLICY SINGLEUSERJOBNODEMATCHPOLICY EXACTNODENODEACC
22、ESSPOLICY SHARED#NODECFGDEFAULT PRIORITYF=-JOBCOUNTENABLEMUITINODEJOBS TRUEENABLEMULTIREQJOBS TRUE# ended =# Backfill: http:/supercluster.org/mauidocs/8.2backfill.htmlBACKFILLPOLICY FIRSTFITRESERVATIONPOLICY CURRENTHIGHEST# Node Allocation: http:/supercluster.org/mauidocs/5.2nodeallocation.html# Add
23、 by dolphin =NODEALLOCATIONPOLICY FIRSTAVAILABLE#NODEALLOCATIONPOLICY PRIORITY# ended =#NODEALLOCATIONPOLICY MINRESOURCE# QOS: http:/supercluster.org/mauidocs/7.3qos.html# QOSCFGhi PRIORITY=100 XFTARGET=100 FLAGS=PREEMPTOR:IGNMAXJOB# QOSCFGlow PRIORITY=-1000 FLAGS=PREEMPTEE# Standing Reservations: h
24、ttp:/supercluster.org/mauidocs/7.1.3standingreservations.html# SRSTARTTIMEtest 8:00:00# SRENDTIMEtest 17:00:00# SRDAYStest MON TUE WED THU FRI# SRTASKCOUNTtest 20# SRMAXTIMEtest 0:30:00# Creds: http:/supercluster.org/mauidocs/6.1fairnessoverview.htmlUSERCFGDEFAULT MAXJOB=2 MAXNODE=3USERCFGnano MAXJO
25、B=64 MAXNODE=16#这里指定默认的每个帐户最大可以运行 2 个 job,每个 job 所申请的节点总数不能超#过 3 个。而 nano 帐户在另外做限制,可以用 16 个节点,最大可以运行 64 个作业。# USERCFGDEFAULT FSTARGET=25.0# USERCFGjohn PRIORITY=100 FSTARGET=10.0-# GROUPCFGstaff PRIORITY=1000 QLIST=hi:low QDEF=hi# CLASSCFGbatch FLAGS=PREEMPTEE# CLASSCFGinteractive FLAGS=PREEMPTOR红色标
26、记出来的是需要修改并已经修改过的地方,关于 MAUI 各个配置参数的意义,请查看http:/ MAUI 服务起来了。/etc/init.d/maui.d start然后提交作业 echo “sleep 2” | qsub 查看是不是正常。注意事项:TORQUE 的 pbs_sched 不要启动,因为我们要使用 MAUI 作为调度器。关于 TORQUE 更详细的信息,请参考:http:/ 和 http:/ MAUI 更详细的信息请参考:http:/ 以及http:/ 和http:/www.dcsc.sdu.dk/docs/maui/mauidocs.html关于 MAUI 和 TORQUE 的集成,请参考:http:/