我们使用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重建速度被设定最低为 1000 KB/Sec/Disc 和最高200000 KB/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>
了解更多关于RAID设备信息
http://en.wikipedia.org/wiki/RAID