企业—Mfs高可用pacemaker+corosync+iscsi+fence

  • 由于MFS自身的Mfslogger本身的的不可靠性,这里的高可用是对于单节点mfs master来进行配置的,mfs master 处理用户的挂载请求,并且分发数据,很容易成为节点的故障所在;
  • 这里来配置MFS+pacemaker+corosync+iscsi集群的高可用性

部署如下:

一.pacemaker+corosync实现高可用(pcs集群资源管理工具)

1.实验环境

  • rhel 7.3 firewalld is disabled
主机名(IP) 服务
server1(172.25.16.1) mfs master corosync+pacemaker
server2(172.25.16.2) chunk server
server3(172.25.16.1) chunk server
server4(172.25.16.4) mfs master corosync+pacemaker
物理机(172.25.16.250) client

1.在server4:

1.安装mfs master,编辑域名解析,开启服务

[root@server4 ~]# ls
moosefs-master-3.0.103-1.rhsystemd.x86_64.rpm
[root@server4 ~]# yum install -y moosefs-master-3.0.103-1.rhsystemd.x86_64.rpm

[root@server4 ~]# vim /etc/hosts
文件添加解析如下:
172.25.16.1    server1 mfsmaster

[root@server4 system]# pwd
/usr/lib/systemd/system
[root@server4 system]# vim moosefs-master.service 
文件编辑内容如下:
8 ExecStart=/usr/sbin/mfsmaster -a

[root@server4 system]# systemctl daemon-reload
[root@server4 system]# systemctl start moosefs-master

mfa master开启之后查看端口:
企业—Mfs高可用pacemaker+corosync+iscsi+fence_第1张图片
2.server1和server4配置高可用yum源

[root@server1 3.0.103]# cd /etc/yum.repos.d/
[root@server1 yum.repos.d]# vim yum.repo 
文件编辑内容如下:
[rhel7.3]
name=rhel7.3
baseurl=http://172.25.16.250/file
gpgcheck=0

[HighAvailability]
name=HighAvailability
baseurl=http://172.25.16.250/file/addons/HighAvailability
gpgcheck=0

[ResilientStorage]
name=ResilientStorage
baseurl=http://172.25.16.250/file/addons/ResilientStorage
gpgcheck=0

企业—Mfs高可用pacemaker+corosync+iscsi+fence_第2张图片
企业—Mfs高可用pacemaker+corosync+iscsi+fence_第3张图片
3.在server1上和server4上安装pacemaker+corosync

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

4.因为要实现高可用及其fence既保持server1和server4节点之间要做免密的ssh

企业—Mfs高可用pacemaker+corosync+iscsi+fence_第4张图片
企业—Mfs高可用pacemaker+corosync+iscsi+fence_第5张图片
企业—Mfs高可用pacemaker+corosync+iscsi+fence_第6张图片
验证如下:
在这里插入图片描述
5.在server1和server4上安装资源管理工具并且开启相应服务

//server1
[root@server1 ~]# yum install -y pcs
[root@server1 ~]# systemctl start pcsd
[root@server1 ~]# systemctl enable  pcsd  ##开启该服务之后会在/etc/passwd目录下生成hacluster用户,及高可用管理用户
[root@server1 ~]# passwd hacluster   ##配置高可用集群管理用户的密码

//server4
[root@server4 ~]# yum install -y pcs
[root@server4 ~]# systemctl start pcsd
[root@server4 ~]# systemctl enable  pcsd  ##开启该服务之后会在/etc/passwd目录下生成hacluster用户,及高可用管理用户
[root@server4 ~]# passwd hacluster   ##配置高可用集群管理用户的密码

6.在server1上创建mfs集群并且启动
创建集群:
在这里插入图片描述
为集群命名并且开启集群:
企业—Mfs高可用pacemaker+corosync+iscsi+fence_第7张图片
7.查看集群状态

企业—Mfs高可用pacemaker+corosync+iscsi+fence_第8张图片
8.再次检查并报错解决

企业—Mfs高可用pacemaker+corosync+iscsi+fence_第9张图片
9.创建集群资源及添加VIP

