Увеличение скорости перестроения программного RAID в Linux

Довольно часто перестроение (проверка) большого программного RAID в Linux может занимать десятки часов.

Но можно ли уменьшить время перестроения и увеличить скорость? Читаем ниже.

Максимальная и минимальная скорости перестроения (проверки) программного RAID в Linux ограничены двумя числами, посмотреть их можно так:

# cat /proc/sys/dev/raid/speed_limit_max
200000
# cat /proc/sys/dev/raid/speed_limit_min
1000

Значения указаны в КБ.

При дефолтных значениях скорость перестроения (проверки) программного RAID в Linux довольна низкая, у меня на большом массиве она была такая:

# watch --interval=1 cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 sdc1[1] sdd1[0]
      2907016056 blocks super 1.2 [2/2] [UU]
      [==============>......]  resync = 71.5% (2080883072/2907016056) finish=12357.4min speed=1165K/sec

Как видно из строки finish=12357.4min, окончание синхронизации мне грозит через примерно 8 дней, что немного удручает.

Теперь поменяем значения speed_limit_min и speed_limit_max:

# echo 200000 > /proc/sys/dev/raid/speed_limit_min
# echo 800000 > /proc/sys/dev/raid/speed_limit_max

Через пару минут (часов) можно посмотреть как изменилась скорость перестроения:

# watch --interval=1 cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 sdc1[1] sdd1[0]
      2907016056 blocks super 1.2 [2/2] [UU]
      [================>....]  resync = 82.8% (2407508288/2907016056) finish=232.5min speed=35792K/sec

finish=232.5min — это уже более радостная цифра :)

Ну и в заключении посмотрим детальную информацию о нашем массиве md1:

# mdadm -D /dev/md1
/dev/md1:
        Version : 1.2
  Creation Time : Thu Nov 32 10:42:15 2016
     Raid Level : raid1
     Array Size : 2907016056 (2772.35 GiB 2976.78 GB)
  Used Dev Size : 2907016056 (2772.35 GiB 2976.78 GB)
   Raid Devices : 2
  Total Devices : 2
    Persistence : Superblock is persistent

    Update Time : Tue Jan 30 23:02:16 2018
          State : clean, resync
 Active Devices : 2
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 0

 Rebuild Status : 83% complete

           Name : mysite.ru:1  (local to host mysite.ru)
           UUID : c163a3e8:06af0f86:08fa46a2:1ef03f1b
         Events : 1254

    Number   Major   Minor   RaidDevice State
       0       8       18        0      active sync   /dev/sdc1
       1       8       34        1      active sync   /dev/sdd1

Если вдруг мы захотим запустить принудительную проверку массива md1, то выполним:

echo check > /sys/block/md1/md/sync_action

На этом все, до скорых встреч. Если у Вас возникли вопросы или Вы хотите чтобы я помог Вам, то Вы всегда можете связаться со мной разными доступными способами.