Системным администраторам часто приходится сталкиваться с программными массивами в Linux. Создавать, восстанавливать, менять диски. Если массив большой, то процесс синхронизации (ресинхронизации) или восстановления массива может занимать часы или даже дни.
mdadm использует переменные, которые задают максимальную и минимальную пропускную способность синхронизации. По умолчанию минимальная скорость синхронизации 1000 Кб/сек, а максимальная — 200000 Кб/сек. Посмотреть текущие значения:
cat /proc/sys/dev/raid/speed_limit_min
cat /proc/sys/dev/raid/speed_limit_max
Эти переменные можно изменять, тем самым управляя скоростью синхронизации массива.
Если вы используете SSD или NVME диски, то скорость перестроения массива можно значительно увеличить.
Рассмотрим пример, у меня есть программный RAID 1 из NVME дисков. По спецификации последовательная запись данных в данной модели диска может достигать 1500 Мб/сек. Это гораздо больше чем разрешённые 200000 Кб/сек.
Пример. Имеем массив, который восстанавливается на сервере с небольшой нагрузкой.
Видно, что скорость восстановления 210634 Кб/сек. Увеличим максимальную скорость до 1200 Мб/сек (примерно):
echo 1200000 > /proc/sys/dev/raid/speed_limit_max
Скорость синхронизации 987268 Кб/сек. До 1200 Мб/сек не поднялось, поскольку запись не совсем последовательная, да и другие операции кроме синхронизации в массиве идут. Сервер не сильно нагружен, но нагружен. Но мы увеличили скорость синхронизации почти в 5 раз!