带你读《存储漫谈:Ceph原理与实践》——1.1.2 分布式存储系统

简介: 带你读《存储漫谈:Ceph原理与实践》——1.1.2 分布式存储系统

1.1.2  分布式存储系统


分布式存储最早由谷歌提出,其目的是通过廉价的商用服务器来提供海量、弹性可扩展的数据存储系统。它将数据分散地存储到多台存储服务器上(服务器分布在企业的各个角落),并将这些分散的存储资源构成虚拟的存储设备。

image.png

图 1-5 展示了分布式存储系统的工作模式。

分布式存储架构通常由 3 个部分组成:客户端、元数据服务器以及数据服务器。客户端负责发送读写请求、缓存文件元数据和文件数据;元数据服务器作为整个系统的核心组件,负责管理文件元数据和处理客户端的请求;数据服务器负责存放文件数据,保证数据的可用性和完整性。该架构的好处是存储系统整体的性能和容量能够随着系统内存储服务器的增加不断地近似线性扩展,系统具有很强的伸缩性。


1. 分布式存储的兴起

分布式存储系统的兴起与互联网的发展密不可分,互联网公司由于其数据增量大且初期 IT 投资相对较少,对大规模分布式存储系统有着强烈的业务需求以及使用意愿,期望通过规模效应降低数据的存储成本。

与传统建设方式中使用的高端服务器、高端存储器和高端处理器不同,互联网公司的分布式存储系统由数量众多、成本低廉、高性价比的普通服务器通过网络连接而成,其主要优势有以下 3 点。

(1)系统可获得更好的 scale out 能力

互联网的业务发展速度快,而且更加注重成本开支,要求存储系统不能依靠传统的scale up 方式(即先购买小型机,再购买中型机,甚至大型机)来满足业务数据的存储需求。互联网公司使用的分布式存储系统要求支持 scale out 能力,即可以通过增加普通服务器的数量来提高系统的整体处理能力。

(2)系统拥有更好的成本优势

普通服务器成本低廉,故障率相对较高,但分布式存储系统的分区容错性可保证存储集群因为故障而被分解为多个部分之后,存储系统整体仍然能够正常对外提供服务,软件层面的自动容错,可保证存储集群的数据一致性,互联网公司可最大限度地享受普通服务器带来的高性价比优势。

(3)系统可获得更加线性的性能输出

随着服务器的不断加入,存储集群的计算、存储、网络服务能力都会线性增加,加之分布式存储系统在软件层面实现 I/O 负载的自动均衡,存储系统的 I/O 处理能力可以得到线性的扩展,对于新增的业务需求,互联网公司可以精确地估算新增资源投入,实现“小步快跑”的资源建设,最优化资源的投入产出比。


2. 分布式存储的优势

分布式存储系统自诞生以来,一直热度不减,被企业津津乐道并持续应用于核心生产系统,究其原因,分布式存储系统可带来如下优势。

(1)系统计算处理能力更优

摩尔定律告诉人们:当价格不变时,集成电路上可容纳的元器件的数目,每隔 18 ~ 24个月便会增加一倍,性能也将提升一倍,即随着时间的推移,单位成本支出所能购买的计算能力在不断提升。换个角度,具体到某个固定时间点,单颗处理器的计算能力终究会有上限,即使企业有意愿花更多的成本去购买计算能力,市场上也没有芯片能够满足其需求。分布式存储系统的架构允许数据分散存储在多台独立的服务器上,统一对外提供服务,可以最大化利用系统所有资源,最优化均衡系统所有负载,消除热点,获得一致的性能表现,大大提升存储群集计算处理能力。

(2)系统扩展能力更强

同上分析,具体到某个固定时间点来购买单颗不同型号的处理器,所购买的处理器性能越高,所要付出的成本开销就越大,性价比就越低。即在一个确定的时间点,通过升级硬件来提升性能会越来越不划算,简单地依靠计算能力的 scale up 来提升存储系统 I/O 处理能力并非明智之举。分布式存储系统的 scale out 特性,允许存储系统纳管更多的服务器,且随着纳管服务器数量的增加,存储系统的容量及性能可获得近似线性地提升,为存储系统的容量扩展以及性能扩展提供可靠的技术保障。

(3)系统稳定性更可靠

若采用单机系统,服务器一旦出现问题,那么系统就完全不能使用,无法满足生产环境高可靠的需求。传统集中式存储的负载呈现出高度的不均衡性,即同一镜像的数据通常分布在同一磁盘托架中,若控制器出现故障,存储对外服务性能将严重降级,且数据重建期间,存储系统中的部分磁盘会承受很大的负载压力,重建耗时长,业务经受严重风险。分布式存储系统将数据分散存储到多台独立的服务器上,无单点故障,单盘损坏后,全部磁盘参与数据重建,分摊系统压力,对存储系统整体性能输出影响较小,可以最大限度地降低业务风险。


3. 选择分布式存储的必然性

云存储和大数据是构建在分布式存储之上的应用:移动终端的计算能力和存储空间终究是有上限的,且在多个设备之间资源共享的需求也愈发强烈,这使得云网盘、云相册之类的云存储应用迅速蹿红,而云存储的核心仍是其后端便于数据共享访问的大规模分布式存储系统;大数据则更进一步,不仅需要存储海量数据,还需要通过合适的计算框架或者工具对这些数据进行分析,抽取数据中的价值,如果没有分布式存储,海量数据便没有了生存之地,更谈不上对数据进行分析。

