带你读《存储漫谈: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天前
|
设计模式 安全 Java
【分布式技术专题】「Tomcat技术专题」 探索Tomcat技术架构设计模式的奥秘(Server和Service组件原理分析)
【分布式技术专题】「Tomcat技术专题」 探索Tomcat技术架构设计模式的奥秘(Server和Service组件原理分析)
41 0
|
20天前
|
Cloud Native Linux 网络虚拟化
深入理解Linux veth虚拟网络设备:原理、应用与在容器化架构中的重要性
在Linux网络虚拟化领域,虚拟以太网设备(veth)扮演着至关重要的角色🌐。veth是一种特殊类型的网络设备,它在Linux内核中以成对的形式存在,允许两个网络命名空间之间的通信🔗。这篇文章将从多个维度深入分析veth的概念、作用、重要性,以及在容器和云原生环境中的应用📚。
深入理解Linux veth虚拟网络设备:原理、应用与在容器化架构中的重要性
|
15天前
|
存储 运维 关系型数据库
2024年最全ceph的功能组件和架构概述(2),Linux运维工程面试问题
2024年最全ceph的功能组件和架构概述(2),Linux运维工程面试问题
2024年最全ceph的功能组件和架构概述(2),Linux运维工程面试问题
|
15天前
|
存储 关系型数据库 分布式数据库
【PolarDB开源】深入PolarDB内核:探究存储计算分离架构的设计哲学
【5月更文挑战第20天】PolarDB是阿里巴巴的云原生分布式数据库,以其存储计算分离架构为核心,解决了传统数据库的扩展性和资源灵活性问题。该架构将数据存储和计算处理分开,实现高性能(通过RDMA加速数据传输)、高可用性(多副本冗余保证数据可靠性)和灵活扩展(计算资源独立扩展)。通过动态添加计算节点以应对业务流量变化,PolarDB展示了其在云时代应对复杂业务场景的能力。随着开源项目的进展,PolarDB将持续推动数据库技术发展。
58 6
|
15天前
|
存储 弹性计算 Cloud Native
AutoMQ:如何基于阿里云计算与存储产品实现云原生架构升级
AutoMQ:如何基于阿里云计算与存储产品实现云原生架构升级
|
20天前
|
运维 监控 安全
WLAN的组网架构和工作原理
WLAN的组网架构和工作原理
24 0
|
20天前
|
存储 移动开发 前端开发
【Uniapp 专栏】Uniapp 架构设计与原理探究
【5月更文挑战第12天】Uniapp是一款用于跨平台移动应用开发的框架,以其高效性和灵活性脱颖而出。它基于HTML、CSS和Vue.js构建视图层,JavaScript处理逻辑层,管理数据层,实现统一编码并支持原生插件扩展。通过抽象平台特性,开发者能专注于业务逻辑,提高开发效率。尽管存在兼容性和复杂性挑战,但深入理解其架构设计与原理将助力开发者创建高质量的跨平台应用。随着技术进步,Uniapp将继续在移动开发领域扮演重要角色。
【Uniapp 专栏】Uniapp 架构设计与原理探究
|
20天前
|
负载均衡 NoSQL 关系型数据库
深入浅出Redis(六):Redis的主从架构与主从复制原理
深入浅出Redis(六):Redis的主从架构与主从复制原理
|
20天前
|
存储 Cloud Native 对象存储
AutoMQ:如何基于阿里云计算与存储产品实现云原生架构升级
AutoMQ[1] 是新一代基于共享存储架构实现的云原生 Kafka。得益于其存算分离的共享存储架构,通过和阿里云合作,深度使用阿里云可靠、先进的云服务如对象存储OSS、块存储 ESSD、弹性伸缩ESS以及抢占式实例实现了相比 Apache Kafka 10倍的成本优势并且提供了自动弹性的能力。
83602 5
AutoMQ:如何基于阿里云计算与存储产品实现云原生架构升级
|
20天前
|
负载均衡 Java 开发者
Spring Cloud:一文读懂其原理与架构
Spring Cloud 是一套微服务解决方案,它整合了Netflix公司的多个开源框架,简化了分布式系统开发。Spring Cloud 提供了服务注册与发现、配置中心、消息总线、负载均衡、熔断机制等工具,让开发者可以快速地构建一些常见的微服务架构。