当前位置: 代码迷 >> 综合 >> MFS分布式文件系统实战(三)——MFS高可用(利用pacemaker+corosync+iscsi)、部署Fence解决mfsmaster高可用的解决脑裂
  详细解决方案

MFS分布式文件系统实战(三)——MFS高可用(利用pacemaker+corosync+iscsi)、部署Fence解决mfsmaster高可用的解决脑裂

热度:11   发布时间:2023-12-09 02:28:06.0

文章目录

  • 一、什么是MFS高可用
      • 1.1 什么是Pacemaker?
      • 1.2 什么是corosync?
  • 二、MFS高可用搭建
      • 2.1 配置server4作为mfsmaster-backup端
      • 2.2 安装高可用套件pacemaker+corosync
      • 2.3 安装iscsi实现数据共享
      • 2.4 添加MFS相关资源
      • 2.5 配置通过虚拟ip访问web监控页面
  • 三、部署Fence解决mfsmaster高可用的解决脑裂

一、什么是MFS高可用

mfsmaster是MFS分布式文件系统的调度器,是最核心的地方。 如果mfsmaster挂了,那么整个MFS架构就会挂掉,对此我们要对mfsmaster进行高可用冗余操作。

构建思路
利用pacemaker构建高可用平台,利用iscis做共享存储,mfschunkserver做存储设备。
有人可能要问为什么不用keepalived,我想说的是就是keepalived是可以完全做的,但是keepalived不具备对服务的健康检查;整个corosync验证都是脚本编写的,再通过vrrp_script模块进行调用,利用pacemaker比较方便。

用途
解决mfs master的单点问题,同样可以作为其他需要高可用环境的标准配置方法

1.1 什么是Pacemaker?

Pacemaker是一个集群管理器。
它利用首选集群基础设施(OpenAIS或heartbeat)提供的消息和成员能力,由辅助节点和系统进行故障检测和回收,实现性群集服务(亦称资源)的高可用性。
它可以做几乎任何规模的集群,并带有一个强大的依赖模式,让管理员能够准确地表达群集资源之间的关系(包括顺序和位置)。
几乎任何可以编写的脚本,都可以作为管理起搏器集群的一部分。
尤为重要的是Pacemaker不是一个heartbeat的分支,似乎很多人存在这样的误解。
Pacemaker是CRM项目(亦名V2资源管理器)的延续,该项目最初是为heartbeat而开发,但目前已经成为独立项目。

1.2 什么是corosync?

Corosync是集群管理套件的一部分,它在传递信息的时候可以通过一个简单的配置文件来定义信息传递的方式和协议等。

corosync+pacemaker:在配置corosync时最好具有三个以上的节点,并且节点个数为奇数个,如果使用偶数个节点的话也没关系,只是要关闭不具有法定票数的决策策略功能

二、MFS高可用搭建

实验环境

主机 服务
server1 mfsmaster,pacemaker,iscsi客户端
server2 mfschunkserever,iscsi服务端
server3 mfschunkserever
server4 mfsmaster-backup,pacemaker,iscsi客户端
server5 client

实验准备
在基础MFS分布式文件系统上搭建高可用,停掉之前mfs分布式文件系统启动的服务,并卸载客户端挂载的目录,为后续的pcs集群做准备

[root@server1 ~]# systemctl stop moosefs-master##moosefs-cgiserv服务可以不用关闭,因为moosefs-cgisev服务只是用来提供web界面的
[root@server2 ~]# systemctl stop moosefs-chunkserver
[root@server3 ~]# systemctl stop moosefs-chunkserver[root@server5 ~]# umount /mnt/mfsmeta
[root@server5 ~]# umount /mnt/mfs

2.1 配置server4作为mfsmaster-backup端

1、配置MooseFS的yum源

(1)添加键值

curl "https://ppa.moosefs.com/RPM-GPG-KEY-MooseFS" > /etc/pki/rpm-gpg/RPM-GPG-KEY-MooseFS

(2)添加YUM源

curl "http://ppa.moosefs.com/MooseFS-3-el7.repo" > /etc/yum.repos.d/MooseFS.repo

2、安装moosefs-master

yum install moosefs-master moosefs-cgiserv -y

在这里插入图片描述
3、编辑本地解析文件

[root@server4 ~]# vim /etc/hosts  
172.25.2.1  server1  mfsmaster

在这里插入图片描述
4、修改moosefs-master服务的启动脚本/usr/lib/systemd/system/moosefs-master.service

[root@server4 ~]vim /usr/lib/systemd/system/moosefs-master.service
8 ExecStart=/usr/sbin/mfsmaster -a
[root@server4 ~]# systemctl daemon-reload
[root@server4 ~]# systemctl start moosefs-master   #检查脚本是否有错误,即查看moosefs-master服务是否能够正常启动
[root@server4 ~]# systemctl stop moosefs-master 

在这里插入图片描述在这里插入图片描述

2.2 安装高可用套件pacemaker+corosync

使用corosync作为集群消息事务层(Massage Layer),pacemaker作为集群资源管理器(Cluster Resource Management),pcs作为CRM的管理接口工具。

1、server1和server4 配置高可用yum源

[root@server1 yum.repos.d]# vim rhel7_5.repo
[rhel7.5]
name=rhel7.5
baseurl=http://172.25.2.250/westos7.5
gpgcheck=0[HighAvailability]
name=HighAvailability
baseurl=http://172.25.2.250/westos7.5/addons/HighAvailability
gpgcheck=0[ResilientStorage]
name=ResilientStorage
baseurl=http://172.25.2.250/westos7.5/addons/ResilientStorage
gpgcheck=0

在这里插入图片描述2、在server1上和server4上,安装pacemaker+corosync

[root@server1 yum.repos.d]# yum install pacemaker corosync -y
[root@server4 ~]# yum install pacemaker corosync -y

3、在server1和server4 节点之间要做ssh免密

[root@server1 yum.repos.d]# ssh-keygen
[root@server1 yum.repos.d]# ssh-copy-id server4
[root@server1 yum.repos.d]# ssh-copy-id server1

  相关解决方案