当前位置:   article > 正文

linux项目实战---lamp架构(七)MFS分布式文件系统_mfslsl

mfslsl

一.MFS简介

MFS:MooseFS

  • 是一个具备冗余容错功能的分布式网络文件系统,它将数据分别存放在多个物理服务器或单独磁盘或分区上,确保一份数据有多个备份副本。对于访问的客户端或者用户来说,整个分布式网络文件系统集群看起来就像一个资源一样。

使用场景

  • 存在的优势:
    • MFS是基于FUSE(用户空间文件系统)机制的,所以支持含有FUSE的操作方式的系统
    • MFS部署简单并提供Web界面的方式进行管理与监控,同其他分布式操作系统一样,支持在线扩容,并进行横向扩展
    • MFS还具有可找回误操作删除的文件,相当于一个回收站,方便业务进行定制
    • 同时MooseFS对于海量小文件的读写要比大文件读写的效率高的多
  • 存在的问题:
    • MFS的主备架构情况类似于MySQL的主从复制,从可以扩展,主却不容易扩展
    • 随着MFS体系架构中存储文件的总数上升,Master Server对内存的需求量会不断增大
    • Master Server存在单点问题,官方解决方式是把数据信息从Master Server同步到Metalogger Server上,Master Server一旦出问题Metalogger Server可以恢复升级为Master Server,但是需要恢复时间,解决方式属于冷备。目前,也可以通过第三方的高可用方案(peachmaker+moosefs)来解决 Master Server 的单点问题

二.MFS安装部署

需要准备:
三台虚拟机server1、2、3和本机的真实主机,server1负责master、server2、3负责数据存储,真实主机负责客户端client。

1.server1(master)配置

安装moosefs-master、moosefs-cgiserv

在这里插入图片描述

yum install -y moosefs-master-3.0.115-1.rhsystemd.x86_64.rpm moosefs-cgiserv-3.0.115-1.rhsystemd.x86_64.rpm
  • 1

配置本地解析:

vim /etc/hsots
  • 1

在这里插入图片描述
启动服务:

systemctl start moosefs-master
systemctl start moosefs-cgiserv.service
netstat -antlp
  • 1
  • 2
  • 3

在这里插入图片描述

在这里插入图片描述
firefxo上查看图形mfs管理界面:
在这里插入图片描述

2.server2配置

在server2安装mfs-chunkserver:

yum install -y moosefs-chunkserver.x86_64
  • 1

在这里插入图片描述
修改配置文件,添加挂载目录:

cd /etc/mfs
vim mfshdd.cfg

/mnt/chunk1
  • 1
  • 2
  • 3
  • 4

在这里插入图片描述
创建挂载目录:

mkdir /mnt/chunk1
  • 1

为虚拟机添加虚拟硬盘vdb
在这里插入图片描述
硬盘分区vdb1
在这里插入图片描述
格式化vdb1
在这里插入图片描述
将vdb1挂载到chunk1,并修改目录所有者:
在这里插入图片描述

添加master解析:
在这里插入图片描述
启动msf服务:

systemctl start moosefs-chunkserver
  • 1

此时可以在matser上看到server2
在这里插入图片描述

3.server3配置

安装mfs-chunkserver:

yum install -y moosefs-chunkserver.x86_64
  • 1

创建挂载目录:

mkdir /mnt/chunk2
chown mfs.mfs /mnt/chunk2/
  • 1
  • 2

修改配置文件,添加挂载目录:

cd /etc/mfs
vim mfshdd.cfg

/mnt/chunk2
  • 1
  • 2
  • 3
  • 4

添加master解析:
在这里插入图片描述
启动msf服务:

systemctl start moosefs-chunkserver
  • 1

查看存储目录:
在这里插入图片描述
在master查看server3:
在这里插入图片描述
在这里插入图片描述

4.真机配置

安装mfs-client:

yum install moosefs-client-3.0.115-1.rhsystemd.x86_64.rpm -y
  • 1

编辑配置文件,指向挂载目录:

cd /etc/mfs/
vim mfsmount.cfg

/mnt/mfs
  • 1
  • 2
  • 3
  • 4

在这里插入图片描述
配置解析:

vim /etc/hosts
  • 1

在这里插入图片描述
创建mfs目录,挂载mfs:

mkdir /mnt/mfs
  • 1

在这里插入图片描述
在server1查看端口指向:
在这里插入图片描述
mfs目录下创建 dir1 dir2 目录:

