带你读《存储漫谈Ceph原理与实践》第二章Ceph 架构2.2 Ceph 数据寻址(一)

简介: 带你读《存储漫谈Ceph原理与实践》第二章Ceph 架构2.2Ceph 数据寻址

在从方案演进及变迁的较为宏观角度对比了分布式存储系统的有中心架构与无中心架构寻址方式之后,本小节将深入Ceph 存储系统的数据寻址方案,进行详细介绍。

在   PB   级数据存储和成百上千台存储服务器纳管的需求背景下,大规模分布式存储系统必须做到数据和负载的均衡分布,以此来提高资源利用率,最大化系统的性能输出,同   时要处理好系统的扩展和硬件失效问题。Ceph设计了一套 CRUSH 算法,用在分布式对象存储系统(RADOS)上,可以有效地将数据对象(Object)映射到存储设备(OSD)上。CRUSH     算法能够处理存储设备的添加和移除,并最小化由于存储设备的添加和移动而导致的数据迁移。

 

CRUSH 算法有两个关键优点。

(1)  任何组件都可以独立计算出 Object所在的位置(去中心化

(2)  运算过程只需要很少的集群元数据(ClusterMap,只有当存储集群添加或删除设备时,这些元数据才会发生改变。

这些特性使得 CRUSH 适合管理对象分布非常大的(PB级别)且要求可伸缩性、性能和可靠性非常高的存储系统。


2.2.1     Ceph寻址流程

为了讲清楚 Ceph 寻址流程,这里先介绍一下常用术语。

◆  File

File   是要存储和访问的文件,它是面向用户的,也是可直观操作的对象,在块存储使用场景,File 指挂载出去使用的RBD设备;在对象存储使用场景,File指用户可见的音视频或其他格式的用户数据;在文件存储使用场景File 指文件系统中存储的用户数据。

◆  Object

ObjectCeph底层 RADOS所看到的对象,也是在 Ceph中数据存储的基本单位,File过大时,需要将File切分成统一大小的 Object进行存储,每个 Object应包含 ID、BinaryDataMetadata信息。Object的大小可由 RADOS限定通常为 4MB,可依据需要进行配置

◆  PG

PG(PlacementGroup)是一个逻辑的概念,它的用途是对 RADOSObject的存储进行组织和位置的映射,通过PG概念的引入,Ceph 存储系统可以更好地分配数据和定位数据,PGCeph存储系统数据均衡和恢复的最小单位。

◆  Pool

Pool规定了数据冗余的类型,如副本模式、纠删码模式,对于不同冗余类型的数据存储,需要单独的 Pool划分,即每个 Pool只能对应一种数据冗余类型的规则。每个 Pool内可包含多个 PG。

◆  OSD

如第 1章介绍,OSD(ObjectStorageDevice)服务负责数据的存取,并处理数据的复制、恢复、回填、再均衡等任务。

PGObject 是一对多的关系,1PG里面组织若干个 Object,但是 1Object射到 1PG 中。

PGOSD是多对多的关系,1PG会映射到多个OSD(依照副本或者纠删码规则每个 OSD也会承载多个 PG

PGPool是多对一的关系1Pool内包含多个 PGPool创建时可指定其中 PG的数量(通常为2的指数次幂Pool创建之后,也可以通过命令对其进行调整。

2-1展示了 Ceph 的寻址流程,可以看到,Ceph的寻址需要经历 3次映射。

 

 image.png

2-1Ceph寻址流程

 

 

首先,将File切分成多个 Object

每个Object都有唯一的IDOID,OID根据文件名称得到,由inoono构成, ino为文件唯一ID(比如filename+timestampono则为切分后某个Object的序号(如0、 1、2、3、4、5,根据该文件的大小我们就会得到一系列的OID。

其次,将每个 Object映射到一个 PG中去。

实现方式也很简单,对 OID进行 Hash 运算,然后对运算结果进行按位与计算,即可得到某一个 PGID。图中的mask掩码设置为 PG的数量减 1

我们认为得到的 pgid是随机的,这与 PG的数量和文件的数量有关系,在足够量级PG数量的前提下,集群数据是均匀分布的。最后,将 Object所在的 PG映射到实际的存储位置 OSD上。

这里应用的就是 CRUSH算法了,CRUSH算法可以通过 pgid得到多个 OSD副本或者纠删码的配置策略有进程。

可以看到,Ceph 存储系统的数据寻址过程只需要输入文件的名称以及文件的大小等信息,所有计算过程都可以直接在客户端本地完成。Ceph客户端只要获得了 ClusterMap, 就可以使用 CRUSH算法计算出某个 Object所在OSDid,然后直接与它通信。Ceph客户端在初始化时会从Monitor服务获取最新的 Cluster   Map,随后采用反向订阅机制,仅当Monitor服务中记录的ClusterMap 发生变化时,才主动向Ceph 客户端进行推送。

相关文章
|
21天前
|
存储 SQL 关系型数据库
MySQL进阶突击系列(03) MySQL架构原理solo九魂17环连问 | 给大厂面试官的一封信
本文介绍了MySQL架构原理、存储引擎和索引的相关知识点,涵盖查询和更新SQL的执行过程、MySQL各组件的作用、存储引擎的类型及特性、索引的建立和使用原则,以及二叉树、平衡二叉树和B树的区别。通过这些内容,帮助读者深入了解MySQL的工作机制,提高数据库管理和优化能力。
|
1月前
|
人工智能 前端开发 编译器
【AI系统】LLVM 架构设计和原理
本文介绍了LLVM的诞生背景及其与GCC的区别,重点阐述了LLVM的架构特点,包括其组件独立性、中间表示(IR)的优势及整体架构。通过Clang+LLVM的实际编译案例,展示了从C代码到可执行文件的全过程,突显了LLVM在编译器领域的创新与优势。
57 3
|
4天前
|
机器学习/深度学习 算法 PyTorch
深度强化学习中SAC算法:数学原理、网络架构及其PyTorch实现
软演员-评论家算法(Soft Actor-Critic, SAC)是深度强化学习领域的重要进展,基于最大熵框架优化策略,在探索与利用之间实现动态平衡。SAC通过双Q网络设计和自适应温度参数,提升了训练稳定性和样本效率。本文详细解析了SAC的数学原理、网络架构及PyTorch实现,涵盖演员网络的动作采样与对数概率计算、评论家网络的Q值估计及其损失函数,并介绍了完整的SAC智能体实现流程。SAC在连续动作空间中表现出色,具有高样本效率和稳定的训练过程,适合实际应用场景。
24 7
深度强化学习中SAC算法:数学原理、网络架构及其PyTorch实现
|
4天前
|
负载均衡 Serverless 持续交付
云端问道9期实践教学-省心省钱的云上Serverless高可用架构
详细介绍了云上Serverless高可用架构的一键部署流程
29 10
|
18天前
|
弹性计算 Java 关系型数据库
Web应用上云经典架构实践教学
Web应用上云经典架构实践教学
Web应用上云经典架构实践教学
|
5天前
|
存储 人工智能 运维
面向AI的服务器计算软硬件架构实践和创新
阿里云在新一代通用计算服务器设计中,针对处理器核心数迅速增长(2024年超100核)、超多核心带来的业务和硬件挑战、网络IO与CPU性能增速不匹配、服务器物理机型复杂等问题,推出了磐久F系列通用计算服务器。该系列服务器采用单路设计减少爆炸半径,优化散热支持600瓦TDP,并实现CIPU节点比例灵活配比及部件模块化可插拔设计,提升运维效率和客户响应速度。此外,还介绍了面向AI的服务器架构挑战与软硬件结合创新,包括内存墙问题、板级工程能力挑战以及AI Infra 2.0服务器的开放架构特点。最后,探讨了大模型高效推理中的显存优化和量化压缩技术,旨在降低部署成本并提高系统效率。
|
6天前
|
运维 监控 安全
天财商龙:云上卓越架构治理实践
天财商龙成立于1998年,专注于为餐饮企业提供信息化解决方案,涵盖点餐、收银、供应链和会员系统等。自2013年起逐步实现业务上云,与阿里云合作至今已十年。通过采用阿里云的WA体系,公司在账号管理、安全保障、监控体系和成本管控等方面进行了全面优化,提升了业务稳定性与安全性,并实现了显著的成本节约。未来,公司将持续探索智能化和全球化发展,进一步提升餐饮行业的数字化水平。
|
6天前
|
运维 安全 架构师
架构师工具箱:Well-Architected云治理提效实践
本次分享基于阿里云Well-Architected Framework的最佳实践案例,涵盖企业从上云到优化的全过程。安畅作为国内领先的云管理服务提供商(Cloud MSP),拥有800多名员工,其中70%为技术工程师,为企业提供架构安全、数据智能等技术服务。内容包括Landing Zone与Well-Architected的关系、企业云治理现状及需求分析,重点探讨了安全合规、成本优化、资源稳定性和效率提升等方面的最佳实践,并通过具体客户案例展示了如何通过自动化工具和定制化解决方案帮助企业提升云上业务价值。
|
1月前
|
运维 监控 Java
后端开发中的微服务架构实践与挑战####
在数字化转型加速的今天,微服务架构凭借其高度的灵活性、可扩展性和可维护性,成为众多企业后端系统构建的首选方案。本文深入探讨了微服务架构的核心概念、实施步骤、关键技术考量以及面临的主要挑战,旨在为开发者提供一份实用的实践指南。通过案例分析,揭示微服务在实际项目中的应用效果,并针对常见问题提出解决策略,帮助读者更好地理解和应对微服务架构带来的复杂性与机遇。 ####
|
1月前
|
算法 NoSQL Java
微服务架构下的接口限流策略与实践#### 一、
本文旨在探讨微服务架构下,面对高并发请求时如何有效实施接口限流策略,以保障系统稳定性和服务质量。不同于传统的摘要概述,本文将从实际应用场景出发,深入剖析几种主流的限流算法(如令牌桶、漏桶及固定窗口计数器等),通过对比分析它们的优缺点,并结合具体案例,展示如何在Spring Cloud Gateway中集成自定义限流方案,实现动态限流规则调整,为读者提供一套可落地的实践指南。 #### 二、
64 3

热门文章

最新文章