一、Centos7系统的安装及设置
1、给两台电脑安装CentOS7.0,光盘启动路径修改为:/dev/cdrom
修改主机名称
# hostnamectl set-hostname <host-name>
2、设置ip地址
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
添加下列属性值
IPADDR=”192.168.0.134”
NETMASK=”255.255.255.0”
BROADCAST=”192.168.0.255”
GATEWAY=”192.168.0.1”
3、设置/etc/hosts
设置各台服务器的hosts文件都为相同的配置
192.168.0.134 master
192.168.0.135 de2
192.168.0.136 de2
4、进行ssh无密码访问设置
4.1、单项设置服务器
A访问B无需密码
a.首先在A中执行 #ssh-keygen -t rsa 连按3下进行无密码设置;执行上面一步,会在~/.ssh目录下生成两个文件id_rsa和id_rsa.pub, 其中id_rsa是私钥,保存在本机;id_rsa.pub是公钥,是要上传到远程服务器的。
b.上传公钥到需要无密码登陆的远程服务器B上并改名为authorized_keys:
远程服务器B上如果没有.ssh目录的话,先手动创建:
[root@localhost ~]# mkdir .ssh
[root@localhost ~]# chmod 755 .ssh
c.然后从服务器A上传公钥文件到远程服务器B:
[root@localhost ~]# scp .ssh/id_rsa.pub [email protected]:/root/.ssh/authorized_keys
然后使用#ssh slave 测试,无需密码转到服务器B成功。
4.2多台服务器相互无密码访问
按照上面的思想,可以将每台服务器上执行一次#ssh-keygen–t rsa 然后将它的公钥复制到需要免密码访问本台服务器的机器上,即执行上面的c步骤
多台电脑ssh无密码访问
1.安装ssh. sudo apt-get install ssh. 安装完成后会在~目录(当前用户主目录,即这里的/home/xuhui)下产生一个隐藏文件夹.ssh(ls -a 可以查看隐藏文件)。如果没有这个文件,自己新建即可(mkdir .ssh).
2.进入.ssh目录下面,在每台机器上执行:ssh-keygen -t rsa 之后一路回车,产生密钥;
3。完成第二步后会产生两个文件:
id-rsa #私钥
id-rsa.pub #公钥
4.在第一台机器的目录.ssh下执行命令,cat id-rsa.pub >> authorized_keys;此后.ssh下面会出现authorized_keys文件。
5.然后将第一台机器的.ssh目录下面的authorized_keys文件拷贝到第二台计算机的.ssh目录下,如:scp authorized_keys xuhui@cloud002:~/.ssh/
6.再转到第二台机器的.ssh目录下,会发现刚刚传输过来的文件-authorized_keys,然后执行命令,将第二台计算机的公钥也加进来,如:cat id-rsa.pub >> authorized_keys.
7.将第二台计算机新生成的authorized_keys传输第三台计算机,将第三台计算机的公钥-id-rsa.pub添加到从第二台计算机传过来的authorized_keys里面。
8.依次类推,直至集群中的最后一台计算机。
9.在集群的最后一台计算机执行完添加后,生成的authorized_keys文件就包含集群中所有计算机的公钥,如果以后还有机器加进到集群中来,可以直接添加到文件-authorized_keys。最后,将最后生成的authorized_keys复制到集群中的每一台计算机的.ssh目录下,覆盖掉之前的authorized_keys。
10.完沉第九步后,就可以在集群中任意一台计算机上,免密码ssh登录到其他计算了。
二、torque安装与配置
(一)Master主服务器配置
torque链接http://wpfilebase.s3.amazonaws.com/torque/torque-4.1.2.tar.gz(正常)
http://www.adaptivecomputing.com/download/torque/torque-4.2.7.tar.gz(下载出错)
http://adaptive.wpengine.com/resources/downloads/torque/torque-2.5.12.tar.gz
下载网址:http://www.adaptivecomputing.com/support/download-center/torque-download/
注:以上链接在centos上无法下载,但是windows系统可以进去下载!!!
2015/1/24-http://wpfilebase.s3.amazonaws.com/torque/torque-4.2.5.tar.gz(状态可为free,但作业一直处于Q状态)
2015/1/25-http://wpfilebase.s3.amazonaws.com/torque/torque-4.2.8.tar.gz(子节点都是down,后来发现,应该是centos7防火墙问题,没关闭成功)
2015/1/26-http://adaptive.wpengine.com/resources/downloads/torque/torque-2.5.12.tar.gz到了./torque.setup root出错
2015/1/27-http://adaptive.wpengine.com/resources/downloads/torque/torque-4.1.7.tar.gz(正常,但是子节点不能工作)
2015/1/28-http://adaptive.wpengine.com/resources/downloads/torque/torque-2.3.0.tar.gz make安装有错
2015/1/29-http://adaptive.wpengine.com/resources/downloads/torque/torque-4.2.9.tar.gz 亲测,安装配置一切正常
最后使用版本:torque-4.2.9.tra.gz
注:在centos7可以通过http://wpfilebase.s3.amazonaws.com/torque/torque-4.2.9.tar.gz下载,只要更改后面的版本号即可,但是5.0以上的名称有所变化,尚未找到下载链接,只能通过windows下载下来,然后上传到服务器上进行安装
1、下载torque,版本可选,选择合适的下载目录,输入下列命令
# wget –c http://wpfilebase.s3.amazonaws.com/torque/torque-4.2.9.tar.gz
说明:保证Master服务器的主机名称为master,且网络连通
2、在root用户下,解压文件
# tar -zxvf torque-4.2.9.tar.gz
3、cd torque-4.2.1
4、master 配置
# yum install libxml2-devel openssl-devel gcc gcc-c++ boost-devel libtool-y
# ./configure --prefix=/usr/local/torque-4.2.9 \
# --with-scp--with-default-server=master && make && make packages&& make install
#cp contrib/init.d/{pbs_{server,sched,mom},trqauthd} /etc/init.d/
# for i in pbs_server pbs_sched pbs_mom trqauthd; do chkconfig --add $i; chkconfig $ion; done
5、在torque的解压路径运行./torque.setup devin时运行下面两句,设置环境变量
TORQUE=/usr/local/torque-4.2.9
echo "TORQUE=$TORQUE" >>/etc/profile
echo "export PATH=\$PATH:$TORQUE/bin:$TORQUE/sbin" >>/etc/profile
source/etc/profile
./torque.setuproot
6、启动pbs_server、pbs_sched、pbs_mom、trqauthd几个服务
# qterm –t quick
# for i in pbs_server pbs_sched pbs_mom trqauthd; do service $i start; done
说明:Torque主要是由三个主要部件组成
pbs_server PBS服务守护进程,负责接收作业提交,位于服务节点上
pbs_sched PBS调度守护进程,负责调度作业,位于服务节点上
pbs_mom PBS MOM守护进程, 负责监控本机并执行作业,位于所有计算节点上
7、调度节点:
创建/var/spool/torque/server_priv/nodes文件并写入如下内容
master
注:此处可以设置每个节点的cpu个数
8、计算节点:
创建/var/spool/torque/mom_priv/config文件并写入如下内容
$pbsserver master
$logevent 255
9、启动torque,查看torque启动状态
# ps -e | grep pbs
# for i in pbs_server pbs_sched pbs_mom trqauthd; do service $i restart; done
查看节点
# qnodes #或者是pbsnodes –a
状态为free则正常
10、测试:
传建一个用户devin,切换到该用户上,然后提交一个任务,重复提交多次,然后回到root用户,检测
#adduser devin
# passwd devin #设置密码
# su devin
# vi hello.sh
# qsub hello.sh #提交多次
# su root
# qstat –a –n #查看作业分配和状态
(二)Slave计算节点配置
1、设置ip,配置master和node的hosts,在/etc/hosts中
192.168.0.139 master
192.168.0.140 node1
2、设置master和node1之间ssh无密码访问
master #ssh-keygen -t rsa
node1 #ssh-keygen-t rsa
master # scp .ssh/id_rsa.pub [email protected]:/root/.ssh/authorized_keys
node1 # scp .ssh/id_rsa.pub [email protected]:/root/.ssh/authorized_keys
或者是
Master:
# ssh-keygen -r rsa
# ssh-copy-id -i ~/.ssh/id_rsa.pub master
# ssh-copy-id -i ~/.ssh/id_rsa.pub node
Node:
# ssh-keygen -r rsa
# ssh-copy-id -i ~/.ssh/id_rsa.pub master
# ssh-copy-id -i ~/.ssh/id_rsa.pub node
3、在master运行下面代码,将下面文件拷贝到node节点中,前提node节点有torque4目录
# scp torque-package-{mom,clients}-linux-x86_64.sh node1:torque4
# scp contrib/init.d/{pbs_mom,trqauthd} node1:/etc/init.d/
4、node节点安装拷贝过来的两个文件
# ./torque-package-clients-linux-x86_64.sh --install
# ./torque-package-mom-linux-x86_64.sh --install
5、配置环境
创建/var/spool/torque/mom_priv/config文件并写入如下内容
$pbsserver master
$logevent 225
6、将计算节点加入到服务节点中
编辑/var/spool/torque/server_priv/nodes文件并写入如下内容
node1
7、启动pbs_mom
#for i in pbs_mom trqauthd; do service $i start; done
集群搭建完毕:在集群中新增节点compute-98g-1添加步骤
master:
>> vi/etc/hosts 添加计算节点ip和名称
10.10.12.10compute-98g-1
>> scp/etc/hosts root@ compute-98g-1:/etc/hosts 复制文件到计算节点覆盖hosts
>> vi/var/spool/torque/server_priv/nodes 添加计算节点到nodes:compute-98g-1
>> ssh compute-98g-1
compute-98g-1:
>> serviceiptables stop 关闭防火墙
>> servicepbs_mom restart 启动pbs_mom
>> service trqauthdrestart 启动trqauthd
>> ssh master
master 运行:
>> qterm –tquick
>> servicepbs_mom restart
>> servicepbs_server restart
>> qnodes 过会儿可以看到节点都是free状态
2015.01.30-11:16 提问:提交任务能否分配任务? 目测应该是不能,还需要配置非root用户的ssh
2015.01.30-12:00 经测试,如果没有设置非root用户的ssh,则报错
设置非root用户ssh
说明:compute-98g-1下有devin用户,在devin目录下运行ssh-keygen–t rsa
[devin@master ~]#scp .ssh/authorized_keys devin@compute-98g-1:/home/devin/authorized_keys
[devin@master ~]#ssh compute-98-1
[devin@compute-98g-1~]# cd .ssh
[[email protected]]# cat id_rsa.pub >> authorized_keys
[devin@compute-98g-1 .ssh]# scp authorized_keys devin@master:/home/devin/authorized_keys
更高阶级:Grid Engine
三、配置过程遇到的问题
1.torque 4.0 安装
(1)是在qnodes查看节点的时候,报告trqauthd没运行之类的。
首先把trqauthd从安装目录里面找到,拷贝到etc/init.d下边
在etc/profile里面增加一行
/etc/init.d/trqauthd restart
(2)qnodes发现节点的状态是down,查看server 日志发现说不认识hosts里面的当前主机
后来,在主机后面增加了域名,OK了。 注意关闭防火墙
(3)若此时运行#qnodes找不到节点,
则运行:#qterm –t quick
然后重启pbs_server服务:#service pbs_server restart
(4) 如果出现:
mxio@Node1:~/Downloads/torque-4.2.9$ ./torque.setup root
./torque.setup: 1: ./torque.setup: trqauthd: not found
trqauthd failed to start!!! exiting setup 错误,那么请检查第三步并刷新source /etc/profile。
(5)设置环境变量并刷新 (刷新环境变量需要注意时效性,如果root或sudoer退出终端,在没有重启机器的前提下,那么还是要刷新下的,不然可能会提示木有trqauthd之类的错误)
sudo vi /etc/profile
添加
#Torque
export PATH=/usr/local/torque/bin:/usr/local/torque/sbin:$PATH
刷新环境变量source /etc/profile
2.节点qnodes后一直是down
一定要记住:关闭防火墙,重启也需要关闭防火墙
由于centos7关闭防火墙方式变化,需要配置一下,然后关闭
CentOS7的防火墙修改
CentOS 7 默认使用firewalld来管理iptables规则,由于防火墙规则变动的情况很少,动不动态变得无所谓了。但是习惯是魔鬼,跟之前不一样,总是感觉不太习惯。
systemctl disablefirewalld
yum remove firewalld -y
使用下面的办法来恢复原来的习惯,同时解决iptables开机启动的问题。
yum installiptables-services -y
systemctl enable iptables
这样的话,iptables服务会开机启动,自动从/etc/sysconfig/iptables文件导入规则。
为了让/etc/init.d/iptablessave 这条命令生效,需要这么做
cp/usr/libexec/iptables/iptables.init /etc/init.d/iptables
/etc/init.d/iptables save
而chkconfig iptables 命令会自动重定向到sytemctl enableiptables
3.计算节点无法执行任务:unable to runjob,MOM rejected/rc=-1
解决:SSH 配置非root用户的即可
配置普通用户的ssh
# su devin
# cd
# ssh-keygen -t dsa
# cd .ssh
# cat id_pub.dsa >>authorized_keys
# chmod 600 authorized_keys
然后ssh相互切换一次,在.ssh目录下生成kown_hosts文件就ok了
4.报错:"Post job file processing error;job 15.masteron host node1/0".
确定非root用户ssh能够切换
5.Network is unreachable intcp_connect_sockaddr
qterm –t quick 关闭pbs_server服务
service pbs_momrestart
service pbs_serverrestart
service pbs_schedrestart
service pbs_trqauthdrestart
6.pbs_mom:LOG_ERROR::rm_requestunkonwn command 5
没有返回到master机器,检查ssh是否配置好。见问题3!
7.子节点运行qnodes命令,报错
qnodes:cannot connect toserver master,error=15137,(could not connect totrqauthd)
解决:service trqauthd restart 开启trqauthd即可.
前提:在/etc/profile文件添加torque环境变量PATH=”……”
8.pbs_mom pbs_server pbs_schedtrqauthd服务开机启动
将服务设定为开机启动:
#在伺服器端,以下这两个为必要服务
[root@HPC torque-2.4.17]$ chkconfig pbs_server on
[root@HPC torque-2.4.17]$ chkconfig pbs_sched on
#如果也要把伺服器端加入运算资源中,那也要启动pbs_mom
[root@HPC torque-2.4.17]$chkconfig pbs_mom on
9.linux挂载访问windows的共享目录
mount -t cifs -o username=administrator,password=12345 //12.12.64.171/voice /opt/test
四、Maui安装及配置(可选)
torque默认情况下使用pbs_sched管理,但对于用户权限的设置,可以使用Maui辅助
Maui的安装
下载链接:http://www.adaptivecomputing.com/download/mauischeduler/maui-3.3.1.tar.gz
http://www.adaptivecomputing.com/downloading/?file=/mauischeduler/maui-3.3.1.tar.gz
http://www.adaptivecomputing.com/download/
(一)服务节点上安装 Maui
root@master# tarzxvf maui-3.2.6p20-snap.1182974819.tar.gz
root@master# cd maui-3.2.6p20
root@master#./configure –prefix=/usr/local/maui-3.2.6p20 -–with-pbs=/usr/local/torque-4.2.9
修改maui-3.3.1/src/moab
[ajdecon@master moab]$ vi MPBSI.c
< extern int get_svrport(const char *,char *,int);
< extern int openrm(char*,int);
---改成
> extern unsigned int get_svrport(char *,char*,unsignedint);
> extern int openrm(char *,unsignedint);
然后
root@master# make
root@master# make install
(二)服务节点上配置 Maui
修改 /usr/local/maui/maui.cfg,主要为下面几项:
SERVERHOSTkd50
# primary admin must be first in list
ADMIN1 root
# Resource Manager Definition
RMCFG[KD50] TYPE=PBS@RMNMHOST@RMTYPE[0] PBS
启动maui
/usr/local/maui/sbin/maui
相关命令
# tracejob 125 #追踪job的运行状态
# pbs_server –t quick //创建一个queue
# qmgr –c “p s” //显示队列信息
例:# qdel -W 15 211 15秒后删除作业号为211的作业
更多的关于Torque和Maui的使用,请参考《资源管理软件 TORQUE 与安装、设置》一文。
Torque官方网站说明文档:
http://www.clusterresources.com/products/torque/docs/ Maui
官方网站说明文档:
http://www.clusterresources.com/products/maui/docs/mauiadmin.shtml
Maui安装结束……
===================================================================================
五、Torque+Maui作业调度系统介绍
从用户角度看,集群系统就好像一台服务器或者PC。很多用户可以同时使用这个系统。但是当太多的用户使用集群系统时,系统性能会变得很差。资源管理就是管理用户提交的作业,合理给各个作业分配资源从而确保充分利用集群系统计算能力并尽可能快的得到运算结果。简单的说,集群资源由实现如下几个部分:
资源管理器:为了确保分配给作业合适的资源,集群资源管理需要维护一个。这个
数据库记 录了集群系统中各种资源的属性和状态、所有用户提交的请求和正在运行的作业。策略管理器根据这些数据和指定的调度策略生成优先级列表。资源管理器根据这优先级列表调度作业。资源管理器还应该具有资源预留能力。这样不仅可以保留强大的资源给需要的作业,而且可以预留一定的冗余资源以应付集群中的结点失效和突发的计算。
作业调度策略管理器:策略管理器根据资源管理器得到各个结点上的资源状况和系
统的作业信息生成一个优先级列表。这个列表告诉资源管理器何时在哪些结点上运行哪个作业。策略管理器不仅要提供一个复杂的参数集合去定义计算环境和作业,而且要为这个定义提供简捷灵活的表达方式以允许实现策略驱动的资源调度。
在IBM HPC Platform中我们采用了Torque+Maui的资源管理和作业调度系统;其中Torque作为集群资源管理器,而Maui则是作为调度策略管理器。
PBS(Portable Batch System)最初由NASA的Ames研究中心开发,主要为了提供一个能满足异构计算网络需要的软件包,用于灵活的批处理,特别是满足高性能计算的需要,如集群系统、超级计算机和大规模并行系统。PBS的主要特点有:代码开放,免费获取;支持批处理、交互式作业和串行、多种并行作业,如MPI、 PVM、HPF、MPL;PBS是功能最为齐全, 历史最悠久, 支持最广泛的本地集群调度器之一。PBS的目前包括openPBS, PBS Pro和Torque三个主要分支. 其中OpenPBS是最早的PBS系统, 目前已经没有太多后续开发, PBS pro是PBS的商业版本, 功能最为丰富. Torque是Clustering公司接过了OpenPBS, 并给与后续支持的一个开源版本。
应用PBS提交任务则会形成任务队列,依次执行,有效分配资源,避免资源竞争。否则CPU时间片会轮流分配给各个人的任务,从而影响所有人的正常作业。
Maui集群调度器 是Moab集群套件前身,是一个开放源码的集群和超级计算机作业调度器(scheduler)。 PBS是一个用于作业分配的调度器 (scheduler),其主要任务是分配批作业计算任务到现有的计算资源上。 以下版本的PBS系统目前可用: OpenPBS:没有技术支持的原始开源版本; PBSPro(PBS专业版):由Altair Engineering发行和支持的商业版本; Torque:衍 生的OpenPBS,由Cluster Resources Inc.发展,支持和维护
Maui 是一个高级的作业调度器。它采用积极的调度策略优化资源的利用和减少作业的响应时间。Maui的资源和负载管理允许高级的参数配置:作业优先级(Job Priority)、调度和分配(Scheduling and Allocation)、公平性和公平共享(Fairness and Fairshare)和预留策略(Reservation Policy)。Maui的机制允许资源和服务的直接传递、策略解除(Policy Exemption)和指定特征的受限访问。Maui采用高级的资源预留架构可以保证精确控制资源何时、何地、被谁、怎样使用。Maui的预留架构完全支持非入侵式的元调度。 Maui的设计得益于世界最大的高性能计算中心的经验。Maui本身也提供测试工具和模拟器用于估计和调节系统性能。
Maui 需要资源管理器与其配合使用。我们可以把Maui想象为PBS中的一个插入部件。