Btrfsの場合、単一パーティションからDUP = 3または> 3に変換する方法は?

Btrfsの場合、単一パーティションからDUP = 3または> 3に変換する方法は?

質問は以下を指す:

  • DebianベースのLinux、カーネル> = 5.1
  • 1つのハードドライブ、またはSSDと1つのBtrfsパーティションしかないシステムにも明示的に適用されます。

可能な実装のヒント: 「単一のデバイスでデータとメタデータにDUPを使用できますか?それでは、2つ以上のデータコピーを指定できますか?」

Btrfsでサポートされている最小構成ファイルに関する情報:

DUP=1 の構成例:

単一のハードディスクと単一のパーティションを持つ既存のシステムのメタデータをDUP = 2からDUP = 1に変換します。

btrfs balance start -mconvert=single / # convert metadata
btrfs balance start -dconvert=single / # convert data

DUP=2 の構成例:

単一のハードディスクと単一のパーティションを持つ既存のシステムのメタデータをDUP = 1からDUP = 2に変換します。

btrfs balance start -mconvert=dup / # convert metadata
btrfs balance start -dconvert=dup / # convert data

次のように、複数のハードドライブや複数のパーティションを必要とするソリューションは必要ありません。

次のように、冗長性のない「シングル」をデータとメタデータの冗長性を持つRAID1に変換します。

btrfs balance start -mconvert=raid1 /

重複せずに「シングル」をRAID1c3またはRAID1c4に変換

...

答え1

DUP=3Btrfsは現在設定ファイルを提供していませんDUP>3。サポートされているプロファイルがリストされています。ここ

疑いなく、DUPの空間効率は50%です。これはDUP3がありません(33%の効率を意味します)。

最も近いDUP3はRAID1c3ですが、3つの異なるブロックデバイスが必要です。

(リンクされたページを信頼していない場合は使用してくださいman mkfs.btrfs)。

答え2

ディスクを再分割できない場合は、単一のパーティションから同じサイズの3つのブロックデバイスをインポートし、btrfsおよび設定ファイルで使用できるさまざまなオプションがありますraid1c3。オプション:

  • LVM:現在のパーティションを新しいLVMボリュームグループの唯一のPVにし、そこに同じサイズの3つのボリュームを作成します。これらのボリュームを使用して、構成ファイルを使用してraid1c3新しいbtrfsファイルシステムを作成します。

  • mdadm:たとえば、またはモードとオプションを使用してパーティションからmdadmデバイスを作成し、デバイスを分割し、などのネストされた/dev/md0パーティションからbtrfsファイルシステムを作成します。linearraid0raid1-n 1 --force/dev/md0p1/dev/md0p2/dev/md0p3

  • bcache:パーティションをバックアップデバイスとして使用してbcacheデバイスを作成し(キャッシュなしで実行できます)、bcacheデバイスにパーティションを作成します。たとえば/dev/bcache0p1、(パーティションデバイスファイルが表示されるようにするには)、新しいパーティションにbtrfsファイルシステムを作成します。 、私は最後にこれを試したときにコマンドを実行し、次回の再起動時に自動的に表示されるはずです。/dev/bcache0p2/dev/bcache0p3

バックアップが推奨され、mdadm オプションと bcache オプションを使用するには、データを別の場所に一時的に保存する必要があります。つまり、mdadmまたはbcacheデバイスを作成すると破壊されます。 LVMオプションの場合は、現在のbtrfsファイルシステムを縮小し、「manual lvmify」の回答に従うことができます。https://superuser.com/questions/493481/fastest-way-to-convert-an-ext4-formatted-disk-to-lvm-with-ext4-on-itパーティションを論理ボリュームに変換します。 (許容される回答は縮小ステップを含むツールを使用しますが、目的に合わせてサイズを十分に小さく設定します。)

パーティションが内部重複排除機能を持つSSDにある場合は、SSDが各コピーごとに異なるデータを確認し、各コピーを別々に保存するようにLUKS層を強制的に追加する必要があります。ただし、各レプリカを作成するのにかかる時間は、レプリカが同じストレージブロックに保存されることを意味する可能性があり、すべてのレプリカが同時に失敗する可能性は予想より高くなる可能性があります。

上記の提案を調整して、raid1c43つではなく4つのデバイスを作成してください。

関連情報