带你读《存储漫谈:Ceph原理与实践》——2.3.1 PG 数量的选择

简介: 带你读《存储漫谈:Ceph原理与实践》——2.3.1 PG 数量的选择

2.3  Ceph 的归置组


Ceph 存储系统使用的 CRUSH 算法在一致性 Hash 算法的基础上充分考虑了多副本、故障域隔离等约束,尽量减少集群在故障场景下的数据迁移量,实现这一目标的关键举措即为 PG 逻辑概念的引入。

前文提到 Ceph 可以理解为对 RADOS 对象存储系统的二次封装,Ceph 中所有的用户数据都被抽象成多个 Object,如果 Ceph 存储系统以 Object 为追踪目标,那么要追踪的单元个体数量就太多了,不仅会消耗大量的计算资源,而且在一个有数以亿计对象(EB 级存储集群)的系统中直接追踪对象的位置及其元数据信息也是完全不现实的。Ceph 引进 PG逻辑概念,将一系列的 Object 聚合到 PG 里,并将 PG 映射到一系列的 OSD 上去。系统中PG 数量远远小于 Object 数量,存储系统以 PG 为存储单元个体,直接追踪 PG 状态,比较好地处理了性能和可扩展性的界限。

PG 的引入也会增加一些系统资源开销,如 PG 逻辑的处理会直接消耗存储节点的部分CPU 和内存,增大 PG 的数量会增加存储系统 Peering 状态处理的数量。


2.3.1  PG 数量的选择


上述分析可以看出,PG 是用户数据切片(Object)与真实提供存储空间的存储介质(OSD 守护进程)之间的纽带。Ceph 存储系统需要设置较为合理的 PG 数量,过少的 PG数量会导致集群 peer 过程太慢,数据迁移效率过低;过多的 PG 数量则会增加集群存储节点的计算资源负担。PG 的数量在 Ceph 的存储池(Pool)创建时指定,通常推荐每个 OSD守护进程承载 100 个 PG 较为合适,考虑到集群数据的副本策略,对于单存储池的简单场景,可以通过如下公式进行 PG 数量确定。

Total PGs=(OSDs×100)/Replicas

在上述数据寻址计算中,可以看到要对 Hash 计算结果进行取模运算,存储池的 PG 数量建议取值为 2 的n 次方,这样可以加速数据寻址的计算过程,即对上述公式计算结果,向上或向下靠近 2 的n 次方数值进行存储池的 PG 总数选取。

对于多存储池的复杂场景,可以参考 Ceph 官方推荐的计算器。

相关文章
|
20天前
|
存储 SQL 关系型数据库
MySQL进阶突击系列(03) MySQL架构原理solo九魂17环连问 | 给大厂面试官的一封信
本文介绍了MySQL架构原理、存储引擎和索引的相关知识点,涵盖查询和更新SQL的执行过程、MySQL各组件的作用、存储引擎的类型及特性、索引的建立和使用原则,以及二叉树、平衡二叉树和B树的区别。通过这些内容,帮助读者深入了解MySQL的工作机制,提高数据库管理和优化能力。
|
1月前
|
人工智能 前端开发 编译器
【AI系统】LLVM 架构设计和原理
本文介绍了LLVM的诞生背景及其与GCC的区别,重点阐述了LLVM的架构特点,包括其组件独立性、中间表示(IR)的优势及整体架构。通过Clang+LLVM的实际编译案例,展示了从C代码到可执行文件的全过程,突显了LLVM在编译器领域的创新与优势。
54 3
|
2月前
|
运维 持续交付 云计算
深入解析云计算中的微服务架构:原理、优势与实践
深入解析云计算中的微服务架构:原理、优势与实践
73 1
|
2月前
|
存储 数据采集 弹性计算
Codota的存储架构通过多种方式保障数据安全
Codota的存储架构通过多种方式保障数据安全
31 4
|
2天前
|
机器学习/深度学习 算法 PyTorch
深度强化学习中SAC算法:数学原理、网络架构及其PyTorch实现
软演员-评论家算法(Soft Actor-Critic, SAC)是深度强化学习领域的重要进展,基于最大熵框架优化策略,在探索与利用之间实现动态平衡。SAC通过双Q网络设计和自适应温度参数,提升了训练稳定性和样本效率。本文详细解析了SAC的数学原理、网络架构及PyTorch实现,涵盖演员网络的动作采样与对数概率计算、评论家网络的Q值估计及其损失函数,并介绍了完整的SAC智能体实现流程。SAC在连续动作空间中表现出色,具有高样本效率和稳定的训练过程,适合实际应用场景。
20 7
深度强化学习中SAC算法:数学原理、网络架构及其PyTorch实现
|
2月前
|
SQL Java 数据库连接
Mybatis架构原理和机制,图文详解版,超详细!
MyBatis 是 Java 生态中非常著名的一款 ORM 框架,在一线互联网大厂中应用广泛,Mybatis已经成为了一个必会框架。本文详细解析了MyBatis的架构原理与机制,帮助读者全面提升对MyBatis的理解和应用能力。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
Mybatis架构原理和机制,图文详解版,超详细!
|
1月前
|
SQL 存储 关系型数据库
MySQL进阶突击系列(01)一条简单SQL搞懂MySQL架构原理 | 含实用命令参数集
本文从MySQL的架构原理出发,详细介绍其SQL查询的全过程,涵盖客户端发起SQL查询、服务端SQL接口、解析器、优化器、存储引擎及日志数据等内容。同时提供了MySQL常用的管理命令参数集,帮助读者深入了解MySQL的技术细节和优化方法。
|
2月前
|
存储 缓存 弹性计算
Codota的服务器存储架构
Codota的服务器存储架构
30 5
|
2月前
|
存储 缓存 弹性计算
Codota的存储架构
Codota的存储架构
37 3
|
2月前
|
开发者 容器
Flutter&鸿蒙next 布局架构原理详解
本文详细介绍了 Flutter 中的主要布局方式,包括 Row、Column、Stack、Container、ListView 和 GridView 等布局组件的架构原理及使用场景。通过了解这些布局 Widget 的基本概念、关键属性和布局原理,开发者可以更高效地构建复杂的用户界面。此外,文章还提供了布局优化技巧,帮助提升应用性能。
114 4

热门文章

最新文章