第 3 部分:RHCS Bluestore 性能可扩展性(3 与 5 个节点)
简介 ¶
欢迎来到性能博客系列的第 3 集。在本博客中,我们将解释在扩展 RHCS 集群的 Ceph OSD 节点数量时获得的性能提升。
传统的存储纵向扩展架构围绕两个控制器构建,连接到磁盘存储架。当控制器达到 100% 利用率时,就会产生性能瓶颈。一旦发生这种情况,添加磁盘存储架并不能提供性能提升,而只是增加容量。纵向扩展架构通过添加单个节点来提供容量和性能,从而消除了这种架构缺陷。添加节点时,性能和容量会同时增加。Red Hat Ceph Storage 是一种真正的纵向扩展解决方案,随着您添加存储节点,性能几乎呈线性增长。
Red Hat Ceph Storage 的灵活纵向扩展功能消除了与海量数据增长相关的许多挑战,允许在不中断地添加和删除集群内的节点时,线性提高性能和容量。纵向扩展架构还允许跨工作负载传输资源并自动执行耗时的迁移,从而无需维护窗口和数据丢失风险。
执行摘要 ¶
- 对于小型块(4KB)随机读写混合工作负载,添加 60% 的额外硬件资源可提供高达 95% 更高的 IOPS,平均延迟和尾延迟分别降低 46% 和 44% 。
- 大型块(1M)随机读取工作负载被发现受到客户端网络饱和的限制,但仍显示 9.8 GB/s 的吞吐量。
- 大型块(1M)随机写入工作负载显示与 3 节点集群相比,吞吐量提高了 67%,直到受到介质饱和的限制。
纵向扩展基准测试方法 ¶
请参阅博客第 1 集,其中我们详细介绍了标准的基准测试方法。纵向扩展测试的唯一补充是,我们首先使用 RHCS 3 节点集群运行测试,然后使用 5 节点 RHCS 集群重复完全相同的测试。每个存储节点都有 7 个介质设备,并且我们配置了每个驱动器 2 个 OSD。因此,向集群添加 2 个新节点使我们获得了 14 个物理设备,即 28 个 Ceph OSD,这几乎是 40% 的额外资源/容量。
第 1 部分:纵向扩展小型块大小(4KB)性能 ¶
关键要点 ¶
- 添加 60% 的额外硬件资源可提供高达 95% 更高的 IOPS,平均延迟降低 46%,尾延迟降低 44%。
总结 ¶
RHCS 可扩展性测试包括在一个 3 节点 Ceph 集群中添加 2 个额外的节点,使总数为 5 个节点。在 3 个节点和 5 个节点配置期间,针对随机读取、随机写入和随机读取写入 70/30 混合工作负载记录了小型块(4K)性能。
如表 1 和图 1 所示,我们观察到将集群资源扩展 60% 可提供高达 95% 更高的 IOPS,平均延迟降低 46%,随机读写 70/30 混合工作负载(IO 深度 32)的尾延迟降低 44%,直到性能受到介质和 OSD 节点 CPU 的瓶颈。向现有集群添加节点不仅可以提高空间容量和性能(吞吐量/带宽),还可以降低客户端工作负载的平均延迟和尾延迟。
| 5 节点 Ceph 集群性能与 3 节点 Ceph 集群性能比较 | |||
| 工作负载 | IOPS | 平均延迟 | 尾延迟 |
| 随机读取 | 高 55% | 低 29% | 低 30% |
| 随机读写 | 高 95% | 低 46% | 低 44% |
| 随机写 | 高 77% | 低 40% | 低 38% |

根据这些结果,显而易见的是,您可以根据您的性能需求从较小的集群开始,然后随着性能需求的增长,只需添加额外的存储节点即可进行纵向扩展。
仅供娱乐,我们使用 IO 深度 64 运行了另一个迭代,并绘制了使用 3 个节点和 5 个节点 Ceph 集群增加客户端负载时的性能图。如图 2 所示,与 3 节点集群相比,具有 5 个节点的 RHCS 性能始终更高,直到受到系统资源的限制,达到 140 个客户端。因此,通过向现有系统添加 60% 更多的硬件资源,我们观察到 IOPS 提高了 100% 以上,平均延迟提高了 60%,尾延迟提高了 50%。

图 2:3 节点与 5 节点。客户端负载测试。IOPS 与延迟
第 2 部分:纵向扩展大型块大小(1M)性能 ¶
关键要点 ¶
- 随机读取性能被发现受到客户端网络饱和的限制,但仍设法显示 9.8GB/s 的聚合吞吐量。
- 5 节点 Ceph 集群与随机写入和读写(70/30)混合工作负载相比,吞吐量提高了 67% 和 15%,直到受到 OSD 节点介质饱和的限制。
摘要 ¶
与小型块测试类似,对于大型块可扩展性测试,我们在 3 节点 Ceph 集群中添加了 2 个额外的节点,使总数为 5 个节点。在 3 个节点和 5 个节点配置期间,针对随机读取、随机写入和随机读取写入 70/30 混合工作负载记录了大型块(1M)性能。如图 3 所示,直到受到系统资源限制,观察到的随机读取、随机读写(70/30)混合和随机写入大型块(1M)工作负载的最大吞吐量分别为 9.8GB/s、8.5GB/s 和 6.1GB/s。
在大型块测试期间,我们观察到不同的测试模式存在瓶颈。随机读取测试受到客户端网络聚合吞吐量的限制,这就是我们看到性能停留在 9.8GB/s 的原因。如果添加了额外的客户端节点或 Ceph 集群与客户端之间的双向带宽,我们预计可以扩展聚合随机读取吞吐量。随机读写(70/30)混合和随机写入测试被发现受到 OSD 介质的限制,导致服务时间增加,因此性能没有超过某个点。添加更多的 OSD 节点可以扩展随机读写混合和随机写入测试的性能。由于上述原因,添加 2 个额外节点后的整体性能提升与我们在小型块工作负载中看到的不同。

图 3:3 节点与 5 节点。吞吐量 GB/s
接下来 ¶
继续基准测试博客系列,在下一节中,将解释在 RHCS BlueStore 高级基准测试期间捕获的结果,涵盖“每个 NVMe 的 OSD 数量”、“Intel Optane 与无 Optane 用于元数据”、“副本 2 与 3”、“Bluestore 缓存 8GB 与 4GB”、“Bluestore 压缩比较”和“CPU 核心与 NVMe 比率”等主题。