2020年更新:请小心影响随机写I/O性能。
请注意,在现代Linux发行版中,位图在默认情况下是启用的。它们不会帮助加速失败后的重建。但它将帮助重新同步由于电源故障或其他间歇原因而失去同步的阵列。
当磁盘发生故障或被踢出RAID阵列时,通常需要花费大量时间来恢复该阵列。我自己的20个磁盘阵列需要5个小时才能恢复一个驱动器。
如果能缩短时间不是很好吗?甚至到5秒?
虽然默认不启用,但您可以启用所谓的“位图”。根据我的理解,位图基本上是你的RAID阵列的映射,它描绘了如果驱动器故障,哪些区域需要重新同步。
这很好,因为我有问题,每30次重新启动,有时磁盘不会被识别,阵列降级。将磁盘添加回阵列将意味着系统将恢复5个多小时。
我启用了位图,在将一个丢失的磁盘添加回阵列后,阵列恢复了立即.
这不是很酷吗?
位mapsl有两种类型
- 内部:数组本身的一部分
- 外部:位于阵列外的外部驱动器上的文件
内部位图集成在数组本身中。保持位图是最新的可能会影响数组的性能。然而,我没有注意到任何性能下降。
外部位图是一个文件,它必须位于基于EXT2或EXT3的文件系统中,而不是在RAID阵列的顶部。所以这意味着你需要一个额外的驱动器来做这个,或者需要使用启动驱动器来做这个。我可以想象,这种解决方案对数组性能的影响较小,但维护起来有点麻烦。
我在我的RAID阵列上启用了一个内部位图,就像这样:
Mdadm——grow /dev/md5——bitmap=internal
这就是它的全部。你可以这样配置一个外部位图:
Mdadm——grow /dev/md5——bitmap=/some/directory/somefilename .使用实例
可能会有一些性能损失,但它似乎不会影响顺序吞吐量,这是我的特殊情况下唯一重要的事情。
对于大多数人,我建议配置一个内部位图,除非你真的知道为什么必须使用外部位图。