文档库 最新最全的文档下载
当前位置:文档库 › MooseFS权威指南

MooseFS权威指南

MooseFS权威指南

——分布式文件系统一站式解决方案

内容目录

1 前言 (3)

1.1 原文及QQ群 (3)

1.2 感谢 (3)

1.3 架构图 (4)

1.4 MooseFS优点 (5)

1.5 MooseFS 1.6版本改进 (6)

1.6 Web GUI监控界面 (7)

1.7 常见问题及建议对策 (13)

1.7.1 Master性能瓶颈 (13)

1.7.2 体系架构存储文件总数的瓶颈。 (13)

1.7.3 单点故障解决方案的健壮性。(qq群战友 : tt , hzqbbc) (13)

1.7.4 垃圾回收 (13)

2 安装 (13)

2.1 MooseFS Master的安装 (13)

2.1.1 安装 (13)

2.1.2 启动Master服务 (14)

2.1.3 停止Master服务 (14)

2.1.4 启动和停止Web GUI (14)

2.1.5 相关配置文件 (14)

2.2 MooseFS Chunk Server的安装 (15)

2.2.1 从块设备创建本地文件系统 (15)

2.2.2 创建50G的Loop Device文件 (15)

2.2.3 安装Chunk Server (15)

2.2.4 启动Chunk Server (15)

2.2.5 停止Chunk Server (15)

2.3 MooseFS Client的安装 (16)

2.3.1 安装fuse (16)

2.3.2 安装MooseFS Client (16)

2.3.3 挂载文件系统 (16)

3 系统管理 (16)

3.1 管理命令 (16)

4 性能测试 (17)

4.1 MooseFS (17)

4.1.1 大文件 (17)

4.1.2 小文件测试一 (17)

4.1.3 小文件测试二 (17)

4.1.4 小文件测试三 (18)

4.1.5 小文件测试四 (18)

4.2.1 大文件 (18)

4.2.2 小文件 (18)

4.3 基准测试(第一次) (19)

4.3.1 随机读 (19)

4.3.2 随机写 (20)

4.3.3 顺序读 (20)

4.3.4 顺序写 (22)

4.4 基准测试(第二次) (22)

4.4.1 随机读 (22)

5 参考文献 (23)

5.1 文献 (23)

5.2 测试数据 (23)

5.2.1 性能测试模型一 (23)

5.2.2 性能测试模型二 (25)

6 MooseFS 1.5.x数据恢复实例 (26)

7 MooseFS热备方案 (26)

8 附录 (28)

8.1 1000 * 1000 * 1 client 脚本 (28)

8.2 1000 * 1000 * ( 100,200 ,1000 client ) 脚本 (28)

8.3 mfs官方关于1.6.x 的介绍 (29)

8.3.1 General (29)

8.3.2 Chunkserver (29)

8.3.3 Master (29)

8.3.4 Mount (30)

8.3.5 Tools (31)

8.3.6 CGI scripts (31)

8.4 MooseFS 官方FAQ(TC版) (31)

1 前言

1.1 原文及QQ群

1.原文作者:shinelian原文地址:https://www.wendangku.net/doc/1117611025.html,/viewthread.php?tid=1644309

2.QQ群:102082446分布式文件系统 专业群(不求人多,只求专业) 通关密码:i love cuer!

1.2 感谢

i.特别感谢田逸的文档 https://www.wendangku.net/doc/1117611025.html,/10037/263515

ii.特别感谢网友:灵犀 ,和官方开发人员沟通,并提供目前的一些官方文档

iii.特别感谢网友:tt,灵犀,流云风,hzqbbc在qq群内对广大爱好者分享宝贵经验。

iv.特别感谢存储专家-《大话存储》的作者:冬瓜头 ,在我进行性能测试的时候,对我进行的指导。

v.一个不知道名字的哥们(看到请联系我)

1.3 架构图

插图 1: MooseFS Read process

插图 2: MooseFS Write process

1.4 MooseFS优点

i.Free(GPL)

ii.通用文件系统,不需要修改上层应用就可以使用(那些需要专门api的dfs好麻烦哦!)。

iii.可以在线扩容,体系架构可伸缩性极强。(官方的case可以扩到70台了!)

iv.部署简单。(sa们特别高兴,领导们特别happy!)

v.体系架构高可用,所有组件无单点故障。 (您还等什么?)

vi.文件对象高可用,可设置任意的文件冗余程度(提供比raid1+0更高的冗余级别),而绝对不会影响读或者写的性能,只会加速哦!)

