带你读《存储漫谈:Ceph原理与实践》——1.2.1 有中心架构

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,内容安全 1000次 1年
简介: 带你读《存储漫谈:Ceph原理与实践》——1.2.1 有中心架构

1.2  各主流分布式方案对比


分布式存储系统种类繁多,通常按照使用场景,可将分布式存储系统划分为分布式块存储、分布式文件存储以及分布式对象存储 3 类,如图 1-6 所示。


image.png 图 1-6 分布式存储系统分类

块存储将裸磁盘空间直接映射给主机使用,主机层面操作系统识别出磁盘后,可对磁盘进行分区、格式化文件系统或者直接进行裸设备读写。块存储使用线性地址空间,不关心数据的组织方式以及结构,读写速度更快,但共享性较差。

文件存储将文件系统直接挂载给主机使用,主机层面操作系统可对挂载后的文件系统直接进行读写,读写操作遵循 POSIX(Portable Operating System Interface of UNIX)语义,类似操作本地文件系统。文件存储使用树状结构以及路径访问方式,更方便理解、记忆,更适合结构化数据的存取,共享性更好,但读写性能较差。

对象存储介于块存储与文件存储之间,以 restful api 或者客户端 sdk 的形式供用户使用,更适合非结构化数据的存取。对象存储使用统一的底层存储系统,管理文件以及底层介质的组织结构,然后为每个文件分配一个唯一的标识,用户需要访问某个文件,直接提供文件的标识即可。

除以上 3 种分布式存储方案的划分外,分布式存储系统还可分为分布式数据库系统和分布式缓存系统等。

从架构角度切入,无论是分布式块存储系统、分布式对象存储系统、分布式文件存储系统,抑或是分布式数据库系统、分布式缓存系统,其架构无外乎以下两种。

有中心架构

有中心架构下,分布式存储集群实现统一的元数据服务,元数据统一存储并管理,客户端发起对数据的读写前,先向元数据服务器发起读写请求。

无中心架构

无中心架构下,分布式存储系统没有单独的元数据服务,元数据与数据一样,切片打散后存储在多台存储服务器上,客户端通过特定算法进行计算,确定元数据及数据的存储位置,并直接向存储节点相关进程发起数据的读写访问请求。依照使用的算法类型,无中心架构又可细分为私有算法模式以及一致性散列(Hash)模式。下文以 HDFS、Ceph、Swift 为例,对 3 种方案做简要对比。


1.2.1  有中心架构

HDFS(Hadoop Distribution File System)是有中心分布式存储系统的典型代表。在这种架构中,一部分节点 Name Node 用于存放管理数据(元数据文件),另一部分节点Data Node 用于存放业务数据(数据文件),其系统架构如图 1-7 所示。

在图 1-7 中,如果客户端需要从某个文件读取数据,首先从 Name Node 获取该文件的位置信息(具体在哪个 Data Node),然后从该 Data Node 上获取具体的数据。在该架构中Name Node通常是主备部署,而Data Node则是由大量服务器节点构成一个存储集群。由于元数据的访问频度和访问量相对数据都要小很多(参见后文 HDFS 使用场景),因此Name Node 通常不会成为性能瓶颈;Data Node 在集群中通常将数据以副本形式存放,该策略下既可以保证数据的高可用性,又可以分散客户端的请求。因此,这种分布式存储架构可以横向扩展 Data Node 的数量来增加存储系统的承载能力,也即实现系统的动态横向扩展。

HDFS 目前主要用于大数据的存储场景,HDFS 也是 Hadoop 大数据架构中的存储组件。HDFS 在开始设计的时候,就已经明确了它的应用场景(即大数据服务),具体如下:

image.png

图 1-7 HDFS 系统架构

(1)对大文件存储的性能要求比较高的业务场景

HDFS 采用集中式元数据的方式进行文件管理,元数据保存在 Name Node 的内存中,文件数量的增加会占用大量的 Name Node 内存。即当 HDFS 存储海量小文件时,元数据会占用大量内存空间,引起整个分布式存储系统性能的下降。由于此限制,HDFS 更适合应用在存储大文件的使用场景,文件大小以百 MB 级别或者 GB 级别为宜。

(2)读多写少的业务场景

HDFS 的数据传输吞吐量比较高,但是数据写入时延比较差,因此,HDFS 不适合频繁的数据写入场景,但就大数据分析业务而言,其处理模式通常为一次写入、多次读取,然后进行数据分析工作,HDFS 可以胜任该场景。

