您为什么只测试 2 个副本?!
像我这样的 SSD 从业者通常会选择测试 2 个副本的 Ceph,具体原因有很多,包括 SSD 比旋转式硬盘更可靠、使用 2 个副本时性能更高等等。但如果您确实需要至少 3 个副本,该怎么办? 这对我们超快速全 NVMe Ceph 参考架构的性能有何影响? 我很高兴您提出这个问题。
本篇博客文章简要介绍了基于英特尔® Purley 的全新 Ceph 参考架构的性能,该参考架构采用美光传输速度更快的 NVMe 硬盘——美光 9200 MAX (6.4TB)。
新的参考架构使用了基于 Ceph Luminous (12.2.1) 的 Red Hat Ceph Storage 3.0。对参考架构的测试仅限于 Filestore 的性能,因为它是 RHCS 3.0 当前支持的存储引擎。
性能受到的影响与人们在比较使用 2 个副本和使用 3 个副本时所预计的影响完全一致。4KB 随机写入的 IOPS 降低约 35%,读取保持不变,70/30 的 IOPS 降低约 25%。
块工作负载 |
使用 2 个副本时的 IOPS |
使用 3 个副本时的 IOPS |
使用 2 个副本时的平均延迟 |
使用 3 个副本时的平均延迟 |
4KB 随机读取 |
200 万 |
200 万 |
1.6 ms |
1.6 ms |
4KB 随机写入 |
363,000 |
237,000 |
5.3 ms |
8.1 ms |
4KB 70/30 读/写 |
781,000 |
577,000 |
1.4 ms 读取/3.5 ms 写入 |
1.7 ms 读取/5.4 ms 写入 |
该解决方案针对块性能进行了优化。使用 Linux 中的 Rados 块驱动进行随机小块测试,在 2 插槽存储节点中使铂级 8168 英特尔 Purley 处理器饱和。
每个存储节点有 10 个驱动器,该架构具有 232TB 的可用存储容量,可通过添加额外的 1U 存储节点进行扩展。
参考设计 – 硬件
测试结果和分析
Ceph 测试方法
Ceph 使用 FileStore 进行配置,每个美光 9200MAX NVMe SSD 运行 2 个对象存储守护进程 (OSD)。每个 OSD 使用 20GB 日志。Ceph 每个存储节点有 10 个驱动器,每个驱动器有 2 个 OSD,总计有 80 个 OSD,可用容量为 232TB。
所测试的 Ceph 存储池由 8,192 个归置组创建而成。2 个副本池的 Red Hat Ceph 3.0 用 100 个 75GB 的 RBD 图像进行测试,即 2 个副本池各存储 7.5TB 的数据,总计 15TB 数据。
3 个副本池的 Red Hat Ceph 3.0 用 100 个 50GB 的 RBD 图像进行测试,即 3 个副本池各存储 5TB 的数据,总计 15TB 数据。
使用 FIO 合成负载生成工具 对照 Rados 块驱动测量 4KB 随机块性能。
RBD FIO 4KB 随机读取性能
2 个副本池和 3 个副本池的 4KB 随机读取性能基本相同。
RBD FIO 4KB 随机写入性能
相比使用 2 个副本池,使用 3 个副本池时的 IOP 性能降低约 35%。平均延迟也增加了类似的幅度。
4KB 写入性能在 60 个 FIO 客户端时达到最优 IOPS 和延迟组合,其中使用 2 个副本池时 IOPS 为 363k、平均延迟为 5.3 ms,使用 3 个副本池时 IOPS 为 237k、平均延迟为 8.1 ms。此时,Ceph 存储节点上的平均 CPU 利用率超过 90%,限制了性能。
RBD FIO 4KB 随机 70% 读取/30% 写入性能
当从 2 个副本池变为 3 个副本池时,70/30 随机读/写工作负载的 IOPS 性能降低 25%。二者的读取延迟接近,3 个副本池的延迟略有增加。在写入延迟方面,3 个副本池要高出 50% 以上。
想要了解更多信息?
基于英特尔 Purley 平台的 RHCS 3.0 结合美光 9200 MAX NVMe SSD 的架构拥有超快的速度。请参阅最新发布的美光/Red Hat/Supermicro 参考架构。我将在 2018 年的 OpenStack 峰会上就我们的参考架构以及其他 Ceph 调优和性能主题作报告。届时会提供更多相关信息。敬请期待!
对我们的测试或方法有其他疑问? 请在下方留言,或者发送电子邮件至 ssd@micron.com。