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

Материал из support.qbpro.ru

оригинал статьи: http://www.opennet.ru/tips/info/2398.shtml


Перестроение большого программного RAID в Linux может занимать десятки часов. Скорость синхронизации mdraid зависит от proc-переменных/proc/sys/dev/raid/speed_limit_max и /proc/sys/dev/raid/speed_limit_min, задающих максимальную и минимальную пропускную способность синхронизации данных. По умолчанию значения этих переменных выставлены в 200000 и 1000 (Кб). Манипулируя данными параметрами можно существенно увеличить скорость перестроения RAID-массива.

Подобрать оптимальные значения можно в зависимости от производительности текущей дисковой системы, чем выше скорость синхронизации, чем меньше ресурсов остается для обработки текущих дисковых операций. Установим минимальную скорость в 50 Мб/сек, а максимальную в 300 Мб/cек:

  echo 50000 > /proc/sys/dev/raid/speed_limit_min
  echo 300000 > /proc/sys/dev/raid/speed_limit_max

Посмотреть текущую скорость ресинхронизации можно в выводе команды:

  cat /proc/mdstat

В результате вышеуказанных манипуляций время перестроения RAID было уменьшено с 22 до 2 часов.

Если для рабочего RAID включить режим сохранения битовых карт (write-intent bitmap), то можно дополнительно увеличить скорость ресинхронизация после развала RAID в результате краха системы или экстренного отключения питания. Обратной стороной данного режима является небольшое замедление операций записи данных в RAID:

  mdadm --grow --bitmap=internal /dev/md0

Отключить данный режим можно так:

  mdadm --grow --bitmap=none /dev/md0