Перестроение большого software RAID в Linux может занимать длительное время. Скорость синхронизации mdraid зависит от заданных параметров в proc-переменных /proc/sys/dev/raid/speed_limit_max и /proc/sys/dev/raid/speed_limit_min, задающих максимальную и минимальную пропускную способность синхронизации данных.
По умолчанию значения этих переменных выставлены в 200000 и 1000 (Кб). Манипулируя данными параметрами можно существенно увеличить скорость перестроения RAID-массива. Подобрать оптимальные значения можно в зависимости от производительности текущей дисковой системы, чем выше скорость синхронизации, чем меньше ресурсов остается для обработки текущих дисковых операций.
Установим минимальную скорость в 20 Мб/сек, а максимальную в 300 Мб/cек:
echo 20000 > /proc/sys/dev/raid/speed_limit_min
echo 300000 > /proc/sys/dev/raid/speed_limit_max
Посмотреть текущую скорость ресинхронизации можно в выводе команды:
cat /proc/mdstat
Проверим на системе:
[root@localhost ~]# cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sdb2[1] sda2[0]
1046528 blocks super 1.2 [2/2] [UU]
resync=DELAYED
bitmap: 1/1 pages [4KB], 65536KB chunk
md1 : active raid1 sdb3[1] sda3[0]
967191552 blocks super 1.2 [2/2] [UU]
[=======>.............] resync = 37.5% (363386240/967191552) finish=923.4min speed=10896K/sec
bitmap: 7/8 pages [28KB], 65536KB chunk
unused devices: <none>
[root@localhost ~]# cat /proc/sys/dev/raid/speed_limit_min
1000
[root@localhost ~]# echo "20000" > /proc/sys/dev/raid/speed_limit_min
[root@localhost ~]# cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sdb2[1] sda2[0]
1046528 blocks super 1.2 [2/2] [UU]
resync=DELAYED
bitmap: 1/1 pages [4KB], 65536KB chunk
md1 : active raid1 sdb3[1] sda3[0]
967191552 blocks super 1.2 [2/2] [UU]
[=======>.............] resync = 37.7% (365001088/967191552) finish=472.3min speed=21248K/sec
bitmap: 7/8 pages [28KB], 65536KB chunk
unused devices: <none>