建站服务器
撰写日期:2017年6月13日
作者:翟江恒
一般情况下不会采用手动的方式安装HPC,而是采用集成自动化方案来部署hpc,但是这些集成方案都是集成了指定的操作系统发行版本,比如常见的HPC集成自动化方案rockets,到目前为止集成centos 6.6,如果需要把HPC安装其他linux发行版本环境里面,就不能使用集成自动化方案,必须使用手动安装方法,这篇博客就是叙述如何手动搭建HPC的。敬请往下看。
1. HPC简介
2. HPC架构
3. ssh无密码访问
4. 安装配置NFS
5. 安装配置NIS
6. 安装tentakel
7. 安装openmpi
8. 安装torque
9. 安装ganglia
1.HPC简介
3.SSH无密码访问
#!/bin/bash
rm -fr/root/.ssh
/usr/bin/expect<<EOF
setforce_conservative 0 ;# set to 1 toforce conservative mode even if
;# script wasn\'t run conservativelyoriginally
if{\\$force_conservative} {
set send_slow {1 .1}
proc send {ignore arg} {
sleep .1
exp_send -s -- \\$arg
}
}
settimeout -1
spawnssh-keygen -t dsa
match_max100000
expect-exact Enter file in which to save the key (/root/.ssh/id_dsa):
send --\\r
expect-exact Enter passphrase (empty for no passphrase):
send --\\r
expect-exact Enter same passphrase again:
send --\\r
expecteof
EOF
cd/root/.ssh
catid_dsa.pub >> authorized_keys
chmod 600authorized_keys
#!/bin/bash
if [ $#-ne 1 ]
then
{
echo \'usage: step1.exp root_password\'
exit
}
fi;
ROOTPASSWD=$1
rm -fr/root/.ssh/known_hosts
#for((node=1;node<=10;node++))
for nodein $(cat hostfile)
do
/usr/bin/expect<<EOF
# set to1 to force conservative mode even if
setforce_conservative 0 ;
;# script wasn\'t run conservativelyoriginally
if{\\$force_conservative} {
set send_slow {1 .1}
proc send {ignore arg} {
sleep .1
exp_send -s -- \\$arg
}
}
settimeout -1
spawn ssh${node} hostname
match_max100000
expect-exact Are you sure you want to continue connecting (yes/no)?
send --yes\\r
expect-exact ${node}\'s password:
send --${ROOTPASSWD}\\r
expecteof
EOF
#!/bin/bash
if [ $#-ne 1 ]
then
{
echo \'usage : step3.exp root_password\';
exit 1;
}
fi;
ROOTPASSWORD=$1
#for((node=1;node<=10;node++))
for nodein $(cat hostfile)
do
/usr/bin/expect<<EOF
setforce_conservative 0 ;# set to 1 toforce conservative mode even if
;# script wasn\'t run conservativelyoriginally
if{\\$force_conservative} {
set send_slow {1 .1}
proc send {ignore arg} {
sleep .1
exp_send -s -- \\$arg
}
}
settimeout -1
spawn scp-rp /root/.ssh ${node}:/root
match_max100000
expect-exact root@${node}\'s password:
send --${ROOTPASSWORD}\\r
expecteof
EOF
执行命令:touch hostfile
编辑hostfile文件,加入说有主机名,一行一个。
例如:
node136
node137
node138
hpc-test
执行如下命令:
cp setp1.exp setp2.exp setp3.exp hostfile /root/rootUser/
cp setp1.exp setp2.exp hostfile /home/普通用户目录
chmod755 –R /root/rootUser/
chmod755 –R /home/普通用户目录
chown root:root –R /root/rootUser/
chown普通用户:普通用户组–R /home/普通用户目录/
以下实现各服务器之间root用户之间ssh无密码访问。
4. NFS配置
5.安装配置NIS服务
测试tentakel是否生效
执行命令:tentakel –g all “uptime”
./configure --prefix=/hpc/openmpi CC=gcc CXX=g++F77=gfortran FC=gfortran
编译安装
make && make install(必须要make命令编译成功才执行makeinstall开始安装)
再执行:
source/etc/profile
Source/home/用户/.bashrc
测试openmpi
8.安装torque
/shared_storage/ ----指的是共享存储目录
/shared_storage/
执行torque-package-clients-linux-x86_64.sh和torque-package-mom-linux-x86_64.sh
把管理节点上的安装包目录里的contrib/init.d/pbs_mom拷贝到所有计算节点的/etc/init.d/目录。
把pbs_mom加入服务列表
chkconfig--add pbs_mom
设置pbs_mom服务开机自启动
chkconfigpbs_mom on
在管理节点编写脚本:
startpbs_server.sh和shutpbs_server.sh
startpbs_server.sh用来启动所有pbs服务,内容如下:
#!/bin/bash
for iin pbs_server pbs_mom pbs_sched trqauthd;
do
/etc/init.d/$istart
done
shutpbs_server.sh用来停止所有pbs服务,内容如下:
#!/bin/bash
for iin pbs_server pbs_mom pbs_sched trqauthd;
do
/etc/init.d/$istop
done
添加执行权限:
chmod+x startpbs_server.sh
chmod+x shutpbs_server.sh
执行:shstartpbs_server.sh启动所有服务。
在计算节点的编辑/etc/profile文件加入TORQUE_HOME环境变量
source/etc/profile
在计算节点执行:
#echo /usr/local/lib> /etc/ld.so.conf.d/torque.conf
#ldconfig
启动pbs_server
/etc/init.d/pbs_momstart
在管理节点执行命令:qnodes
状态为free就是正常的,为down就是计算节点的pbs_mom服务挂了。
编写测试脚本:
test.pbs内容如下:
#PBS-l nodes=1
##PBS-N test_1
#PBS-S /bin/bash
mpiexec–H localhost,node136,node137 -np 30 /home/hpc/a.out > /home/hpc/cu1111.log2>&1
su – 普通用户
提交作业:
qsub test.pbs
查看作业队列:
qstat
状态为C表示作业执行完成,为E表示作业执行完成正在退出。
9.安装ganglia监控
Ganglia由gmond、gmetad和gweb三部分组成
gmond(GangliaMonitoring Daemon)是一种轻量级服务,安装在每台需要收集指标数据的节点主机上。gmond在每台主机上完成实际意义上的指标数据收集工作,并通过侦听/通告协议和集群内其他节点共享数据。使用gmond,你可以很容易收集很多系统指标数据,如CPU、内存、磁盘、网络和活跃进程的数据等。
gmetad(GangliaMeta Daemon)是一种从其他gmetad或gmond源收集指标数据,并将其以RRD格式存储至磁盘的服务。gmetad为从主机组收集的特定指标信息提供了简单的查询机制,并支持分级授权,使得创建联合监测域成为可能。
gweb(GangliaWeb)gweb是一种利用浏览器显示gmetad所存储数据的PHP前端。在Web界面中以图表方式展现集群的运行状态下收集的多种不同指标数据。
管理节点需要安装的组件:
gmetad
http
php
gweb
计算节点需要安装的组件:
gmond
在所有节点执行下面的操作:
安装软件源:wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm –ivh epel-release-6-8.noarch.rpm
执行如下命令:
yum clean all
yum makecach
yum update –y
yum search ganglia-gmetad ganglia-gmond
如果yum search命令可以找到ganglia软件包在开始安装管理节点和计算节点。
安装管理节点:
安装gmetad
执行:
yum installganglia-gmetad -y
安装ganglia-web
在安装ganglia-web之前需要先安装httpd和php
执行:
yum install httpd php
建立ganglia的web目录:
mkdir /var/www/html/ganglia
把ganglia-web下面的所有文件拷贝到/var/www/html/ganglia
配置管理节点:
配置gmetad
修改gmetad服务的配置配文件:
vim /etc/ganglia/gmetad.conf
修改data_source参数
格式为:data_source “集群名称” host1:port,host2:port,.. hostN:port
如果不指定端口会使用默认端口:8649
配置ganglia-web
gmond服务配置
name字段需要和管理节点一致。
在管理节点执行:
systemctl enablegmetad.service
systemctl startgmetad.service
systemctl enablehttpd.service
systemctl enablehttpd.service
在计算节点执行:
systemctl enablegmond.service
systemctl start gmond.service
下面是见证奇迹的时刻。
在浏览器地址栏里面输入:
http://apache-hosot/ganglia
分享标题:手动搭建HPC(高性能计算)
网站URL:https://www.cdcxhl.com/article6/cppeig.html
成都网站建设公司_创新互联,为您提供云服务器、建站公司、网站策划、标签优化、响应式网站、网站设计公司
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联