如何提高Linux下软件RAID的重建速度
时间:2019-05-19 01:26:31 来源:igfitidea点击:
当我们学习RAID设备时,通常我们使用较小的磁盘来构建RAID阵列。
在这段时间里,当任何raid磁盘出现故障时,我们用一个新磁盘替换它。
然后raid重建只需要几分钟或几秒钟。
但请考虑,如果我们运行的是高存储容量服务器或任何备份驱动器,raid配置为多个tb大小,我们需要重新构建raid或由于一些问题开始重新构建。
它花费了大量的时间,并且我们需要一直允许' cat /proc/mdstat来检查状态。
现在要做的是,怎样才能加快raid重建速度。
这可以通过多种方式实现。
我们一般可以用下面的方法来改变内核参数。
检查当前恢复速度和状态
这里有个raid磁盘管理的一个服务器发生了故障,所以我们用另一个磁盘替换它并进行了配置。
RAID重建速度非常慢,你可以看到下面的输出。
# cat /proc/mdstat
Personalities : [raid1] md1 : active raid1 sdb2[0] sda2[1] 4193216 blocks [2/2] [UU] md2 : active raid1 sdb3[0] sda3[1] 968372864 blocks [2/2] [UU] [=====>......] check = 48.5% (470179584/968372864) finish=7698.8min speed=1078K/sec md0 : active raid1 sdb1[0] sda1[1] 4193216 blocks [2/2] [UU] resync=DELAYED unused devices: <none>
现在我检查内核参数配置最小和最大raid重建速度使用以下命令。
# cat /proc/sys/dev/raid/speed_limit_max 200000 # cat /proc/sys/dev/raid/speed_limit_min 1000
根据以上输出,我发现raid重构速度最小为1000kb /Sec/Disc,最大为200000kb /Sec/Disc。
提高最低RAID恢复速度
正如我们所看到的,最大速度看起来不错,但最低速度很低,我们需要增加。
在设置任何速度之前,请确保有足够的CPU和RAM资源。
更改还可能影响在同一服务器上运行的其他应用程序的速度。
使用下面的命令将最小速度设置为大约20MB/秒。
# echo "20000" /proc/sys/dev/raid/speed_limit_min
再次检查RAID恢复速度和状态
完成上述改变后,让我们再次检查raid重建速度使用相同的命令。
现在根据下面的命令输出速度是3426K/秒,比之前好。
# cat /proc/mdstat
Personalities : [raid1] md1 : active raid1 sdb2[0] sda2[1] 4193216 blocks [2/2] [UU] md2 : active raid1 sdb3[0] sda3[1] 968372864 blocks [2/2] [UU] [=====>......] check = 48.6% (470793472/968372864) finish=2419.7min speed=3426K/sec md0 : active raid1 sdb1[0] sda1[1] 4193216 blocks [2/2] [UU] resync=DELAYED unused devices: <none>