1.        配置防火墙

正确配置防火墙的过滤规则,否则会造成NFS文件系统的挂载失败,NIS账户认证的失败,mpirun远程任务实例投放的失败。一般情况下,计算集群是在内部局域网中使用,所以可以不用太顾及安全问题,直接关闭掉所有节点服务器的防火墙即可。

相关命令如下:

service iptables stop        #或者
/etc/init.d/iptables stop #以上这两种方法,即时生效但重启后复原
#或者
chkconfig iptables on #重启后永久生效

2.        配置集群局域网ip与主机名的映射

为了方便,可能需要将节点主机名改为node1、node2、node3……的统一形式,修改主机名的命令是:

hostname node1                     #将主机名修改成了node1,但机器重启后会失效

永久修改的方法是修改/etc/sysconfig/network文件中的hostname一行:

HOSTNAME=node1

修改每个节点中的文件/etc/hosts,将集群中各个节点主机名与ip的对应关系写进去。

3.        配置NFS共享文件系统

分布式并行计算一般要求各个节点服务器的应用软件环境和工作目录环境要保持一致,如果在每个节点上都要配置一遍,会特别麻烦。所以采用NFS共享文件系统,将应用软件和工作目录都部署在公共目录,就能能很好的解决这一困难。只需部署一次,所有的节点服务器就都能访问。

首先在所有的节点安装nfs套件,采用命令:

yum install nfs

然后,选在一台硬盘存储较大的节点服务器,例如node0,将其作为NFS server进行配置。具体做法是,先配置/etc/exports文件,在这个文件中写入:

/tmp        node*(rw,no_root_squash)                  #将允许主机名为node*(*代表通配符)的服务器以rw形式挂载tmp目录。

然后在NFS server节点上执行如下命令:

exportfs  –ar    #每次修改/etc/exports文件后都要执行一下这个命令。
service nfs start #启动nfs服务

其它的节点服务器,作为NFS client进行配置,需要执行如下命令:

service nfs start    #启动nfs服务
mount –t nfs node0:/share /share #强nfs server(即node0)的/share目录挂载到本地的/share目录

通过修改/etc/fstab文件可以实现开机自动挂载,在此文件中填入一行:

192.168.44.130:/share   /share                  nfs     defaults        0 0

其它一下相关命令:

showmount -e 192.168.0.30         #在客户端使用此命令检查NFS SERVER上export出来的目录
showmount –a #一般在NFS SERVER上用,显示已经mount上本机nfs目录的client机器
chkconfig --level 35 nfs on #配置开机自动启动nfs服务

4.        配置NIS服务

分布式并行计算要求各个节点服务器上的账户信息环境要一直,如果在每台节点服务器上都配置一遍用户信息,工作量太大且重复。这个问题可以通过配置一台NIS服务器来解决,所有主机都可以到NIS服务器上查找用户信息进行账户认证。NIS(Network information service)又叫YP(Yellow Pages,电话簿的意思)。

首先在所有的计算节点上安装NIS相关套件,命令如下:

yum install yp*
yum install xinetd

在所有的节点上修改/etc/xinetd.d/time,使disable=no,然后执行如下命令:

service xinetd restart                     #启动xinetd服务
nisdomainname cluster #设置NIS域的名字,在这设成了cluster

在所有的节点上修改/etc/sysconfig/network文件,加入一行:

NISDOMAIN=cluster

选择一台节点服务器,例如node0,作为NIS server进行配置,配置/etc/ypserv.conf文件,添加三行:

127.0.0.0/255.255.255.0    : *       : *                : none
192.168.0.0/255.255.255.0 : * : * : none
* : * : * : deny

其中192.168.0.0代表网段,要根据具体网络配置填写。

然后创建账户数据库,执行命令:

/usr/lib64/yp/ypinit –m     #添加用户时,只需要在NIS服务端增加,然后执行/usr/lib64/yp/ypinit –m更新一下数据库即可

