У меня есть массив RAID5, на который я пытался добавить диск, чтобы увеличить массив, но он, похоже, застрял. Я нашел множество тем по аналогичным вопросам, но не могу найти четкого решения, что делать.
В основном я делал так:
mdadm --grow --raid-devices=6 --backup-file=/root/grow_md0.bak /dev/md0
Теперь я получаю:
[root@server ~]# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md0 : active raid5 sdg1[7] sde1[3] sdd1[5] sdc1[6] sda1[2] sdb1[0]
15627540480 blocks super 1.2 level 5, 512k chunk, algorithm 2 [6/6] [UUUUUU]
[>....................] reshape = 0.0% (4096/3906885120) finish=362200428.2min speed=0K/sec
Обратите внимание на скорость 0k / sec. Итак, 4096 изначально был 1024. Я попробовал это, основываясь на некоторых предложениях:
mdadm --grow --continue --backup-file=/root/grow_md0.bak /dev/md0
Это увеличило 1024 до 2048, но больше ничего не дало.
Я также заметил здесь, что /root/grow_md0.bak
даже не существует. Пара других попыток «продолжить» дала мне результат до 4096, но не более того.
Другая информация:
[root@server ~]# cat /sys/block/md0/md/stripe_cache_size
643
[root@server ~]# cat /sys/block/md0/md/sync_min
0
[root@server ~]# cat /sys/block/md0/md/sync_max
8192
[root@server ~]# cat /sys/block/md0/md/sync_speed
0
[root@server ~]# cat /proc/sys/dev/raid/speed_limit_min
50000
[root@server ~]# cat /proc/sys/dev/raid/speed_limit_max
200000
[root@server ~]# dmesg |grep md
[ 2734.805157] md: md_do_sync() got signal ... exiting
[ 2735.071850] md: reshape of RAID array md0
[ 2735.071854] md: minimum _guaranteed_ speed: 50000 KB/sec/disk.
[ 2735.071855] md: using maximum available idle IO bandwidth (but not more than 200000 KB/sec) for reshape.
[ 2735.071860] md: using 128k window, over a total of 3906885120k.
[ 2766.527554] md: md_do_sync() got signal ... exiting
[ 2766.578718] md: reshape of RAID array md0
[ 2766.578722] md: minimum _guaranteed_ speed: 50000 KB/sec/disk.
[ 2766.578723] md: using maximum available idle IO bandwidth (but not more than 200000 KB/sec) for reshape.
[ 2766.578728] md: using 128k window, over a total of 3906885120k.
[ 2950.824300] md: md_do_sync() got signal ... exiting
[ 2950.874411] md: reshape of RAID array md0
[ 2950.874418] md: minimum _guaranteed_ speed: 50000 KB/sec/disk.
[ 2950.874420] md: using maximum available idle IO bandwidth (but not more than 200000 KB/sec) for reshape.
[ 2950.874427] md: using 128k window, over a total of 3906885120k.
[ 2974.287731] md: md_do_sync() got signal ... exiting
[ 2974.365615] md: reshape of RAID array md0
[ 2974.365620] md: minimum _guaranteed_ speed: 50000 KB/sec/disk.
[ 2974.365621] md: using maximum available idle IO bandwidth (but not more than 200000 KB/sec) for reshape.
[ 2974.365625] md: using 128k window, over a total of 3906885120k.
Помогло бы изменение чего-то здесь? Я наткнулся speed_limit_min
до 50000, но, похоже, это меня ни к чему не привело, так как он застрял, не медленно.
РЕДАКТИРОВАТЬ Я пробовал обновить stripe_cache_size
на 16384 безрезультатно.
Итак, после тонны поисков я наконец наткнулся на эту ссылку: https://www.spinics.net/lists/raid/msg45107.html
Что определило это:
echo max > /sys/block/md0/md/sync_max
Это включило синхронизацию. Надеюсь, это поможет всем, кто ищет ответ.
Меня устраивает. Мне просто нужно использовать (потому что разрешение):
sudo nano /sys/block/md4/md/sync_max
и сохраните строку: max
вы также можете использовать команду:
echo max |sudo tee /sys/block/md4/md/sync_max