
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
(может немного отличаться в зависимости от дистрибутива).