web-dev-qa-db-ja.com

SSDでbtrfsRAID 0を使用し、起動することは現在安定していますか?

現在の(3.10+)Linuxカーネルの時点で、SSDからbtrfs RAID 0をルートマウントにして起動することはサポートされていますか?これにはいくつかの問題があります。

  • SSDを搭載したRAID0はTRIM /破棄ブロックをサポートしていますか? ( docsによると 、単一のドライブでは確実にサポートされていますが、RAIDでは不明です)
  • BtrfsブロックアライメントはRAID 0で正しく機能しますか?
  • grub/grub2はbtrfsRAID 0で起動できますか? ( grub2のみのようです しかし確認が必要です)
  • より一般的には、この構成は現在どのように安定していて十分にサポートされていますか?誰かがそれを使用しますか?

関連: https://serverfault.com/questions/307397/verify-trim-support-with-btrfs-on-ssd

3
Andrew Mao

破棄は正常に機能し、ブロックの配置は特別なことではなく、btrfsマルチデバイスサポート(プロファイル:raid0 raid1 raid10 dup)があります 最初から 。それでも、Btrfs開発者は安定したバックポートをあまり行わないため、最近のカーネルを使用する準備をしてください。

別の/bootを使用する必要があります。 GrubはほとんどのBtrfs機能(圧縮および上記のRAIDレベルを含む)をサポートしていますが、Btrfsは最近、有効にするスキニーエクステントを追加しました。

1
Gabriel

実際、私はこのセットアップでGPTモードの2xNVMEでGrub2を使用しています(EFIなし):

  • NVME0とNVME1:メインのGrub2(grub.cfgは手動で入力)を使用したMBRを使用すると、何から起動するかを選択できます。
  • NVME0およびNVME1:Grub2ステージ2のプライマリパーティション1(BIOS GRUB)。
  • NVME0とNVME1:起動したいGrubとISOのプライマリパーティション2(データとメタデータのBTRFS Raid1)。
  • NVME0およびNVME1:Linux 64ビット用のプライマリパーティション3(データおよびメタデータのBTRFS Raid1)、パーティションブートレコードにインストールされた別のGRUB2(Linuxディストリビューションによって構成されたgrub.cfg)

したがって、起動時に:

  1. MBRが読み取られます(メインのGrub2コード)
  2. GRUB_BIOSパーティションは、Grub2のstage2をロードするために使用されます
  3. BTRFS Raid1プライマリパーティション#2がマウントされて読み取られるため、Grub2はそのgrub.cfgを読み取ることができます。
  4. 画面上のメインGrub2メニューでは、多くのISOからisoloopブートを選択できます。また、Linuxのブートを選択することもできます。
  5. Linuxの起動を選択します
  6. BTRFS Raid1プライマリパーティション#3がマウントされています
  7. パーティションブートコードはBTRFSRaid1プライマリパーティション#3からロードされます
  8. 別のGrub2がBTRFSRaid1プライマリパーティション#3をマウントして読み取られるため、他のGrub2はそのgrub.cfgを読み取ることができます。
  9. オプションで、別のGrub2メニューが表示されるかどうか(押されたキーによって異なります)
  10. Linuxはファイルをロードして起動します

データの配布:

  • NVME 0&1 MBR(Grub2コード)
  • NVME 0&1 MBR(パーティション1)、Grub2ステージ2コード用の小さな8MiB
  • NVME0および1MBR(パーティション2)、Grub2ファイル(grub.cfgなど)およびISOファイル用のRaid1のデータとメタデータを含む16GiBBTRFS
  • NVME 0&1 MBR(パーティション3)、120GiB BTRFS、ルート '/'のRaid1のデータとメタデータ、ディレクトリとして/ boot、PBRにインストールされた別のGrub2(MBRではない)...使用する2番目のGrub2をインストールするGParted grub-install(別名、/ dev/sd $#、/ dev/sd $ではない)、Linux grub-installには適合せずパーティションへのインストールを許可しない別のGrub2があるため、常に質問してくださいMBRの場合(別名、grub-install/dev/sd $、/ dev/sd $#ではありません)

また、Raid0、Raid1、Raid10でBTRFSを使用して6xSSDで同じ構造を試しましたが、すべてうまくいきました。

NVMEでは2つしかプラグインできないため、BTRFS Raid1を選択しました。これにより、どのスクラブでもエラーを検出して修正できます(2番目のコピーも悪くない場合)。

Six SSD(セルあたりすべてのシングルビットとそれぞれ550MiB/sの書き込み速度を維持できるSataIII)で起動していたとき、速度を向上させるためにBTRFS Raid10を選択しました(最大3GiBytes /秒の持続書き込み)。

2つのNVMEを使用すると、一方がPCIe 2.0 x4スロットにあり、もう一方のNVMEがPCIe 3.0 x4スロットにあるという理由だけで、6つのSSDと同じ速度が得られ、2倍速くなりますが、3GiBytes /で冗長性を優先します。 sどのBitRotよりも、データは6GiBytes/sで失われます。

時間があるときは、持っているすべてのもの(2つのNVMEと12のSSD、マザーボードに6つ、追加のPCIeコントローラーに6つ、すべてボトルネックなし)でBTRFS Raid10を作成する計画がありますが、速度のバランスを正しく取るために計画する必要があります、おそらく次のようになります。

  • マザーボード上の6つのSSDでのLVMRAID 0
  • PCIeコントローラー上の6つのSSDでのLVMRAID 0
  • 2xNVME上のBTRFRAID10 +マザーボード上のLVMRAID 0 + PCIeコントローラー上のLVMRAID 0

最初のテストでは、Grub2 isoloopでGPartedを正しく起動し、11GiBytes/s以上の書き込み速度を維持しました。はい、フルサイズの2枚のDVD(2x4.7GB)/秒、1秒に複数の2層DVD、冗長性を備えています...費用? 12 SSD + 2NVMEハイスペックコストについて話さない方がいいです!!! (> 1000€)!!!

0
Laura