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

简介:

概述

分布式存储概念

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

相关实践学习
MySQL数据库快速部署实践
本场景主要介绍如何在一台配置了CentOS 7.7版本的ECS实例(云服务器)上安装mysql,执行mysql的常用操作,学习基本的SQL语句。
目录
相关文章
|
2月前
|
监控 Java API
Spring Boot 3.2 结合 Spring Cloud 微服务架构实操指南 现代分布式应用系统构建实战教程
Spring Boot 3.2 + Spring Cloud 2023.0 微服务架构实践摘要 本文基于Spring Boot 3.2.5和Spring Cloud 2023.0.1最新稳定版本,演示现代微服务架构的构建过程。主要内容包括: 技术栈选择:采用Spring Cloud Netflix Eureka 4.1.0作为服务注册中心,Resilience4j 2.1.0替代Hystrix实现熔断机制,配合OpenFeign和Gateway等组件。 核心实操步骤: 搭建Eureka注册中心服务 构建商品
375 3
|
11天前
|
存储 算法 安全
“卧槽,系统又崩了!”——别慌,这也许是你看过最通俗易懂的分布式入门
本文深入解析分布式系统核心机制:数据分片与冗余副本实现扩展与高可用,租约、多数派及Gossip协议保障一致性与容错。探讨节点故障、网络延迟等挑战,揭示CFT/BFT容错原理,剖析规模与性能关系,为构建可靠分布式系统提供理论支撑。
113 2
|
17天前
|
消息中间件 缓存 监控
中间件架构设计与实践:构建高性能分布式系统的核心基石
摘要 本文系统探讨了中间件技术及其在分布式系统中的核心价值。作者首先定义了中间件作为连接系统组件的"神经网络",强调其在数据传输、系统稳定性和扩展性中的关键作用。随后详细分类了中间件体系,包括通信中间件(如RabbitMQ/Kafka)、数据中间件(如Redis/MyCAT)等类型。文章重点剖析了消息中间件的实现机制,通过Spring Boot代码示例展示了消息生产者的完整实现,涵盖消息ID生成、持久化、批量发送及重试机制等关键技术点。最后,作者指出中间件架构设计对系统性能的决定性影响,
|
27天前
|
机器学习/深度学习 算法 安全
新型电力系统下多分布式电源接入配电网承载力评估方法研究(Matlab代码实现)
新型电力系统下多分布式电源接入配电网承载力评估方法研究(Matlab代码实现)
|
3月前
|
数据采集 缓存 NoSQL
分布式新闻数据采集系统的同步效率优化实战
本文介绍了一个针对高频新闻站点的分布式爬虫系统优化方案。通过引入异步任务机制、本地缓存池、Redis pipeline 批量写入及身份池策略,系统采集效率提升近两倍,数据同步延迟显著降低,实现了分钟级热点追踪能力,为实时舆情监控与分析提供了高效、稳定的数据支持。
分布式新闻数据采集系统的同步效率优化实战
|
3月前
|
存储 监控 算法
园区导航系统技术架构实现与原理解构
本文聚焦园区导航场景中室内外定位精度不足、车辆调度路径规划低效、数据孤岛难以支撑决策等技术痛点,从架构设计到技术原理,对该系统从定位到数据中台进行技术拆解。
110 0
园区导航系统技术架构实现与原理解构
|
4月前
|
存储 消息中间件 canal
zk基础—2.架构原理和使用场景
ZooKeeper(ZK)是一个分布式协调服务,广泛应用于分布式系统中。它提供了分布式锁、元数据管理、Master选举及分布式协调等功能,适用于如Kafka、HDFS、Canal等开源分布式系统。ZK集群采用主从架构,具有顺序一致性、高性能、高可用和高并发等特点。其核心机制包括ZAB协议(保证数据一致性)、Watcher监听回调机制(实现通知功能)、以及基于临时顺序节点的分布式锁实现。ZK适合小规模集群部署,主要用于读多写少的场景。
|
5月前
|
存储 人工智能 自然语言处理
为什么混合专家模型(MoE)如此高效:从架构原理到技术实现全解析
本文深入探讨了混合专家(MoE)架构在大型语言模型中的应用与技术原理。MoE通过稀疏激活机制,在保持模型高效性的同时实现参数规模的大幅扩展,已成为LLM发展的关键趋势。文章分析了MoE的核心组件,包括专家网络与路由机制,并对比了密集与稀疏MoE的特点。同时,详细介绍了Mixtral、Grok、DBRX和DeepSeek等代表性模型的技术特点及创新。MoE不仅解决了传统模型扩展成本高昂的问题,还展现出专业化与适应性强的优势,未来有望推动AI工具更广泛的应用。
1813 4
为什么混合专家模型(MoE)如此高效:从架构原理到技术实现全解析
|
5月前
|
机器学习/深度学习 算法 测试技术
图神经网络在信息检索重排序中的应用:原理、架构与Python代码解析
本文探讨了基于图的重排序方法在信息检索领域的应用与前景。传统两阶段检索架构中,初始检索速度快但结果可能含噪声,重排序阶段通过强大语言模型提升精度,但仍面临复杂需求挑战
139 0
图神经网络在信息检索重排序中的应用:原理、架构与Python代码解析

热门文章

最新文章