Почему моя первоначальная ресинхронизация происходит так медленно? Первоначально cat /proc/mdstat сообщал ~ 30000K/sec.
Затем я увеличил /sys/block/md0/md/stripe_cache_size с 256 до 16384. Это увеличило скорость до ~50000K/sec. Я изменил /proc/sys/dev/raid/speed_limit_min с 1000 на 100000 и /proc/sys/dev/raid/speed_limit_max с 200000 на 400000, но это не помогло.Что еще я могу сделать, чтобы ускорить процесс?
Затем я увеличил /sys/block/md0/md/stripe_cache_size с 256 до 16384. Это увеличило скорость до ~50000K/sec. Запуск smartctl -t short /dev/sd[bcd] и позже smartctl -l selftest /dev/sd[bcd] не выявил никаких ошибок. Я изменил /proc/sys/dev/raid/speed_limit_min с 1000 на 100000 и /proc/sys/dev/raid/speed_limit_max с 200000 на 400000, но это не помогло.Я просто добавил три 2TB Western Digital SATA (их «зеленые» серии), которые подключаются к моему серверу Ubuntu 14.04. Они /dev/sd[bcd].
Я решил использовать их в массиве raid5 и настроить все так: 1) Создайте один раздел на каждом диске: fdisk /dev/sdb (тот же для sdc и sdd)
На основании этого сообщения в блоге я выбрал 2048 и 3907029128 как соответствующий первый и последний сектор на каждом диске. Эти цифры делятся на 4, так как эти диски являются дисководами сектора 4K.
Тип fs был установлен на da (Non-FS data), в соответствии с этим сообщением в блоге, который читает
. Это останавливает распространение авто-монтировать сценарии запуска для поиска суперблоков на дисках, помеченных как «fd», и пытаться установить их в смешном порядке.Поскольку массив RAID не имеет существенного значения для загрузки системы, это имеет смысл для меня.
1) Создайте один раздел на каждом диске: mdadm --create --verbose /dev/md0 --level=5 --chunk=2048 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1 --spare-devices=0 --force
Опция --chunk=2048 также была вдохновлена в этом сообщении в блоге , «помните, что логика« должна быть делимой на 4 ». [ ! d28]
Параметры --spare-devices=0 --force - это мое собственное творение, так как без них команда mdadm запустит процесс инициальной повторной синхронизации, но быстро замедлит до < 200K/sec, а затем выйдет с сообщением в /var/mail/root ], что /dev/sdd «возможно, не удалось». После этого вывод mdadm --detail /dev/md0 покажет, что /dev/sdd1 был перемещен как резервный диск. С момента добавления этих параметров повторная синхронизация продолжается.
atop показывает, что /dev/sdd - это Самый медленный
DSK | sdd | busy 103% | read 930 | write 304 | KiB/r 512 | | KiB/w 512 | MBr/s 46.50 | MBw/s 15.20 | avq 112.12 | avio 8.10 ms |
DSK | sdc | busy 85% | read 942 | write 384 | KiB/r 508 | | KiB/w 410 | MBr/s 46.75 | MBw/s 15.40 | avq 20.59 | avio 6.21 ms |
DSK | sdb | busy 73% | read 942 | write 387 | KiB/r 508 | | KiB/w 411 | MBr/s 46.75 | MBw/s 15.55 | avq 17.31 | avio 5.31 ms |
Все диски были куплены в другое время (поэтому я подозреваю, что они из разных серийных серий, месяцев друг от друга). /dev/sdb и /dev/sdc являются младшими и имеют кеш 64 МБ. /dev/sdd имеет кеш 32 МБ