Table of Contents
一、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 读机制
- 首先客户端(Client)访问主服务器(Master),获取文件实体的位置等相关信息。
- 主服务器(Master)查询缓存记录,把文件实体的位置等相关信息发给客户端(Client)。
- 客户端(Client)根据拿到的信息去访问对应的存储实体数据的服务器(Chunk Server)。
- 存储实体数据的服务器(Chunk Server)把对应的数据返回给客户端(Client)。
2.2 写机制
- 客户端(Client)访问主服务器(Master),请求写入数据。
- 主服务器(Master)查询缓存记录,如果是新文件,则会联系后面的数据服务器(Chunk Server)创建对应的chunk对象准备存放文件。
- 数据服务器(Chunk Server)返回创建chunk对象成功的消息给主服务器(Master)。
- 主服务器(Master)把文件实体的位置等相关信息发给客户端(Client)。
- 客户端(Client)访问对应的数据服务器(Chunk Server)写数据。
- 数据服务器(Chunk Server)之间进行数据同步,互相确认成功。
- 数据服务器(Chunk Server)返回成功写入信息给客户端(Client)。
- 客户端(Client)回报给主服务器(Master)写入结束。
四、优劣分析
1. 优点
- 由于MFS是基于GPL发布的,因此完全免费,并且开发和社区都很活跃,资料也非常丰富
- 轻量、易部署、易配置、易维护
- 通用文件系统,不需要修改上层应用就可以使用
- 扩容成本低、支持在线扩容,不影响业务,体系架构可伸缩性极强
- 体系架构高可用,所有组件无单点故障
- 文件对象高可用,可设置任意的文件冗余程度(提供比 Raid 10 更高的冗余级别)
- 提供系统负载,将数据读写分配到所有的服务器上,加速读写性能
- 提供诸多高级特性,比如类似Windows的回收站功能、类似JAVA语言的GC(垃圾回收)、快照功能等
- MooseFS 是 Google Filesystem 的一个 C 实现
- 自带 Web Gui 的监控接口
- 提高随机读或写效率和海量小文件的读写效率
2. 缺点
- Master Server本身的性能瓶颈。MFS的主备架构情况类似于MySQL的主从复制,从可以扩展,主却不容易扩展。短期的对策就是按照业务来做切分。
- 随着MFS体系架构中存储文件的总数上升,Master Server对内存的需求量会不断增大(MFS把文件系统的结构缓存到 Maset Server 的内存中)。根据官方提供的数据,8g对应2500万的文件数,2亿文件就得64GB内存。短期的对策也是按照业务来做切分。
- Master Server的单点解决方案的健壮性。目前官方自带的是把数据信息从Master Server同步到Metalogger Server上,Master Server一旦出问题Metalogger Server可以恢复升级为Master Server,但是需要恢复时间。目前,也可以通过第三方的高可用方案(heartbeat+drbd+moosefs)来解决Master Server的单点问题。
- Metalogger Server复制元数据的间隔时间较长(可调整)。
五、参考文献
MooseFS官网 [https://moosefs.com]
MooseFS分布式文件系统介绍 [https://www.cnblogs.com/hjc4025/p/9956988.html]
分布式文件系统之MooseFS [https://blog.51cto.com/zouqingyun/1698710]
评论前必须登录!
注册