开发者社区> 祁同伟> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

大规模分布式存储系统原理与架构

简介:
+关注继续查看

概述

分布式存储概念

分布式存储系统是大量普通 PC 服务器通过 Internet 互联,对外作为一个整体提供存储服务。

特点

可扩展、低成本、高性能、易用

分布式存储涉及的设计主要来自两个领域:分布式系统以及数据库

数据分布、一致性、容错、负载均衡、事务与并发控制、易用性、压缩 / 解压缩

分布式存储分类

非结构化数据、结构化数据、半结构化数据

分布式存储系统分为四类:

分布式文件系统 :以对象的形式组织,对象之间没有关联,这样的数据一般称为 Blob(Binary Large Object, 二进制大对象 ) 数据。分布式文件系统也常作为分布式表格系统以及分布式数据库的底层存储。分布式文件系统存储三种类型的数据: Blob 对象、定长块以及大文件。从系统实现层面,分布式文件系统内部按照数据块 (chunk) 来组织数据,每个数据块的大小大致相同,每个数据块可以包含多个 Blob 对象或者定长块,一个大文件也可以拆分为多个数据块。分布式文件系统将这限额数据块分散到存储集群,处理数据复制、一致性、负载均衡、容错等分布式系统难题,并将用户对 Blob 对象,定长块以及大文件的操作映射为对底层数据块的操作。

分布式键值系统 :用于存储关系简单的半结构化数据,它只提供基于主键的 CRUD 功能,即根据主键创建、读取、更新或者删除一条键值记录。从数据结构的角度看,分布式键值系统与传统的哈希表比较类似,不同的是,分布式键值系统支持将数据分不到集群中的多个存储节点。分布式键值系统是分布式表格系统的简化实现,一般用作缓存。一致性哈希是分布式键值系统中常用的数据分布技术。

分布式表格系统 :用于存储关系较为复杂的半结构化数据,与分布式键值系统相比,分布式表格系统不仅仅支持简单的 CRUD, 而且支持扫描某个主键范围。以表格为单位组织数据,每个表格包括很多行,通过主键标识一行,支持根据主键的 CRUD 功能以及范围查找功能。支持某种程度上的事务。与分布式数据库相比,分布式表格系统主要支持针对单张表格的操作,不支持一些特别复杂的操作,比如多表关联,多表联接,嵌套子查询;分布式表格系统,同一个表格的多个数据行也不要求包含相同类型的列,

分布式数据库: 是从单机关系数据库扩展而来,用于存储结构化数据。分布式数据库采用二维表格组织数据,提供 SQL 关系查询语句,支持多表关联,嵌套子查询等复杂操作,并提供数据库事务以及并发控制,为了解决关系数据库面临的可扩展性、高并发性以及性能方面的问题,各种菲关系数据库风起云涌,这类系统成为 NoSQ 系统。

单机存储系统

单机存储引擎就是哈希表、 B 树等数据结构在机械磁盘、 SSD 等持久化介质上的实现。是单机存储引擎的一种封装,对外提供文件、键值、表格或者关系模型。单机存储系统的理论来源与关系数据库。数据库将一个或多个操作组成一组,称作事务,事务必须满足原子性( Atomicity )、一致性( Consistency )、隔离性( Isolation )以及持久性 (Durability), 简称 ACID 特性。多个事务并发执行时,数据库的并发控制管理器必须能保证多个事务的执行结果不能破坏某种约定,如不能出现执行到一半的情况,不能读取到未提交的事务,等等。为了保证持久性,对于数据库的每一个变化都要在磁盘上记录日志,当数据库系统突然发生故障,重启后能恢复到之前的一致状态

硬件基础 : 硬件发展很快,摩尔定律告诉我们:每 18 个月计算机等 IT 产品的性能会翻一番;或者说相同性能的计算机等 IT 产品,每 18 个月价钱会降低一半。计算机的硬件体系价格保持相对稳定。架构设计很重要的一点就是合理选择并能够最大限度的发挥底层硬件的价值

CPU 架构: 早期的 CPU 为单核芯片,工程师很快意识到,仅仅提高单核的速度会产生过多的热量且无法带来相应的性能改善,因此,现代服务器基本为多核或多个 CPU 。经典的多 CPU 架构为对称多处理结构( SMP ) , 即在一个计算机上汇聚了一组处理器,它们之间对称工作,无主次或从属关系,共享相同的物理内存及总线。 SMP 架构主要特征是共享,系统中所有资源( CPU 、内存、 I/O )都是共享的,由于多 CPU 对前端总线的竞争, SMP 的扩展能力非常有限。为了提高扩展性,现在主流服务器架构一般为 NUMA( 非一致存储访问 ) 架构。它具有多个 NUMA 节点,每个 NUMA 节点是一个 SMP 结构,一般由多个 CPU 组成,并且具有独立的本地内存、 IO 槽口