创建数据库,之后要启动服务ypserv和yppasswdd:

service ypserv start
service yppasswdd start
chkconfig --level 35 ypserv on #开机启动服务
chkconfig --level 35 yppasswdd on #开机启动服务

其他计算节点服务器作为NIS client进行配置,首先配置/etc/yp.conf 添加两行:

nisdomain cluster  #设置NIS域的名字,在这设成了cluster
ypserver node0 #设置NIS server的主机名,在这设成了node0

配置/etc/passwd 添加1行:

+::::::                 #注意冒号的数量

配置/etc/nsswitch.conf,添加如下4行:

passwd:     files nis nisplus
shadow: files nis nisplus
group: files nis nisplus
hosts: files nis dns

最后执行命令:

service ypbind restart          #启动服务
chkconfig --level 35 ypbind on #开机自动启动ypbind的方法

5.        配置ssh无密码登陆

在家目录没有配置在共享文件系统中的情况下,若要主机B无密码登陆主机A,则要配置主机A,在主机A用户家目录中建立.ssh目录,cd进去之后上执行如下:

ssh-keygen -t rsa                                        #然后一直回车键,按照默认将生成的密钥保存在.ssh/id_rsa文件中。
cp id_rsa.pub authorized_keys #这步完成后,正常情况下就可以无密码登录本机了。
scp authorized_keys test@B:/homename/.ssh #把刚刚产生的authorized_keys文件拷一份到主机B上.
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
chmod 600 authorized_keys 进入主机B的.ssh目录,改变authorized_keys文件的许可权限

按照以上步骤,只能让B无密码访问A, 所以为了让集群内每个节点都能相互无密码访问,就需要把没两台节点配对相互按照上面步骤配置,工作量特别大。

如果家目录配置在了共享文件系统中,则要简单的多,执行执行以下命令,即可让集群内每个节点都能相互无密码访问

ssh-keygen -t rsa
cp id_rsa.pub authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

另外在/etc/ssh/ssh_config文件中添加StrictHostKeyChecking no,这样在第一次ssh登陆时,系统不会再提示是否将主机加入到known hosts中。

6.        安装并配置openmpi

安装openmpi的一版配置如下,如果使用intel的编译器,需要先安装intel编译器,然后执行命令:

./configure CC=icc CXX=icc FC=ifort  --prefix=/opt/openmpi/ --enable-static --enable-mpi-cxx   ps:一定要新建一个目录作为安装目录

如果使用系统自带默认编译器,则执行如下命令:

./configure --prefix=/opt/openmpi/ --enable-static --enable-mpi-cxx   ps:一定要新建一个目录作为安装目录

最后编译openmpi,命令如下:

make all install

7.        安装配置负载均衡系统(可选)

如果想增加作业调度功能,则还需要安装lsf等软件,这些软件的配置较为负载,而且一般小型集群没有必要使用,所以这里不再赘述。

