作家
登录

分布式存储系统基础

作者: 来源: 2017-04-14 11:02:47 阅读 我要评论

体系的可能性(availability)是指体系在面对各类异常时可以供给正常办事的才能。体系的可用性可以用体系停办事的时光与正常办事的时光的比例来衡量,例如某体系的可用性为4个9(99.99%),相当于系同一年停办事时光不克不及跨越365 * 24 * 60 / 10000 = 52.56分钟。体系可用性往往表现了体系的┞符体代码质量以及容错才能。

分布式存储体系起重要面对的问题就是数据分片,即将数据平均地分布到多个存储节点。别的,为了包管靠得住性和可用性,须要将数据复制多个副本,这就带来了多个副本的数据一致性问题。

大年夜范围体系的重要目标是节俭成本,因而只能采取性价比较高的PC办事器。这些办事器机能很好,然则故障率很高,请求体系可以或许在软件层面实现主动容错。当存储节点出现故障时,体系可以或许检测出来,并将原有的数据和办事迁徙到集群中其他正常工作的节点。

根本概念

异常

在分布式存储体系中,往往将一台办事器或者办事器上运行的一个过程称为一个节点,节点与节点之间经由过程收集互联。然而,办事节点是弗成靠的,收集也是弗成靠的,它们之间通信可能会出现各类异常。

办事器宕机

是以,设计存储体系时须要推敲若何经由过程攫掏出久化介质(如机械硬盘、固态硬盘)中的数据来恢复内存信息,大年夜而恢复到宕机前的某个一致的状况。

收集异常

磁盘故障

超时

因为收集异常的存在,分布式体系中请求结不雅存在“三态”的概念,即“成功”、“掉败”、“超时”(未知状况)。“成功”和“掉败”指客户端请求明白收到办事器的返回值;而“超时”指客户端发出了一个请求然则没有收到答复,但客户端不克不及简单地认为办事端处理掉败,因为有可能办事端已经处理成功了,但在返回结不雅时出现了收集异常或宕机。

对于超时(未知)状况,有两种处理思路:1)赓续攫取之前操作的状况来验证rpc操作是否成功;2)将操作设计为“幂等”的,也就是说,操作履行一次与履行多次的结不雅雷同。

一致性

因为异常的存在,分布式存储体系设计时往往将数据冗孑遗储多份,每一份称为一个副本(replica)。如许,当一个节点出现故障时,可以大年夜其他副本上攫取数据。可以认为,副本是分布式存储体系容错技巧的独一手段。

因为多个副本的存在,若何包管副本之间的一致性是全部分布式体系的理论核心。

同构体系

可以大年夜两个角度懂得一致性:第一个角度是客户端,即客户端读写操作是否相符某种特点;第二个角度是存储体系,即存储体系的多个副本是否一致,更新的次序是否相一致等。

起首定义如下场景,这个场景包含三个构成部分:

  • 存储体系:存储体系可以懂得为一个黑盒子,它为我们供给了可用性和持久性的包管。
  • 客户端A:客户端A重要实现大年夜存储体系write和read操作。
  • 客户端B和客户端C:客户端B和客户端C是自力于A,并且B和C也互相自力,它们同时也实现对存储体系的write和read操作。
  • 大年夜客户端的角度看,一致性包含如下三种情况:
  • 强一致性:假如A先写入了一个值到存储体系,存储体系包管后续A,B,C的攫取操作都将返回最新值。
  • 弱一致性:假如A先写入了一个值到存储体系,存储体系不克不及包管后续A,B,C的攫取操作是否可以或许攫取到最新值。
  • 最终一致性:最终一致性是弱一致性的一种特例。假如A起首写入一个值到存储体系,存储体系包管如不雅后续没有写操作更新同样的值,A,B,C的攫取操作“最终”都邑攫取到A写入的值。“最终”一致性有一个“不一致窗口”的概念,它特指大年夜A写入值,到后续A,B,C攫取到最新值得这段时光。

最终一致性的描述比较粗略,其他常见的变体如下:

  • 读写(Read-your-writes)一致性:如不雅客户端A写入了最新值,那么A的后续操作都邑攫取到最新值。然则其他用户(比如B或者C)可能要过一会才能看到。
  • 会话(Session)一致性:请求客户端和存储体系交互的┞符个会话时代包管读写一致性。如不雅原有会话因为某种原因掉败而创建了新的会话,原有会话和新会话之间的操作不包管读写一致性。
  • 单调读(Monotonic read)一致性:如不雅客户端A已经攫取了对象的某个值,那么后续操作不会攫取到更早的值。
  • 单调写(Monotonic write)一致性:客户端A的写操作按次序完成,这就意味着,对于同一个客户端的操作,存储体系的多个副本须要按照与客户单雷同的次序完成。
  • 大年夜存储体系的角度看,一致性重要包含如下几个方面:
  • 副本一致性:存储体系的多个副本之间的数据是否一致,不一致的时光窗口等;
  • 更新次序一致性:存储体系的多个副本之间是否按照雷同的次序履行更新操作。

衡量指标

评价分布式存储体系有一些常用的指标,下面分别介绍。

机能

常见的机能指标有:体系的吞吐才能(throughput)以及体系的响应时光(latency)。个中,体系的吞吐才能指体系在某一段时光可以处理的请求总数,平日用每秒处理的读操作数(QPS,Query Per Second)或者写操作数(TPS,Transaction Per Second)来衡量。体系的响应时光,指大年夜某个请求发出到接收到返回结不雅消费的时光,平日用平均延时或者99.9%以上请求的最大年夜延时来衡量。

这两个指标往往是抵触的,寻求高吞吐的体系,往往很难做到低延迟;寻求低延迟的体系,吞吐量也会受到限制。是以,设计体系时须要衡量这两个指标。

可用性

 1/6    1 2 3 4 5 6 下一页 尾页

  推荐阅读

  如何做好数据精细化分析,让你的运营效果指数级增长?

数据分析对于运营来说异常重要,它就像帆海中的指南针,越精确的数据细度能反竽暌钩不合运营手段对应的不合效不雅。那么,到底该若何应用数据分析明显晋升运营效不雅呢?本文将大年夜4个维>>>详细阅读


本文标题:分布式存储系统基础

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

关键词: 探索发现

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

网友点评
自媒体专栏

评论

热度

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