BTRFS RAID0をRAID1に変換

BTRFS RAID0をRAID1に変換

どういうわけかBTRFSファイルシステムを作成すると、間違いを犯してRAID1ではなくRAID0で終わりました。しかし、私は274GBのデータを追加した後にのみこれを見つけました(わかりました。本当に馬鹿です)。

Total devices 2 FS bytes used 136.12GiB
        devid    1 size 465.76GiB used 137.03GiB path /dev/sdb
        devid    2 size 465.76GiB used 137.03GiB path /dev/sdc

A方法が欲しい。これが実際にRAID0であることを確認します(確かだが明確な出力を持つコマンドが見つからず、次にデータを追加する前に確認したい)。 B:可能であれば、データをRAID1に再割り当てしてください。

ベストアンサー1

複数のデバイスに btrfs ファイルシステムを作成する場合、デフォルトでは、RAID0はデータを格納するために使用され、RAID1はメタデータを保存するために使用されます。。この設定を変更するには、mkfsコマンドに引数を渡してデータ(-d)とメタデータ(-m)のRAIDレベルを変更できます。

mkfs.btrfs -d raid1 -m raid1 /dev/sda /dev/sdb

既存のファイルシステムでどのRAIDレベルが使用されているかを確認するには、次のものを使用できます。btrfsユーティリティ:

$ btrfs fi df /mountpoint
Data, RAID1: total=15.00GiB, used=14.65GiB
System, RAID1: total=8.00MiB, used=16.00KiB
Metadata, RAID1: total=1.00GiB, used=15.59MiB

サンプル出力は、データとメタデータに使用されるRAID1を示しています。実行するとbtrfs fi usage /mountpoint詳細が表示されます。

既存のファイルシステムを別のRAIDレベルに変換できます。balanceコマンドに引数を渡します。

btrfs balance start -dconvert=raid1 -mconvert=raid1 /mountpoint

Balanceはすべてのデータをファイルシステムに書き戻し、パラメータを追加するとデータが書き換えられたときに変換されます。この操作には時間がかかる場合があります。実行してbtrfs balance status /mountpointステータスを確認できます。完了したら、すべてのデータが期待どおりに変換されたことを確認できますbtrfs fi df。バランシング中に作成されたデータはまだ古い形式である可能性があるため、2番目のバランシングが必要になる場合があります。

汎用コマンドなどのdfユーティリティは、btrfs fi showbtrfs自体で実行されるRAID設定を考慮しません。これらのツールはディスクに割り当てられた合計btrfsの量だけを表示し、btrfsがデータを保存するためにどの形式を使用するのかわかりません。これはまた、SAMBAまたは他のツールを介した共有にRAIDが考慮されないことを意味します。詳しくはbtrfs FAQをご覧ください。

おすすめ記事