Moosefs基本概念总结

运维 系统运维
最近了解了一个分布式文件系统——MooseFS,之前对分布式的东西知道的很少,分布式文件系统、分布式数据库都是近而远之,觉得太复杂了离我还很遥远。在各位老师的推动下我用6台机器实践了一下moosefs,moosefs的部署还是很简单的,下面是对于MFS知识点的一些总结。

  最近了解了一个分布式文件系统——MooseFS,之前对分布式的东西知道的很少,分布式文件系统、分布式数据库都是近而远之,觉得太复杂了离我还很遥远。在各位老师的推动下我用6台机器实践了一下moosefs,moosefs的部署还是很简单的,和配置NFS很像,就是多了两种角色的机器,正是有了它们,才使得moosefs在可扩展性和稳定性上都要远好于NFS,在读写的性能方面,通过dd进行的简单测试来看,moosefs也就是写入的速度稍微好于NFS,读上没有差别。下面是对于MFS知识点的一些总结。

  MFS系统由4个部分构成:master、metalogger、chunkserver、client

  Master —— mfs的大脑,记录着管理信息,比如:文件大小,存储的位置,份数等,和innodb中共享空间(ibdata)中存储的信息类似,这些信息被记录到metadata.mfs中,当该文件被载入内存后,该文件会重命名为metadata.mfs.back,当chunkserver上有更新时,master会定期将获得的新的信息回写到metadata.mfs.back中,保证元数据的可靠。

  硬件推荐:大内存,因为内存中需要将metadata.mfs加载进来,这个文件的大小取决于你chunkserver上存储的数据量,内存的大小会成为之后的问题,要ECC的可以进行错误校验,当内存中数据量达到一定程度,如果没有个容错的机制,会很可怕;冗余电池,和磁盘配置RAID1/RAID5/RAID10,都是为了保证高可靠。

  Metalogger —— mfs的备份,好比mysql中的m-s结构,metalogger会定期重master上将的metadata、changelog、session类型的文件下载同步到本地目录下,并加后缀”_ml”将其重命名。

  硬件推荐:与master机器配置一致,metalogger本身就是master的一个备机,当master宕机后,可以直接将metalogger提升为master。

  Chunkserver —— 数据存储地,文件以chunk大小存储,每chunk最大为64M,小于64M的,该chunk的大小即为该文件大小,超过64M的文件将被均分,每一份(chunk)的大小以不超过64M为原则;文件可以有多份copy,即除了原始文件以外,该文件还存储的份数,当goal为1时,表示只有一份copy,这份copy会被随机存到一台chunkserver上,当goal的数大于1时,每一份copy会被分别保存到每一个chunkserver上,goal的大小不要超过chunkserver的数量,否则多出的copy,不会有chunkserver去存,goal设置再多实际上也就没有意义的。Copy的份数,一般设为大于1份,这样如果有一台chukserver坏掉后,至少还有一份copy,当这台又被加进来后,会将失去的那份copy补回来,始终保持原有的copy数,而如果goal设为1copy,那么当存储该copy的chunkserver坏掉,之后又重新加入回来,copy数将始终是0,不会恢复到之前的1个copy。

  Chunkserver上的剩余存储空间要大于1GB(Reference Guide有提到),新的数据才会被允许写入,否则,你会看到No space left on device的提示,实际中,测试发现当磁盘使用率达到95%左右的时候,就已经不能写入了,当时可用空间为1.9GB。

  硬件建议:普通的机器就行,就是要来存几份数据,只要磁盘够大就好。

  Client —— 客户端通过内核加载的FUSE模块,再通过和master的沟通,将chunkserver共享的分区挂载到本地,然后进行读写操作。由于FUSE模块是外加的模块,当系统重启后,需要执行modprobe fuse,将其加载到内核中。

责任编辑:黄丹 来源: mysqlsystems.com
相关推荐

2009-12-21 10:27:52

WCF基本概念

2011-03-28 11:05:17

ODBC

2010-03-03 16:14:05

Python base

2014-04-16 15:11:19

Spark

2009-03-20 11:46:10

MGCP协议网关

2009-12-29 18:29:09

Silverlight

2017-04-07 10:19:22

交易支付概念

2010-02-23 16:32:29

WCF服务

2010-06-24 13:26:53

FTP协议

2010-07-12 09:43:38

Symbian开发

2009-08-18 10:34:31

Java入门基本概念

2010-07-07 15:17:40

LDAP协议

2010-08-23 16:58:17

DHCP协议

2012-12-03 17:12:10

HDFS

2011-07-19 13:44:39

JavaScript

2013-04-16 10:45:52

Android基本概念

2011-07-21 15:28:30

java

2010-02-24 17:17:04

WCF宿主环境

2010-03-02 13:14:38

WCF MSMQ队列

2010-06-08 16:52:38

CANopen总线协议
点赞
收藏

51CTO技术栈公众号