Тот дамп ядра только действительно говорит Вам, что "Я умер, пытаясь выделить память". Это не говорит Вам очень о том, почему это не удалось; для этого мы должны знать о системном приближении статистики и во время катастрофического отказа. Общие плохие новости, которые мы видим около этого типа ошибки, были бы поразительным переходом в количестве php процессов интерпретатора, обычно потому что они не умирают, часто ведя к вредности из памяти.
Я видел, что быть результатом системной неверной конфигурации (плохие пределы sysctl, также агрессивный OOMkiller, и т.д.), и я видел, что он результат плохо записанного кода PHP (wiating на некотором внешнем ресурсе, который никогда не возвращается, или застревающий в жестком цикле и работающий навсегда).
Можно ли предоставить статистику на количестве процессов и расположении физической памяти и подкачки системы прежде и во время состояния ошибки?
Чтобы ответить на ваши вопросы,
Можно ли его восстановить?
Поскольку sdc новый, я бы продолжил чтобы попытаться выполнить сборку вручную с помощью отсутствующего предложения, и да, sde должен быть в правильном порядке для сборки в деградированном режиме. Как только вы найдете правильный макет - скопируйте все данные из массива и начните снова, документируя макет (чтобы вы больше не сталкивались с этой проблемой).
Удачи
Прежде чем делать что-либо еще, запишите 'mdadm --examine / dev / sdX1' для каждого из дисков, которые БЫЛИ в вашем массиве, и 'mdadm --detail / dev / md0 'из этого вы сможете определить точный макет.
Мне просто пришлось сделать это самому, чтобы восстановить массив Synology в отдельном вопросе:
Как восстановить массив mdadm на Synology NAS с диском в " E "состояние?
Правка: Извините, только что видел, что вы сказали, что потеряли суперблоки на всех дисках.
Ваши последующие команды ВЫГЛЯДИТ правильно. Самый простой вариант - запустить создание с каждым возможным порядком, а затем посмотреть, можете ли вы смонтировать файловую систему и получить доступ к ней в режиме только для чтения.
Это старый вопрос, и я уверен, что сейчас никто не сможет вам помочь, но для других, читающих:
самая опасная ошибка, которую вы сделали, - это не та, которую вы пронумеровали, а именно:
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 большой архив)