Torque+Maui配置手册之抛砖引玉篇本文将以应用于实际案例(南航理学院、复旦大学物理系、宁波气象局)中的作业调度系统为例,简单介绍一下免费开源又好用的Torque+Maui如何在曙光服务器上进行安装和配置,以及针对用户特定需求的常用调度策略的设定情况,以便可以起到抛砖引玉的作用,使更多的人关注MAUI这个功能强大的集群调度器(后期将推出SGE+MAUI版本)。本文中的涉及的软件版本Torque版本:2.1.7maui版本:3.2.6p17。1.集群资源管理器Torque1.1.从源代码安装Torque其中pbs_server安装在node33上,TORQUE有两个主要的可执行文件,一个是主节点上的pbs_server,一个是计算节点上的pbs_mom,机群中每一个计算节点(node1~node16)都有一个pbs_mom负责与pbs_server通信,告诉pbs_server该节点上的可用资源数以及作业的状态。机群的NFS共享存储位置为/home,所有用户目录都在该目录下。1.1.1.解压源文件包在共享目录下解压缩torque#tar-zxftorque-2.1.17.tar.gz假设解压的文件夹名字为:/home/dawning/torque-2.1.71.1.2.编译设置#./configure--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#makeinstallServer端安装设置:在torque的安装源文件根目录中,执行#./torque.setuproot以root作为torque的管理员账号创建作业队列。计算节点(Client端)的安装:由于计算节点节点系统相同,因而可以用如下SHELLscript(脚本名字为torque.install.sh)在其余计算节点上安装:创建torque.install.sh脚本#vitorque.install.sh#!/bin/shcd/home/dawning/torque-2.1.7makeinstall使用如下命令:npssh-onnode1..32sh/home/dawning/torque.install.sh将在每个节点上安装TORQUE。1.1.4.TORQUE配置1.1.4.1在计算节点上配置TORQUE:在每个计算节点,必须配置MOMdaemon信任pbs_serverdaemon,可以通过编辑/var/spool/torque/server_name来实现,把node33写入该文件即可。#cat/var/spool/torque/server_namenode33其余的配置参数写入/var/spool/torque/mom_priv/config文件。配置计算节点的数据管理,数据管理允许作业的数据在计算节点和PBS_Server之间传递。对于共享文件系统,如NFS,可以通过在mom_priv/config中用$usecp参数来指定如何映射用户的根目录。$usecp*:/home/home这里集群的mom_priv/config内容如下:#MOMserverconfigurationfile#ifmorethanonevalue,separate##ruleisdefinedbythename##hostallowedtoconnecttomomserveronprivilegedport#note:IPaddressofhostrunningpbs_serveritbycomma.$pbsserver10.0.68.33$clienthostnode33#idealprocessorloadandmaxprocessorload$ideal_load7$max_load8##hostallowedtoconnecttoMomserveronunprivilegedport#Specifieshostswhichcanbetrustedtoaccessmomservicesasnon-root.#Bydefault,nohostsaretrustedtoaccessmomservicesasnon-root.$restricted*.node33##Logevent:#0x1ff:logallevents+debugevents#0x0ff:justallevents$logevent0x0ff##alarmifthescripthangortakeverylongtimetoexecute$prologalarm30##Specifieswhichdirectoriesshouldbestaged$usecp*:/home/homeServer端资源管理配置指定计算节点为了让pbs_server与每个计算节点进行通信,它需要知道要和那些机器联络,集群中的每个计算节点都必须在nodes文件中指定,一个1行。#rshnode33#cd/var/spool/torque/server_priv#foriin`seq132`;doechonode$inp=2;donenodes#catnodesnode1np=8node2np=8node3np=8node4np=8node5np=8node6np=8node7np=8node8np=8node9np=8node10np=8node11np=8node12np=8node13np=8node14np=8node15np=8node16np=8node17np=8node18np=8node19np=8node20np=8node21np=8node22np=8node23np=8node24np=8node25np=8node26np=8node27np=8node28np=8node29np=8node30np=8node31np=8node32np=8np=8是说每个节点有8个CPU(其余的以线程来跑)。指定作业的提交节点为node33,node34,node35:[root@node33~]#qmgr-c'setserversubmit_hosts=node33'[root@node33~]#qmgr-c'setserversubmit_hosts+=node34'[root@node33~]#qmgr-c'setserversubmit_hosts+=node35'1.1.5.系统自动启动脚本1.Server的系统启动脚本/etc/init.d/pbs_server该脚本单独启动/重新启动/暂停/查看状态TORQUE中Server的守护进程#cpcontrib/init.d/pbs_server/etc/init.d/编辑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的守护进程。#cpcontrib/init.d/pbs_mom/etc/init.d/#vi/etc/init.d/pbs_momPBS_DAEMON=/usr/local/sbin/pbs_momPBS_HOME=/var/spool/torquePBS_SERVER端测试:重启pbs_server,使刚才的配置生效。/etc/init.d/pbs_serverrestart#verifyallqueuesareproperlyconfiguredqstat-q#viewadditionalserverconfigurationqmgr-c'ps'#verifyallnodesarecorrectlyreportingpbsnodes-a#submitabasicjob-DONOTRUNASROOTsu-testuserqstat2.调度器系统MAUI的安装配置2.1.1.在共享目录下解压缩MAUI#tar-zxfmaui-3.2.6p17.tar.gz假设解压的文件夹名字为:/home/dawning/maui-3.2.6p172.1.2.编译要是MAUI和TORQUE无缝的结合在一起,确保管理节点(PBSSERVER)上TORQUE的路径设置正确,#./configure--with-pbs=/usr/local#make#makeinstall2.1.3.MAUI自启动脚本[root@node33maui-3.2.6p17]#cpetc/maui.d/etc/init.d/[root@node33maui-3.2.6p17]#vi/etc/init.d/maui.d#!/bin/sh##mauiThisscriptwillstartandstoptheMAUIScheduler##chkconfig:3458585#description:maui#ulimit-n32768#Sourcethelibraryfunctions./etc/rc.d/init.d/functionsMAUI_PREFIX=/usr/local/maui#letseehowwewerecalledcase$1instart)echo-nStartingMAUIScheduler:daemon$MAUI_PREFIX/sbin/mauiecho;;stop)echo-nShuttingdownMAUIScheduler:killprocmauiecho;;status)statusmaui;;restart)$0stop$0start;;*)echoUsage:maui{start|stop|restart|status}exit1esac2.1.4.与MAUI结合的node33上TORQUE设置在TORQUE的qmgr上[root@node33maui-3.2.6p18]#qmgrMaxopenservers:4Qmgr:setservermanagers+=root@*.node33Qmgr:setserveroperators+=root@*.node33Qmgr:setserverscheduling=TrueQmgr:quit要确保setserverscheduling=True这条,这条语句确保了可以使用MAUI调度。其它设置:TORQUE默认作业的最大运行时间为3600s(1个小时),需要根据实际情况进行修改:设定作业运行所需时间资源不超过7天:qmgr-csetqueuebatchresources_default.walltime=604800qmgr–c“setserverquery_other_jobs=TRUE”确保每个非管理员帐户可以查看其它帐户的作业信息。2.1.5.MAUI配置文件[root@node33~]vi/usr/local/maui/maui.cfg#maui.cfg3.2.6p17#editedbydolphin=============#SERVERHOSTnode33SCHEDCFG[0]SERVER=node33:42559MODE=NORMAL#================end============================#primaryadminmustbefirstinlistADM