MDADM位图对RAID性能的影响

2020年4月6日星期一 类别:存储

简介

我知道大多数具有密集存储工作负载的人不会再在硬盘上运行这些工作负载了,这艘船很久以前就起航了。ob体育下载ssd已经取代了它们(或“云”)的位置。

对于那些在Linux软件RAID设置中使用硬盘驱动器并运行产ob体育下载生大量随机IOPS的工作负载的少数人来说,这可能仍然是相关的。

我不确定位图对基于固态驱动器的MDADM软件RAID阵列的影响有多大,因为我没有测试过它们。

位图的用途

缺省情况下,使用MDADM创建新的软件RAID时,还会配置位图。的位图的用途是在阵列不同步的情况下加速RAID阵列的恢复。

位图不会帮助加快从驱动器故障中恢复的速度,但是在写操作期间,由于硬复位或电源故障,RAID阵列可能会失去同步。

性能影响

在对各种RAID阵列进行基准测试时,我发现非常糟糕随机写操作IOPS性能。无论测试条件是什么,我都获得了单个驱动器的随机写性能,尽管RAID阵列应该表现得更好。

然后我注意到数组配置了位图。只是为了测试目的,我删除了所有的位图:

/dev/md0 . Mdadm——grow——bitmap=none

随机写IOPs立即得到改善。这个资源解释了为什么:

如果给出了单词internal,那么位图将与数组中的元数据一起存储,因此将在所有设备上复制。

所以当你向RAID阵列写入数据时,位图也会不断更新。由于该位图位于数组中的每个驱动器上,因此很明显这会降低随机写IOPS。

一些性能影响的例子

位图禁用

一个带有8 x 7200 RPM驱动器的RAID 5阵列的示例。

nobitmap

另一个10.000 RPM驱动器的例子:

10 knobitmap

启用位图(内部)

我们观察到总体随机写IOPs性能显著降低:

bitmapenabled

对于10 000 RPM的驱动器也是如此。

10 kbitmap

外部位图

您可以保留位图,但通过将位图放在单独的SSD上,仍然可以获得很大的随机写IOPS。因为我的启动设备是SSD,我测试这个选项是这样的:

mddadm——grow——bitmap=/raidbitmap /dev/md0

我注意到出色的随机写IOPS这个外部位图,类似于完全没有位图的运行。外部位图有其自身的风险和注意事项,因此请确保它真正符合您的需求。

注意:外部位图只适用于ext2和ext3。在其他文件系统上存储位图文件可能会导致严重的问题。

结论

对于构建DIY NAS服务器和运行MDADM RAID阵列的家庭用户,我建议保留位图启用.对顺序文件传输的影响可以忽略不计,快速RAID重新同步的好处是非常明显的。

只有当您的工作负载会在存储服务器上产生大量的随机写操作时,我才会考虑禁用位图。这种用例的一个例子是运行具有大量写工作负载的虚拟机。

更新位图块

根据评论中的反馈,我在一个新的RAID 5阵列上执行了一个基准测试,将——bitmap-chunk选项设置为128M(默认为64M)。

结果似乎很显著更糟糕的是随机写IOPS性能比默认值高。

bitmapenabled128

评论

Baidu
map