Увеличение скорости rebuild’a software RAID в Linux

Перестроение большого 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>