У меня есть массив Linux mdadm RAID 10, состоящий из 6 (SATA) дисков, сконфигурированных с n2 копиями.
При вытаскивании одного диска отказал другой в другой зеркальной паре. Оставив меня с:
$ cat /proc/mdstat
md2 : active raid10 sdb1[1] sdd1[5] sdc1[3] sdf1[2]
2929412352 blocks 64K chunks 2 near-copies [6/4] [_UUU_U]
Я хотел заменить 5-й диск и перестроить таблицу разделов: sfdisk -d /dev/sdf | sfdisk /dev/sde
Однако, когда я добавляю новый диск с mdadm -a /dev/md1 /dev/sde1
, mdadm начинает восстанавливать RaidDevice 0
$ mdadm -D /dev/md2
...
Number Major Minor RaidDevice State
6 8 66 0 spare rebuilding /dev/sde1
1 8 2 1 active sync /dev/sdb1
2 8 17 2 active sync /dev/sdc1
3 8 33 3 active sync /dev/sdd1
4 0 0 4 removed
5 8 49 5 active sync /dev/sdf1
Это не является серьезной проблемой, и мне просто нужно физически переместить диск 5 в слот для диска 1, чтобы сохранять разум при взгляде на коробку.
У меня вопрос, есть ли способ указать mdadm использовать новый диск для замены определенного RaidDevice? Я просмотрел страницы руководства, но не нашел подходящего варианта.
Я не встречал такой опции даже на аппаратных рейд-контроллерах. Вы можете добавить горячие резервы только для некоторого рейда, но не для указанного диска. Может быть, некоторые контроллеры так и делают, но не все ...
Насколько мне известно, у mdadm такой опции тоже нет. Но можно попробовать проделать такой трюк: сделать дамп суперблока (метаданных) целевого отказавшего диска (sde?) И загрузить его на свой запасной диск. Возможно, опция --re-add - делать то, что вы хотите, но я не уверен.
от человека: --re-add повторно добавить устройство, которое ранее было удалено из массива. Если метаданные на устройстве сообщают, что оно является членом массива, а используемый слот все еще свободен, тогда устройство будет добавлено обратно в массив в той же позиции.