分布式存储--MFS

分布式存储–MFS

分布式文件系统

分布式文件系统是指文件系统管理的物理存储资源,不一定在本地节点上,而是通过网络与节点相连,把分散的数据集合到一起(虚拟文件夹),对于用户来说,要访问这些共享文件夹时,只要打开这个虚拟共享文件夹,就可以看到所有链接到虚拟共享文件夹内的共享文件夹,用户感觉不到这些共享文件是分散在各个计算机上,常见的分布式文件系统有:MFS(块大小默认64M)、HDFS(块大小默认128M)

优点:集中访问、简化操作、数据容灾,以及提高文件的存取性能

MFS介绍

MFS:(MooseFS:驯鹿文件系统) 是一个具备冗余容错功能的分布式网络文件系统,它将数据分别存放在多个物理服务器或单独磁盘或分区上,确保一份数据有多个备份副本,然而对于访问 MFS 的客户端或者用户来说,整个分布式网络文件系统集群看起来就像一个资源一样,从其对文件系统的情况看 MooseFS 就相当于 UNIX 的文件系统,MFS是基于FUSE(用户空间文件系统)机制的,所以支持含有FUSE的操作方式的系统

冗余:指的是一份数据会备份到多个服务器内,可以手动指定(默认2份副本),只有拥有同样数据的服务器同时损坏才会造成数据丢失

容错:MFS有一中机制,类似于Windows的回收站,删除的文件会在这里保存一段时间后,才会删除(回收站的保存时间可设定)

优点:

1.高可靠性:每一份数据可以设置多个备份(多分数据),并可以存储在不同的主机上

2.高可扩展性:可以很轻松的通过增加主机的磁盘容量或增加主机数量来动态扩展整个文件系统的存储量

3.高可容错性:可以通过对mfs进行系统设置,实现当数据文件被删除后的一段时间内,依旧存放于主机的回收站中,以备误删除恢复数据

4.高数据一致性:即使文件被写入、访问时,我们依然可以轻松完成对文件的一致性快照

缺点:

1.Master目前是单点,企业版的不是单点的,数据会很安全;对于社区版来说是单点,有数据安全风险,这里我们可以使用keepalived+master的方式,实现master节点的高可用;虽然会把数据信息同步到备份服务器,但是恢复需要时间

2.Master服务器对主机的内存要求略高,对内存的要求高,是因为Master节点在开启状态时,会将所有的元数据全部加装到内存中

3.默认Metalogger复制元数据时间较长(可调整)

MFS的组成

元数据服务 Master 在整个体系中负责管理文件系统,维护元数据。接受用户访问
元数据日志服务器MetaLogger 备份Master服务器变化的Metadata,文件类型为changelog_ml.*.mfs。当Master服务器数据丢失或者损坏时,可以从日志服务器中取得文件,进行修复。
数据存储服务器Chunk Server 真正存储数据的服务器。存储文件时,会把文件分块保存,在数据服务器之间进行复制。数据服务器越多,能使用的“容量”就越大,可靠性就越高,性能也就越好。
客户端Client 可以像挂载NFS一样挂载MFS文件系统,其操作是相同的。

应用场景

1.大规模高并发的线上数据存储及访问(小文件,大文件都适合),对于一些规模较小的场景,使用分布式存储,存储访问效率反而会变慢。

2.大规模的数据处理,如日志分析,小文件强调性能不用HDFS

MFS的工作方式

客户端访问MFS,MFS会根据客户端不同的操作使用不同的工作方式,在这里简单的介绍一下:

1.遍历,如:ls /root;Client发送遍历请求到Master,遍历的话打印出来的都是元数据,所以Master会直接调用元数据,返回客户端

2.删除,如:rm filename;Client发送删除请求到Master—master定位要删除的元数据信息,删除元数据信息,并且将删除真实文件数据块的操作加入的对应节点的异步清除队列中,到达保存时间后,Chunkserver会将真实数据被删除—Master返回信息,Client响应

3.查看,如:cat filename;Client连接Master发起查看文件请求,Master检索元数据信息,返回chunkip port id 至Client,Client连接对应的chunkserver的块,读取数据

4.修改,如:vim filename

1)新增文件:Client连接Master发起创建文件请求,Master选择对应Chunkserver创建新块,Chunkserver创建新块(临时块)返回至Master,Master返回Chunkserver ip port id至Client,Client连接对应Chunkserver写入数据,Client向Master发起关闭文件请求,Master连接 Chunkserver查看块:如果块为空,更新元数据信息;如果块有数据,按照64MB分配原则,创建块拷贝临时块数据至 新块,更新元数据信息

2)文件存在:Client连接Master发起修改文件请求,Master连接至Chunkserver,通知创建临时块拷贝源块数据,Chunkserver将临时块 ip port id 发送至Master,Master将临时块ip port id 发送给Client,Client连接至对应的临时块修改数据,修改完成后,通知Master关闭文件响应,Master连接临时块对比源块数据:如果数据一致,删除临时块,更新元数据信息;如果数据不一致,按照64MB原则,创建新块,将临时块数据拷贝至新块,删除临时块以及源块,更新元数据信息

5.复制,如:cp a b;Client向Master发送拷贝请求,Master会选择最优的Chunkserver要求创建新块,Master会将Chuckserver的 ip port id等信息发送至Client,Client连接对应的Chunkserver,写入数据,完成后,向Master发送断开请求,Master会向Chunkserver进行确认,然后更新元数据信息

MFS的存储方式

Master记录着管理信息,比如:文件路径/大小/存储的位置(ip,port,chunkid)/份数/时间等,元数据信息存在于内存中,会定期写入metadata.mfs.back文件中,定期同步到metalogger,操作实时写入changelog.*.*mfs,实时同步到metalogger中。Master启动将metadata.mfs载入内存,重命名metadata.mfs.back文件

文件以chunk大小存储,每chunk最大为64M,小于64M的,该chunk的大小即为该文件大小(验证实际chunk文件略大于实际文件),超

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值