企业运维实战--MFS分布式文件系统(上)


前言

本章我们学习MooseFS(MFS)分布式文件管理系统。
MFS是一个具备冗余容错功能的分布式网络文件系统,它将数据分别存放在多个物理服务器或单独磁盘或分区上,确保一份数据有多个备份副本。


一、MFS组成简介

Master servers:管理服务器,在整个体系中负责管理文件系统,维护元数据,以及文件空间的回收和恢复,控制多chunk server节点的数据拷贝。

Chunk Servers:数据存储服务器,存放数据文件实体的服务器,真正存储数据的服务器,服务器越多,容量就越大,可靠性越高,性能越好。
Metaloggers:元数据日志服务器,类似Mysql的主从同步,作用是备份管理服务器master的变化的metadata信息日志文件。
Clients:客户端,挂载并使用mfs文件系统的客户端,当读写文件时,客户端首先连接主管理服务器获取数据的metadata信息,然后根据得到的metadata信息,访问数据服务器读取或写入文件实体。


二、MFS安装和部署

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

server1:

准备好安装包,采用软件仓库的方式导入

cat /etc/yum.repos.d/mfs.repo 
[mfs]
name=mfs
baseurl=file:///root/3.0.115
gpgcheck=0

在这里插入图片描述

查看软件仓库是否配置成功

yum list moosefs-*

在这里插入图片描述
在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

mfs主配置文件存放目录

cd /etc/mfs/

vim /etc/hosts 配置解析,使其解析到mfsmaster

172.25.9.1	mfsmaster

在这里插入图片描述

启动服务,查看端口

systemctl start moosefs-master
systemctl start moosefs-cgiserv.service
netstat -antlp

在这里插入图片描述

将安装包scp到其余数据存储服务器上

scp -r  3.0.115/ server2:
scp /etc/yum.repos.d/mfs.repo server2:/etc/yum.repos.d/
scp -r  3.0.115/ server3:
scp /etc/yum.repos.d/mfs.repo server3:/etc/yum.repos.d/

测试,firefox:172.25.9.1:9425
在这里插入图片描述

待server2、3配置好数据存储服务器时,查看端口使用情况
查看端口使用情况:

yum install lsof -y
lsof -i :9419
lsof -i :9420
lsof -i :9421

server2:

安装相关rpm包

yum repolist
yum install -y moosefs-chunkserver.x86_64

在这里插入图片描述

cd /etc/mfs/
修改配置文件,指向挂载目录

vim mfshdd.cfg
tail -n1 mfshdd.cfg

/mnt/chunk1

在这里插入图片描述

创建挂载目录

mkdir /mnt/chunk1

创建磁盘,分区并挂载

fdisk -l
fdisk /dev/vdb

在这里插入图片描述
格式化磁盘分区,并挂载

mkfs.xfs /dev/vdb1
mount /dev/vdb1 /mnt/chunk1/
df

在这里插入图片描述

修改挂载目录用户和用户组

chown mfs.mfs /mnt/chunk1/

编辑解析,使master指向172.25.9.1

vim /etc/hosts
head -n5 /etc/hosts

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

systemctl start moosefs-chunkserver

在这里插入图片描述

如出现错误,则检查/mnt/chunk1是否为空文件,不为空则会失败。

测试:
firefox:172.25.9.1:9425 +server 可以看到172.25.9.2
在这里插入图片描述

server3操作与server2一样

yum repolist
yum install -y moosefs-chunkserver.x86_64
mkdir /mnt/chunk2

chown mfs.mfs /mnt/chunk2/

vim /etc/hosts
head -n5 /etc/hosts
cd /etc/mfs/
ls
vim mfshdd.cfg
tail -n1 mfshdd.cfg

测试
firefox:172.25.9.1:9425 +server 可以看到172.25.9.3
在这里插入图片描述

真实主机client端:

下载rhel8相关的client文件

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

在这里插入图片描述
编辑配置文件,指向挂载目录

cd /etc/mfs/
vim mfsmount.cfg
tail mfsmount.cfg -n1

在这里插入图片描述
编辑解析,同server1

vim /etc/hosts

在这里插入图片描述

创建目录并mfs命令挂载

mkdir /mnt/mfs
mfsmount

server1查看端口:
在这里插入图片描述

测试:进入目录存储文件,查看文件存储内容

cd /mnt/mfs/
mkdir dir1 dir2
ls

在这里插入图片描述
将dir1设定到mfs文件系统进行访问

mfssetgoal -r 1 dir1

在这里插入图片描述

获取副本数设定

mfsgetgoal dir1/
mfsgetgoal dir2/

在这里插入图片描述
查看文件信息

cd dir1
cp /etc/passwd .
mfsfileinfo passwd

在这里插入图片描述

cd dir2/
cp /etc/fstab .
mfsfileinfo fstab

在这里插入图片描述


三、客户端删除文件并恢复

将源数据挂载到客户端

mkdir /mnt/mfsmeta
mfsmount -m /mnt/mfsmeta/

cd /mnt/mfsmeta/

删除:

cd ../../mfs/dir1
ls
rm -fr passwd

在这里插入图片描述

寻找:

cd -
find -name *passwd*

在这里插入图片描述

恢复:

mv '00000004|dir1|passwd' undel/
pwd
cd /mnt/mfs/dir1

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


四、storage class ---->通过标签确定

1.分别设定chunk端的标签

vim /etc/mfs/mfschunkserver.cfg

server2:LABELS = A

server3:LABELS = B

server4:LABELS = A

每次修改都需要reload服务

systemctl reload moosefs-chunkserver.service

client端:

mfsscadmin create 2A class2A  #需要在文件目录中进行

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

mfsfileinfo fstab #查看文件fstab存储方式

在这里插入图片描述

在这里插入图片描述
2.

vim /etc/mfs/mfschunkserver.cfg
server2:LABELS = A S
server3:LABELS = B H
server4:LABELS = A H

网页查看端口设定情况
在这里插入图片描述

client端:

mfsscadmin create AS,2H[A+B] classAS2HAB   #需要在文件目录中进行

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

mfsfileinfo fstab #查看文件fstab存储方式

在这里插入图片描述
可以看到fstab根据设定改变了其存储方式

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

client端:

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

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

mfsfileinfo fstab #查看文件fstab存储方式

在这里插入图片描述
在 storage class一栏中可以看到设定变化,七天后将会改变存储方式。


五、共享文件iscsi实现mfs高可用

server3:为iscis主机,为其添加虚拟磁盘
在这里插入图片描述
fdisk -l
在这里插入图片描述

设置iscis,

yum install -y targetcli
systemctl start target
targetcli
cd backstores/block
create my_disk /dev/vdb

在这里插入图片描述

cd iscsi
create iqn.2021-07.org.westos:target1
cd iqn.2021-07.org.westos:target1/tpg1/luns
create /backstores/block/my_disk
/iscsi/iqn.20...et1/tpg1/acls> create iqn.2021-07.org.westos:client

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

server1:master需要备份的机器

yum install -y iscsi-*
cd /etc/iscsi/

在这里插入图片描述

vim initiatorname.iscsi
cat initiatorname.iscsi

在这里插入图片描述

iscsiadm -m discovery -t st -p 172.25.9.3
iscsiadm -m node -l

在这里插入图片描述
在这里插入图片描述
登陆成功后会生成以下文件

cd /var/lib/iscsi/
ls

在这里插入图片描述
看到 server1中多了一块sda1磁盘
fdisk -l
在这里插入图片描述
分区并挂载

fdisk /dev/sda
mkfs.xfs /dev/sda1
mount /dev/sda1 /mnt

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

cd /var/lib/mfs/
ls
cp -p * /mnt/
cd /mnt/
ls
ll
chown mfs.mfs /mnt/ -R
umount /mnt/

在这里插入图片描述

server2:负责备份server1中的master信息

yum install -y moosefs-master.x86_64

在这里插入图片描述

下载iscsi相关安装包

yum install -y iscsi-*

在这里插入图片描述
配置iscsi

