企业—MFS分布式文件系统简介及其部署

本文介绍了MFS分布式文件系统,包括其架构、读写过程以及详细部署步骤。MFS通过将数据分散在多台服务器上提供高可用性和容错性。在部署中,详细阐述了master、chunk server的设置,以及客户端的挂载和测试,强调了单一分区以简化数据恢复的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.MFS分布式文件系统简介

1.简介

mooseFS(moose驼鹿)是一款网络分布式文件系统,它把数据分散到多台服务器上,但对于用户来讲,看到的只是一个源.MFS也像其他类unix文件系统,包含了层级结构(目录树),存储着文件属性(权限,最后访问和修改时)可以创建特殊的文件(块设备,字符设备,管道,套接字)符号链接.

MFS是一个具有容错性的网络分布式文件系统,它把数据分散存放在多个物理服务器上,而呈现给用户的则是一个统一的资源。

在这里插入图片描述
2.MooseFS文件系统介绍

MooseFS是一中分布式文件系统,MooseFS文件系统结构包括一下四种角色:

  • 1.管理服务器master
    管理服务器:负责各个数据存储服务的管理文件读写调度,文件空间回收以及恢复,多节点拷贝

  • 2.数据存储服务器data server(chunk servers)
    真正存储用户数据的服务器 ,存储文件时,首先把文件分成块,然后这些块在数据服务器chunkserver之间赋值(复制份数可以手工指定,建议设置副本数为数据服务器可以为多个,并且数据越多,可使用的“磁盘空间越大,”可靠性也越高 .

  • 3.客户端挂在 使用clinet computers
    使用MFS文件系统来存储和访问的主机名称为MFS的客户端,成功挂载MFS系统以后,就可以像以前NFS一样共享这个虚拟性的存储了。

在这里插入图片描述
3.MFS读取数据的过程

  • 客户端向元数据服务器发出读请求。
  • 元数据服务器把所需数据存放的位置告知客户端。
  • 客户端向已知的Chunk Server请求发送数据。
  • Chunk Server向客户端发送数据。

4.MFS写入数据的过程

  • 客户端向元数据服务器发送写入请求。
  • 元数据服务器与(ChunkServer进行交互)。
  • 元数据服务器告知客户端,可以在哪个Chunk Server的哪些Chunks写入数据。
  • 客户端向指定的Chunk Server写入数据。
  • 该Chunk Server 与其他Chunk Server进行数据同步,同步成功后Chunk Server告知客户端数据写入成功。
  • 客户端告知元数据服务器本次写入完毕。

二.MFS分布式文件系统的部署

1.实验环境

rhel7.3 firewalld is disabled

主机名(IP)服务
server1(172.25.254.1)master
server2(172.25.254.2)chunk server
server3(172.25.254.3)chunk server
foundation(172.25.254.77)client

部署如下:

官网下载需要的相关安装包
在这里插入图片描述
server1(master)的部署:

1.安装master和管理的web图形界面

[root@server1 3.0.103]# yum install -y moosefs-master-3.0.103-1.rhsystemd.x86_64.rpm moosefs-cli-3.0.103-1.rhsystemd.x86_64.rpm moosefs-cgiserv-3.0.103-1.rhsystemd.x86_64.rpm moosefs-cgi-3.0.103-1.rhsystemd.x86_64.rpm

在这里插入图片描述
安装完成之后会产生/etc/mfs目录里面是mfs文件系统的相关配置文件
在这里插入图片描述
注:在该目录下的mfsmaster.cfg的文件中记录了如果进行部署及其使用都需要在各个节点写入mfsmaster的解析
在这里插入图片描述
在这里插入图片描述
2.主节点解析

[root@server1 mfs]# vim /etc/hosts
文件编辑如下:
172.25.254.1   server1  mfsmaster

在这里插入图片描述
3.开启服务查看节点

端口解析:

  • 9419:metalogger监听的端口地址,和原数据日志相结合,定期和master端同步数据
  • 9420:用于和chunkserver连接的端口地址,通信节点
  • 9421:用于客户端对外连接的点口地址

在这里插入图片描述
4.打开cgi图形化管理工具并且进行查看

在这里插入图片描述
浏览器访问查看:
http://172.25.254.1:9425/mfs.cgi
在这里插入图片描述
从节点server2(chunk server)的部署:

1.安装chunkserver
在这里插入图片描述

2.添加mfsmaster的解析

[root@server2 ~]# vim /etc/hosts
172.25.254.1   server1 mfsmaster

3.给server2上添加一块硬盘用于mfs的数据节点的操作
在这里插入图片描述
添加完成之后查看:
在这里插入图片描述
4.创建分区并且格式化
在这里插入图片描述
在这里插入图片描述
注:分区时建议只分区一块将将内存全给/dev/vda即可,即使在数据丢失时亚能通过分区的Start和End的字节数来恢复数据,但是如果分区多的话每个分区的Start和End的字节数都不相同,如果数据出现问题就很难恢复了
在这里插入图片描述
格式化:
在这里插入图片描述
4.创建用于挂载格式化分区的目录挂载分区,并且在里面写入数据
在这里插入图片描述
模拟分区破坏后的数据恢复:

先卸载,再破坏分区,再次挂载时发现分区不存在,那就相当于数据就丢失了:
在这里插入图片描述
恢复如下:
重新对/dev/vda进行分区划分
在这里插入图片描述
在这里插入图片描述
不用对其格式化直接挂载就可以了然后挂载完成后发现数据恢复:
在这里插入图片描述
这就是上述强调的为什么只创建一个分区然后把所有内存都加给该分区,就是在进行数据恢复时创建分区时只是创建一个分区,好恢复

5.编辑chunkserver的相应配置文件添加共享data的挂载路径
在这里插入图片描述
在文件最后添加:
在这里插入图片描述
6.在相应配置完成后在/etc/passwd会自动生成mfs用户,因此需要对共享的挂载修改所属用户和所属组,方便使用及其管理
在这里插入图片描述
注意:必须是先挂载然后再修改所属用户和所属组

7.开启服务查看端口
在这里插入图片描述
8.在u浏览器上再次刷新查看发现server2已经添加
在这里插入图片描述
从节点server3(chunk server)的配置:

1.安装chunkserver软件
在这里插入图片描述
2.添加mfsmaster解析

[root@server3 ~]# vim /etc/hosts
172.25.254.1   server1 mfsmaster

3.建立挂载点的目录,修改用户和组,如果不挂载相应分区的话默认是将根分区进行挂载的,这在企业中是不安全的
在这里插入图片描述
4.编辑chunkserver的配置文件添加挂载路径
在这里插入图片描述
在这里插入图片描述
5.开启服务查看端口
在这里插入图片描述
6.在浏览器上刷新查看发现server3已经添加
在这里插入图片描述
客户端的搭建及其测试:

1.在客户端安装moosefs-clisent软件
在这里插入图片描述
2.添加mfsmaster的解析
在这里插入图片描述在这里插入图片描述
3.创建真机挂载的数据的目录并且编辑配置文件添加挂载目录

[root@foundation77 mfs]# mkdir /mnt/mfs
[root@foundation77 mfs]# vim /etc/mfs/mfsmount.cfg
 16 /mnt/mfs

4.客户端挂载文件系统
在这里插入图片描述
5.在挂载客户端下创建目录并且查看相应信息

[root@foundation77 mfs]# pwd
/mnt/mfs
[root@foundation77 mfs]# mkdir dir1
[root@foundation77 mfs]# mkdir dir2
[root@foundation77 mfs]# mfsgetgoal dir1/
dir1/: 2
[root@foundation77 mfs]# mfsgetgoal dir2/
dir2/: 2    ##默认会分别在俩个chunkserver上备份数据

6.客户端数据备份份数测试:

  • 指定挂载目录下的dir1的目录中文件备份为1
    在这里插入图片描述
  • 在/mnt/mfs中的dir1和dir2的目录下存储文件并且查看文件信息
    在这里插入图片描述
  • 关掉只备份1分的dir1目录下的chunserver,即server3
    在这里插入图片描述
  • 再次查看发现dir1下只备份1分的数据丢失,而在dir2上是在俩个chunkserver上都有备份,所以数据没有丢失
    在这里插入图片描述
    注:因为存储passwd的chunkserver已经挂掉,所以此时已经查不到passwd的相关数据,如果此时要打开该文件电脑会卡住,因为数据已经不再这个主机上存储

7.客户端离散存储的测试

默认chunkserver对数据的备份是按块来备份的,每一块备份50KB

  • 在dir1目录下:

在这里插入图片描述

  • 在dir2目录下:

在这里插入图片描述

  • 关掉server3上的chunkserver发现在dir1目录下只备份一个chunkserver上的会有数据丢失,而在dir2目录下没有数据丢失
    在这里插入图片描述
    mosefs-master的服务开启及关闭:

1.正常的开启与关闭,在/var/lib/mfs目录下的记录mfs信息的文件及master的信息记录的文件 metadata.mfs.back 会变为metadata.mfs
在这里插入图片描述
2.kill强制关闭服务后 metadata.mfs.back文件不会发生改变并且使用systemctl命令是无法再次启动服务的
在这里插入图片描述
解决如下:

  • 查看服务状态会显示使用mfsmaster start -a 成功开启
    在这里插入图片描述
  • 恢复systemctl 启动服务需要进行如下操作
[root@server1 mfs]# vim /usr/lib/systemd/system/moosefs-master.service 
文件编辑内容:
 8 ExecStart=/usr/sbin/mfsmaster -a

//杀掉mfsmaster的进程在重新加载并开启服务
[root@server1 mfs]# ps ax
进程信息如下:
1406 ?        S<     0:01 mfsmaster start -a

[root@server1 mfs]# systemctl daemon-reload
[root@server1 mfs]# systemctl start moosefs-master

数据恢复:

1.删除数据
在这里插入图片描述
2.查看删除的数据在tarsh垃圾箱中停留的时间
在这里插入图片描述
3.恢复

//创建恢复数据的目录
[root@foundation77 mnt]# mkdir /mnt/mfsmeta
[root@foundation77 mnt]# cd mfsmeta/
//将目录挂载,然后在目录下会生成trash目录,该目录下有存放的已经删除的文件
[root@foundation77 mfsmeta]# mfsmount -m /mnt/mfsmeta/   ##挂载完成后用df命令是查看不到挂载状态的,使用mount命令就可以查看到挂载状态
mfsmaster accepted connection with parameters: read-write,restricted_ip
[root@foundation77 mfsmeta]# cd /mnt/mfsmeta/
[root@foundation77 mfsmeta]# ls
sustained  trash
[root@foundation77 trash]# ls

在这里插入图片描述
在这里插入图片描述
则数据恢复成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值