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

简介:

概述

分布式存储概念

分布式存储系统是大量普通 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 中,冷数据(访问不频繁)存储到磁盘中。

目录
相关文章
|
14天前
|
存储 安全 数据管理
新型数据库技术:基于区块链的分布式数据存储系统
传统数据库系统面临着中心化管理、数据安全性和可信度等方面的挑战。本文介绍了一种基于区块链技术的新型数据库系统,通过分布式存储和去中心化的特性,提高了数据的安全性和可信度,同时实现了高效的数据管理和共享。该系统在多个领域如金融、医疗和物联网等具有广阔的应用前景。
|
15天前
|
存储 关系型数据库 分布式数据库
电子好书发您分享《PolarDB分布式版架构介绍PolarDB分布式版架构介绍》
**《PolarDB分布式版架构介绍》电子书分享:** 探索阿里云PolarDB分布式设计,采用计算存储分离,借助GMS、CN组件实现大规模扩展。[阅读更多](https://developer.aliyun.com/ebook/8332/116553?spm=a2c6h.26392459.ebook-detail.5.3b3b2ccbVVjjt0)
16 3
|
9天前
|
存储 分布式计算 分布式数据库
【专栏】云计算与分布式系统架构:驱动数字化时代的创新引擎
【4月更文挑战第27天】本文探讨了云计算与分布式系统架构在数字化时代的关键作用。云计算,凭借弹性、可扩展性和高可用性,提供便捷的计算环境;分布式系统架构则通过多计算机协同工作,实现任务并行和容错。两者相互依存,共同推动企业数字化转型、科技创新、公共服务升级及数字经济发展。虚拟化、分布式存储和计算、网络技术是其核心技术。未来,深化研究与应用这些技术将促进数字化时代的持续进步。
|
6天前
|
运维 Cloud Native 持续交付
构建未来:以云原生为基石的分布式系统架构深入理解操作系统的内存管理机制
【4月更文挑战第30天】 随着企业数字化转型的不断深入,传统的IT架构已难以满足市场对于敏捷性、可扩展性和成本效益的需求。云原生技术作为推动这一变革的关键因素,其设计理念和实现方式正在重塑软件开发和运维模式。本文将探讨云原生架构的核心组件,包括容器化、微服务、持续集成/持续部署(CI/CD)、以及无服务器计算等,并分析其在构建分布式系统中的作用与挑战。通过实际案例,我们将展示如何利用云原生技术构建高效、弹性和可维护的分布式系统。
|
6天前
|
Windows
Windows系统下安装分布式事务组件Seata
Windows系统下安装分布式事务组件Seata
|
6天前
|
负载均衡 应用服务中间件 nginx
服务器架构、分布式系统、负载均衡、微服务、高可用性
**分布式系统取代单体架构,以微服务实现高扩展性和灵活性。通过负载均衡技术增强性能,防止单点故障,结合冗余备份与故障切换保障高可用性,这种架构是支撑大规模在线业务的关键。**
38 3
|
6天前
|
负载均衡 Java 开发者
Spring Cloud:一文读懂其原理与架构
Spring Cloud 是一套微服务解决方案,它整合了Netflix公司的多个开源框架,简化了分布式系统开发。Spring Cloud 提供了服务注册与发现、配置中心、消息总线、负载均衡、熔断机制等工具,让开发者可以快速地构建一些常见的微服务架构。
|
10天前
|
存储 安全 数据管理
新一代数据库技术:融合区块链的分布式存储系统
传统数据库技术在面对日益增长的数据量和复杂的数据管理需求时显现出局限性。本文介绍了一种新一代数据库技术:融合区块链的分布式存储系统。通过将区块链技术与传统数据库相结合,实现了数据的分布式存储、安全性和透明度,以及去中心化的特性。这一技术的应用将极大地推动数据库系统的发展,为数据管理带来全新的解决方案。
|
10天前
|
存储 安全 数据管理
新一代数据库技术:融合区块链的分布式数据存储系统
传统数据库系统面临着数据安全性、可信度和去中心化等挑战,而区块链技术的兴起为解决这些问题提供了新的思路。本文介绍了一种新一代数据库技术,将区块链技术与传统的分布式数据存储系统相融合,实现了更高水平的数据安全性和可信度,以及去中心化的优势。通过结合区块链的不可篡改性和分布式存储系统的高性能,这一新型数据库技术将在未来的数据管理领域发挥重要作用。
|
12天前
|
存储 缓存 运维
Web系统如何实现数据分布式存储?
【4月更文挑战第24天】Web系统如何实现数据分布式存储?
18 2

热门文章

最新文章