MooseFS之MooseFS介绍

到日前为止,有数十种以上的分布式文件系统解决方案可供选择,如:Lustre,Hadoop,PNFS等。为什么要选择MooseFS呢?我来说说我的看法:

  • 实施简单。MFS的安装,部署,配置相对于其他几种工具来说,要简单和容易得多。

  • 不停服务扩容。MFS框架做好后,随时可以增加服务器扩充容量;扩充和减少容量皆不会影响现有的服务。

  • 恢复服务容易。除了MFS本身具备高可用特性外,手动恢复服务也是非常快捷的。

MFS的特性

  • 高可靠性(数据能被分成几个副本存储在不同的计算机里)。

  • 通过增加计算机或增加新的硬盘动态扩充可用磁盘空间。

  • 可以设置删除文件的空间回收时间

  • 为文件创建快照

MFS文件系统的组成

MFS分布式文件系统由元数据服务器元数据日志服务器(也称备份服务器),数据存储服务器客户端(用户主机)等几部分组成。

  • 元数据服务器,它在整个体系中负责管理文件系统。目前MFS只支持一个元数据服务器Master,也就是说MFS对Master服务器有单点依赖,需要一个性能稳定的服务器来充当。希望今后MFS能支持多个Master服务器,进一步提高系统的可靠性。

  • 元数据日志服务器Metalogger)。备份Master服务器的变化日志文件,文件类型为changelog_ml.*.mfs。当元数据服务器数据丢失或者损毁,可从日志服务器取得文件进行恢复。

  • 数据存储服务器Chunk Server。真正存储用户数据的服务器。存储文件时,首先把文件分成块,然后这些块在数据服务器Chunk Server之间复制(复制份数可以手工指定,建议设置副本数为3)。数据服务器可以是多个,并且数量越多,可使用的"磁盘空间"越大,可靠性也越高。

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

MFS读写处理过程

MFS读取数据有以下4个步骤

  1. 客户端向元数据服务器发出请求。

  2. 元数据服务器把所需数据存放的位置(Chunk Server的IP地址及Chunk编号)告知客户端。

  3. 客户端向已知Chunk Server请求发送数据。

  4. 客户端取得所需数据。

整个读取数据的过程如下图:

MooseFS之MooseFS介绍_第1张图片

数据传输并不通过元数据服务器。这既减轻了元数据服务器的压力,同时也大大增加了整个系统的吞吐能力。在多个客户端读取数据时,读取点(Chunk Server)有可能被分散到不同的服务器。

写入数据的过程比读取数据要复杂一些,大致分为以下8个步骤

  1. 客户端向元数据服务器发送写入请求。

  2. 元数据服务器与Chunk Server进行如下交互(这个过程是可选项目,只有当所需的Chunks不存在时才进行这个交互)。a. 元数据服务器指示在某些Chunk Server创建分块Chunks。b. Chunk Server告知元数据服务器,步骤a的操作成功。:Chunk Server是相对于服务器的,而Chunks则是以磁盘分区为对象,一个Chunks就是一个MFS磁盘分配单位。

  3. 元数据服务器告知客户端,你可以在哪个Chunk Server的哪个Chunks写入数据。

  4. 向指定的Chunk Server写入数据。

  5. 与其他Chunk Server进行数据同步。同步的服务器依据设定的副本数而定,副本为2,则需同步一个ChunkServer。

  6. Chunk Server之间同步成功。

  7. Chunk Server告知客户端数据写入成功。

  8. 客户端告知元数据服务器本次写入完毕。

整个写入过程如下图:

MooseFS之MooseFS介绍_第2张图片

与读取数据一样,MFS写入数据的过程中,数据的传输仍然不需要经过元数据服务器

你可能感兴趣的:(MooseFS之MooseFS介绍)