mdadm raid5 восстанавливает двойной отказ диска - со скручиванием (порядок диска)

Тот дамп ядра только действительно говорит Вам, что "Я умер, пытаясь выделить память". Это не говорит Вам очень о том, почему это не удалось; для этого мы должны знать о системном приближении статистики и во время катастрофического отказа. Общие плохие новости, которые мы видим около этого типа ошибки, были бы поразительным переходом в количестве php процессов интерпретатора, обычно потому что они не умирают, часто ведя к вредности из памяти.

Я видел, что быть результатом системной неверной конфигурации (плохие пределы sysctl, также агрессивный OOMkiller, и т.д.), и я видел, что он результат плохо записанного кода PHP (wiating на некотором внешнем ресурсе, который никогда не возвращается, или застревающий в жестком цикле и работающий навсегда).

Можно ли предоставить статистику на количестве процессов и расположении физической памяти и подкачки системы прежде и во время состояния ошибки?

14
задан 17 March 2015 в 13:28
3 ответа

Чтобы ответить на ваши вопросы,

  1. Можно ли его восстановить?

    • Первое, что нужно сделать - ОСТАНОВИТЕСЬ, сядьте и подумайте немного. Да, алгоритм, размер блока и порядок на диске жизненно важны для правильной повторной сборки любой файловой системы, которая существовала. Но так как вы перезаписали суперблоки, теперь у вас остается метод проб и ошибок.
    • Во-вторых, есть ли способ восстановить предыдущую структуру диска? Я всегда делаю mdadm --detail> backupfile, чтобы сохранить эту структуру диска в безопасном месте. Проверьте dmesg, / var / log на наличие каких-либо свидетельств того, как диски были настроены в рейде.
    • Наконец, если вы соответствуете предыдущему размеру блока и порядку дисков, вы могли повредить суперблок ext4 - есть способы быстро просканировать для других суперблоков (а там ' отличная программа под названием TestDisk, которая сканирует суперблоки существующих файловых систем и пытается просмотреть их вручную: http://www.cgsecurity.org/wiki/Main_Page )
  2. Поскольку sdc новый, я бы продолжил чтобы попытаться выполнить сборку вручную с помощью отсутствующего предложения, и да, sde должен быть в правильном порядке для сборки в деградированном режиме. Как только вы найдете правильный макет - скопируйте все данные из массива и начните снова, документируя макет (чтобы вы больше не сталкивались с этой проблемой).

Удачи

3
ответ дан 2 December 2019 в 21:13

Прежде чем делать что-либо еще, запишите 'mdadm --examine / dev / sdX1' для каждого из дисков, которые БЫЛИ в вашем массиве, и 'mdadm --detail / dev / md0 'из этого вы сможете определить точный макет.

Мне просто пришлось сделать это самому, чтобы восстановить массив Synology в отдельном вопросе:

Как восстановить массив mdadm на Synology NAS с диском в " E "состояние?

Правка: Извините, только что видел, что вы сказали, что потеряли суперблоки на всех дисках.

Ваши последующие команды ВЫГЛЯДИТ правильно. Самый простой вариант - запустить создание с каждым возможным порядком, а затем посмотреть, можете ли вы смонтировать файловую систему и получить доступ к ней в режиме только для чтения.

1
ответ дан 2 December 2019 в 21:13

Это старый вопрос, и я уверен, что сейчас никто не сможет вам помочь, но для других, читающих:

самая опасная ошибка, которую вы сделали, - это не та, которую вы пронумеровали, а именно:

mdadm --create ...

на исходных дисках, прежде чем вы были готовы знать, что делать. При этом были перезаписаны метаданные, поэтому у вас нет записи о порядке дисков, смещении данных, размере блока и т. Д.

Чтобы исправить это, вам необходимо перезаписать их снова с правильными значениями. Самый простой способ узнать это - посмотреть на метаданные, но вы их уже уничтожили. Следующий способ - угадать. Угадайте различные комбинации такой команды, с разными значениями для любого из параметров, кроме того, что вы знаете (4 устройства, уровень 5), а также разный порядок дисков:

mdadm --create /dev/md0 --assume-clean --metadata=1.2 --raid-devices=4 --level=5 --layout=... --chunk=512 --data-offset=128M /dev/sdb1 missing /dev/sdd1 /dev/sde1

Но поскольку вы НЕ знаете правильный результат, опять же, вы не должны запускать это на старых дисках, уничтожая их дальше, делая ту же фатальную ошибку. Вместо этого используйте наложение; например , эта процедура должна работать, чтобы сохранить оригиналы в безопасности.

После того, как вы нашли некоторые аргументы, которые создают рабочий массив, который вы можете fsck или смонтировать и проверить (например, проверить контрольную сумму файла большого размера достаточно, чтобы охватить всех участников рейда, например iso, который вы должны были сохранить с его контрольной суммой / подписью pgp, или распаковать -t или gunzip -ta большой архив)

1
ответ дан 2 December 2019 в 21:13

Теги

Похожие вопросы