- 1、本文档共13页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
分布式存储系统的一些理解和实践
分布式存储系统的一些理解和实践张建伟分布式存储系统介绍简介互联网数据规模越来越大,并发请求越来越高,传统的关系数据库,在很多使用场景下并不能很好的满足需求。分布式存储系统应运而生。它有良好的扩展性,弱化关系数据模型,甚至弱化一致性要求,以得到高并发和高性能。按功能分类,主要有以下几种:分布式文件系统hdfs ceph glusterfs tfs 分布式对象存储s3(dynamo) ceph bcs(mola)分布式表格存储hbase cassandra oceanbase块存储ceph ebs(amazon)分布式存储系统,包括分布式系统和单机存储两部分;不同的系统,虽在功能支持、实现机制、实现语言等方面是有差异的,但其设计时,关注的关键问题是基本相同的。单机存储的主流实现方式,有hash引擎、B+树引擎和LSM树(Log Structured Merge Tree)三种,不展开介绍。本文第二章节,主要结合hbase、cassandra和ceph,讲下分布式系统设计部分,需要关注的关键问题。适用场景各分布式存储系统功能定位不尽相同,但其适用和不适用的场景,在一定程度上是相同的,如下。适用大数据量(大于100T,乃至几十PB)key/value或者半结构化数据高吞吐高性能高扩展不适用Sql查询复杂查询,如联表查询复杂事务分布式存储系统设计要点数据分布分布式存储,可以由成千甚至上万台机器组成,以实现海量数据存储和高并发。那它最先要解决的就是数据分布问题,即哪些数据存储在哪些机器(节点)上。常用的有hash类算法和用meta表映射两种方式。一般完全分布式的设计(无master节点),会用hash类算法;而集中式的设计(有master节点)用meta表映射的方式。两者各有优缺点,后面讲到具体问题时再做比较。一致性hash将存储节点和操作的key(key唯一标识存储的object,有时也叫object name)都hash到0~2的32次方区间。映射到如下环中的某个位置。沿操作key的位置顺时针找到的第一个节点即为此key的primary存储节点。如下图所示:图1 一致性hashCassandra借鉴了dynamo的实现,用了一致性hash的方式。节点的hash值(也叫token),可以手动分配或者自动生成。Key的hash值即md5(key)。每个表可以在建表时指定副本数,当副本数为3时,找primary存储节点后,顺时针方向的下2个存储节点即为replica存储节点。Hash类算法,优点是无需master节点,一个缺点是,不支持key的顺序扫描。Crush算法也是一种类hash算法,随着ceph诞生,也是ceph的一大亮点。Crush算法比较复杂,这里简化介绍下。Ceph的每个Object最终都会映射到一组OSD中,由这组OSD保存这个Object,映射流程如下:Object → PG → OSD setOSD先理解为机器节点吧PG即Placement Groups,可以理解为存储在同一组OSD上的object的集合Object先映射到PG(Placement Group),再由PG映射到OSD set。每个表空间有固定数量的pg,在建表时指定。每个Object通过计算hash值并对pg数量取模得到它所对应的PG。PG再映射到一组OSD(OSD的个数由表的副本数决定,也是建表时指定),第一个OSD是Primary,剩下的都是Replicas。PG → OSD set 的映射由几个因素决定:CRUSH hash算法:一种伪随机算法。OSD MAP:包含当前所有OSD的状态、OSD的机器机架信息等。CRUSH Rules:数据映射的策略。这些策略可以灵活的设置object存放的区域。比如可以指定table1中所有objects放置在机架1上,所有objects的第1个副本放置在机架1上的服务器A上,第2个副本分布在机架1上的服务器B上。 table2中所有的object分布在机架2、3、4上,所有Object的第1个副本分布在机架2的服务器上,第2个副本分布在机架3的服器上,第3个副本分布在机架4的服务器上。具体实现不再展开。图2 ceph crush算法伪代码如下所示:locator = object_nameobj_hash = hash(locator)pg = obj_hash % num_pgosds_for_pg = crush(pg) # returns a list of osdsprimary = osds_for_pg[0]replicas = osds_for_pg[1:]Crush相比一致性hash更加灵活。按range查表由master节点记录和管理每个表range的粒度,以及每个range的数据存储在哪些节
您可能关注的文档
- 五福型钢悬挑脚手架施工方案9.29.doc
- 人机交互课程实验报告.doc
- 光学实验教学大纲.doc
- 全面监控ESXESXi服务器教程.docx
- 几何光学复习习题.docx
- 初中学校教学管理制度.doc
- 动力煤和焦煤市场分析.docx
- 动态网页程序设计报告(留言板).doc
- 劳保管理系统操作说明.doc
- 勉县一中校园组网方案.doc
- 2020版 沪科技版 高中生物学 必修2 遗传与进化《第4章 生物的进化》大单元整体教学设计[2020课标].docx
- 情绪价值系列报告:春节消费抢先看-国证国际证券.docx
- 精品解析:北京市东直门中学2023-2024学年高二下学期3月阶段性考试(选考)物理试题(解析版).docx
- 2020版 沪科技版 高中生物学 必修2 遗传与进化《第4章 生物的进化》大单元整体教学设计[2020课标].pdf
- 2020版 沪科技版 高中生物学 选择性必修1 稳态与调节《第1章 人体的内环境和稳态》大单元整体教学设计[2020课标].pdf
- 2020版 沪科技版 高中生物学 选择性必修1 稳态与调节《第1章 人体的内环境和稳态》大单元整体教学设计[2020课标].docx
- 液冷盲插快接头发展研究报告-全球计算联盟.docx
- 精品解析:北京市东直门中学2023-2024学年高二下学期3月阶段性考试(选考)物理试题(原卷版).docx
- 精品解析:北京市东直门中学2024届高三考前练习数学试卷(解析版).docx
- 2020版 沪科技版 高中生物学 选择性必修1 稳态与调节《第2章 人体的神经调节》大单元整体教学设计[2020课标].docx
文档评论(0)