BTRFS raid1構成には同じサイズの4つのドライブがあります。別のシステムで使用できるように2つのドライブを確保したいと思います。
私はBTRFSがこれを行うことができると確信していますが、それを正しく実行する方法がわかりません。
FWIW他のすべてのデータをバックアップしました。
答え1
私は4つの小さなLVM論理ボリュームで構成された一時ファイルシステムでこのプロセスをすばやくテストしました。最初の質問はミラーリングを続けますか(容量を減らしますか?)
以下の内容«PATH»
はすべてbtrfsファイルシステムのマウントポイントです。これはすべてオンライン作業です。
データミラーリングを望まない場合(例:縮小された容量に合わないため):
ミラーを削除し、ファイルシステムをミラーレス状態に変換します。デフォルトでは、これは冗長メタデータであり、データの単一コピーです。ただし、まだ2つのディスクがあるため、raid1メタデータがより適しています。再調整でこれを行うことができます。ここで「ソフト」とは、必要なチャンクグループのみが変換されることを意味します。たとえば、すでにraid1のメタデータには触れません。 (すでに「単一」のデータと同じです。この操作を途中でキャンセルして後で再開すると、これが発生する可能性があります。)
btrfs balance start -mconvert=raid1,soft -dconvert=single,soft «PATH»
バランスは(デフォルトでは)フォアグラウンドで実行されます。--background
端末を復元できます(そしてチェックステータスを使用できますbtrfs balance status «PATH»
)。ステータスメッセージは、dmesg(カーネルログおよび/またはsystemdログを含む)にも印刷されます。 btrfsはデータ移動が好きです☹。
次に、btrfsにディスクの使用を停止するように指示します。。ミラーとして保管するかどうかにかかわらず、これを行うことができます。
これで、btrfsファイルシステムから他の2つのディスクを削除できるようになりました。また、大量のデータが移動するため、時間がかかります。両方のディスクを同時に削除でき、削除する必要があります。そうしないと、次に削除するディスクにデータが移動される可能性があります。
btrfs device remove /dev/disk1 /dev/disk2 «PATH»
ディスク/パーティションデバイスはマウントポイントの前にあります。これは再びオンライン作業です。カーネルログにステータスを表示できます。
完了したら、システムからディスクを取り外すことができます。