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. info.plist 属性讲解

    1 常用项: Application requires iPhone environment:如果应用程序不能在ipodtouch上运行,设置此项为true; Application usesWi-F ...

  2. mmap内存映射复习

    c语言初学时,比较常见的一个习题就是实现cp. 使用c库实现的cp就不赘述了. 最近工作用到内存映射,就拿来练下手,复习一下mmap的用法. 很简单,将目标文件和源文件映射到内存,然后使用memcpy ...

  3. 把Blob 转化为字符串查询。

    在Oracle里面,有时候我们对于clob或者是blob作为varhcar2来查询. Clob可以直接使用 to char函数来转换. Blob就需要用 UTL_RAW.CAST_TO_VARCHAR ...

  4. jQuery分页插件jBootstrapPage,一个Bootstrap风格的分页插件

    一个Bootstrap风格的分页控件,对于喜欢Bootstrap简洁美观和扁平化的同学可以关注jBootstrapPage, 目前jBootstrapPage最新版为V0.1,后续还有更多功能需要完善 ...

  5. 【UVA10603】Fill (构图+最短路)

    题目: Sample Input22 3 4 296 97 199 62Sample Output2 29859 62 题意: 有三个杯子它们的容量分别是a,b,c, 并且初始状态下第一个和第二个是空 ...

  6. java rest版简单的webservice

    目前的webservice风格,rest应该是其中一种 还有种就是soap,rest是轻量级的,越来越流行.下面举一个简单例子说明下rest的用法. 1. 准备ws的jar和spring的jar,如何 ...

  7. 在html页面中利用ftp访问协议格式载入服务器图片

    访问格式为:ftp://用户名:密码@服务器ip:服务器端口/具体文件路径 如下所示: <img src="ftp://lxj:123@127.0.0.1:21/IMG_2013051 ...

  8. 让DataGridView的标题显示中文

    一般情况,DataTable中用来区分不同列的值,使用DataTable.Columns.ColumnsName,但是DataTable的Columns还有一个Caption属性,在这个属性里面可以用 ...

  9. Unity FisheyeShader using Spherical Mapping

    Shader "Hidden/FisheyeShader" { Properties { _MainTex ("Base (RGB)", 2D) = " ...

  10. java基础(十三)常用类总结(三)

    这里有我之前上课总结的一些知识点以及代码大部分是老师讲的笔记 个人认为是非常好的,,也是比较经典的内容,真诚的希望这些对于那些想学习的人有所帮助! 由于代码是分模块的上传非常的不便.也比较多,讲的也是 ...