分布式文件系统之MooseFS—-介绍

一、简述

1、介绍

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

1、mfs是一个分层的目录树结构

2、存储支持POSIX标准的文件属性(权限,最后访问和修改时间)

3、支持特殊的文件,如:块设备,字符设备,管道和套接字,链接文件(符号链接和硬链接)

4、支持基于IP地址和密码的方式访问文件系统

2、特性

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

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

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

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

3、优缺点

优点:

1、由于MFS是基于GPL发布的,因此完全免费,并且开发和社区都很活跃,资料也非常丰富

2、轻量、易部署、易配置、易维护

3、通用文件系统,不需要修改上层应用就可以使用(那些需要专门 API 的DFS确实有点麻烦) 4、扩容成本低、支持在线扩容,不影响业务,体系架构可伸缩性极强(官方的case可以扩到70台了!) 5、体系架构高可用,所有组件无单点故障 6、文件对象高可用,可设置任意的文件冗余程度(提供比 Raid 10 更高的冗余级别)

7、提供系统负载,将数据读写分配到所有的服务器上,加速读写性能

8、提供诸多高级特性,比如类似Windows的回收站功能、类似JAVA语言的GC(垃圾回收)、快照功能等

9、MooseFS 是 Google Filesystem 的一个 c 实现

10、自带Web Gui 的监控接口

11、提高随机读或写效率和海量小文件的读写效率(有待进一步证明)

缺点:

1、Master Server 本身的性能瓶颈。MFS的主备架构情况类似于MySQL的主从复制,从可以扩展,主却不容易扩展。短期的对策就是按照业务来做切分。

2、随着MFS体系架构中存储文件的总数上升,Master Server对内存的需求量会不断增大(MFS把文件系统的结构缓存到 Maset Server 的内存中)。根据官方提供的数据,8g对应2500kw的文件数,2亿文件就得64GB内存。短期的对策也是按照业务来做切分。

3、Master server的单点解决方案的健壮性。目前官方自带的是把数据信息从Master Server同步到Metalogger Server上,Master Server一旦出问题Metalogger Server可以恢复升级为Master Server,但是需要恢复时间。目前,也可以通过第三方的高可用方案(heartbeat+drbd+moosefs)来解决 Master Server 的单点问题。

4、Metalogger Server 复制元数据的间隔时间较长(可调整)

4、应用场景

谈及MooseFS的应用场景,其实就是去谈分布式文件系统的应用场景。

1、大规模高并发的数据存储及访问(小文件、大文件),TFS适合小文件(<1M)

2、大规模的数据处理,如日志分析

5、使用现状

针对 MooseFS 在全球的使用情况,我在国内的一篇论文上挖了一张图。图片如下,在该图中标记为驯鹿的就是 Moosefs 的使用者所在区域。从图中可以看出,它在中国、欧洲以及北美都拥有了大量的用户,正是有了广泛的用户基础,才能使得mfs特性能够快速的迭代和进步。

二、组成

1、架构图

整个架构中,主要有四个组件,分别是管理服务器 Master Server、备份服务器Metalogger Server、数据存储服务器 Chunk Server 和 客户端 Client。其中,管理服务器 Master Server负责所有数据存储服务器的数据存储管理,响应客户端文件的读写请求,收回文件空间以及恢复文件,多存储节点之间的文件复制;元数据日志服务器 Metalogger Server,对 Master Server服务器的变化日志文件进行备份,changelog_ml.*.mfs 是备份文件的类型,当 Master Server出现故障时替换其继续工作,避免 Master Server的单点故障导致分布式文件系统的不能正常运行;数据存储服务器chunkserver,服从 Master Server的安排,定期向 Master Server发送自己的状态信息,除此之外,还能向客户提供数据存储空间,能够向客户传输数据;客户端 Client,通过 FUSE 内核接口挂载到数据存储服务器上,在客户端看来使用数据存储服务器上的文件系统和使用本地Unix文件系统是一样的。

下面再针对这4个组件进行更详细的介绍!

2、四个组件

组件名称组件作用

管理服务器

Managing Server

就是去旅行。牵着彼此的手,

分布式文件系统之MooseFS—-介绍

相关文章:

你感兴趣的文章:

标签云: