加速 mdadm
软RAID的重建和重同步¶
在完成 mdadm构建RAID10 之后,检查 mdstat
:
检查md状态¶
cat /proc/mdstat
可以看到 md10
在缓慢地 rsync
:
检查md状态可以看到RAID正在构建¶
Personalities : [raid10]
md10 : active raid10 nvme11n1p1[11] nvme10n1p1[10] nvme9n1p1[9] nvme8n1p1[8] nvme7n1p1[7] nvme6n1p1[6] nvme5n1p1[5] nvme4n1p1[4] nvme3n1p1[3] nvme2n1p1[2] nvme1n1p1[1] nvme0n1p1[0]
22499205120 blocks super 1.2 512K chunks 2 near-copies [12/12] [UUUUUUUUUUUU]
[>....................] resync = 0.3% (75593088/22499205120) finish=1803.0min speed=207272K/sec
bitmap: 168/168 pages [672KB], 65536KB chunk
unused devices: <none>
这个同步时间在海量存储上非常缓慢: 例如 12块 NVMe存储 构建的 mdadm构建RAID10 ,同步速度只有 200M/s 速度,预计需要 30 小时 (1803.0min)
/proc/sys/dev/raid/{speed_limit_max,speed_limit_min}
内核参数¶
/proc/sys/dev/raid/speed_limit_min
是导致同步缓慢的关键,默认值是 1000
(KB),( /proc/sys/dev/raid/speed_limit_max
默认值是 200000
20w )
修改RAID同步速度,放大10倍¶
sysctl -w dev.raid.speed_limit_max=2000000
sysctl -w dev.raid.speed_limit_min=10000
然后再次观察 mdstat
就可以看到同步速度大约增加了5倍(大约900MB/s),预计同步只需要6个小时(371.9min):
调整RAID同步速度,放大10倍后,同步速度加快到5倍¶
Personalities : [raid10]
md10 : active raid10 nvme11n1p1[11] nvme10n1p1[10] nvme9n1p1[9] nvme8n1p1[8] nvme7n1p1[7] nvme6n1p1[6] nvme5n1p1[5] nvme4n1p1[4] nvme3n1p1[3] nvme2n1p1[2] nvme1n1p1[1] nvme0n1p1[0]
22499205120 blocks super 1.2 512K chunks 2 near-copies [12/12] [UUUUUUUUUUUU]
[==>..................] resync = 10.0% (2262684480/22499205120) finish=371.9min speed=906662K/sec
bitmap: 153/168 pages [612KB], 65536KB chunk
unused devices: <none>
其他加速方法…