IT技术互动交流平台

MogileFS分布式文件系统详解

作者:ljl_19880709  发布日期:2014-04-11 09:00:12

一、关于MogileFS

MongileFS是一个由Perl开发的分布式文件系统,遵循CAP理论,即Consistency:数据的一致性;Availability:数据的可用性;Tolerance of network Partition:数据的容错性;而这里的MongileFS满足的了后俩者,也就是只能满足数据的可用性和容错性,对于大型网站,数据的可用性和容错性要优先于数据的一致性。

MongileFS使用一致性hash来解决数据的可用性,使用虚拟节点来解决数据倾斜的问题;MongileFS特别适合存储海量小文件的数据,与之类似的分布式文件系统还有:FastDFS,MooseFS等,也适合存储海量小文件。

MongileFS的特性:

1、应用层实现,不需要特殊的核心组件;

2、无单点失败,MogileFS分布式文件存储系统安装的三个组件(存储节点、跟踪器、跟踪用的数据库),均可运行在多个机器上,因此没有单点失;

3、自动的文件复制 — 基于不同的文件“分类”,文件可以被自动的复制到多个有足够存储空间的存储4节点上,这样可以满足这个“类别”的最少复制要求;

4、简单的命名空间 –文件通过一个给定的key来确定,是一个全局的命名空间.你可以自己生成多个命名空间,只要你愿意,不过这样可能在同一MogileFS中会造成key冲突;

5、不用共享任何东西 — MogileFS分布式文件存储系统不需要依靠昂贵的SAN来共享磁盘,每个机器只用维护好自己的磁盘;

 

实现MogileFS分布文件系统所需要的角色:

1、Tracker(MogileFSd 进程):这个是 MogileFS 的核心部分,他是一个调度器,MogileFSd 进程就是 trackers 进程程序,trackers 做了很多工作:Replication ,Deletion,Query,Reaper,Monitor 等等,这个是基于事件的( event-based ) 父进程/消息总线来管理所有来之于客户端应用的交互(requesting operations to be performed),,包括将请求负载平衡到多个"query workers"中,然后让 MogileFSd 的子进程去处理;

2、MySQL:用来存放 MogileFS 的元数据 (命名空间, 和文件在哪里),是Trackers 来操作和管理它,可以用mogdbsetup程序来初始化数据库,因为数据库保存了MogileFS的所有元数据,建议做成HA架构;

3、Storage Nodes:实际文件存放的地方. 存储节点是一个 HTTP 服务器,用来做删除,存放,重命名等事情,任何WebDAV服务器都可以, 不过推荐使用mogstored,MogileFSd 可以配置到两个机器上使用不同端口,mogstored 来进行所有的DAV操作和流量,IO监测, 并且你自己选择的 HTTP 服务器(默认为 perlbal)用来做 GET 操作给客户端提供文件。

 

二、MongileFS工作原理图

wKiom1NGZNiTKzaNAAD4rEDUBXs571.jpg

 

 

三、实验环境

192.168.30.116 OS:CentOS 6.4 x86_64 node1.luojianlong.com

192.168.30.117 OS:CentOS 6.4 x86_64 node2.luojianlong.com

192.168.30.119 OS:CentOS 6.4 x86_64 node3.luojianlong.com

 

拓扑图

wKiom1NGaLOjannfAAEA7emcEBk572.jpg

Tag标签: MogileFS   分布式文件系统  
  • 专题推荐

About IT165 - 广告服务 - 隐私声明 - 版权申明 - 免责条款 - 网站地图 - 网友投稿 - 联系方式
本站内容来自于互联网,仅供用于网络技术学习,学习中请遵循相关法律法规