存储技术
浪潮SSD采用浪潮自主开发的固件架构和硬件设计,具备高性能、高耐用性、高可靠的特点,支持高速稳定的读写IOPS和带宽,极低的抖动延时,可应用于系统层、性能层、存储层,面向数据库、云服务、分布式存储、大数据等场景;Curve 是云原生计算基金会 (CNCF) Sandbox 项目之一,由网易主导开源,是一款高性能、易运维、云原生的分布式存储系统,由块存储 CurveBS 和文件系统 CurveFS 两部分组成( GitHub:https://github.com/opencurve/curve)。浪潮联手网易,基于 Curve 块存储v1.2.4版本,将Curve 部署在 NVMe磁盘上,对比 Ceph 在同样环境下的性能,让大家对 Curve 在 NVMe 环境下的性能有直观的了解。
1. 测试环境配置
本次测试采用浪潮服务器 SA5112M6,磁盘采用三个节点每个节点八块浪潮 INSPUR-NS8610G1U320 NVMe进行测试,此次采用的NVMe SSD具有极高的性能,产品4K随机写IOPS可达320K, 本次在加载业务的条件下实测单盘性能 4k 随机写 IOPS 为240k,512k 顺序写极限带宽 3440MiB/s。
版本和软件配置信息:
2.测试工具及脚本
测试工具采用 FIO (官方仓库 axboe/fio①),测试脚本参考如下:
Curve块存储
Ceph
其中,Curve 端的测试采用Curve cbd engine,我们 fork 了axboe/fio 并对接 Curve client sdk 即 curve cbd engine,该仓库在 opencurve/fio②。
此外,Curve 块存储支持条带化卷,因此我们还测试了 Curve 使用条带情况下的性能,其中的条带卷参数和条带化卷创建命令如下:
curvecreate --filename /test0 --length 1024 --user test --stripeUnit 65536 --stripeCount 64
另外,对于单卷和多卷读的测试,在进行读之前,需要对卷进行一遍预写,将卷写满,否则测试数据将因为 client 直接返回 0 而导致性能不准,这一操作 Curve参考脚本如下:
sudo ./fio_--ioengine=cbd --cbd=/test0 --size=1024G --bs=1M --direct=1 --group_reporting--time_based --rw=write --iodepth=512 --numjobs=1 -name=fu
3.测试结果
单卷测试
单卷 4k 随机写测试:
对比 Curve 与 Ceph的单卷小 IO随机写性能来看,Curve 的性能远优于于Ceph 的性能(QD256,达到约319%);
从 QD1 的时延来看 Curve 的单路时延仅 Ceph 的50%。
单卷 512k 随机写测试:
Curve 在单卷大 IO 顺序写的场景下,具有和 Ceph 相当的性能;
特别地,当 Curve 采用条带化卷之后,可以显著的改善Curve大IO顺序写场景下的性能。
单卷 4k 随机读测试:
Curve相比于ceph在单卷小IO随机读的场景下,具有明显优于ceph的性能(QD256时,达到266%)。
单卷 512k 随机读测试:
在单卷大IO顺序读的场景下,Curve与cpeh性能相当,同样时延条带化之后,Curve的大IO顺序读场景下的带宽有明显改善。
多卷测试
多卷 4k 随机写测试:
多卷 4k 随机读测试:
从多卷小IO的随机读写测试来看:
小 IO 随机写 Ceph 比 Curve 先到达CPU 性能瓶颈,因此 Curve 更能发挥后端的性能,总体性能方面,IOPS 也比 Ceph 好约165%;
小 IO 随机读 Ceph 也比 Curve 先到达网卡的瓶颈,在对 Ceph 继续增加压力(jobs加到5)之后,两者后端性能相当,总的来说,Curve 的性能应当也是好于 Ceph。
多卷 512k 随机写测试:
多卷 512k 顺序读测试:
从多卷大IO的顺序读写来看,Curve 和Ceph 的性能基本相当。
4.后记
上述测试中,无论是 Curve 还是 Ceph 均不能完全发挥 浪潮NVMe SSD的性能。目前 Ceph 已经支持使用 spdk 访问 NVMe SSD,性能也有较大提升。网易Curve 支持spdk 的版本正在开发中,待相关版本发布后,再与 Ceph 的 spdk 版本对比,敬请期待。
全部0条评论
快来发表一下你的评论吧 !