分布式存储是相对于单机存储而言,之所以要分布自然是因为互联网时代信息数据大爆炸,单机已经难以满足大型应用的数据存储需求。
存储系统的关注点
关于存储系统,一般我们关注下面几个方面:
- 数据分布与负载均衡
- 数据存储的可靠性与一致性
- 数据访问性能
- 系统容错能力
- 系统扩展能力
在单机存储系统中有一种独立磁盘冗余阵列(RAID,redundant array of independent disks)技术,
是把相同的数据存储在多个硬盘不同地方的方法。通过把数据放在多个硬盘上,输入输出操作能以平衡的方式交叠,改良性能。
这个技术基本解决了我们上面提到的前三点,数据可以通过磁盘阵列控制程序均匀分布在多个硬盘上,
以实现负载均衡,并通过冗余来保障可靠性。类似单机挂载多磁盘,数据在磁盘阵列上的冗余副本要保持一致也容易。
存储系统的访问性能基本受制于磁盘的性能,通过分散到多磁盘确实达到了提升性能的效果。
真正的问题难点在于后两点:
磁盘阵列解决了单一磁盘的脆弱性,但并不能提升存储子系统整体的可用性,或者说容错能力。
同理扩展能力同样受制于磁盘阵列的物理扩展槽的限制。
分布式存储的定义与分类
所以分布式存储应运而生,作为存储系统它同样需要面对上述问题。
先来看下它的定义:
分布式存储系统是大量普通 PC 服务器通过网络互联,对外作为一个整体提供存储服务。
从上面的定义看,更多时候我们把分布式存储作为一种服务面向各种不同的数据存储需求。
从数据存储模型上,我们可以进一步分类分布式存储服务为:
-
文件模型: 对应分布式文件系统,如:GFS、HDFS
-
关系模型: 对应分布式数据库系统,如:Google Spanner、Taobao OceanBase
-
键值模型: 很多 NoSQL 系统采用,如:Redis
分布式存储的得与失
面对单机存储系统面对两个难点,分布式存储系统通过集群方式扩展到几百甚至几千台集群规模来解决系统扩展能力,
通过软件层面对单机服务器的硬件容错能力大大提升了整体集群的容错能力。
在获得这些好处时,自然也有所牺牲,所谓有得必有失。
说到存储不得不提单机数据库存储的事务特性:A(原子性)C(一致性)I(隔离性)D(持久性),
而扩展到分布式存储后,受限于分布式 C(一致性)A(可用性)P(分区容忍性)理论,几乎不可能满足完整得事务特性。
各种分布式存储服务实现都对单机存储的事务特性作了权衡取舍,满足特定的服务场景需求。
另外分布式存储系统是基于网络互联的,所以除了基本得磁盘访问性能开销,还多了网络性能开销。
通常一般机械硬盘得平均寻道时间为 10ms,而机房内网得网络访问开销一般小于 0.5 ms,相对性能损失较小。
而原本由磁阵控制程序负责得数据在磁盘中的分布、负载均衡策略和一致性保障,
在分布式存储中都需要软件在整个机器集群层面去考虑,复杂度大大提高。
总结
最近打算对后端分布式架构设计领域知识做一个梳理,形成一个完善的知识体系,本文算一个开始吧。
上面对分布式存储服务进行了总体综述,了解了分布式存储服务的分类及其架构设计的关注点。
后续将进一步展开,深入到具体类型的分布式存储服务架构设计要点与实现细节。
参考
[1] 杨传辉. 大规模分布式存储系统. 机械工业出版社(2013-09), pp. 7-52
下面是我自己开的一个微信公众号 [瞬息之间],除了写技术的文章、还有产品的、行业和人生的思考,希望能和更多走在这条路上同行者交流,有兴趣可关注一下,谢谢。
<script type="text/javascript">
$(function () {
$('pre.prettyprint code').each(function () {
var lines = $(this).text().split('\n').length;
var $numbering = $('<ul/>').addClass('pre-numbering').hide();
$(this).addClass('has-numbering').parent().append($numbering);
for (i = 1; i <= lines; i++) {
$numbering.append($('<li/>').text(i));
};
$numbering.fadeIn(1700);
});
});
</script>
分享到:
相关推荐
主流分布式存储技术概述.pdf
华为分布式存储系统概述.pdf
主流分布式存储技术概述.pptx
华为分布式存储系统概述.docx
新一代容器化分布式存储项目Longhorn概述.pptx
新一代容器化分布式存储项目Longhorn概述.pdf
目录: H3C ONEStor分布式存储产品彩页 H3C ONEStor分布式存储软件产品概述 H3C ONEStor存储技术白皮书 ONEStor分布式存储产品介绍 ONEStor演示DEMO美化版-可展会使用 安装介质及用户手册
第五十章:Ceph分布式存储一、Ceph概述;二、基本架构;三、架构组件详解;四、Ceph数据存储过程;五、Ceph的优势;六、案例:部署Ceph分布式存储集群
一、Ceph概述; 二、基本架构; 三、架构组件详解; 四、Ceph数据存储过程; 五、Ceph的优势; 六、案例:部署Ceph分布式存储集群;
第一章 概述传统存储系统的纵向扩展,即先买小型机,不够再中型机,再不然就大型机,即增加单机的容量。分布式存储系统分为分布式文件系统,分布式键值系统,分布式表格系
全新的课程内容包括了华为云数据中心解决方案,华为云计算计算虚拟化,云计算华为分布式存储,华为云计算网络虚拟化,华为桌面云解决方案概述,华为桌面云解决方案相关组件介绍等相关技术内容。课程内容由理论和实践...
课程实验基于Java实现的分布式存储系统源码+项目说明.tar 项目概述与技术点: * 参照**GFS**(Google File System)中心化思想自主完成系统架构设计,完成技术方案编写 * 基于文件元数据服务实现**自定义注册中心**,...
分布式系统存储数据库云计算(3)ppt,提供“分布式系统存储数据库云计算(3)”免费资料下载,主要包括分布式系统概述 、分布式进程通信 、分布式文件系统 等内容,可供学习使用。
曾经读书时撰写的关于2006年之前各种分布式文件系统的概述,最近忽然翻出来了,决定分享一下。现在火爆的Hadoop和S3等存储系统也都是从这些前辈系统们演化过来的。
阿里云总监系列课重磅上线!...第三期《深入解析数据存储技术原理及发展演进》特邀阿里云盘古分布式存储资深技术专家储道,为大家带来干货分享。本节课程《数据存储技术概述》,欢迎大家前来学习。
圆环面环面概述Torus是一个开源项目,用于通过以下方式协调分布式存储Torus通过在多个节点上运行的一组守护程序提供资源池和基本文件原语。 通过仅附加和由[etcd]协调,使这些原语保持一致。 通过这些原语,Torus...
分布式存储:ceph 存储技术与应用 存储概述: 存储的目标 存储是根据不同的应用环境通过采取合理、安全、有效的方式将数据保存到某些介质上并能保证有效的访问 一方面它是数据临时或长期驻留的物理媒介 另一...
【05】云计算华为分布式存储(1) 【06】云计算华为分布式存储(2) 【07】云计算网络虚拟化(1) 【08】云计算华为桌面云解决方案概述(2) 【09】云计算桌面云解决方案概述(3) 【10】云计算华为桌面云解决...
1.3 分布式存储技术精讲 .zip 1.3.1 产品定位 1.3.2 软硬件架构 1.3.3 高性能关键技术 1.3.4 高可靠关键技术 1.3.5 应用场景 1.4 存储学习路径 .zip 1.4.1 存储学习路径 2.1 存储资源规划设计 .zip 2.1.1 概述 2.1.2...
概述 Netcached 由两部分组成: 内存键值存储服务器 一个客户端类,其方法封装了所需的[反]序列化和对服务器的调用 安装 安装服务器 - 将应用程序添加到 IIS 站点并将应用程序的物理路径设置为 Netcached.Server ...