[root@server1 ~]# pcs resource create vip ocf:heartbeat:IPaddr2 ip=172.25.16.100 cidr_netmask=32 op monitor interval=30s
[root@server1 ~]# pcs resource show
[root@server1 ~]# pcs resource show

企业—Mfs高可用pacemaker+corosync+iscsi+fence_第10张图片
server4上再次查看vip:
在这里插入图片描述
企业—Mfs高可用pacemaker+corosync+iscsi+fence_第11张图片
10.高可用测试

  • 查看vip此时在server1上:
    企业—Mfs高可用pacemaker+corosync+iscsi+fence_第12张图片
  • 将cluster集群中的server1关掉,此时vip漂移到server4上
    在这里插入图片描述
    企业—Mfs高可用pacemaker+corosync+iscsi+fence_第13张图片
  • 查看监控信息也显示在线的只有server4
    在这里插入图片描述
    企业—Mfs高可用pacemaker+corosync+iscsi+fence_第14张图片
  • 再次开启集群中的server1,发现vip还是在server4上,但是监控信息查看时server1和server4都是在线的
    在这里插入图片描述
    企业—Mfs高可用pacemaker+corosync+iscsi+fence_第15张图片
    在这里插入图片描述
    企业—Mfs高可用pacemaker+corosync+iscsi+fence_第16张图片

二.pacemaker+corosync实现高可用后的iscsi实现数据共享

1.在客户端如果进行了数据恢复时进行了相应的挂载,df是查看不到的,用mount命令查看,如果有挂载需要先卸载
在这里插入图片描述
2.关闭master及其chunkserver服务为iscsi的实验环境做准备

[root@server1 ~]# systemctl stop moosefs-master
[root@server2 ~]# systemctl stop moosefs-chunkserver
[root@server3 ~]# systemctl stop moosefs-chunkserver

3.在server2及chunkserver节点上进行iscsi配置:

a.添加20G的虚拟硬盘
企业—Mfs高可用pacemaker+corosync+iscsi+fence_第17张图片
企业—Mfs高可用pacemaker+corosync+iscsi+fence_第18张图片
b,安装targetcli并做相应配置

//下在targetcli
[root@server2 ~]# yum install -y targetcli

//登录targetcli并且将添加的硬盘当作targetcli磁盘共享存储的磁盘
[root@server2 ~]# targetcli
/> ls   ##查看targetcli的相关信息
添加磁盘:
/> cd backstores/block 
/backstores/block> create my_disk1 /dev/vdb
在iscis目录下:
/backstores/block> cd /
/> cd iscsi 
创建磁盘目录,进入目录下的相应目录创建已添加磁盘:
/iscsi> create  iqn.2019-05.com.example:server2
/iscsi> cd iqn.2019-05.com.example:server2/
/iscsi/iqn.20...ample:server2> cd tpg1/luns 
/iscsi/iqn.20...er2/tpg1/luns> 
/iscsi/iqn.20...er2/tpg1/luns> create /backstores/block/my_disk1 
创建client磁盘共享目录:
/iscsi/iqn.20...er2/tpg1/luns> cd /iscsi/iqn.2019-05.com.example:server2/tpg1/acls 
/iscsi/iqn.20...er2/tpg1/acls> create iqn.2019-05.com.example:client

在这里插入图片描述
企业—Mfs高可用pacemaker+corosync+iscsi+fence_第19张图片
企业—Mfs高可用pacemaker+corosync+iscsi+fence_第20张图片
4.在server1上下在iscsi并且做相应配置

安装iscsi-*
[root@server1 ~]# yum install -y iscsi-*
修改客户端的iscsi加密服务文件的问题,及添加服务端的钥匙:
[root@server1 ~]# vim  /etc/iscsi/initiatorname.iscsi 
文件编辑内容如下(添加服务端的设置的客户端的磁盘目录):
InitiatorName=iqn.2019-05.com.example:client

登录查看是否共享成功:
[root@server1 ~]# iscsiadm -m discovery -t st -p 172.25.16.2
[root@server1 ~]# systemctl restart iscsid
[root@server1 ~]# iscsiadm -m node -l
Logging in to [iface: default, target: iqn.2019-05.com.example:server2, portal: 172.25.16.2,3260] (multiple)
Login to [iface: default, target: iqn.2019-05.com.example:server2, portal: 172.25.16.2,3260] successful.

