我有一个 2 磁盘 MD raid1 阵列。其中一个驱动器速度很慢,所以我想更换它。但出于谨慎[1]和安全考虑,我想在移除速度慢的驱动器之前添加新的(第 3 个)驱动器并同步它,因为它速度很慢,但除此之外还可以正常工作并且上面有有效数据,我想避免在不得不这样做之前降低阵列的性能。
所以我添加了第三个磁盘,它开始同步,到目前为止一切都很好。但它只使用现有 2 个驱动器中的 1 个作为同步源,你知道吗,根据我所说的 50/50/90 规则[2],它使用慢速磁盘作为同步的 (唯一) 源。我可以看到它 (仅) 使用sar的慢速磁盘:
01:21:55 PM tps rkB/s wkB/s dkB/s areq-sz aqu-sz await %util DEV
01:22:00 PM 91.60 0.00 45147.30 0.00 492.87 0.14 1.48 11.26 sdb
01:22:00 PM 0.40 0.00 1.70 0.00 4.25 0.13 314.00 48.08 sde
01:22:00 PM 91.60 45145.60 1.70 0.00 492.87 3.41 37.26 88.30 sdd
01:22:00 PM 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 md0
sdd
是较慢的磁盘。如果改为从 MD 读取sde
,速度将大约是 4 倍:
# dd if=/dev/sde of=/dev/null bs=1M count=5000
5000+0 records in
5000+0 records out
5242880000 bytes (5.2 GB, 4.9 GiB) copied, 23.1946 s, 226 MB/s
坦率地说,我很惊讶 MD 如此简单,并且在重建时它不会读取所有磁盘,正是出于这种原因/情况。
那么,有什么方法可以强制在此同步中使用sde
,无论是补充sdd
还是替代?
PS 同步速度不受以下因素限制dev.raid.speed_limit_max
:
# sysctl -n dev.raid.speed_limit_max
20000000
[1]你可以说我偏执,但你知道,当你的阵列只剩下一个磁盘时,那个磁盘就会发生故障。
[2]如果某件事以某种方式发生的可能性是 50%,那么 90% 的情况下,它都会朝着你不想要的方向发展。
使用与直觉相反的“主要写入”选项。这告诉 MD 应避免使用该设备进行读取。将下面的 md123 替换为您的 MD 阵列的设备:
再次检查该州是否适用: