у меня возникла следующая проблема с RAID1 программным raid разделом на моей системе Ubuntu (10.04 LTS, 2.6.32-24-server в случае, если это имеет значение).
один из моих дисков (sdb5) сообщил об ошибках ввода-вывода и поэтому был помечен как неисправный в массиве. Затем массив был разрушен одним активным устройством. Поэтому я заменил жесткий диск, клонировал таблицу разделов и добавил все новые разделы в массивы raid. После синхронизации все разделы оказались в порядке, имея 2 активных устройства-кроме одного из них. Однако раздел, сообщивший о неисправном диске ранее, включал новый раздел не как активное устройство, а как запасной диск:
md3 : active raid1 sdb5[2] sda5[1]
4881344 blocks [2/1] [_U]
детальный взгляд показывает:
root@server:~# mdadm --detail /dev/md3
[...]
Number Major Minor RaidDevice State
2 8 21 0 spare rebuilding /dev/sdb5
1 8 5 1 active sync /dev/sda5
Итак, вот вопрос:как мне сказать моему raid, чтобы превратить запасной диск в активный? И почему он был добавлен в качестве запасного устройства? Воссоздание или повторная сборка массива не вариант, потому что это мой корневой раздел. И я не могу найти никаких намеков на эту тему в программный Raid HOWTO.
любая помощь будет оценили.
Текущее Решение
Я нашел решение моей проблемы, но я не уверен, что это реальный способ сделать это. При ближайшем рассмотрении моего raid я обнаружил, что sdb5 всегда был указан как запасное устройство:
mdadm --examine /dev/sdb5
[...]
Number Major Minor RaidDevice State
this 2 8 21 2 spare /dev/sdb5
0 0 0 0 0 removed
1 1 8 5 1 active sync /dev/sda5
2 2 8 21 2 spare /dev/sdb5
так считывание устройства sdb5 в массив md3 всегда заканчивалось добавлением устройства в качестве запасного.
наконец-то я воссоздал массив
mdadm --create /dev/md3 --level=1 -n2 -x0 /dev/sda5 /dev/sdb5
в котором работала.
но вопрос остается открытым для меня: есть ли лучший способ манипулировать сводками в суперблоке и сказать массиву, чтобы превратить sdb5 с запасного диска на активный диск? Мне все еще любопытен ответ.