一、
1. MofileFS是一款开源,高性能,分布式文件系统,用于组件分布式集群,跟memcached是同门,都是一个公司开发的
2.
①:MogileFS分布式文件存储系统安装的三个组件(存储节点,跟踪器,跟踪用的数据库),均可运行在多个机器上,因此没有单点失败
②:自动进行文件复制,基于不同的文件“分类”,文件可以被自动的复制到多个有足够存储空间的存储节点上,这样可以满足这个“类别”的最少复制要求
③:比RAID更好,在一个非存储区域网络的RAID中,硬盘是冗余的,但主机不是,如果你整个机器坏了,那么文件也将不能访问。MogileFS分布式文件存储系统在不同的机器之间进行文件复制,因此文件始终是可用的
④:简单的命名空间,文件通过一个给定的key来确定,是一个全局的命名空间
3. 三大部分
①:Tracker(跟踪器,调度器)--Mogilefsd进程
这是MogileFS的核心部分,mogilefsd进程就是trackers程序,做了很多工作,包括复制、删除、查询、监控等等(接受请求,调度)
(1)子进程:
Replication----在机器间复制文件
Deletion----从命名空间删除是立即的,从文件系统删除是异步的
Query---响应客户端的请求
Reaper-----在磁盘失败后将文件复制请求重新放到队列中
Monitor----监测主机和设备的健康度和状态
(2)采用基于事件的父进程或消息总线来管理所有来之于客户端应用的交互,包括将请求负载到“query workers”中,让mogilefsd的子进程去处理
4. 数据库部分(Mysql)
①:存放元数据(命名空间,文件在哪),由Trackers来操作和管理它,可以用mogdbsetup程序来初始化数据库
②:数据库出问题了,就不行了,所以要HA结构
5. 存储节点(Storage nodes)mogstored进程
就是实际文件存放的地方,可通过配置来指定、加入和从集群中去掉
其默认配置文件:/etc/mogilefs/mogstored.conf
6. MogileFS的适用性----擅长海量处理小文件
由于MogileFS不支持对一个文件的随机读写,因此注定了只适合做一部分应用。比如图片服务,今天Html服务(最好一次写入多次读取)
即文件写入后基本上行不需要修改的应用,当然你也可以生成一个新的文件覆盖上去