
btrfs はファイルシステムの部分的な変換をサポートしていますか?
私は現在この状態です:
btrfs fi df .
Data, RAID5: total=9.83TiB, used=7.68TiB
System, RAID1: total=32.00MiB, used=704.00KiB
Metadata, RAID1: total=12.00GiB, used=8.61GiB
GlobalReserve, single: total=512.00MiB, used=0.00B
また、raid5 モードでバグが見つかったため、raid1 に移行したいと考えています。現時点で完全な変換を行わない理由はいくつかあります。ターゲット モードを raid1 に設定したいと考えています。新しいデータは raid1 に配置され、時間があれば完全な再バランス (またはソフト) をトリガーできます。
それで、このようなことは可能でしょうか?
btrfs balance start -dconvert=raid1 -dusage=10 .
答え1
まあ、誰も情報を持っていなかったので、私は単にそれを試して、その手順をここに記録しました。
btrfs balance start -dconvert=raid1 -dusage=10 .
このコマンドは、フィルタ (使用率 = 10%) に一致するチャンクを単純に変換しました。チャンクの圧縮 (通常のバランスのように) はなく、ターゲット RAID レベルを RAID5 から RAID1 に設定しませんでした。そのため、これはほとんど役に立たず、ほとんど空のデータと無駄な時間を含む大きなチャンクが作成されました。
次のアプローチは、制限フィルターとソフト パラメーターを使用して、段階的に変換を実行することでした。
btrfs balance start -dconvert=raid1 -dlimit=500,soft .
このように、ファイル システムは段階的に変換されました。
ノート:
- 変換前に「空のチャンク」のバランスを取ります。これにより時間が節約されます。
- このプロセス中、btrfs は常に新しいデータを古い raid プロファイルのチャンクに配置します。これを変更する方法は見つかりませんでした。したがって、新しいデータは常に raid5 チャンクに配置されるか、データを保持するために新しい raid5 チャンクが作成されます。ファイル システム全体が変換されると、この動作は当然なくなります。
- これはオンラインで完全に機能しました :)