「Ceph」- 性能测试,块存储性能

问题描述

在 Ceph 上线前,需要进行性能测试,以确定 Ceph 是否能够满足自己的场景需求。我们的目的是清楚掌握当前 Ceph Cluster 性能,所以要针对 Ceph Cluster 进行性能测试。

解决方案

在进行测试时,我们要清楚以下几点:

测试对象

Hardware:Network;Raw Block Device;
Ceph Cluster:RDB;CephFS;RGW;

测试指标

IOPS、MBPS、Latency;

测试方法

在宣布测试结果时,需要说明该测试的工具、参数、方法,以便于比较。

测试工具:

1)Fio:灵活的I/O测试工具,通过其广泛的配置选项,测试各种复杂的I/O性能。它拥有适用于本地块设备和RBD的插件,这意味着可以直接从Ceph集群测试RBD,也可以通过Linux内核驱动程序将RBD映射到客户端,然后使用Fio对通过客户端映射的块设备进行I/O性能测试。

2)S3bench:提供了针对兼容S3接口的基本吞吐量测试功能。它执行一系列put操作,然后执行一系列get操作,并显示相应的统计信息。该工具使用AWS GoSDK。

3)Ping:除了能够诊断许多网络问题外,Ping对网络连接的延迟测试也非常有用。

4)iPerf:其允许进行一系列网络测试,以确定两台服务器之间的带宽。该工具是最常用的网络性能测试工具。

5)RADOS:Ceph自带的性能测试工具,包括对带宽等指标的全面测试。

测试参数:

在测试过程中,我们将调整 IO Size、寻址空间、队列深度、读写模式、随机/顺序模式 等等参数;

测试方法:

测试是为了对比,所以需要定性和定量。基准测试,实际上是一种比较。基准测试(benchmarking)是一种测量和评估软件性能指标的活动。你可以在某个时候通过基准测试建立一个已知的性能水平(称为基准线),当系统的软硬件环境发生变化后,再进行一次基准测试以确定那些变化对性能的影响。这是基准测试最常见的用途。

基准测试可以在不同层级执行:

第一步、获取硬件基准性能(针对存储集群底层硬件的基准测试)

如果想要知道 Ceph Cluster 性能,那首先要知道可能的集群最大性能。而最大性能不可能超过基础设施的性能,所以我们首先将针对硬件进行独立测试,以获取特定硬件的最大性能;

我们需要获取两个基础设施的指标:

1)磁盘:Disk Performance

2)网络:Benchmark on Network

第二步、获取集群基准性能(关键指标的上层基准测试,比如块存储、对象网关等等)

当完成硬件基准测试后,我们已经知道性能基线,可以开始进行 Ceph Cluster 的性能测试,以检查集群是否具有相近的性能;

1)针对 RBD 测试:RBD Benchmarking

2)针对 MDS 测试(File System)

3)针对 RGW 测试:S3 Benchmarking

参考文献

BENCHMARK CEPH CLUSTER PERFORMANCE