mkdir /mnt/mfs/dir1
mkdir /mnt/mfs/dir2
  • 1
  • 2

将dir1设定到mfs文件系统进行访问,获取副本数设定:
在这里插入图片描述
上传文件,查看文件信息:

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

三.删除文件恢复

将源数据挂载到客户端

mkdir /mnt/mfsmeta
mfsmount -m /mnt/mfsmeta/
  • 1
  • 2

删除文件:

cd ../../mfs/dir1
ls
rm -fr passwd
  • 1
  • 2
  • 3

在这里插入图片描述
恢复文件:

mv '00000004|dir1|passwd' undel/
pwd
cd /mnt/mfs/dir1
  • 1
  • 2
  • 3

在这里插入图片描述
查看恢复文件:
在这里插入图片描述

四.chunk标签

原理:MFS可以根据chunk标签更改文件存储方式

在server4上创建chunk3,步骤同上。

编辑server2/3/4主配,添加标签:

vim /etc/mfs/mfschunkserver.cfg

server2:LABELS = A S
server3:LABELS =A  B H S
server4:LABELS = A H

systemctl reload moosefs-chunkserver.service

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

在这里插入图片描述
真机端:

需要在文件所在目录进行

mfsscadmin create -C 2AS -K AS,BS -A AH,BH -d 7 classABSH  #需要在文件目录中进行

mfssetsclass -r classABSH fstab #将fstab转换存储为2A方式

mfsfileinfo fstab #查看文件fstab存储方式
  • 1
  • 2
  • 3
  • 4
  • 5

在这里插入图片描述
在master查看存储策略:
热数据时期在AS,AS存放
温数据时期转存到在AS,BS
7天后转存至AH,BH
在这里插入图片描述
在这里插入图片描述

五.iscsi实现master备份

1.server3配置iscis共享磁盘

创建共享虚拟磁盘
在这里插入图片描述

安装iscsi:

yum install -y targetcli
systemctl start target
targetcli
  • 1
  • 2
  • 3

配置共享:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.server1获取共享磁盘

安装iscis:

yum install -y iscsi-*
cd /etc/iscsi/
  • 1
  • 2

修改配置文件:

vim /etc/iscis/initiatorname.iscs
  • 1

在这里插入图片描述
连接server3:

iscsiadm -m discovery -t st -p 172.25.3.3
iscsiadm -m node -l
  • 1
  • 2

在这里插入图片描述
此时可以查看共享磁盘:
在这里插入图片描述
创建分区,格式化并挂载:

fdisk /dev/sda
mkfs.xfs /dev/sda1
mount /dev/sda1 /mnt
  • 1
  • 2
  • 3

在这里插入图片描述
查看文件,并将master文件复制到iscsi的挂载目录中:

cd /var/lib/mfs/
ls
cp -p * /mnt/
cd /mnt/
ls
ll
chown mfs.mfs /mnt/ -R
umount /mnt/
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

在这里插入图片描述

3.server2+iscis实现master备份

安装mfs-master:

yum install -y moosefs-master.x86_64
  • 1

安装iscsi相关:

yum install -y iscsi-*
  • 1

设置连接配置:

vim /etc/iscis/initiatorname.iscs
  • 1

在这里插入图片描述
连接server3:

iscsiadm -m discovery -t st -p 172.25.3.3
iscsiadm -m node -l
  • 1
  • 2

查看共享磁盘并挂载:

fdisk -l
mount /dev/sda1 /var/lib/mfs/
  • 1
  • 2

启动server2上master:

cd /var/lib/mfs/
ls
systemctl start moosefs-master
  • 1
  • 2
  • 3

完成master备份

4.故障解决

在挂载sda1server2后,启动master会出现异常
在这里插入图片描述
启动失败,原因:master启动时,/var/lib/mfs/metadata.mfs必须存在,而启动后会变为metadata.mfs.back,需要将back文件恢复为mfs文件
在这里插入图片描述
修复文件

mfsmaster -a
  • 1

在这里插入图片描述

六.iscis+pacemarker实现MFS高可用

在上一节基础上,安装高可用插件pacemarker实现MFS高可用,即双机热备。
设置集群操作前两个master关闭所有mfs服务并关闭开机自启

1.添加高可用组件安装仓库

server1/2:

vim /etc/yum.repos.d/dvd.repo
  • 1

![在这里插入图片描述](https://img-blog.csdnimg.cn/20210712220045752.png?x-oss-process=image

/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyMDAzODQ4,size_16,color_FFFFFF,t_70)
安装模块:
yum install -y pacemaker pcs psmisc policycoreutils-python
  • 1
  • 2
  • 3

