MooseFS源代码分析(一)——基础介绍

一、MooseFS整体结构

MooseFS的整体结构比较简单。元数据放在masterserver上,客户端读取数据的时候先向masterserver读取元数据,然后再去具体的chunkserver读取数据。为保证容错性,chunkserver之间会相互更具配置复制数据。读取、写入数据的过程很明了,下面的两张图说得非常清楚:

read862 write862

具体实现需要去研究一下,主要想知道两点:

▲MooseFS具体是如何存储数据的。

▲MooseFS的masterver、chunkserver、客户端之间具体是如何通信的。

二、选择源代码版本

需要了解Moosefs的具体实现,相关的设计文档是没有的,只能去看源代码。下载了最新的MooseFS(mfs-1.6.20-2)的源代码,仔细看了下,源代码里面的注释非常少。 上网搜了一下相关的评论,曰:MooseFS的代码注释率大大低于一般的开源软件。

源代码肯定是要读的,但是能事情能简单点更好。找了下MooseFS的源代码,我能找到的最老版本的源代码是1.5.8。从1.5.8到1.6.20的主要更新如下:

  • ◆各种算法进行优化
  • ◆增加CGI脚本以提供管理界面
  • ◆增加主控备份服务器模块(Metalogger Server)
  • ◆增加一些辅助工具
  • ◆存储块服务器的多线程支持
  • ◆Bug修复以及其它功能完善

各个版本的核心功能没有太大的变化,但是1.5.*的代码结构比1.6.*的要简单很多,下面是1.6.20和1.5.8的对比。

Moose20-15Compare

1.5.*的代码并不比1.6.*的少,但是很多公用的代码它并没有抽出来放在单独的位置,虽然在结构上不可取,但是对于刚开始看它的代码来说还是更方便一些。考虑到1.5.*的代买结构更简单并且1.5.9是最后一个发布的1.5.*的版本,所以这里就从1.5.9的代码入手进行分析。后面的所有讨论都是基于1.5.9的版本。

MooseFS1.5.9版本的各个模块:

模块

内容

doc文档
mfschunkserver存储块服务器功能
mfsdata存放静态数据,例如一些配置文件的样本文件。
mfsmaster主服务器功能
mfsmetarestore恢复元数据的工具,与核心功能无关。
mfsmountMooseFS客户端功能

其中mfsdoc、mfsdata里面没有什么代码,不用说。mfsmetarestore的功能很简单,用来还原元数据(metadata.mfs.back->metadata.mfs)。

核心的模块还是mfsmount、mfsmaster和mfschunkserver。 后面重点分析一下这三个模块的工作过程和一些重要的数据的存储结构。

转载于:https://www.cnblogs.com/JeffreySun/archive/2011/04/03/2004255.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值