CentOS7安装GPFS4.2详细教程及遇到的问题解决

GPFS(General Parallel File System ,GPFS) 是 IBM 公司第一个共享文件系统,起源于 IBM SP 系统上使用的虚拟共享磁盘技术( VSD )。作为这项技术的核心, GPFS 是一个并行的磁盘文件系统,它保证在资源组内的 所有节点可以并行访问整个文件系统;而且针对此文件系统的服务操作,可以同时安全地在 使用此文件系统的多个节点上实现。 GPFS 允许客户共享文件,而这些文件可能分布在不同节点的不同硬盘上;它提供了许多标准的 UNIX 文件系统接口,允许应用不需修改或者重新编辑就可以在其上运行。——引自百度词条
需要安装GPFS文件系统的对其好处应该已经了解很多了,在这里就不再赘述。下面开始我们的安装过程

1 安装环境需求

安装GPFS文件系统需要很多安装包。笔者的环境的CentOS7,内核版本为3.10.0-693.el7.x86_64。
yum -y install make perl rsh ld-linux.so libm.so.6 libc.so.6 ksh libstdc++.so.5 rsh-server rpcbind xinetd libaio cpp gcc-c++ gcc nfs-utils kernel-headers kernel-devel compat-libstdc++ glibc-devel libXp.so.6 imake rpm-build rpm-build redhat-lsb


2 GPFS安装

2.1 准备GPFS安装包

linux版的GPFS软件可以到这个地方下载https://download.csdn.net/download/lovesteed/10325141
这个软件包里包含了GPFS软件的所有所需要的包,而且集成了linux内核版本为3.10.0-693.21.1.el7.x86_64的编译过的安装包,如果大家的内核与其相同的话就可以跳过蛋疼的编译环节。安装完base包后,直接安装内核包就行了。当然,如果不是的话,那就和笔者一起来学习如何安装配置吧。

2.2 GPFS基础包安装

这个比较简单但是所有的服务器都要安装。所以,先把软件包上传到各个服务器吧。
我们来看一下软件包及结构

CentOS7安装GPFS4.2详细教程及遇到的问题解决_第1张图片

首先打开base文件夹,敲入命令 rpm -ivh gpfs.*.rpm
CentOS7安装GPFS4.2详细教程及遇到的问题解决_第2张图片
rpm -ivh gpfs.*.rpm

这个命令有可能会出错。如果出错了,那就先用命令rpm -qa|grep gpfs查看安装了那些包了,然后使用命令rpm -e --nodeps 软件名删除所有包。重新,老老实实的一个一个按顺序安装。

rpm -ivh gpfs.base-4.1.1-0.x86_64.rpm  (必要)
rpm -ivh gpfs.docs-4.1.1-0.noarch.rpm   (必要)
rpm -ivh gpfs.gpl-4.1.1-0.noarch.rpm   (必要)
rpm -ivh gpfs.msg.en_US-4.1.1-0.noarch.rpm  (必要)
rpm -ivh gpfs.gskit-8.0.50-40.x86_64.rpm  (非必要)
rpm -ivh gpfs.ext-4.1.1-0.x86_64.rpm  (非必要)

使用命令rpm -qa|grep gpfs查看是否安装完成。

2.3 GPFS升级包安装

同样所有的服务器都要安装
如果你的linux内核版本是3.10.0-693.21.1.el7.x86_64那么恭喜你,你就可以跳过这一步骤,直接用前面提到的软件包里的已经编译好的rpm包。
安装命令rpm -Uvh gpfs.*.rpm

CentOS7安装GPFS4.2详细教程及遇到的问题解决_第3张图片
rpm -Uvh gpfs.*.rpm

你也可以一个一个的安装。

rpm -Uvh gpfs.base-4.1.1-11.2.x86_64.update.rpm  (必要)
rpm -Uvh gpfs.docs-4.1.1-11.2.noarch.rpm   (必要)     
rpm -Uvh gpfs.gpl-4.1.1-11.2.noarch.rpm (必要)
rpm -Uvh gpfs.msg.en_US-4.1.1-11.2.noarch.rpm (必要)
rpm -Uvh gpfs.gskit-8.0.50-47.x86_64.rpm  (非必要)
rpm -Uvh gpfs.ext-4.1.1-11.2.x86_64.update.rpm  (非必要)  

使用命令rpm -qa|grep gpfs查看是否安装完成。

2.4 编译GPFS源码

这一步是笔者的噩梦,遇到了N多的问题,希望读者不会像我这么苦逼。
首先,打开GPFS的目录
cd /usr/lpp/mmfs/src/
执行命令 make LINUX_DISTRIBUTION=REDHAT_AS_LINUX Autoconfig


如果你的输出和笔者一样,不要惊慌,这不一定是问题。如果你的输出比笔者多。那么就要看看后面输出的是什么错误了。
接着执行命令 make World

CentOS7安装GPFS4.2详细教程及遇到的问题解决_第4张图片
执行出错

这里就出错了,这种错误一般是因为内核问题。我们进入出错提示目录cd /usr/src/kernels/ 发现其有两个内核


其中 3.10.0-693.el7.x86_64为我安装系统时的内核, 3.10.0-693.21.1.el7.x86_64为我刚开始时执行 yum -y install kernel-devel命令时安装的内核,我们只需把老的内核删除掉,把新的内核重命名为老内核的名字就行。

rm -rf 3.10.0-693.el7.x86_64      #删除老内核
mv -f 3.10.0-693.21.1.el7.x86_64 3.10.0-693.el7.x86_64  重命名新内核

CentOS7安装GPFS4.2详细教程及遇到的问题解决_第5张图片
更换内核文件

我们去 /usr/lpp/mmfs/src/config/目录下的编辑 env.mcr文件 vim env.mcr,将末尾的 /build去掉
CentOS7安装GPFS4.2详细教程及遇到的问题解决_第6张图片
修改前的env.mcr

CentOS7安装GPFS4.2详细教程及遇到的问题解决_第7张图片
修改后的env.mcr

重新执行 make LINUX_DISTRIBUTION=REDHAT_AS_LINUX Autoconfig
接着执行 make World
CentOS7安装GPFS4.2详细教程及遇到的问题解决_第8张图片

唉!又出错了!!!
解决方案
根据错误提示,编辑文件 vim /usr/lpp/mmfs/src/gpl-linux/kdump.c
添加语句: unsigned long page_offset_base;

CentOS7安装GPFS4.2详细教程及遇到的问题解决_第9张图片

重新执行 make World, 结果完美!
CentOS7安装GPFS4.2详细教程及遇到的问题解决_第10张图片

继续执行命令 : make InstallImagesmake rpm
CentOS7安装GPFS4.2详细教程及遇到的问题解决_第11张图片
image.png

完美生成安装包,我们进入如图所示的目录,安装该rpm包.把该安装包发给其他服务器并安装。
rpm -ivh gpfs.gplbin-3.10.0-693.21.1.el7.x86_64-4.1.1-11.2.x86_64.rpm
最后不要忘了添加PATH路径
vim /etc/profile
在结尾添加一句export PATH=$PATH:/usr/lpp/mmfs/bin
执行 source /etc/profile

3 配置ssh免秘钥访问集群

这一节,不是重点,简单说一下命令。也可以配置rsh免密钥,且gpfs默认是使用rsh密钥登陆远端主机
首先修改hosts文件,把你的节点名和IP对应起来
vi /etc/hosts

CentOS7安装GPFS4.2详细教程及遇到的问题解决_第12张图片

配置免秘钥

cd /root/.ssh/
ssh-keygen -t rsa     #在主服务器创建秘钥
cp id_rsa.pub authorized_keys 
scp -r /root/.ssh root@你的节点名或者IP地址:/root  #超拷贝到其他所有服务器上

4 配置GPFS文件系统

此处建议先配置两台服务器,这样即使出错,也只用回复两台服务器就可以。其他服务器是可以后续添加进来了。笔者这里先配置两台服务器。

4.1 创建集群

/tmp下创建集群配置文件gpfsfile
vim /tmp/gpfsfile

node57:quorum-manager 
node56:quorum-manager

创建集群
mmcrcluster -N /tmp/gpfsfile -p node57 -s node56 -C gpfs -r /usr/bin/ssh -R /usr/bin/scp
mmcrcluster 命令其中参数含义

-C bgbcrun 设定集群名称
-U bgbc 定义域名
-N /tmp/gpfs/nodefile 指定节点文件名
-p 指定主NSD服务器
-s 指定备NSD服务器
-r和-R都是通信协议

4.2 授权

mmchlicense server --accept -N node57,node56

4.3 配置NSD盘

查看当前服务器分区fdisk -l /dev/sda

CentOS7安装GPFS4.2详细教程及遇到的问题解决_第13张图片
分区图

笔者各个节点都是一样的分区,只看一个就行,如果有不同的,就要挨个查看,以确定挂载点。
编辑NSD配置
/tmp下创建集群配置文件 nsdfile
vim /tmp/nsdfile

/dev/sda2:node57::dataAndMetadata:01:
/dev/sda2:node56::dataAndMetadata:02:

生成NSD文件
执行命令mmcrnsd -F /tmp/nsdfile -v no
查看生成文件cat /tmp/nsdfile

# /dev/sda1:node57::dataAndMetadata:01:
gpfs1nsd:::dataAndMetadata:01::system 
# /dev/sdb2:node56::dataAndMetadata:02: 
gpfs2nsd:::dataAndMetadata:02::system

4.4 配置仲裁判

执行命令mmchconfig tiebreakerDisks="gpfs1nsd;gpfs2nsd"

Verifying GPFS is stopped on all nodes ...  
mmchconfig: Command successfully completed  
mmchconfig: Propagating the clusterconfiguration data to all affected nodes.  
This is anasynchronous process. 

4.5 启动集群

执行命令mmstartup -a
查看集群状态mmgetstate -a

4.5 创建GPFS文件系统

执行命令mmcrfs gpfs -F /tmp/nsdfile -B 256K -A yes -m 2 -r 2 -j gpfs -T /gpfs -v no

参数含义如下:

gpfs 文件系统 mount 点名
-F 指定 NSD 的文件名
-A 自动 mount 选项为 yes
-m 最大元数据副本
-r 默认的数据副本
-B 块大小为256K
-j 集群名
-T 挂载点
-v 校验建立磁盘是否已有文件系统 为否

4.5 挂载文件

执行mmmount /gpfs -a
安装配置完成~~!

5 尾声

可以设置开机自启动 mmchconfig autoload=yes
或者在/etc/rc.local 中添加:/usr/lpp/mmfs/bin/mmstartup -a
至于添加其他节点及节点上的磁盘的方法,笔者后期会补上。不过这个很简单,网上教程很多。

你可能感兴趣的:(CentOS7安装GPFS4.2详细教程及遇到的问题解决)