十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
建站服务器
撰写日期: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< 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< # 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< 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(高性能计算)
文章起源:http://6mz.cn/article/cppeig.html