Вопрос или проблема
Сначала немного предыстории. Я храню много данных на NAS массиве Thecus N4200Pro. Я получил отчет о том, что один из 4 дисков в массиве показывает ошибки SMART.
- Я заменил неисправный диск (#4), и он начал восстанавливать массив. На 60% восстановления один из других дисков в массиве отключается, в данном случае #1.
- Отлично.. Я выключил устройство и попробовал вернуть оригинальный #4, чтобы увидеть, вернется ли он. Безуспешно.
- Поэтому я выключил и поменял #1 и #2, чтобы увидеть, смогут ли они восстановиться с замененным неисправным диском, и заменил #4 на наполовину восстановленный #4. Теперь я понимаю, что это было ошибкой. Мне следовало бы выключить устройство после первого и сделать клонирование всех оригинальных дисков.
- Устройство снова запустилось и, конечно, RAID не удается собрать, показывая только диски 3 и 4, причем 4 отмечен как резервный.
- На этом этапе я выключаю все и извлекаю все диски, клонируя их, внимательно следя за порядком номеров.
- Я вставил все 4 клонированных диска в свой компьютер с Ubuntu 16.04 LTS в правильном порядке и запустил систему.
- Все 4 диска отображаются и показывают разделы в утилите «Диски». Она показывает RAID5 массив и также массива RAID1.
Массив RAID1 содержит системную информацию для NAS, с этим я не слишком обеспокоен. Массив RAID5 – это тот, который меня интересует, так как на нем находятся все мои данные, но я не могу получить к ним доступ. Так что пора начинать разбираться.
Сначала я выполнил cat /proc/mdstat
, чтобы увидеть массивы-
jake@ubuntu-box:~$ cat /proc/mdstat
Типы : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4]
[raid10]
md0 : активен raid1 sdd1[3]
1959884 блока супер 1.0 [4/1] [___U]
md1 : неактивен sdd2[3](S) sdc2[2](S) sdb2[1](S) sda2[0](S)
3899202560 блока
Неработающие устройства:
Хм.. это странно. показывает RAID как raid0, что не так. Хорошо, давайте взглянем на каждый отдельный раздел с помощью: mdadm --examine /dev/sdXX
Диск 1
jake@ubuntu-box:~$ sudo mdadm --examine /dev/sda2/
dev/sda2:
Магия : a92b4efc
Версия : 0.90.00
UUID : e7ab07c3:b9ffa9ae:377e3cd3:a8ece374
Время создания : Чт Авг 18 14:30:36 2011
Уровень RAID : raid5
Используемый размер устройства : 974800000 (929.64 GiB 998.20 GB)
Размер массива : 2924400000 (2788.93 GiB 2994.59 GB)
Устройства RAID : 4
Всего устройств : 4
Предпочитаемый минор : 1
Время обновления : Вт Мар 13 14:00:33 2018
Состояние : чистый
Активные устройства : 3
Работающие устройства : 4
Неисправные устройства : 1
Резервные устройства : 1
Контрольная сумма : e52c5f8 - корректно
События : 20364
Макет : левосимметричный
Размер чанка : 64K
Номер Мажор Минор Устройство RAID Состояние
этот 0 8 2 0 активный синхрон /dev/sda2
0 0 8 2 0 активный синхрон /dev/sda2
1 1 8 18 1 активный синхрон /dev/sdb2
2 2 8 34 2 активный синхрон /dev/sdc2
3 3 0 0 3 неисправный удален
4 4 8 50 4 резервный /dev/sdd2
Диск 2
jake@ubuntu-box:~$ sudo mdadm --examine /dev/sdb2/
dev/sdb2:
Магия : a92b4efc
Версия : 0.90.00
UUID : e7ab07c3:b9ffa9ae:377e3cd3:a8ece374
Время создания : Чт Авг 18 14:30:36 2011
Уровень RAID : raid5
Используемый размер устройства : 974800000 (929.64 GiB 998.20 GB)
Размер массива : 2924400000 (2788.93 GiB 2994.59 GB)
Устройства RAID : 4
Всего устройств : 4
Предпочитаемый минор : 1
Время обновления : Вт Мар 13 14:56:30 2018
Состояние : чистый
Активные устройства : 2
Работающие устройства : 3
Неисправные устройства : 1
Резервные устройства : 1
Контрольная сумма : e597e42 - корректно
События : 238868
Макет : левосимметричный
Размер чанка : 64K
Номер Мажор Минор Устройство RAID Состояние
этот 1 8 18 1 активный синхрон /dev/sdb2
0 0 0 0 0 удален
1 1 8 18 1 активный синхрон /dev/sdb2
2 2 8 34 2 активный синхрон /dev/sdc2
3 3 0 0 3 неисправный удален
4 4 8 50 4 резервный /dev/sdd2
Диск 3
jake@ubuntu-box:~$ sudo mdadm --examine /dev/sdc2/
dev/sdc2:
Магия : a92b4efc
Версия : 0.90.00
UUID : e7ab07c3:b9ffa9ae:377e3cd3:a8ece374
Время создания : Чт Авг 18 14:30:36 2011
Уровень RAID : raid5
Используемый размер устройства : 974800000 (929.64 GiB 998.20 GB)
Размер массива : 2924400000 (2788.93 GiB 2994.59 GB)
Устройства RAID : 4
Всего устройств : 3
Предпочитаемый минор : 1
Время обновления : Вт Мар 13 15:10:07 2018
Состояние : чистый
Активные устройства : 1
Работающие устройства : 2
Неисправные устройства : 2
Резервные устройства : 1
Контрольная сумма : e598570 - корректно
События : 239374
Макет : левосимметричный
Размер чанка : 64K
Номер Мажор Минор Устройство RAID Состояние
этот 2 8 34 2 активный синхрон /dev/sdc2
0 0 0 0 0 удален
1 1 0 0 1 неисправный удален
2 2 8 34 2 активный синхрон /dev/sdc2
3 3 0 0 3 неисправный удален
4 4 8 50 4 резервный /dev/sdd2
и Диск 4
jake@ubuntu-box:~$ sudo mdadm --examine /dev/sdd2/
dev/sdd2:
Магия : a92b4efc
Версия : 0.90.00
UUID : e7ab07c3:b9ffa9ae:377e3cd3:a8ece374
Время создания : Чт Авг 18 14:30:36 2011
Уровень RAID : raid5
Используемый размер устройства : 974800000 (929.64 GiB 998.20 GB)
Размер массива : 2924400000 (2788.93 GiB 2994.59 GB)
Устройства RAID : 4
Всего устройств : 4
Предпочитаемый минор : 1
Время обновления : Вт Мар 13 11:03:10 2018
Состояние : чистый
Активные устройства : 4
Работающие устройства : 4
Неисправные устройства : 0
Резервные устройства : 0
Контрольная сумма : e526d87 - корректно
События : 14344
Макет : левосимметричный
Размер чанка : 64K
Номер Мажор Минор Устройство RAID Состояние
этот 3 8 50 3 активный синхрон /dev/sdd2
0 0 8 2 0 активный синхрон /dev/sda2
1 1 8 18 1 активный синхрон /dev/sdb2
2 2 8 34 2 активный синхрон /dev/sdc2
3 3 8 50 3 активный синхрон /dev/sdd2
Итак – магические числа и UUID все в порядке между комплектом. События все перепутаны, потому что он пытался восстановить замененный #4 как резервный, вместо того чтобы просто восстановить #4.
Диск 4 содержит правильную информацию для RAID и последовательность, так как это был диск, который я извлек первоначально и на который ничего не было переписано. Диски 1-3, как видно, находятся в различных состояниях хаоса из-за перестановки.
Так что два вопроса –
-
Почему он отображается как raid0 в
mdadm --detail
-
Есть ли возможность обновить информацию для первых трех дисков, которые я получил из
mdadm --examine /dev/sdd2
, чтобы он видел все как должно быть, а не как раскиданный кластер, который я случайно создал. Я думаю, что если я найду способ обновить информацию для этих разделов или дисков, RAID должен корректно собраться и восстановиться, так что я смогу получить доступ к своим данным
Любые идеи будут полезны, так как я дошел до предела попыток разобраться в этом самостоятельно и провел множество поисков.
Вы сказали:
На 60% восстановления один из других дисков в массиве отключается
Это известный риск при использовании RAID-5 и одна из причин, почему RAID-5 в наши дни не считается безопасным. Если два диска выйдут из строя одновременно в массиве RAID-5, данные будут потеряны. К сожалению, восстановление массива, в котором один диск вышел из строя, может вызвать достаточное напряжение на других дисках, что значительно увеличивает вероятность того, что другой диск выйдет из строя во время восстановления. Дольше идет восстановление (то есть, чем больше диски и чем больше они загружены другой работой), тем выше вероятность этого.
Это особенно верно, если RAID массив активно использовался в течение нескольких лет, а диски близки к ожидаемому сроку службы. Или если все диски в массиве были из одной партии и имели либо схожие недостатки (если “некачественная партия”), либо схожий ожидаемый срок службы.
Из-за способа, которым данные распределяются по дискам в 4-дисковом массиве RAID-5 (то есть 3 диска для распределения данных, 1 диск для четности), когда два диска выходят из строя, по крайней мере одна треть каждого файла будет недоступна. Это похоже на то, что происходит с распределением RAID-0, если один или несколько дисков выходят из строя – части файлов, которые были распределены на вышедшем из строя диске, пропадают.
RAID-6 немного улучшает это, позволяя выходить из строя двум дискам перед потерей всех данных, но страдает от той же проблемы, если три диска выходят из строя одновременно.
RAID-1 безопаснее, потому что если один диск выходит из строя, вы можете извлечь данные с другого диска (или других дисков, если вы дублируете на более чем 1 диск). Если все диски в наборе зеркал выходят из строя, вы теряете все.
RAID-10 похож на RAID-1. Он все еще уязвим, если все диски в паре зеркал выходят из строя одновременно. RAID-10 может выдержать выход из строя двух дисков, но ТОЛЬКО если вышедшие из строя диски не находятся в одной паре зеркал. Например, если у вас есть диски a, b, c, d с двумя зеркальными парами (a+b и c+d), тогда любое сочетание двух дисков из разных пар (то есть a+c, a+d, b+c или b+d) может выйти из строя без потери данных, но если a+b или c+d выйдут из строя, тогда ваши данные потеряны.
С риском как в RAID-1, так и в RAID-10 можно уменьшить, имея больше дисков в каждом зеркальном наборе. Например, массив RAID-10 из 6 дисков можно настроить как a+b, c+d, e+f (три зеркальные пары, общая емкость = количество дисков / 2) или a+b+c и d+e+f (две зеркальные тройки, общая емкость = количество дисков / 3)
Таким образом, все уровни RAID имеют режимы отказа, которые могут привести к катастрофической потере данных.
Главное, что нужно помнить из всего этого:
RAID – ЭТО НЕ ЗАМЕНА ДЛЯ РЕГУЛЯРНЫХ РЕЗЕРВНЫХ КОПИЙ
Я попробовал несколько вещей. Сначала я остановил RAID после перезагрузки машины сегодня утром:
jake@ubuntu-box:~$ sudo mdadm -S /dev/md1
mdadm: остановлен /dev/md1
Затем я пытаюсь собрать массив, используя UUID для массива:
jake@ubuntu-box:~$ sudo mdadm --assemble /dev/md1 --
uuid=e7ab07c3:b9ffa9ae:377e3cd3:a8ece374
mdadm: /dev/md1 собран из 1 диска - недостаточно для запуска массива.
Хорошо, я этого ожидал. Попробуем принудительно:
jake@ubuntu-box:~$ sudo mdadm --assemble /dev/md1 --force --
uuid=e7ab07c3:b9ffa9ae:377e3cd3:a8ece374
mdadm: принуждение счетчика событий в /dev/sdb2(1) с 238868 до 239374
mdadm: принуждение счетчика событий в /dev/sda2(0) с 20364 до 239374
mdadm: /dev/md1 собран из 3 дисков - недостаточно для запуска массива.
Хм.. это должно сработать. Давайте попробуем вручную собрать массив, указав отдельные разделы для RAID:
jake@ubuntu-box:~$ sudo mdadm --assemble /dev/md1 /dev/sda2 /dev/sdb2
/dev/sdc2 /dev/sdd2 --force
mdadm: /dev/md1 был запущен с 3 дисками (из 4).
УРА! Похоже, он стартовал с 3 из 4 дисков. Достаточно, значит, я могу получить доступ к своим данным! Давайте проверим детали для интереса:
jake@ubuntu-box:~$ sudo mdadm --detail /dev/md1/dev/md1:
Версия : 0.90
Время создания : Чт Авг 18 14:30:36 2011
Уровень RAID : raid5
Размер массива : 2924400000 (2788.93 GiB 2994.59 GB)
Используемый размер устройства : 974800000 (929.64 GiB 998.20 GB)
Устройства RAID : 4
Всего устройств : 3
Предпочитаемый минор : 1
Постоянство : Суперблок постоянный
Время обновления : Вт Мар 13 14:00:33 2018
Состояние : чистое, деградированное
Активные устройства : 3
Работающие устройства : 3
Неисправные устройства : 0
Резервные устройства : 0
Макет : левосимметричный
Размер чанка : 64K
UUID : e7ab07c3:b9ffa9ae:377e3cd3:a8ece374
События : 0.239374
Номер Мажор Минор Устройство RAID Состояние
0 8 2 0 активный синхрон /dev/sda2
1 8 18 1 активный синхрон /dev/sdb2
2 8 34 2 активный синхрон /dev/sdc2
6 0 0 6 удален
Я копирую данные, пока мы говорим. Так что данные не были недоступны – просто нужно было знать правильные команды, чтобы заставить RAID собраться снова.
Ответ или решение
Конечно, давайте рассмотрим вашу проблему с RAID 5 массивом на NAS Thecus N4200Pro и шаги, которые вы предприняли для восстановления данных.
Понимание ситуации
Первоначально у вас возникли проблемы с одним из дисков, что привело к замене диска #4. Однако во время восстановления произошла еще одна ошибка: диск #1 вышел из строя. После этого вы предприняли несколько действий по замене дисков, что привело к некорректной конфигурации RAID массива. В итоге массив перестал собираться, и вам нужны были данные.
Ответы на ваши вопросы
-
Почему RAID массив отображается как RAID0?
Это может произойти, если информация о RAID массиве на дисках повреждена или не считывается должным образом. Когда вы меняли диски и переключали их местами, метаданные RAID, хранящиеся на каждом диске, могли переписаться, и теперь система интерпретирует массив неправильно. Это также может быть связано с тем, что для массива был выбран неправильный тип RAID при его инициализации. -
Возможно ли обновить информацию о первых трех дисках, чтобы RAID увидел все как положено?
Да, это возможно. Вам нужно использовать командуmdadm --assemble
с правильными параметрами, чтобы вручную собрать массив с использованием доступных дисков. Поскольку вы упомянули, что командаmdadm --assemble /dev/md1 /dev/sda2 /dev/sdb2 /dev/sdc2 /dev/sdd2 --force
сработала и массив был собран с тремя рабочими дисками, это правильное решение.
Шаги для восстановления данных
-
Остановка массива:
Вы правильно сделали, остановив массив перед попыткой его сборки:sudo mdadm -S /dev/md1
-
Сборка массива:
Вы использовали следующую команду для принудительной сборки массива:sudo mdadm --assemble --force /dev/md1 /dev/sda2 /dev/sdb2 /dev/sdc2
Это позволило вам собрать массив из трех активных дисков, что является хорошим путем к восстановлению данных.
-
Проверка статуса:
Вы должны постоянно проверять статус:sudo mdadm --detail /dev/md1
-
Копирование данных:
Теперь, когда массив собран, ваше следующее действие — это копирование важных данных на другой носитель или локальный диск для предотвращения дальнейших потерь.
Рекомендации на будущее
- Резервное копирование данных: Как обсуждалось, RAID не является заменой резервного копирования. Регулярно создавайте резервные копии важных данных.
- Мониторинг состояния дисков: Используйте инструменты для мониторинга состояния дисков и планируйте их замену по мере необходимости.
- Восстановление RAID: Перед заменой дисков создавайте образы всех дисков. Это позволит вам иметь резервные копии данных и метаданных для восстановления в случае ошибок.
Ваш опыт показывает, что правильная последовательность действий и знания команд mdadm
могут значительно помочь в восстановлении данных. Удачи вам с дальнейшими действиями, и если возникнут дополнительные вопросы, не стесняйтесь обращаться!