BTRFS-RAID и загрузка с системного раздела EFI

BTRFS-RAID и загрузка с системного раздела EFI

UEFI требует загрузки с ESP, который в большинстве случаев отформатирован как vFAT. Если я правильно помню, BTRFS может иметь подтома, отформатированные как ext3/ext4, как Logical Volume Manager (LVM). Однако UEFI не поддерживает загрузку с BTRFS. В большинстве случаев решение заключается в простом использовании трех (или 2N + 1) дисков, двух для RAID и одного для загрузки. Моя главная проблема в этом случае — простое зеркалирование RAID1. Однако в этом случае я могу использовать только два диска. Если бы материнская плата использовала BIOS, я мог бы просто зеркалировать загрузочный раздел.

Я слышал, что эта проблема (необходимость использования дополнительного диска для загрузки) является одной из причин, по которой люди перешли на (freeBSD с) ZFS, хотя я могу ошибаться.

В моем случае я сделал зеркало всего диска с разделом. То есть, на втором диске было два раздела: один ESP, один раздел btrfs. Однако я предполагаю, что это не то, как BTRFS-RAID1 собирается использоваться. Поэтому мой вопрос звучит конкретно:

  • Приведет ли эта конфигурация к коррупции или другим непредвиденным последствиям?
  • Какое решение было бы лучшим?

решение1

Из того, что я понял из ваших заявлений, у вас есть два диска со следующей (или похожей) структурой:

sda: GPT
  sda1: Linux MD RAID member
  sda2: Swap
  sda3: BTRFS pool member (RAID 1 allocation policy)

sdb: GPT
  sda1: Linux MD RAID member
  sda2: Swap
  sda3: BTRFS pool member (RAID 1 allocation policy)

md0: ESP (~100mb? VFAT) mounted at /boot/efi (RAID 1 allocation policy)

BTRFS pool: 
  root subvol (mounted at /)
  home subvol (mounted at /home)
  et cetera ad nauseam.

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

Том Linux MD в этом случае представляет собой RAID 1 между sda1 и sdb1. Не трогайте sd[a,b]1 напрямую и монтируйте только том MD, созданный из них (обычно /dev/md0или /dev/md/0если вы не почувствовали необходимости дать ему особое имя во время создания). Вы обязательно должны использовать RAID1 для тома ESP, поскольку прошивка материнской платы ожидает, что эти данные будут целыми на любом отдельном диске во время загрузки.

Разделы подкачки будут естественным образом чередоваться, но отказ одного из них не приведет к краху вашей системы почти во всех случаях. Не используйте MD для подкачки, если у вас нет веской причины, так как пейджер очень умен.

Пул BTRFS будет сканироваться автоматически, поэтому лучше всего указать этот том по UUID при добавлении записей для него в /etc/fstabфайл.

GRUB2 может загружаться с любого уровня BTRFS RAID. Просто убедитесь, что загрузчик "stage 1" установлен в обеих таблицах разделов (sda, sdb). Это делается при вызове grub-install /dev/sda(может немного отличаться в зависимости от дистрибутива).

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