相关实践学习
块存储快速入门
块存储是阿里云为云服务器ECS提供的块设备产品。通过体验挂载数据盘、分区格式化数据盘(Linux)、创建云盘快照、重新初始化数据盘、使用快照回滚云盘和卸载数据盘等功能,带您快速入门块存储。
相关文章
|
25天前
|
存储 SQL 关系型数据库
Mysql高可用架构方案
本文阐述了Mysql高可用架构方案,介绍了 主从模式,MHA模式,MMM模式,MGR模式 方案的实现方式,没有哪个方案是完美的,开发人员在选择何种方案应用到项目中也没有标准答案,合适的才是最好的。
105 3
Mysql高可用架构方案
|
3月前
|
安全 应用服务中间件 API
微服务分布式系统架构之zookeeper与dubbo-2
微服务分布式系统架构之zookeeper与dubbo-2
|
17天前
|
存储 Dubbo Java
分布式 RPC 底层原理详解,看这篇就够了!
本文详解分布式RPC的底层原理与系统设计,大厂面试高频,建议收藏。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
分布式 RPC 底层原理详解,看这篇就够了!
|
4天前
|
NoSQL Java 数据处理
基于Redis海量数据场景分布式ID架构实践
【11月更文挑战第30天】在现代分布式系统中,生成全局唯一的ID是一个常见且重要的需求。在微服务架构中,各个服务可能需要生成唯一标识符,如用户ID、订单ID等。传统的自增ID已经无法满足在集群环境下保持唯一性的要求,而分布式ID解决方案能够确保即使在多个实例间也能生成全局唯一的标识符。本文将深入探讨如何利用Redis实现分布式ID生成,并通过Java语言展示多个示例,同时分析每个实践方案的优缺点。
20 8
|
6天前
|
NoSQL 安全 PHP
hyperf-wise-locksmith,一个高效的PHP分布式锁方案
`hyperf-wise-locksmith` 是 Hyperf 框架下的互斥锁库,支持文件锁、分布式锁、红锁及协程锁,有效防止分布式环境下的竞争条件。本文介绍了其安装、特性和应用场景,如在线支付系统的余额扣减,确保操作的原子性。
16 4
|
27天前
|
缓存 关系型数据库 MySQL
高并发架构系列:数据库主从同步的 3 种方案
本文详解高并发场景下数据库主从同步的三种解决方案:数据主从同步、数据库半同步复制、数据库中间件同步和缓存记录写key同步,旨在帮助解决数据一致性问题。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
高并发架构系列:数据库主从同步的 3 种方案
|
1月前
|
NoSQL 算法 关系型数据库
分布式 ID 详解 ( 5大分布式 ID 生成方案 )
本文详解分布式全局唯一ID及其5种实现方案,关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
分布式 ID 详解 ( 5大分布式 ID 生成方案 )
|
2月前
|
运维 供应链 安全
SD-WAN分布式组网:构建高效、灵活的企业网络架构
本文介绍了SD-WAN(软件定义广域网)在企业分布式组网中的应用,强调其智能化流量管理、简化的网络部署、弹性扩展能力和增强的安全性等核心优势,以及在跨国企业、多云环境、零售连锁和制造业中的典型应用场景。通过合理设计网络架构、选择合适的网络连接类型、优化应用流量优先级和定期评估网络性能等最佳实践,SD-WAN助力企业实现高效、稳定的业务连接,加速数字化转型。
SD-WAN分布式组网:构建高效、灵活的企业网络架构
|
2月前
|
存储 缓存 NoSQL
分布式架构下 Session 共享的方案
【10月更文挑战第15天】在实际应用中,需要根据具体的业务需求、系统架构和性能要求等因素,选择合适的 Session 共享方案。同时,还需要不断地进行优化和调整,以确保系统的稳定性和可靠性。
|
2月前
|
消息中间件 关系型数据库 Java
‘分布式事务‘ 圣经:从入门到精通,架构师尼恩最新、最全详解 (50+图文4万字全面总结 )
本文 是 基于尼恩之前写的一篇 分布式事务的文章 升级而来 , 尼恩之前写的 分布式事务的文章, 在全网阅读量 100万次以上 , 被很多培训机构 作为 顶级教程。 此文修改了 老版本的 一个大bug , 大家不要再看老版本啦。