分布式存储概述

分布式存储是相对于单机存储而言,之因此要分布天然是由于互联网时代信息数据大爆炸,单机已经难以知足大型应用的数据存储需求。 数据库

存储系统的关注点 后端

关于存储系统,通常咱们关注下面几个方面: 服务器

1.数据分布与负载均衡 网络

2.数据存储的可靠性与一致性 架构

3.数据访问性能 负载均衡

4.系统容错能力 分布式

5.系统扩展能力 性能

在单机存储系统中有一种独立磁盘冗余阵列(RAID,redundant array of independent disks)技术, 是把相同的数据存储在多个硬盘不一样地方的方法。经过把数据放在多个硬盘上,输入输出操做能以平衡的方式交叠,改良性能。  架构设计

这个技术基本解决了咱们上面提到的前三点,数据能够经过磁盘阵列控制程序均匀分布在多个硬盘上, 以实现负载均衡,并经过冗余来保障可靠性。相似单机挂载多磁盘,数据在磁盘阵列上的冗余副本要保持一致也容易。 存储系统的访问性能基本受制于磁盘的性能,经过分散到多磁盘确实达到了提高性能的效果。 设计

真正的问题难点在于后两点: 

磁盘阵列解决了单一磁盘的脆弱性,但并不能提高存储子系统总体的可用性,或者说容错能力。 同理扩展能力一样受制于磁盘阵列的物理扩展槽的限制。 

分布式存储的定义与分类 

因此分布式存储应运而生,做为存储系统它一样须要面对上述问题。 

先来看下它的定义: 

分布式存储系统是大量普通 PC 服务器经过网络互联,对外做为一个总体提供存储服务。 

从上面的定义看,更多时候咱们把分布式存储做为一种服务面向各类不一样的数据存储需求。 

从数据存储模型上,咱们能够进一步分类分布式存储服务为: 

1.文件模型: 对应分布式文件系统,如:GFS、HDFS 

2.关系模型: 对应分布式数据库系统,如:Google Spanner、Taobao OceanBase 

3.键值模型: 不少 NoSQL 系统采用,如:Redis 

分布式存储的得与失 

面对单机存储系统面对两个难点,分布式存储系统经过集群方式扩展到几百甚至几千台集群规模来解决系统扩展能力, 经过软件层面对单机服务器的硬件容错能力大大提高了总体集群的容错能力。 

在得到这些好处时,天然也有所牺牲,所谓有得必有失。 

说到存储不得不提单机数据库存储的事务特性:A(原子性)C(一致性)I(隔离性)D(持久性), 而扩展到分布式存储后,受限于分布式 C(一致性)A(可用性)P(分区容忍性)理论,几乎不可能知足完整得事务特性。 

各类分布式存储服务实现都对单机存储的事务特性做了权衡取舍,知足特定的服务场景需求。 

另外分布式存储系统是基于网络互联的,因此除了基本得磁盘访问性能开销,还多了网络性能开销。 

一般通常机械硬盘得平均寻道时间为 10ms,而机房内网得网络访问开销通常小于 0.5 ms,相对性能损失较小。 

而本来由磁阵控制程序负责得数据在磁盘中的分布、负载均衡策略和一致性保障, 在分布式存储中都须要软件在整个机器集群层面去考虑,复杂度大大提升。 

总结 

最近打算对后端分布式架构设计领域知识作一个梳理,造成一个完善的知识体系,本文算一个开始吧。 上面对分布式存储服务进行了整体综述,了解了分布式存储服务的分类及其架构设计的关注点。 后续将进一步展开,深刻到具体类型的分布式存储服务架构设计要点与实现细节。

相关文章
相关标签/搜索