データを失うことなく、同じディスクを使用して btrfs RAID5 を RAID6 に変換することは可能ですか?

データを失うことなく、同じディスクを使用して btrfs RAID5 を RAID6 に変換することは可能ですか?

十分な空きディスク領域があり、同じディスクを使用して、データをスワップアウトせずに、既存の RAID5 (シングル パリティ) btrfs セットアップをデュアル パリティ RAID6 構成に変換するにはどうすればよいでしょうか?

基本的には、ディスクを削除して冗長ドライブを保持し、btrfs が残りのドライブ上のすべてを再配布し、削除されたディスクを再度追加するだけでしょうか?

では、推奨されるプロセスは何でしょうか?

私は次のようなことを考えていました

btrfs device delete /dev/sdx /mnt/fs
btrfs balance start -dconvert=raid6 -mconvert=raid6 /mnt/fs
btrfs device add /dev/sdx /mnt/fs

ディスクを削除して追加する必要があるのでしょうか、それともセットアップを直接変換するだけでよいのでしょうか?

btrfs balance start -dconvert=raid6 -mconvert=raid6 /mnt/fs

答え1

https://www.howtoforge.com/a-beginners-guide-to-btrfs-p2

これは、十分な空き容量があれば、実行中のアレイの RAID レベルを変更できると主張しています。最新の安定した Linux カーネルを実行していることを確認してください。

例(リンクより):btrfs balance start -dconvert=raid1 -mconvert=raid1 /mnt

-dconvertはデータ用です

-mconvert はメタファイル用です(これを複製したいはずです、信じてください)

/mnt は BTRFS ボリュームがマウントされる場所です。マウント解除してこれを行うこともできますが、私は試したことがなく、正直に申し上げたいと思います。

raid0、raid1、raid5、raid6 があります。十分な空き容量がある場合、raid6 の場合は n-2、つまりドライブ数 [空き容量] から 2 を引いた数になると思います。ただし、BTRFS を使用すると、それよりも少ない数で済み、代わりにデータを使用して測定できます。少量のデータを保存する場合は、許容されるドライブ数よりも少ないドライブ数で raid6 のような機能を実現できます。可能ですが、推奨されません。

また、ドライブ上のデータの量によっては、時間がかかることにも注意してください。また、バランスが失敗してアレイが完全に停止したり、不安定な読み取り専用モードになったりする可能性もわずかにあります。常にバックアップを取っておいてください。

答え2

RAID6 - ウィキペディア

  • RAID5では、1-1/nのスペース効率で3台以上のドライブ(n)が必要です。
  • RAID6では、1~2/nのスペース効率で4台以上のドライブ(n)が必要

1 TiB アレイの合計スペース (概算) と RAID5 -> RAID6 からの変更 (%):

  • 4 x 250GiB ~ 1 TiB -> RAID5 ~ 768 GiB -> RAID6 ~ 512 GiB -> -50%
  • 5 x 200GiB ~ 1 TiB -> RAID5 ~ 819.2 GiB -> RAID6 ~ 614.4 GiB -> -25%
  • 6 x 170GiB ~ 1 TiB -> RAID5 ~ 853.3 GiB -> RAID6 ~ 682.6 GiB -> -20%

十分な空き容量とドライブがある場合、実行中のアレイの RAID レベルを変更できます。

  • 最終的なアレイに必要なドライブを削除したり取り外さないでください
  • 削除→追加→変換することで「二重」のバランスが取れる
    • 削除中に、メタデータとデータ チャンクが残りのドライブに再配布され、ドライブが追加されるため、RAID6 に変換するときに再度バランスを取る必要があります。

ドライブを追加する必要がある場合は、バランス調整/変換の前にすべて追加してください。

btrfs device add /dev/sdc /mnt
btrfs device add /dev/sdd /mnt

バランスフィルター - btrfs.wiki.kernel.org

リンクからの btrfs バランス「変換」の例 (更新済み):

btrfs balance start -dusage=90 -dconvert=raid6 -mconvert=raid6 /mnt

-dusage は、データ チャンクのバランス調整の使用量しきい値です。

-dconvertはデータ用です

-mconvertはメタデータ用です

/mnt は BTRFS ボリュームがマウントされる場所です。マウント解除するとこの操作は実行できません。

btrfs データおよび/またはメタデータは次のようになります。

  1. シングル
  2. レイド0
  3. レイド01
  4. レイド1
  5. レイド5
  6. レイド6
  7. レイド1c3
  8. レイド1c4

一時停止、再開、キャンセル、またはステータスを取得するコマンドを使用できます。

btrfs balance pause /mnt
btrfs balance resume /mnt
btrfs balance cancel /mnt
btrfs balance status -v /mnt

注意点

  1. ドライブに保存されているデータの量に応じて、バランス調整に時間がかかります。
  2. バランスが失敗してアレイが破損したり、不安定な読み取り専用モードになったりする可能性があります。
  3. 変換する前にデータをバックアップしてください。
  4. 最新の安定した Linux カーネルを実行していることを確認してください。

関連情報