Raid1 з активною та запасною секцією


8

У мене виникає наступна проблема з рейдовим розділом програмного забезпечення 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 із запасного диска на активний диск? Мені все одно цікаво відповісти.


Що показує "cat / proc / mdstat"? Хіба це не просто відновлення, а «запасний» просто зникне, коли відновлення закінчиться? Що показує "mdadm --version"? Була стара помилка ... див. Mail-archive.com/linux-raid@vger.kernel.org/msg09818.html .
rems

Ні, це проблема. Перший фрагмент запитання показує вихід / proc / mdstat для масиву. Пристрій уже синхронізовано, але, як ви бачите, після успішного процесу синхронізації пристрій залишається запасним і не перетворюється на активний.
Даніель Барон

mdadm - v2.6.7.1
Даніель Барон

Відповіді:


1

Даніель: Спочатку двічі перевірте, чи запасна частина інтегрується в масив, зробивши:

cat / proc / mdstat

який повинен повідомити про те, чи триває процес збирання, і як довго очікувати, що це займе.

Якщо жодної будівлі не відбувається, то спробуйте наступне

mdadm / dev / md3 --remove / dev / sdb5

mdadm / dev / md3 --add / dev / sdb5

І повідомте про те, як це працює для вас. Докладнішу інформацію див. На http://linux.die.net/man/8/mdadm .


Дякую за допомогу, Ролник. Як ви бачите з мого першого фрагмента / proc / mdstat, у масиві відображаються обидва пристрої. Пристрій уже синхронізовано раніше (тут не показано) без проблем. Але після закінчення процесу відновлення пристрої не перетворилися на активний пристрій. Видалення та додавання знову не змінило цю поведінку.
Даніель Барон

1

Досить пізно, але це просто дозволить зробити запасний привід:

mdadm --grow /dev/md3 -n 2

Як говориться на сторінці сторінки:

Для створення, створення або зростання: -n, --raid-devices = Вкажіть кількість активних пристроїв у масиві. Це, плюс кількість запасних пристроїв (див. Нижче) повинно дорівнювати кількості компонентів-пристроїв (включаючи "відсутні" пристрої), які вказані в командному рядку для --create. Встановлення значення 1, ймовірно, є помилкою, і тому потрібно, щоб --for спочатку було вказано. Значення 1 буде дозволено для лінійних, багатопутних, RAID0 та RAID1. Він ніколи не дозволений для RAID4, RAID5 або RAID6. Це число можна змінити лише за допомогою --grow для масивів RAID1, RAID4, RAID5 та RAID6 та лише на ядрах, які забезпечують необхідну підтримку.


0

З того, що я пам’ятаю, коли у мене була ця проблема (з іншої причини), мені довелося скористатися --row, щоб повторно додати запасний диск «належним чином» (також очищення умови помилки.)

Щось подібне (перевірте зі своєю документацією!):

mdadm --grow --level = несправний --layout = flush / dev / sdb5

Потім ви можете додати пристрій, і його слід розпізнати.

Проблема полягає в тому, що драйвер md зберігає стан кожного розділу в даних завантажувальних дисків. Тож навіть після перезавантаження він знає статус і уникає розділів, позначених як несправні.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.