openmpi+NFS+NIS搭建分布式计算集群的更多相关文章

  1. 搭建Artifactory集群

    搭建Artifactory集群 制品仓库系统有很多,例如Artifactory.Archiva.Sonatype Nexus.Eclipse Package Drone,其中Artifactory拥有 ...

  2. MongoDB 搭建分片集群

    在MongoDB(版本 3.2.9)中,分片是指将collection分散存储到不同的Server中,每个Server只存储collection的一部分,服务分片的所有服务器组成分片集群.分片集群(S ...

  3. 分布式缓存技术redis学习系列(四)——redis高级应用(集群搭建、集群分区原理、集群操作)

    本文是redis学习系列的第四篇,前面我们学习了redis的数据结构和一些高级特性,点击下面链接可回看 <详细讲解redis数据结构(内存模型)以及常用命令> <redis高级应用( ...

  4. 使用Windows Azure的VM安装和配置CDH搭建Hadoop集群

    本文主要内容是使用Windows Azure的VIRTUAL MACHINES和NETWORKS服务安装CDH (Cloudera Distribution Including Apache Hado ...

  5. 搭建mongodb集群(副本集+分片)

    搭建mongodb集群(副本集+分片) 转载自:http://blog.csdn.net/bluejoe2000/article/details/41323051 完整的搭建mongodb集群(副本集 ...

  6. 实验室中搭建Spark集群和PyCUDA开发环境

    1.安装CUDA 1.1安装前工作 1.1.1选取实验器材 实验中的每台计算机均装有双系统.选择其中一台计算机作为master节点,配置有GeForce GTX 650显卡,拥有384个CUDA核心. ...

  7. 分布式缓存技术redis学习(四)——redis高级应用(集群搭建、集群分区原理、集群操作)

    本文是redis学习系列的第四篇,前面我们学习了redis的数据结构和一些高级特性,点击下面链接可回看 <详细讲解redis数据结构(内存模型)以及常用命令> <redis高级应用( ...

  8. virtualbox 虚拟3台虚拟机搭建hadoop集群

    用了这么久的hadoop,只会使用streaming接口跑任务,各种调优还不熟练,自定义inputformat , outputformat, partitioner 还不会写,于是干脆从头开始,自己 ...

  9. nginx+tomcat+memcached搭建服务器集群及负载均衡

    在实际项目中,由于用户的访问量很大的原因,往往需要同时开启多个服务器才能满足实际需求.但是同时开启多个服务又该怎么管理他们呢?怎样实现session共享呢?下面就来讲一讲如何使用tomcat+ngin ...

随机推荐

  1. X/Open DTP——分布式事务模型

    转载:http://www.cnblogs.com/aigongsi/archive/2012/10/11/2718313.html 这一几天一直在回顾事务相关的知识,也准备把以前了解皮毛的知识进行一 ...

  2. Matlab聚类分析[转]

    Matlab聚类分析[转] Matlab提供系列函数用于聚类分析,归纳起来具体方法有如下: 方法一:直接聚类,利用clusterdata函数对样本数据进行一次聚类,其缺点为可供用户选择的面较窄,不能更 ...

  3. win7+ubuntu双系统安装方法

    转自win7+ubuntu双系统安装方法 前段时间又安装一下win7+ubuntu双系统,过段时间就会忘记,这次自己写下来,以便以后查看. 1.      先准备一个分区来安装ubuntu.在win7 ...

  4. request.getParameter() 、 request.getInputStream()和request.getReader() 使用体会

    request.getParameter(). request.getInputStream().request.getReader()这三种方法是有冲突的,因为流只能被读一次.比如:当form表单内 ...

  5. lc面试准备:Invert Binary Tree

    1 题目 Invert a binary tree. 4 / \ 2 7 / \ / \ 1 3 6 9 to 4 / \ 7 2 / \ / \ 9 6 3 1 接口: public TreeNod ...

  6. c++重载、覆盖和隐藏

    看以前的:http://www.cnblogs.com/youxin/p/3305688.html 答案:a.成员函数被重载的特征:overload(1)相同的范围(在同一个类中):(2)函数名字相同 ...

  7. 【HDOJ】1814 Peaceful Commission

    2-SAT基础题目. /* 1814 */ #include <iostream> #include <vector> #include <algorithm> # ...

  8. Idea学习笔记

    (1)安装,启动,配置: 1.安装完的插件如果不需要的插件可以不启动它:可以在setting里面配置plugins勾选不需要的插件:好处是加快idea的启动: 2.安装完成之后启根据系统32位,64位 ...

  9. Asp.Net MVC向视图View传值的三种常见的方法:

    1.通过View( parameter )的参数传递 action: public ActionResult Index() { Person person=new Person("wumi ...

  10. Move Zeroes——Leetcode

    Given an array nums, write a function to move all 0's to the end of it while maintaining the relativ ...