IO 总线: 存储系统的性能瓶颈一般在于 IO.

网络拓扑: 思科过去一致提倡三层拓扑(接入层 -> 汇聚层 -> 核心层) 2008 年谷歌将网络改造为扁平化拓扑结构,即三级 CLOS 网络,同一个集群内最多支持 20480 台服务器,切任何两台都有 1GB 带宽。同一个数据中心内部的传输延时是比较小的,网络一次来回的时间在 1 毫秒之内。数据中心之间的传输延迟是很大的,取决于光在光纤的传输时间。

性能参数: 存储系统的性能瓶颈主要在于磁盘随机读写。设计存储引擎的时候会针对磁盘的特性做很多的处理,比如将随机写操作转化为顺序写,通过缓存减少对磁盘随机读操作。固态磁盘( SSD )在最近几年得到越来越多的关注,各大互联网公司都有大量基于 SSD 的应用。 SSD 的特点是随机读取延迟小,能有提供更高的 IOPS( 每秒读写, Input/Output Per Second) 性能。它的主要问题在于容量和价格,设计存储系统的时候一般可以用来做缓存或者性能要求较高的关键业务

单位成本提供的 IOPS 比传统的 SAS 或者 SATA 磁盘都要大很多,而且 SSD 功耗低,更加环保,适合小数据量并且对性能要求更高的场景。

存储层次架构: 从分布式系统的角度看,整个集群中所有服务器上的存储介质(内存、机械硬盘、 SSD )构成一个整体,其他服务器上的存储介质与本机存储介质一样都是可访问的,区别仅仅在于需要额外的网络传输及网络协议栈等访问开销。

存储系统的性能主要包括两个纬度:吞吐量以及访问延时,设计系统时要求能够在保证访问延时的基础上,通过最低的成本实现尽可能高的吞吐量。磁盘和 SSD 的访问延时差别很大,但宽带差别不大,因此,磁盘适合大块顺序访问的存储系统, SSD 适合随机访问较多或者对延时比较敏感的关键系统。二者常常组合在一起进行混合存储,热数据(访问频繁)存储到 SSD 中,冷数据(访问不频繁)存储到磁盘中。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
网易开源的分布式存储系统 Curve 正式成为 CNCF 沙箱项目
Curve 项目的发展离不开每一位社区参与者的付出。在此真诚地感谢每一位社区贡献者及用户的信任、支持和帮助,也特别感谢 CNCF 同仁尤其是 Storage TAG 对项目发展的指导和支持。欢迎更多开发者和用户参与 Curve 社区建设,如有任何意见和建议,皆可给项目提交 issue。
30 0
基于 MySQL + Tablestore 分层存储架构的大规模订单系统实践-架构篇
本文简要介绍了基于 MySQL 结合 Tablestore 的大规模订单系统方案。这种方案支持大数据存储、高性能数据检索、SQL搜索、实时与全量数据分析,且部署简单、运维成本低。
708 0
基于 MySQL + Tablestore 分层存储架构的大规模订单系统实践-数据处理ETL篇
前言大数据计算服务 MaxCompute(原名 ODPS)是一种快速、完全托管的EB级数据仓库解决方案。随着数据收集手段不断丰富,行业数据大量积累,数据规模已增长到了传统软件行业无法承载的海量数据(TB、PB、EB)级别。MaxCompute 致力于批量结构化数据的存储和计算,提供海量数据仓库的解决方案及分析建模服务。它具有大规模计算存储、多种计算模型、强数据安全、低成本、免运维、极致弹性扩展的优
249 0
分布式存储系统关键问题
本文介绍分布式存储系统关键问题。
3292 0
飞天5K实战经验:大规模分布式系统运维实践
传统的运维人员通常只面对几十或者上百台的服务器,但在大规模分布式集群中,运维人员面临工作任务明显不同。本文分别阐述服务器数量激增,要求提升全局掌控能力,如何实现系统的自我保护和自动化恢复,大规模与精细化平衡,以及需要开发和运维更加紧密合作等方面,通过对真实数据进行分析和预测,将判断失误概率降到最低。
5158 0
分布式K/V存储方案
引用:http://www.oschina.net/p/cassandra Apache Cassandra是一套开源分布式Key-Value存储系统。它最初由Facebook开发,用于储存特别大的数据。
808 0
+关注
祁同伟
胜天半子
903
文章
573
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载