2.免密登陆

设置server1与server2免密登陆

ssh-keygen
ssh-copy-id server2
  • 1
  • 2

修改server1和server2均设定需要认证的用户和密码

echo westos | passwd --stdin hacluster
  • 1

在这里插入图片描述

3.集群搭建

pcs认证:

pcs cluster auth server1 server2
  • 1

在这里插入图片描述

设置server1和server2组成mycluster集群

pcs  cluster setup  --name mycluster server1 server2
  • 1

在这里插入图片描述
设置启动及开启自启:
在这里插入图片描述
查看状态:
在这里插入图片描述
设定后警告取消

pcs property set stonith-enabled=false
  • 1

在这里插入图片描述
添加vip模块

pcs resource  create vip ocf:heartbeat:IPaddr2 ip=172.25.3.100 op monitor interval=30s
pcs status #查看状态
  • 1
  • 2

在这里插入图片描述
添加mfsdata模块

pcs resource  create mfsdata ocf:heartbeat:Filesystem device="/dev/sda1" directory="/var/lib/mfs" fstype=xfs  op monitor interval=30s
  • 1

在这里插入图片描述
查看状态成功后,会按照状态提示挂载到某个master主机上,此处自动挂载到server1上
在这里插入图片描述
遇到问题:
启动master后,强制结束进程,master不能正常启动
在这里插入图片描述
在这里插入图片描述
原因是启动时,需要metadata.mfs 而启动后会改为metadata.mfs.back,强制结束进程无法恢复此文件。

所以需要修改启动脚本:

vim /usr/lib/systemd/system/moosefs-master.service
  • 1

在这里插入图片描述
reload后启动master成功
在这里插入图片描述
添加mfsmaster模块:

在这里插入图片描述

查看pcs状态
在这里插入图片描述
发现vip、mfsdata、mfsmaster不在同一个主机中,
解决方案,创建mfsgroup 分组,将模块填入:

pcs resource  group  add mfsgroup vip mfsdata mfsmaster
  • 1

在这里插入图片描述
修改所有server的解析
在这里插入图片描述
完成后client端查看文件dir2/fstab 和dir1/passwd
在这里插入图片描述
down掉server2
在这里插入图片描述
vip mfsdata mfsmaster均迁移到server1中
在这里插入图片描述
再次查看文件,没有受到影响
在这里插入图片描述
重启server2,没有影响,证明高可用实现
在这里插入图片描述
在这里插入图片描述

七.fence实现故障重启

真实主机client客户端安装fence
yum install -y fence-virtd*
  • 1
  • 2

配置fence_virtd,需要根据提示设定,其中网络连接设定为本机的桥接br0

mkdir /etc/cluster/
fence_virtd -c
  • 1
  • 2

在这里插入图片描述
成功后配置写入文件/etc/fence_virt.conf
在这里插入图片描述
生成认证钥匙

dd if=/dev/urandom of=fence_xvm.key bs=128 count=1
  • 1

启动服务,查看端口

systemctl restart fence_virtd.service #重启服务
netstat -anulp|grep :1229 #查看端口,为udp
  • 1
  • 2

在这里插入图片描述
创建cluster目录:
在这里插入图片描述

scp fence_xvm.key root@172.25.3.1:/etc/cluster
scp fence_xvm.key root@172.25.3.2:/etc/cluster
  • 1
  • 2

在配置好双机热备份的两个主机server1、2安装fence

yum install -y fence-virt.x86_64
ssh server2 yum install -y fence-virt.x86_64
  • 1
  • 2

查看fence安装的模块
在这里插入图片描述
创建fence_xvm 名为vmfence 建立主机名与domain name之间的映射

pcs stonith create vmfence fence_xvm pcmk_host_map="server1:vm1;server2:vm2" op monitor interval=60s
  • 1

查看状态:
在这里插入图片描述
之前设定关闭的stonith现在打开,才可以使用fence

pcs property set stonith-enable==true
  • 1

测试:
关闭网卡br0


ip link set down eth0
  • 1
  • 2

关闭网卡后
server1 会自动重启,master会转移至server2

故障排除:
关闭网卡后,server1 会自动重启,重启时,所有服务会跳到server2,等重启结束后,会跳回server1。
解决方法:

pcs resource defaults resource-stickiness=100
  • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/729182
推荐阅读
相关标签
  

闽ICP备14008679号