У меня есть сервер с Debian Jessie, 4 диска sda на sdd, все они разделены аналогично. Система находится в рейде raid1 md на всех дисках. У всех дисков есть личинка, и я могу поменять местами диски друг с другом, каждый из них является загрузочным, и система загружается нормально. Все диски действительно имеют одинаковый формат:
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, в настоящее время я пытаюсь увеличить свою емкость, заменив диск на более крупный, так как у меня может быть два сбоя, моим первым побуждением было просто заменить один из дисков и загрузить резервную копию, восстановить сбойные массивы рейдов с только что установленным диском, и после восстановления все возвращается в нормальное состояние.
НО машина (которая, к сожалению, в настоящее время лишена головы) не загружается, как только я меняю диски на что-то, что делает массив рейдов недействительным. Я могу поменять диски друг с другом в течение всего дня, и он успешно загружается. Но если я извлекаю диск или заменяю что-либо, что не является частью рейда, оно не загружается.
Я что-то упускаю? Как я могу сказать md, что можно автоматически загружаться с отсутствующими дисками / деградировавшим массивом? В конце концов, что касается md, даже один из четырех дисков может поддерживать всю систему сам по себе, раздел данных - еще один зверь, так как ему нужны как минимум два диска, но md не должен беспокоиться об этом, поскольку это чистый btrfs рейд.
Я знаю, что для текущего варианта использования я мог бы просто удалить диск из рейда, обновить его, а затем вернуть его туда, но в случае сбоя у меня нет возможности удалить диск, если система не запускается вверх.
В качестве обновления и ответа - тем временем я понял, что единственное, чего здесь действительно не хватает, - это флаг nofail в fstab. Файловая система была повреждена, и она не могла смонтировать файловую систему в деградированном состоянии без установленной опции nofail.
Насколько мне известно, пока что невозможно создать рейд с mdadm, с которого можно загружаться, не имея отдельных загрузочных разделов. Я предполагаю, что вы настроили его так же, как описано здесь, он использует raid10, но применяется к другим уровням рейдов:
Как создать загрузочную резервную систему Debian с программным raid10 с 3 или 4 (или более) дисками?
Возможно, вы не настроили загрузку с других дисков в BIOS? Или же загрузочные разделы не совсем одинаковые, то есть точные копии с тем же UUID.
Чтобы разрешить загрузку определенного диска, на нем должен быть загрузочный сектор, а BIOS должна быть настроена на загрузку с него (вместе со списком других загрузочных дисков, которые являются частью рейда). Конечно, для успешного завершения загрузки на диске также должен быть загрузочный раздел. Поскольку эти загрузочные разделы не являются частью рейда, каждый загрузочный диск имеет свой собственный. Если вы убедитесь, что каждый загрузочный раздел содержит одну и ту же файловую систему (например, используя dd для ее копирования), и на каждом диске есть загрузочный сектор, созданный с использованием образов в этом загрузочном разделе, система должна иметь возможность загружаться с любого из дисков. . Даже если уровень рейда ухудшился, он не должен препятствовать успешной загрузке. В противном случае это дает большую пользу от проведения рейдового спора.
Цитата по ссылке:
На каждом диске, который является частью рейда, должен быть загрузочный раздел размером около 1 ГБ, который НЕ является частью рейда. Создайте эти разделы как обычно, они должны быть одинакового размера. Отметьте их как загрузочные, точка монтирования на одном из дисков должна быть / boot, остальные можно оставить как отключенные.
После того, как вы использовали dd для создания точных копий загрузочного раздела:
Теперь убедитесь, что ваша BIOS настроена на попытку загрузки со всех 3 дисков, порядок не имеет значения. Пока BIOS будет пытаться загрузиться с любого диска, в случае выхода из строя одного из дисков система автоматически загрузится с другого диска, потому что UUID точно такие же.