带你读《存储漫谈: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 技术发展的必然要求。

相关文章
|
21天前
|
存储 安全 数据管理
新型数据库技术:基于区块链的分布式数据存储系统
传统数据库系统面临着中心化管理、数据安全性和可信度等方面的挑战。本文介绍了一种基于区块链技术的新型数据库系统,通过分布式存储和去中心化的特性,提高了数据的安全性和可信度,同时实现了高效的数据管理和共享。该系统在多个领域如金融、医疗和物联网等具有广阔的应用前景。
|
15天前
|
存储 运维 关系型数据库
2024年最全ceph的功能组件和架构概述(2),Linux运维工程面试问题
2024年最全ceph的功能组件和架构概述(2),Linux运维工程面试问题
2024年最全ceph的功能组件和架构概述(2),Linux运维工程面试问题
|
16天前
|
存储 关系型数据库 分布式数据库
【PolarDB开源】深入PolarDB内核:探究存储计算分离架构的设计哲学
【5月更文挑战第20天】PolarDB是阿里巴巴的云原生分布式数据库,以其存储计算分离架构为核心,解决了传统数据库的扩展性和资源灵活性问题。该架构将数据存储和计算处理分开,实现高性能(通过RDMA加速数据传输)、高可用性(多副本冗余保证数据可靠性)和灵活扩展(计算资源独立扩展)。通过动态添加计算节点以应对业务流量变化,PolarDB展示了其在云时代应对复杂业务场景的能力。随着开源项目的进展,PolarDB将持续推动数据库技术发展。
59 6
|
16天前
|
存储 弹性计算 Cloud Native
AutoMQ:如何基于阿里云计算与存储产品实现云原生架构升级
AutoMQ:如何基于阿里云计算与存储产品实现云原生架构升级
|
20天前
|
运维 监控 安全
WLAN的组网架构和工作原理
WLAN的组网架构和工作原理
24 0
|
21天前
|
存储 移动开发 前端开发
【Uniapp 专栏】Uniapp 架构设计与原理探究
【5月更文挑战第12天】Uniapp是一款用于跨平台移动应用开发的框架,以其高效性和灵活性脱颖而出。它基于HTML、CSS和Vue.js构建视图层,JavaScript处理逻辑层,管理数据层,实现统一编码并支持原生插件扩展。通过抽象平台特性,开发者能专注于业务逻辑,提高开发效率。尽管存在兼容性和复杂性挑战,但深入理解其架构设计与原理将助力开发者创建高质量的跨平台应用。随着技术进步,Uniapp将继续在移动开发领域扮演重要角色。
【Uniapp 专栏】Uniapp 架构设计与原理探究
|
21天前
|
传感器 存储 SQL
LabVIEW使用ModbusTCP协议构建分布式测量系统
LabVIEW使用ModbusTCP协议构建分布式测量系统
22 4
|
21天前
|
存储 安全 区块链
一文说清楚IPFS分布式存储系统
一文说清楚IPFS分布式存储系统
451 1
|
21天前
|
负载均衡 NoSQL 关系型数据库
深入浅出Redis(六):Redis的主从架构与主从复制原理
深入浅出Redis(六):Redis的主从架构与主从复制原理
|
21天前
|
存储 Cloud Native 对象存储
AutoMQ:如何基于阿里云计算与存储产品实现云原生架构升级
AutoMQ[1] 是新一代基于共享存储架构实现的云原生 Kafka。得益于其存算分离的共享存储架构,通过和阿里云合作,深度使用阿里云可靠、先进的云服务如对象存储OSS、块存储 ESSD、弹性伸缩ESS以及抢占式实例实现了相比 Apache Kafka 10倍的成本优势并且提供了自动弹性的能力。
83612 5
AutoMQ:如何基于阿里云计算与存储产品实现云原生架构升级