web-dev-qa-db-ja.com

BTRFS-RAIDおよびEFIシステムパーティションからの起動

UEFIはESPから起動する必要があります。これはほとんどの場合vFATとしてフォーマットされています。正しく思い出せば、BTRFSはLogical Volume Manager(LVM)のようにext3/ext4としてフォーマットされたサブボリュームを持つことができます。 、UEFIはBTRFSからの起動をサポートしていません。ほとんどの場合、解決策は3つ(または2N + 1)のディスクを使用することです。2つはRAID用で、1つは起動用です。この場合の私の主な関心事は単純なRAID1ミラーリングです。 。この場合、使用できるディスクは2つだけですが、マザーボードがBIOSを使用している場合は、ブートパーティションをミラーリングするだけで済みます。

この問題(起動に追加のディスクを使用する必要がある)が、人々がZFS(freeBSD with)に切り替えた理由の1つであると聞いていますが、間違って思い出しているかもしれません。

私の場合、ディスク全体をパーティションでミラーリングしました。 Id est、2番目のディスクには2つのパーティションがありました。1つはESP、もう1つはbtrfsパーティションです。ただし、これはBTRFS-RAID1の使用目的ではないと思います。だから私の質問は具体的にです:

  • この構成は、破損またはその他の意図しない結果につながりますか?
  • より良い解決策は何でしょうか?
4
phbi

私があなたの声明で集めたものから、あなたは次の(または同様の)ディスクレイアウトを持つ2つのディスクを持っています:

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.

これはほとんどすべての場合にまさに必要なことであり、構成にこれが反映されていない場合は、おそらくこれを反映させたいと思うでしょう。

この場合のLinuxMDボリュームは、sda1とsdb1の間のRAID1です。 sd [a、b] 1を直接いじらないでください。特別な名前を付ける必要があると感じない限り、それらから作成されたMDボリューム(通常は/dev/md0または/dev/md/0)のみをマウントしてください。作成中)。 ESPボリュームにはRAID1を絶対に使用する必要があります。これは、マザーボードのファームウェアが起動時に単一のディスク上でそのデータをそのまま検出することを想定しているためです。

スワップパーティションは自然にストライプ化されますが、1つに障害が発生しても、ほとんどの場合、システムがクラッシュすることはありません。ポケットベルは非常に賢いので、正当な理由がない限り、スワップにMDを使用しないでください。

BTRFSプールは自動的にスキャンされるため、/etc/fstabファイルにエントリを追加するときに、UUIDでこのボリュームを指定することをお勧めします。

GRUB2は、任意のBTRFSRAIDレベルから起動できます。 「ステージ1」ローダーが両方のパーティションテーブル(sda、sdb)にインストールされていることを確認してください。これは、grub-install /dev/sdaを呼び出すときに行われます(ディストリビューションによって若干異なる場合があります)。

1
Spooler