vim /etc/iscsi/initiatorname.iscsi
cat /etc/iscsi/initiatorname.iscsi

在这里插入图片描述
连接iscsi主机server3

iscsiadm -m discovery -t st -p 172.25.9.3
iscsiadm -m node -l

在这里插入图片描述
查看磁盘,多了一块sda1,将其挂载

fdisk -l
mount /dev/sda1 /var/lib/mfs/

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

cd /var/lib/mfs/
ls
systemctl start moosefs-master

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

启动失败,原因:master启动时,/var/lib/mfs/metadata.mfs必须存在,而启动后会变为metadata.mfs.back
在这里插入图片描述

修复文件

mfsmaster -a

在这里插入图片描述

mfsmaster stop 
mfsmaster start 
或者 systemctl start moosefs-master

启动成功。server1中的master备份均完成。

六、双机热备份

vim删除光标以后的内容: 大写字母 D

server1中:
修改软件仓库文件,读取镜像中的高可用插件

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

在这里插入图片描述
查看仓库文件是否书写正确。
在这里插入图片描述
安装需要的模块

yum install -y pacemaker pcs psmisc policycoreutils-python

在这里插入图片描述
设置server1与server2免密登陆

ssh-keygen
ssh-copy-id server2

在这里插入图片描述
将仓库文件scp给server2,并且在server1中通过ssh远程安装需要的部分,并远程开启服务pcsd

ssh server2 yum install -y pacemaker pcs psmisc policycoreutils-python

在这里插入图片描述
server1和server2均设定需要认证的用户和密码

echo westos | passwd --stdin hacluster

在这里插入图片描述
认证server1和server2

pcs cluster auth server1 server2

在这里插入图片描述

设置server1和server2为mycluster集群

pcs  cluster setup  --name mycluster server1 server2

在这里插入图片描述
启动集群

pcs cluster  start --all
pcs cluster  enable --all

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
设定后警告取消

pcs property set stonith-enabled=false

在这里插入图片描述
查看默认功能
在这里插入图片描述
设定vip模块 监控时间间隔为30s,此处ip是未占用的ip用于mfsmaster。

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

在这里插入图片描述

查看Filesystem使用方法

pcs resource describe ocf:heartbeat:Filesystem

在这里插入图片描述
down掉server1后vip会自动转移到server2

pcs node standby
pcs status

在这里插入图片描述

pcs node unstandby #启动server1

在这里插入图片描述
查看状态,vip不会回到server1上,配置成功。
若是回到server1上,磁盘会脑裂,坏掉。
在这里插入图片描述
设置集群操作前两个master关闭所有mfs服务并关闭开机自启
在这里插入图片描述
在这里插入图片描述
设定mfsdata

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

在这里插入图片描述
查看状态成功后,会按照状态提示挂载到某个master主机上,此处自动挂载到server1上,
在这里插入图片描述
遇到问题:
启动master后,强制结束进程,master不能正常启动,
在这里插入图片描述

在这里插入图片描述
原因是启动时,需要metadata.mfs 而启动后会改为metadata.mfs.back,强制结束进程无法恢复此文件。

修改启动脚本:

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

在这里插入图片描述
修改后:
在这里插入图片描述
reload后启动master成功
在这里插入图片描述
查看pcs状态
在这里插入图片描述
发现vip、mfsdata、mfsmaster不在同一个主机中,
解决方案:

pcs resource  group  add mfsgroup vip mfsdata mfsmaster

修改后查看状态
在这里插入图片描述
测试:
修改所有mfs主机的解析,使
172.25.9.1 解析到 mfsmaster
server1:
在这里插入图片描述
server2:
在这里插入图片描述
server3:
在这里插入图片描述
在这里插入图片描述

server4:
在这里插入图片描述

真实主机client:
在这里插入图片描述
完成后client端查看文件dir2/fstab 和dir1/passwd
在这里插入图片描述
down掉server2
在这里插入图片描述
vip mfsdata mfsmaster均迁移到server1中
在这里插入图片描述
再次查看文件
在这里插入图片描述
文件存储路径未受影响。
冲洗拉起server2,不会有任何影响操作。
在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值