Как мне сказать mdadm, чтобы снова начать использовать отсутствующий диск в моем массиве RAID5?
У меня есть 3-х дисковый RAID-массив, работающий на моем сервере Ubuntu. Это работает безупречно более года, но недавно я был вынужден раздеть, переместить и восстановить машину.
Когда я собрал все это вместе и запустил Ubuntu, у меня были некоторые проблемы с дисками, которые не были обнаружены. Пару перезагрузок позже, и я решил эту проблему. Проблема сейчас в том, что при загрузке трехдисковый массив становится ухудшенным. Почему-то кажется, что Ubuntu создал новый массив и добавил недостающий диск.
Я пытался остановить новый массив из 1 диска и добавить отсутствующий диск, но я изо всех сил. При запуске я получаю это:
root@uberserver:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md_d1 : inactive sdf1[2](S)
1953511936 blocks
md0 : active raid5 sdg1[2] sdc1[3] sdb1[1] sdh1[0]
2930279808 blocks level 5, 64k chunk, algorithm 2 [4/4] [UUUU]
У меня есть два RAID-массива, и тот, который обычно появляется, когда md1 не появляется.
Я где-то читал, что звонит mdadm --assemble --scan
собрал бы отсутствующий массив, поэтому я попытался сначала остановить существующий массив, который запустил Ubuntu:
root@uberserver:~# mdadm --stop /dev/md_d1
mdadm: stopped /dev/md_d1
... а затем попытался сказать убунту, чтобы он снова поднял диски:
root@uberserver:~# mdadm --assemble --scan
mdadm: /dev/md/1 has been started with 2 drives (out of 3).
Итак, он снова запустил md1, но не извлекает диск из md_d1:
root@uberserver:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md1 : active raid5 sde1[1] sdf1[2]
3907023872 blocks level 5, 64k chunk, algorithm 2 [3/2] [_UU]
md_d1 : inactive sdd1[0](S)
1953511936 blocks
md0 : active raid5 sdg1[2] sdc1[3] sdb1[1] sdh1[0]
2930279808 blocks level 5, 64k chunk, algorithm 2 [4/4] [UUUU]
Что здесь не так? Почему Ubuntu пытается подобрать sdd1
в другой массив? Как мне вернуть этот недостающий диск обратно домой?
[Изменить] - я понял, что я не добавил md1 для автоматического запуска в mdadm.conf
, После добавления md1 в mdadm.conf
теперь он пытается смонтировать массив при запуске, но он все еще отсутствует sdd1
, Если я скажу ему попробовать и собрать автоматически, у меня сложится впечатление, что он знает, что ему нужно sdd1
но не могу использовать это:
root@uberserver:~# mdadm --assemble --scan
/dev/md1: File exists
mdadm: /dev/md/1 already active, cannot restart it!
mdadm: /dev/md/1 needed for /dev/sdd1...
Что мне не хватает?
1 ответ
Не уверен, что это был самый чистый способ решения проблемы, но, похоже, это снова помогло:
root@uberserver:~# mdadm --stop /dev/md_d1
mdadm: stopped /dev/md_d1
root@uberserver:~# mdadm --add /dev/md1 /dev/sdd1
mdadm: re-added /dev/sdd1
root@uberserver:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md1 : active raid5 sdd1[3] sde1[1] sdf1[2]
3907023872 blocks level 5, 64k chunk, algorithm 2 [3/2] [_UU]
[>....................] recovery = 0.0% (121728/1953511936) finish=1337.0min speed=24345K/sec
md0 : active raid5 sdg1[2] sdc1[3] sdb1[1] sdh1[0]
2930279808 blocks level 5, 64k chunk, algorithm 2 [4/4] [UUUU]
До сих пор не понимаю, почему он не может просто добавить диск обратно в:-/
Я столкнулся с аналогичной проблемой - возможно, из-за ослабления кабеля питания в моем массиве упал диск - поэтому mdstat показал [U_UU], и диск также исчез для других инструментов, таких как SeaChest. После переустановки всех разъемов диск снова появился, но mdadm не восстановился автоматически. Казалось, просто уронили.
me@server:~$ sudo mdadm --details /dev/md0
показывал, что диск удален, хотя он присутствовал, работал и имел правильные теги UUID.
Чтобы выздороветь, мне просто пришлось бежать:
me@server:~$ sudo mdadm --add /dev/md0 /dev/sdb1
и он немедленно добавил диск и начал восстановление (не нужно было сначала останавливать массив).