mfs高可用

mfs的高可用有热备和冷备,官方的是冷备,备用机安装这个moosefs-metalogger;而这里要做的是热备,结合pacemaker做成服务级别的热备
实验环境:rhel7.6 selinux and iptables disabled
server1 5 moosefs-master iscsi客户端
server3 4 moosefs-chunkserver
server2 targetcli服务端
真机 fence-virtd

因为前面已经搭建好server1:moosefs-master,server2 3 4 5:moosefs-chunkserver,因此首先将server2 5脱离出来

一.磁盘共享

一开始的时候,由于server5新建的master,上面没有元数据,因此需要创建网络文件系统,保证server1 5数据同步

server2  iscsi服务端
因为之前server2上已经使用了一个虚拟磁盘,现在将其格式化
systemctl stop moosefs-chunkserver.service
umount /mnt/chunk1/
fdisk /dev/vdb  ->d  #清空磁盘

yum install targetcli.noarch -y  #安装iscsi服务,rhel7是targetcli
systemctl start target.service
targetcli  #创建共享磁盘
/backstores/block> create my_disk /dev/vdb 
Created block storage object my_disk using /dev/vdb.

/iscsi> create iqn.2021-03.org.westos:target1
Created target iqn.2021-03.org.westos:target1.
Created TPG 1.
Global pref auto_add_default_portal=true
Created default portal listening on all IPs (0.0.0.0), port 3260.

/iscsi/iqn.20...et1/tpg1/luns> create /backstores/block/my_disk 
Created LUN 0.

/iscsi/iqn.20...et1/tpg1/acls> create iqn.2021-03.org.westos:client
Created Node ACL for iqn.2021-03.org.westos:client
Created mapped LUN 0.
server1 server5  iscsi客户端
yum install iscsi-* -y
vim  /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2021-03.org.westos:client
iscsiadm -m discovery -t st -p 172.25.2.2  #连接共享磁盘
iscsiadm -m node -l  #登陆
cat /proc/partitions
server1
fdisk /dev/sda  #创建磁盘
mkfs.ext4 /dev/sda1
cat /proc/partitions

server5
partprobe  #同步
cat /proc/partitions

在这里插入图片描述
在这里插入图片描述
将数据写入设备/dev/sda1,这样的话两个moosefs-master的数据实现同步

mount /dev/sda1 /mnt
chown mfs.mfs /mnt/  #权限跟着设备走的
systemctl stop moosefs-master.service
cp /var/lib/mfs/* /mnt/
umount /mnt/
mount /dev/sda1 /var/lib/mfs/
cd /var/lib/mfs/

在这里插入图片描述

二.创建pacemaker集群

server1 5 master
vim /etc/yum.repos.d/rhel7.6.repo 
[rhel7.6]
name=rhel7.6
baseurl=http://172.25.2.250/rhel7.6
gpgcheck=0

[HighAvailability]
name=rhel7.6
baseurl=http://172.25.2.250/rhel7.6/addons/HighAvailability
gpgcheck=0

yum install -y pacemaker pcs psmisc policycoreutils-python
systemctl enable --now pcsd.service
echo westos | passwd --stdin hacluster
pcs cluster auth server1 server5
pcs cluster setup --name mycluster server1 server5  #设置集群
pcs cluster start --all
pcs cluster enable --all
crm_verify -L  #校验
pcs property set stonith-enabled=false  #先关掉fence
pcs resource create ClusterIP ocf:heartbeat:IPaddr2 ip=172.25.2.100 cidr_netmask=32 op monitor interval=30s  #创建vip
pcs resource create mfsmaster systemd:moosefs-master op monitor interval=60s  #创建服务
pcs resource create mfsdata ocf:heartbeat:Filesystem device=/dev/sda1 directory=/var/lib/mfs fstype=ext4 op monitor interval=60s  #创建文件系统
这样的话vip是和mfsmaster绑定在一起,因此所有的解析都要修改下,不然chunserver无法连接master
vim /etc/hosts
172.25.2.100 mfsmaster

在这里插入图片描述

pcs resource group add mfsgroup ClusterIP mfsdata mfsmaster  #创建资源组
交由集群管理

由于moosefs-master正常关闭时,metadata.mfs.back会变成metadata.mfs,而启动时再次去找这个metadata.mfs;但是在非正常关闭时,不会生成metadata.mfs,因此moosefs-master服务也不会启动

server1 5
systemctl status moosefs-master.service
vim /usr/lib/systemd/system/moosefs-master.service
  8 ExecStart=/usr/sbin/mfsmaster -a  #非正常关闭时,直接恢复
systemctl daemon-reload

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
当vip moosefs-master mfsdata出现问题时,自动在本地重启或恢复;但是当主机网卡down或内核崩溃,就需要fence设备,防止形成脑裂

三.fence设备

真机
yum install fence-virtd fence-virtd-multicast fence-virtd-libvirt -y
fence_virtd -c  #注意网卡选桥接网卡
mkdir /etc/cluster
dd if=/dev/urandom of=/etc/cluster/fence_xvm.key bs=128 count=1
systemctl start fence_virtd.service  #先生成key,再启动服务
scp /etc/cluster/fence_xvm.key server1:/etc/cluster/fence_xvm.key  #和5
server1 5
yum install fence-virt -y
mkdir /etc/cluster
pcs stonith create vmfence fence_xvm pcmk_host_map="server1:test1;server5:server5" op monitor interval=60s  #创建stonith资源
pcs property set stonith-enabled=true  #再将之前禁掉的开启

[root@server5 ~]# ip link set down eth0  #模拟网卡down
[root@server1 pcsd]# echo c > /proc/sysrq-trigger  #也可以模拟内核崩溃

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
总结下:
还是开头提的,moosefs-master上存有后台数据的元数据,在做成两个master时,首先应该保证moosefs-master元数据的同步,先做了一个iscsi磁盘共享;
部署pacemaker,资源组运行时,测试moosefs节点down时,非正常关闭,导致服务不能重启,还要做好启动的恢复;
最后在fence设备部署好时,别忘了开启stonith

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值