在server1上登录查看:fdisk -l
企业—Mfs高可用pacemaker+corosync+iscsi+fence_第21张图片

5.在server1上创建共享的磁盘分区挂载并且进行验证
a.创建分区并且进行格式化
企业—Mfs高可用pacemaker+corosync+iscsi+fence_第22张图片
企业—Mfs高可用pacemaker+corosync+iscsi+fence_第23张图片
企业—Mfs高可用pacemaker+corosync+iscsi+fence_第24张图片
b.挂载格式化后的分区

[root@server1 ~]# mount /dev/sdb1 /mnt
[root@server1 ~]# cd /var/lib/mfs/  这是mfs的数据目录
[root@server1 mfs]# ls
changelog.2.mfs  changelog.4.mfs  changelog.6.mfs  metadata.mfs         metadata.mfs.empty
changelog.3.mfs  changelog.5.mfs  metadata.crc     metadata.mfs.back.1  stats.mfs
[root@server1 mfs]# cp -p * /mnt/   带权限拷贝/var/lib/mfs的所有数据文件到/dev/sdb1上
[root@server1 mfs]# cd /mnt/
[root@server1 mnt]# ls
changelog.2.mfs  changelog.4.mfs  changelog.6.mfs  metadata.crc  metadata.mfs.back.1  stats.mfs
changelog.3.mfs  changelog.5.mfs  lost+found       metadata.mfs  metadata.mfs.empty
[root@server1 mnt]# chown mfs.mfs /mnt   当目录属于mfs用户和组时,才能正常使用
[root@server1 mnt]# cd
[root@server1 ~]# umount /mnt
[root@server1 ~]# mount /dev/sdb1 /var/lib/mfs/   # 使用分区,测试是否可以使用共享磁盘
[root@server1 ~]# systemctl start moosefs-master  服务开启成功,就说明数据文件拷贝成功,共享磁盘可以正常使用
[root@server1 ~]# systemctl stop moosefs-master

企业—Mfs高可用pacemaker+corosync+iscsi+fence_第25张图片
6.在server4上操作同server1
a.下在相应的iscsi客户端并且登录查看共享是否成功

[root@server4 system]# yum install -y iscsi-*
[root@server4 system]# vim /etc/iscsi/initiatorname.iscsi 
文件编辑内容如下:
InitiatorName=iqn.2019-05.com.example:client
[root@server4 system]#  iscsiadm -m discovery -t st -p 172.25.16.2
[root@server4 system]# iscsiadm -m node -l

fidk -l查看共享成功:
在这里插入图片描述
b.挂载并且做相应操作

在这里插入图片描述
开启集群:
在这里插入图片描述
7.创建资源

[root@server1 system]# pcs resource create mfsdata ocf:heartbeat:Filesystem device=/dev/sdb1 directory=/var/lib/mfs/ fstype=xfs op monitor interval=30s

查看创建的资源:
在这里插入图片描述
企业—Mfs高可用pacemaker+corosync+iscsi+fence_第26张图片
创建mfsd文件系统,把服务集中在一台主机上:

[root@server1 ~]# pcs resource create mfsd systemd:moosefs-master op monitor interval=1min
[root@server1 ~]# pcs resource group add mfsgroup vip mfsdata mfsd
[root@server1 ~]# crm_mon  使用该命令再次查看:

企业—Mfs高可用pacemaker+corosync+iscsi+fence_第27张图片
现在发现在一个组中

测试:

关掉server1上的master服务:
在这里插入图片描述
查看发现master上的服务迁移到back master上也就是server4
在这里插入图片描述
企业—Mfs高可用pacemaker+corosync+iscsi+fence_第28张图片

三.fence解决脑裂问题

1.先在客户端测试高可用

  • 打开chunk server
[root@server3 ~]# systemctl start moosefs-chunkserver
[root@server3 ~]# ping mfsmaster   保证解析可以通信
  • 查看vip的位置
    企业—Mfs高可用pacemaker+corosync+iscsi+fence_第29张图片

你可能感兴趣的:(企业—Mfs高可用pacemaker+corosync+iscsi+fence)