md raid не загружается из-за отсутствия диска

md raid не загружается из-за отсутствия диска

У меня есть сервер с Debian Jessie, 4 диска sda на sdd, все из которых размечены одинаково. Система находится в raid1 md raid на всех дисках. На всех дисках есть grub, и я могу менять диски между собой, каждый из них загрузочный, и система успешно загружается. Все диски содержат абсолютно одинаковый формат:

  sdx1 - Boot Partition, GRUB installed
  sdx2 - Raid 1 /boot
  sdx3 - Raid 1 /
  sdx4 - Raid 10 swap
  sdx5 - non-md btrfs Raid 6 /data

Раздел данных — это raid6 btrfs, в настоящее время я пытаюсь увеличить его емкость, заменив диск на больший, поскольку у меня может произойти два сбоя, и моим первым побуждением было просто заменить один из дисков и загрузиться заново, восстановить сбойные массивы raid с помощью недавно установленного диска, и после перестройки все вернется в норму.

НО машина (которая, к сожалению, сейчас безголовая) не загружается, как только я меняю диски на что-то, что делает массив raid недействительным. Я могу менять диски друг с другом целый день, и она успешно загружается. Но если я извлекаю диск или меняю что-то, что не является частью raid, она не загружается.

Я что-то упустил? Как мне сказать md, что нормально автоматически загружаться с отсутствующими дисками/деградировавшим массивом? В конце концов, что касается md, то даже один из четырех дисков может поддерживать всю систему сам по себе, раздел данных — это еще один зверь, так как ему нужно как минимум два диска, но md не должен беспокоиться об этом, так как это чистый рейд btrfs.

Я знаю, что в текущем варианте использования я мог бы просто удалить диск из рейда, обновить его, а затем вернуть обратно, но в случае сбоя у меня нет возможности удалить диск, если система не запустится.

решение1

В качестве обновления и ответа - тем временем я выяснил, что единственное, чего здесь действительно не хватает, это флага nofail в fstab. Файловая система была деградирована, и он не монтировал файловую систему в деградированном состоянии без установки опции nofail.

решение2

Насколько мне известно, пока невозможно создать raid с mdadm, с которого можно загрузиться без отдельных загрузочных разделов. Я предполагаю, что вы настроили его так же, как описано здесь, он использует raid10, но применим к другим уровням raid:

Как создать загрузочную избыточную систему Debian с программным RAID10 из 3 или 4 (или более) дисков?

Возможно, вы не настроили в биосе загрузку с других дисков? Или загрузочные разделы не совсем одинаковые, то есть точные копии с одинаковым UUID.

Чтобы включить загрузку с определенного диска, ему понадобится загрузочный сектор, а BIOS нужно настроить на загрузку с него (вместе со списком других загрузочных дисков, входящих в рейд). Конечно, для успешного завершения загрузки диску также понадобится загрузочный раздел. Поскольку эти загрузочные разделы не являются частью рейда, у каждого загрузочного диска есть свой собственный. Если вы убедитесь, что каждый загрузочный раздел содержит одну и ту же файловую систему (например, с помощью dd, чтобы скопировать ее), и на каждом диске есть загрузочный сектор, созданный с использованием образов на этом загрузочном разделе, система сможет загружаться с любого из дисков. Даже если рейд деградирован, деградированный рейд не должен помешать успешной загрузке. В противном случае это делает большое преимущество наличия рейда спорным.

Цитата из ссылки:

Каждый диск, который является частью рейда, должен иметь загрузочный раздел размером около 1 ГБ, который НЕ является частью рейда. Создайте эти разделы как обычно, они должны быть точно такого же размера. Пометьте их как загрузочные, точка монтирования на одном из дисков должна быть /boot, вы можете оставить другие как не смонтированные.

После того, как вы использовали dd для создания точных копий загрузочного раздела:

Теперь убедитесь, что ваш BIOS настроен на попытку загрузки со всех 3 дисков, порядок не имеет значения. Пока BIOS будет пытаться загрузиться с любого диска, то в случае отказа одного из дисков система автоматически загрузится с другого диска, поскольку UUID точно такие же.

Связанный контент