作家
登录

大规模分布式存储系统-分布式文件系统

作者: 来源: 2017-10-17 09:57:08 阅读 我要评论

沙龙晃荡 | 去哪儿、陌陌、ThoughtWorks在主动化运维中的实践!10.28不见不散!


分布式文件体系是分布式存储体系(键值体系、表格体系、数据库体系)的底层基本部件,其所起的重要功能有两个:一个是存储文档、图像、视频之类的Blob类型数据;别的一个是作为分布式表格体系的持久化层。

我们来看看业界是若何构建各家基本的分布式文件体系。

Linux文件体系删除64MB大年夜文件消费的时光太长且没有须要,因为ChunkServer是一个磁盘和收集IO密集型应用,是以,删除chunk时可以只将对应的chunk文件移动到每个磁盘的收受接收站,今后新建chunk的时刻可以重用。

Google文件体系(GFS)

GFS体系的节点可分为三种角色:GFS Master(主控办事器)、GFS ChunkServer(CS,数据块办事器)以及GFS客户端。GFS文件被划分为固定大年夜小的数据块(chunk),由主办事器在创建时分派一个64位全局独一的chunk句柄。CS以通俗的Linux文件的情势将chunk存储在磁盘中。为了包管靠得住性,chunk在不合的机械中复制多份,默认为三份。客户端拜访GFS时,起首拜访主控办事器节点,获取与之进行交互的CS信息,然后直接拜访这些CS,完成数据存取工作。须要留意的是,GFS中的客户端不缓存文件数据,只缓存主控办事器中获取的元数据,整体架构如图1所示。

1、租约机制

主ChunkServer向Master从新申请租约并增长对应副本的版本号,如不雅有备副本下线的话,从新上线后如不雅版本号太低,会被Master发明,大年夜而将其标记为可删除的chunk,Master的垃圾收受接收义务会准时检查,并通知ChunkServer将此副本收受接收掉落,大年夜以上机制可见,版本号在全部机制中起到了至关重要的感化。

GFS体系中经由过程租约( lease)机制将chunk写操作授权给ChunkServer。拥有租约授权的ChunkServe称为主ChunkServer,其他副本地点的ChunkServer称为备ChunkServer。租约授权针对单个chunk,在租约有效期内,对该chunk的写操作都由主ChunkServer负责,大年夜而减轻Master的负载。一般来说,租约的有效期比较长,比如60秒,只要没有出现异常,主ChunkServer可以赓续向Master请求延长租约的有效期直到全部chunk写满。GFS为每个chunk保护一个版本号,每次给chunk进行租约授权或者主ChunkServer从新延长租约有效期时,Master会将chunk的版本号加1。

2、一致性模型

GFS主如果为了追加(append)而不是改写(overwrite)而设计的。一方面是因为改写的需求比较少,或者可以经由过程追加(加上版本号)来实现,比如可以只应用GFS的追加功能构建分布式表格体系Bigtable;另一方面是因为追加的一致性模型比拟改写要加倍简荡竽暌剐效。这种模式下,可能出现记录在某些副本中被追加了多次,即反复记录;也可能出现一些可识其余填充记录,应用层须要可以或许处理这些问题(幂等)。GFS的┞封种一致性模型是寻求机能导致的,这增长了应用法度榜样开辟的难度。

3、追加流程

图2中,分别数据流与控制流主如果为了优化数据传输,每一台机械都是把数据发送给收集拓扑图上“比来”的尚未收到数据的节点。

4、容错机制

  • Master容错

操作日记+checkpoint+及时热备。GFS Master的修改操作老是先记录操作日记,然后修改内存。当Master产生故障重启时,可以经由过程磁盘中的操作日记恢复内存数据构造。别的,为了削减Master宕机恢复时光,Master会按期将内存中的数据以checkpoint文件的情势转储稻磁逄中,大年夜而削减回放的日记量。所有的元数据修改操作都必须包管发送到及时热备才算成功。

  • ChunkServer容错

GFS采取复制多个副本的方法实现ChunkServer的容错,别的,ChunkServer会对存储的数据保持校验和。GFS以64MB为chunk大年夜小来划分文件,每个chunk又以Block为单位进行划分,Block大年夜小为64KB,每个Block对应一个32位的校验和。当攫取一个chunk副本时,ChunkServer会将攫取的数据和校验和进行比较,如不雅不匹配,就会返回缺点,客户端将选择其他ChunkServer上的副本。

5、Master设计

因为GFS中的文件一般都是大年夜文件,是以,文件定名空寄┞芳用内存不多。这也就说清楚明了Master内存容量不会成为GFS酌体系瓶颈;别的,大年夜负载均衡的角度推敲,可以限制每个Chunk-Server“比来”创建的数量;每个chunk复制义务都有一个优先级,按照优先级大年夜高到低在Master列队等待履行;Master会按期扫描当前副本的分布情况,如不雅发明磁盘应用量或者机械负载不均衡,将履行从新负载均衡操作;在进行副本重均衡时,要留意限制拷贝速度,不然会影响机能。

  • 垃圾收受接收

GFS采取延迟删除的机制,Master准时检查,如不雅发明文件删除跨越一段时光(默认为3天,可设备),那么它会把文件大年夜内存元数据中删除,为了减轻体系的负载,垃圾收受接收一般在办事低放弃履行,比如天天晚上凌晨1:00开端。体系对每个chunk都保护了版本号,过时的chunk可以经由过程版本号检测出来。Master仍然经由过程正常的垃圾收受接收机制来删除过时的副本。


  推荐阅读

  数字化供应链带来的机遇与挑战——“第三方数字合作伙伴”新角色

沙龙晃荡 | 去哪儿、陌陌、ThoughtWorks在主动化运维中的实践!10.28不见不散! 跟着数笔迹巧的迅猛成长,供给链的数字化趋势创造了新的贸易模式,也衍生了一种新角色——&ldquo>>>详细阅读


本文标题:大规模分布式存储系统-分布式文件系统

地址:http://www.17bianji.com/lsqh/37977.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)