欢迎光临
我们一直在努力

MooseFS的工作机制及优劣分析

一、MooseFS简介

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

二、MooseFS架构中的四种角色

  • 管理服务器(Master Server):也称为元数据服务器,负责管理各个数据存储服务器,调度文件读写,回收文件空间以及恢复多节点拷贝。目前MFS只支持一个元数据服务器master,这是一个单点故障,需要一个性能稳定的服务器来充当。
  • 元数据日志服务器(Metalogger Server):负责备份管理服务器的变化日志文件,文件类型为changelog_ml.*.mfs,以便于在管理服务器出问题时接替其进行工作。元数据日志服务器是mfs 1.6以后版本新增的服务,可以把元数据日志保留在管理服务器中,也可以单独存储在一台服务器中。为保证数据的安全性和可靠性,建议单独用一台服务器来存放元数据日志。需要注意的是,元数据日志守护进程跟管理服务器在同一个服务器上,备份元数据日志服务器作为它的客户端,从管理服务器取得日志文件进行备份。
  • 数据存储服务器(Chunk Server):数据存储服务器是真正存储用户数据的服务器,负责连接管理服务器,听从管理服务器调度,提供存储空间,并为客户提供数据传输。在存储文件时,首先把文件分成块,然后将这些块在数据存储服务器之间互相复制。
  • 客户端(Client):通过FUSE内核接口挂载远程管理服务器上所管理的数据存储服务器,使共享的文件系统和使用本地文件系统的效果看起来是一样的。

三、MooseFS工作机制

1. 集群架构图

2. 读写机制

2.1 读机制

  1. 首先客户端(Client)访问主服务器(Master),获取文件实体的位置等相关信息。
  2. 主服务器(Master)查询缓存记录,把文件实体的位置等相关信息发给客户端(Client)。
  3. 客户端(Client)根据拿到的信息去访问对应的存储实体数据的服务器(Chunk Server)。
  4. 存储实体数据的服务器(Chunk Server)把对应的数据返回给客户端(Client)。
2.2 写机制

  1. 客户端(Client)访问主服务器(Master),请求写入数据。
  2. 主服务器(Master)查询缓存记录,如果是新文件,则会联系后面的数据服务器(Chunk Server)创建对应的chunk对象准备存放文件。
  3. 数据服务器(Chunk Server)返回创建chunk对象成功的消息给主服务器(Master)。
  4. 主服务器(Master)把文件实体的位置等相关信息发给客户端(Client)。
  5. 客户端(Client)访问对应的数据服务器(Chunk Server)写数据。
  6. 数据服务器(Chunk Server)之间进行数据同步,互相确认成功。
  7. 数据服务器(Chunk Server)返回成功写入信息给客户端(Client)。
  8. 客户端(Client)回报给主服务器(Master)写入结束。

四、优劣分析

1. 优点

  1. 由于MFS是基于GPL发布的,因此完全免费,并且开发和社区都很活跃,资料也非常丰富
  2. 轻量、易部署、易配置、易维护
  3. 通用文件系统,不需要修改上层应用就可以使用
  4. 扩容成本低、支持在线扩容,不影响业务,体系架构可伸缩性极强
  5. 体系架构高可用,所有组件无单点故障
  6. 文件对象高可用,可设置任意的文件冗余程度(提供比 Raid 10 更高的冗余级别)
  7. 提供系统负载,将数据读写分配到所有的服务器上,加速读写性能
  8. 提供诸多高级特性,比如类似Windows的回收站功能、类似JAVA语言的GC(垃圾回收)、快照功能等
  9. MooseFS 是 Google Filesystem 的一个 C 实现
  10. 自带 Web Gui 的监控接口
  11. 提高随机读或写效率和海量小文件的读写效率

2. 缺点

  1. Master Server本身的性能瓶颈。MFS的主备架构情况类似于MySQL的主从复制,从可以扩展,主却不容易扩展。短期的对策就是按照业务来做切分。
  2. 随着MFS体系架构中存储文件的总数上升,Master Server对内存的需求量会不断增大(MFS把文件系统的结构缓存到 Maset Server 的内存中)。根据官方提供的数据,8g对应2500万的文件数,2亿文件就得64GB内存。短期的对策也是按照业务来做切分。
  3. Master Server的单点解决方案的健壮性。目前官方自带的是把数据信息从Master Server同步到Metalogger Server上,Master Server一旦出问题Metalogger Server可以恢复升级为Master Server,但是需要恢复时间。目前,也可以通过第三方的高可用方案(heartbeat+drbd+moosefs)来解决Master Server的单点问题。
  4. Metalogger Server复制元数据的间隔时间较长(可调整)。

五、参考文献

MooseFS官网 [https://moosefs.com]

MooseFS分布式文件系统介绍 [https://www.cnblogs.com/hjc4025/p/9956988.html]

分布式文件系统之MooseFS [https://blog.51cto.com/zouqingyun/1698710]

赞(0) 打赏

评论 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