MogileFS分布式文件系统详解
一、关于MogileFSMongileFS是一个由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工作原理图
三、实验环境192.168.30.116 OS:CentOS 6.4 x86_64node1.luojianlong.com192.168.30.117 OS:CentOS 6.4 x86_64node2.luojianlong.com192.168.30.119 OS:CentOS 6.4 x86_64node3.luojianlong.com
拓扑图
页:
[1]