У мене виникає наступна проблема з рейдовим розділом програмного забезпечення RAID1 на моїй системі Ubuntu (10.04 LTS, 2.6.32-24-сервер на випадок, якщо це має значення).
Один з моїх дисків (sdb5) повідомив про помилки вводу / виводу, тому був помічений несправним у масиві. Потім масив був деградований одним активним пристроєм. Отже, я замінив жорсткий диск, клонував таблицю розділів і додав усі нові розділи до моїх рейдових масивів. Після синхронізації всі розділи закінчилися нормально, маючи 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
Ось тут питання: Як я можу сказати моєму рейду перетворити запасний диск в активний? І чому його додали як запасний пристрій? Відтворення або повторне збирання масиву не є варіантом, оскільки це мій кореневий розділ. І я не можу знайти жодних натяків на цю тему в Software Raid HOWTO.
Будь-яка допомога буде вдячна.
Поточне рішення
Я знайшов рішення своєї проблеми, але не впевнений, що це власне спосіб це зробити. Детальніше ознайомившись з моїм рейдом, я виявив, що 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 із запасного диска на активний диск? Мені все одно цікаво відповісти.