MogileFS 分布式文件存储系统-图片

一.MogileFS简单介绍

MogileFS是一个开源的分布式文件存储系统,用于组建分布式文件集群。由LiveJournal旗下的Danga Interactive公司开发。 Danga团队开发了包括 Memcached、MogileFS、Perlbal (Perlbal是一个强大的Perl写的反向代理服务器)等多个知名的开源项目。

目前使用MogileFS 的公司非常多,以大众点评为例,用户全部图片均有mogileFS存储,数据量已经达到500TB级别以上。

二.MogileFS特征

1.应用层提供服务,没有特殊组件要求

2.无单点失败,主要有三个组件组成,分为tracker(跟踪节点)、mogstore(存储节点)、database(数据库节点),皆可实现高可用,可支持多点冗余

3.自动文件复制:复制的最小单位不是文件,而class;

4.传输中立,无特殊协议:可以通过NFS或HTTP进行通信;

5.简单的命名空间: 每个文件对应一个key

6.不共享任何数据,MogileFS不需要依靠昂贵的SAN来共享磁盘,每个机器只用维护好自己的磁盘

7.无需RAID支持,应用层可以直接实现RAID,不共享任何东西,通过“集群”接口提供服务,具有比RAID更好的可靠性

三.MogileFS架构三大组件

1.tracker(跟踪节点)-------->mogilefsd进程

它是MogileFS的核心,是一个调度器,mogilefsd进程是trackers进程.

trackers的主要职责有:删除数据、复制数据、监控、查询、Reaper(收割程序)等等.

这个是基于事件的( event-based ) 父进程/消息总线来管理所有来自于客户端应用的交互(requesting operations to be performed), 包括将请求负载平衡到多个”query workers”中,然后让 mogilefs的子进程去处理.

它借助数据库保存各节点文件的元数据信息保存每个域中所有键的存储位置分布,方便检索定位数据位置的同时监控各节点,告诉客户端存储区位置并指挥storage节点复制数据副本,进程名为mogilefsd(7001)。

2.database(数据库节点)-------->存放元数据地方

用于为tracker存储元数据信息,是Trackers 来操作和管理它。建议做成高可用

3.mogstore(存储节点)------------>实际文件存放的地方

存储节点是mogilefs的存储文件储存的地方,也是 mogstored 节点,也叫 Storage Server,一台存储要启动一个mogstored服务,扩容就是增加这些机器,扩大文件存放的地方,mogstored(7501),perbal(7500)。

它将指定域中的键转换特有的文件名存储与在特定的设备文件中,转换后文件名为值,storage自动维护键值之间的对应关系,storage节点使用http进行数据传输,依赖于perbl,进程为mogstored,perbal;

通常是一个HTTP(WebDAV)服务器,用来数据的创建、删除、获取;

4.mogileFS三大模块组成图:

mogileFS三大模块组成图

简单说明:

客户端的请求先发给tracker节点,然后tracker节点到database节点去查询数据存储在什么位置,然后将结果反馈给客户端,客户端再根据tracker节点提供的路径去访问相应的storage节点去找到数据。

tracker节点除了帮助客户端到数据库中去检索你要查找的数据,还管理storage节点,如果storage节点有损坏的,会控制storage节点进行数据自动迁移到其他节点,同时数据备份的时候也是由trackers节点来控制复制几个副本的。

四.MogileFS常用的术语:

1.Domain

一个mogilefs可以有多个domain,用来存放不同文件(大小、类型),同一个domain内key必须唯一,不同domain内key可以是相同的 

2.class

文件属性管理,复制文件的最小单位不是文件,而是class,定位文件存储在不同设备上的份数,也就是定义副本的数量

3.host:每个存储节点称为一个host主机,Domain+Fid来定位文件

4.device:一个存储节点,可以有多个device,就是用来存放文件的目录,每个设备都有一个设备ID,设备不能删除,只能将设备的状态置为dead,置为dead之后数据就无法恢复了,并且设备ID也无法使用。(建议每个节点只有一个device,文件存储多份时,有多余数据备份在当前节点其他设备,等于没有备份,若只备份2份,节点发生故障,数据就会丢失);

术语关系图


五.理想架构图:

理想架构图

1、通过Nginx+Keepalived实现高可用的负载均衡,通过upstream模块可以有选择性的转发应用层的请求至后端tracker节点。

2、DRBD+Corosync+Pacemaker的机制保证了Mysql的高可用

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,128评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,316评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,737评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,283评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,384评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,458评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,467评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,251评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,688评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,980评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,155评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,818评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,492评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,142评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,382评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,020评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,044评论 2 352

推荐阅读更多精彩内容