vii.提供Windows回收站的功能.(不怕误操作了,提供类似oralce 的闪回等高级dbms的即时回滚特性,

viii.提供类似Java语言的 GC(垃圾回收)。

ix.提供netapp,emc,ibm等商业存储的snapshot特性。

x.google filesystem的一个c实现。(google在前面开路哦!)

xi.提供web gui监控接口。

xii.提高随机读或写的效率(有待进一步证明)。

xiii.提高海量小文件的读写效率(有待进一步证明)。

1.5 MooseFS 1.6版本改进1

1.修复1.5.x中在大批量操作时打开文件过多的bug。这个错误也在我们此次测试的时候遇到,报的错误说是打开

的文件过多,造成chunker server的链接错误。虽然后来的测试中一直想模拟出来这个问题,但是一直无法模拟出来。在1.6.x中解决此问题,就解决了很大的问题。

2.新增加了masterlogger服务器。这是在1.5.x中所没有的,就是做了master服务器的冗余,进一步的加强

的master服务器的稳定性。在mfs体系中master是要求最稳定以及性能要求最高的,因此务必保证master 的稳定。

3.修改1.5.x中存在的对于坏块的修复功能。在mfs1.5.x中遇到chunker坏块校验,错误比较多的是很往往导

致master将出现坏块的chunker自动的剔除出去的情况,此次增加了对坏块的修复功能,很方便的进行修复,简化对坏块的处理功能。

4.对metadata和changelog的新认识。之前认为changelog记录的是文件的操作,定期的像数据库的日志一

样归档到metadata中。发现上面的理解存在误区,真正的是changelog中记录了对文件的操作,metadata 记录文件的大小和位置。因此metadata是比较重要的,在进行修复的过程中是采用metadata和最后一次的changelog进行修复的。

5.MFS文档中明确指出对于内存和磁盘大小的要求。【In our environment (ca. 500 TiB, 25 million

files, 2 million folders distributed on 26 million chunks on 70 machines) the usage of

chunkserver CPU (by constant file transfer) is about 15-20% and chunkserver RAM usually consumes about 100MiB (independent of amount of data).

The master server consumes about 30% of CPU (ca. 1500 operations per second) and 8GiB

RAM. CPU load depends on amount of operations and RAM on number of files and folders.】

6.指出了在测试的过程中多个chunker并不影响写的速度,但是能加快读的速度。在原来的基础上增加一个

chunker时,数据会自动同步到新增的chunker上以达到数据的平衡和均衡。

1mfs 1.6.x的User Guides和FAQ,并和灵犀沟通对文档中不理解的地方,就理解不一致的地方达成一

1.6 Web GUI监控界面

1.7 常见问题及建议对策

1.7.1 Master性能瓶颈

master本身的性能瓶颈。不太恰当的比方:类似mysql 主从复制,从的可以扩展,主的不容易扩展。 (qq群战友 : hzqbbc)

短期对策:按业务切分

1.7.2 体系架构存储文件总数的瓶颈。

mfs把文件系统的结构缓存到master的内存中,个人认为文件越多,master的内存消耗越大,8g对应

2500kw的文件数,2亿文件就得64GB内存。(qq群战友 : hzqbbc)

短期对策:按业务切分

1.7.3 单点故障解决方案的健壮性。(qq群战友 : tt , hzqbbc)

1.7.4 垃圾回收

默认的垃圾回收时间是86400,存在一种可能性是垃圾还没回收完,你的存储容量就暴掉了。(案例提供者

shinelian)

方案一:设置垃圾回收时间,积极监控存储容量。

经过测试,把垃圾回收时间设置300秒,完全可以正确回收容量。

方案二:手动周期性去删除metamfs里的trash目录下的文件(健壮性还有待测试,反正删除后容量是回收了,不晓得有没有什么后遗症。)

经过测试,貌似没后遗症,有后遗症的同学请在qq群里面联系我。

2 安装

硬件环境:

Master Server1台

Chunk Server3台

client1台

操作系统:

CentOS 5.3 X64

2.1 MooseFS Master的安装

2.1.1 安装

2.1.2 启动Master服务

2.1.3 停止Master服务

2.1.4 启动和停止Web GUI

2.1.5 相关配置文件

2.2 MooseFS Chunk Server的安装 2.2.1 从块设备创建本地文件系统

2.2.2 创建50G的Loop Device文件

2.2.3 安装Chunk Server

2.2.4 启动Chunk Server

2.2.5 停止Chunk Server

2.3 MooseFS Client的安装 2.

3.1 安装fuse

2.3.2 安装MooseFS Client

2.3.3 挂载文件系统

3 系统管理

3.1 管理命令

设置副本 的份数,推荐3份

查看某文件

查看目录信息

4 性能测试

4.1 MooseFS

4.1.1 大文件

block=1M byte

4.1.2 小文件测试一

50 byte * 100w个 * 1 client

1.写入(1000 * 1000)

2.列表

3.删除

4.1.3 小文件测试二

1K byte * 100w个 * 100 client1000 * 1000

1.写入(100 Client)

2.列表(1 Client)

3.删除(1 Client)

4.1.4 小文件测试三

1k byte* 100w个 * 200 client1000 * 1000

4.1.5 小文件测试四

1k byte* 100w个 * 1000 client1000 * 1000

4.2 本地磁盘

4.2.1 大文件

block=1M byte

4.2.2 小文件

50 byte * 100w个 * 1 client1000 * 1000

1.写入

2.列表

3.删除

4.3 基准测试(第一次) 4.3.1 随机读

4.3.2 随机写

4.3.3 顺序读

相关文档