由此可见,分布式存储系统是云存储和大数据发展的必然要求,继而也是 IT 技术发展的必然要求。

目录
打赏
0
0
0
0
41
分享
相关文章
深入解析Tiktokenizer:大语言模型中核心分词技术的原理与架构
Tiktokenizer 是一款现代分词工具,旨在高效、智能地将文本转换为机器可处理的离散单元(token)。它不仅超越了传统的空格分割和正则表达式匹配方法,还结合了上下文感知能力,适应复杂语言结构。Tiktokenizer 的核心特性包括自适应 token 分割、高效编码能力和出色的可扩展性,使其适用于从聊天机器人到大规模文本分析等多种应用场景。通过模块化设计,Tiktokenizer 确保了代码的可重用性和维护性,并在分词精度、处理效率和灵活性方面表现出色。此外,它支持多语言处理、表情符号识别和领域特定文本处理,能够应对各种复杂的文本输入需求。
28 6
深入解析Tiktokenizer:大语言模型中核心分词技术的原理与架构
MySQL原理简介—2.InnoDB架构原理和执行流程
本文介绍了MySQL中更新语句的执行流程及其背后的机制,主要包括: 1. **更新语句的执行流程**:从SQL解析到执行器调用InnoDB存储引擎接口。 2. **Buffer Pool缓冲池**:缓存磁盘数据,减少磁盘I/O。 3. **Undo日志**:记录更新前的数据,支持事务回滚。 4. **Redo日志**:确保事务持久性,防止宕机导致的数据丢失。 5. **Binlog日志**:记录逻辑操作,用于数据恢复和主从复制。 6. **事务提交机制**:包括redo日志和binlog日志的刷盘策略,确保数据一致性。 7. **后台IO线程**:将内存中的脏数据异步刷入磁盘。
Git进阶笔记系列(01)Git核心架构原理 | 常用命令实战集合
通过本文,读者可以深入了解Git的核心概念和实际操作技巧,提升版本管理能力。
一文彻底讲透GPT架构及推理原理
本篇是作者从开发人员的视角,围绕着大模型正向推理过程,对大模型的原理的系统性总结,希望对初学者有所帮助。
Druid 架构原理及核心特性详解
Druid 是一个分布式、支持实时多维OLAP分析的列式存储数据处理系统,适用于高速实时数据读取和灵活的多维数据分析。它通过Segment、Datasource等元数据概念管理数据,并依赖Zookeeper、Hadoop和Kafka等组件实现高可用性和扩展性。Druid采用列式存储、并行计算和预计算等技术优化查询性能,支持离线和实时数据分析。尽管其存储成本较高且查询语言功能有限,但在大数据实时分析领域表现出色。
176 19
ClickHouse 架构原理及核心特性详解
ClickHouse 是由 Yandex 开发的开源列式数据库,专为 OLAP 场景设计,支持高效的大数据分析。其核心特性包括列式存储、字段压缩、丰富的数据类型、向量化执行和分布式查询。ClickHouse 通过多种表引擎(如 MergeTree、ReplacingMergeTree、SummingMergeTree)优化了数据写入和查询性能,适用于电商数据分析、日志分析等场景。然而,它在事务处理、单条数据更新删除及内存占用方面存在不足。
460 21
|
2月前
|
Doris 架构原理及核心特性详解
Doris 是百度内部孵化的OLAP项目,现已开源并广泛应用。它采用MPP架构、向量化执行引擎和列存储技术,提供高性能、易用性和实时数据处理能力。系统由FE(管理节点)和BE(计算与存储节点)组成,支持水平扩展和高可用性。Doris 适用于海量数据分析,尤其在电商、游戏等行业表现出色,但资源消耗较大,复杂查询优化有局限性,生态集成度有待提高。
173 15
盘古分布式存储系统的稳定性实践
本文介绍了阿里云飞天盘古分布式存储系统的稳定性实践。盘古作为阿里云的核心组件,支撑了阿里巴巴集团的众多业务,确保数据高可靠性、系统高可用性和安全生产运维是其关键目标。文章详细探讨了数据不丢不错、系统高可用性的实现方法,以及通过故障演练、自动化发布和健康检查等手段保障生产安全。总结指出,稳定性是一项系统工程,需要持续迭代演进,盘古经过十年以上的线上锤炼,积累了丰富的实践经验。
AArch64架构调用链性能数据采集原理
本次分享的主题是AArch64架构调用链性能数据采集原理,由阿里云苏轩楠分享。主要分为五个部分: 1. 术语解释 2. Frame Pointer RegisterStack Unwind 3. Dwarf-based Stack Unwind 4. /BRBE/CSRE Stack Unwind 5. Kernel-space Stack Unwind&eBPF Unwinders
基于Java的Hadoop文件处理系统:高效分布式数据解析与存储
本文介绍了如何借鉴Hadoop的设计思想,使用Java实现其核心功能MapReduce,解决海量数据处理问题。通过类比图书馆管理系统,详细解释了Hadoop的两大组件:HDFS(分布式文件系统)和MapReduce(分布式计算模型)。具体实现了单词统计任务,并扩展支持CSV和JSON格式的数据解析。为了提升性能,引入了Combiner减少中间数据传输,以及自定义Partitioner解决数据倾斜问题。最后总结了Hadoop在大数据处理中的重要性,鼓励Java开发者学习Hadoop以拓展技术边界。
66 7

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等