首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >使用SSD增强Ceph性能并对比测试

使用SSD增强Ceph性能并对比测试

作者头像
用户9314062
发布于 2022-05-20 13:43:43
发布于 2022-05-20 13:43:43
5K0
举报
文章被收录于专栏:LINUX开源玩家LINUX开源玩家

使用SSD增强Ceph性能并对比测试

几年前,用Proxmox Virtual Environment(一个VMWare Vsphere的开源替代,以后简称PVE)搭建了一个测试云平台,使用了PVE自带的分布式存储Ceph。加上PVE自带的KVM虚拟机和LXC容器,再配置了虚拟交换机Open vSwitch,勉强算是一个所谓的超融合构架。

当时没有考虑存储性能的问题,只是用一个万兆交换机把几个节点的几十块磁盘链接起来,后来在使用中感觉读取速度还行,写入确实太慢了。翻了些关于ceph的优化的文章,最好的办法是使用固态硬盘作为日志和缓存。

这次给每台主机增加了一块400G的固态硬盘,对比测试发现ceph的读写性能明显提升。测试不是很专业的评测,但对一般中小型企业,足够参考了。

测试

下面是比较测试结果,操作系统分别为windows 2003SP1 / win7SP1 / RedHat Enterprise Linux Enterprise Server release 5.11 (Carthage)

1. 基于windows 2003sp1的HD tune和CrystalDiskMark比较测试

  • Windows2003sp1测试使用一个是物理机上一个虚拟机,后者是把前者迁移到虚拟化平台上,存储分别是Adaptec Raid1和ceph
  • Windows2003sp1上该HD tune只能测试读性能,而CrystalDiskMark在物理机上测试写性能到”RAND4K Q32T16”的时候出现内存报错,所以结果不完整

HD tune测试读性能的结果

测试项目

最小(MB/s)

最大(MB/s)

平均(MB/s)

ceph

8.7

128.2

87

Adaptec Raid1

44.7

85.3

79

可见物理存储性能稳定,而虚拟存储会根据软件调用爆发。下面CrystalDiskMark的测试结果显示ceph的写性能也强于物理存储。

2. 基于Windows7的HD tune比较测试

  • win7虚拟机文件分别迁移到ceph、zfs(raidz1)和硬件阵列卡(MegaRAID SAS-3 Raid5)再分别运行HD tune

HD tune测试性能的结果(连续读写)

测试项目(Sequent)

Read(KB/s)

Write(KB/s)

ceph

2313964

23923

zfs raidz1

874807

25362

MegaRAID Raid5

1534464

3818681

HD tune测试性能的结果(4K随机读写)

测试项目(4KB random)

Read(IOPS)

Write(IOPS)

ceph

9221/115191

94/97

zfs raidz1

3521/32701

80/84

MegaRAID Raid5

9751/93914

4760/16415

读性能上ceph是最高的,写性能上还是硬件阵列卡强得多,这也是分布式存储的必然缺陷,毕竟纯软件写入三块磁盘才算完成。

3. 基于RHEL5的DD比较测试

这台虚拟机部分磁盘使用本地存储,部分磁盘使用ceph,如下图

在两个不同的路径分别创建文件,其中/test.img在ceph上,/u01/test.img在本地磁盘阵列(MegaRAID Raid5)上。

写测试使用命令:

其中bs分别设置为1024、4096和1M

代码语言:javascript
复制
dd if=/dev/zero of=/test.img bs=1024 count=1000

通过参数“oflag=dsync”测试不使用缓存的情况:

代码语言:javascript
复制
dd if=/dev/zero of=/test.img bs=1G count=1 oflag=dsync

读测试使用写测试生成的文件:

代码语言:javascript
复制
dd if=/dev/zero of=/test.img bs=1G count=1

同样通过参数“oflag=dsync”测试不使用缓存的情况:

代码语言:javascript
复制
dd if=/dev/zero of=/test.img bs=1G count=1 oflag=direct

注意每次读测试先清除系统内存的数据缓存:

代码语言:javascript
复制
echo 3 | tee /proc/sys/vm/drop_caches

测试结果如下:

写性能比较测试

测试项

有缓存1024

有缓存2048

有缓存4096

有缓存1M

无缓存1G

无缓存1M

无缓存1024

Raid5

452 MB/s

668 MB/s

927 MB/s

1.2 GB/s

207 MB/s

478 MB/s

1.8 MB/s

Ceph

405 MB/s

665 MB/s

906 MB/s

1.2 GB/s

9.8 MB/s

7.7 MB/s

39.9 kB/s

读性能比较测试

测试项

有缓存1G

有缓存1M

无缓存1G

Raid5

1.5 GB/s

2.2 GB/s

1.1 GB/s

Ceph

1.9 GB/s

4.2 GB/s

7.4 MB/s

有缓存的情况下,硬件阵列卡写性能略胜,ceph读性能大胜(应该是分布式读取的好处)。

无缓存的情况下,ceph无论读写性能简直惨不忍睹。

总结

通过上面的测试,大家都能感受到缓存对存储性能的巨大提升,我们也能更好的理解为什么存储硬件商们纷纷宣传自己的SSD缓存了。

最后总结:

  1. 不同的测试工具和方法得到的性能数值差异不小,比如第一个windows2003sp1下面的HD tune和CrystalDiskMark值差异很大,但是两种存储对比是明显的。
  2. 无论什么存储,缓存都很重要!
  3. 如果你的分布式存储性能不高,立刻上SSD做缓存!当然,钱多的可以全SSD。

附

1. PVE部分组件版本

代码语言:javascript
复制
# pveversion -v
proxmox-ve: 5.4-2 (running kernel: 4.15.18-19-pve)
pve-manager: 5.4-13 (running version: 5.4-13/aee6f0ec)
pve-kernel-4.15: 5.4-7
....
ceph: 12.2.12-pve1
...
qemu-server: 5.0-54
...
zfsutils-linux: 0.7.13-pve1~bpo2

2. Win7自带的测试程序

WIN7中有个winsat可以测试硬件性能,我也用它测试了磁盘,只是生成的xml文件太多行,眼睛都看花了,有兴趣的朋友可以自己试试,下面是测试D盘的例子:

代码语言:javascript
复制
winsat disk -flush -drive d -xml d:\raidN8.txt
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-11-22,如有侵权请联系 cloudcommunity@tencent.com 删除
目录
  • 1. 基于windows 2003sp1的HD tune和CrystalDiskMark比较测试
  • 2. 基于Windows7的HD tune比较测试
  • 3. 基于RHEL5的DD比较测试
  • 总结
  • 附
    • 1. PVE部分组件版本
    • 2. Win7自带的测试程序
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档