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をご覧ください。

答え2

さて、このサーバーを私の完全な失敗の記念碑にしてください。

RAID構成の確認:btrfs fi df /mountpoint

私が間違っていないことがわかりました。 SAMBAを介してbtrfs RAID1 fsに接続すると、Windowsは何らかの方法で2倍のデータ(および2倍のスペース)を報告します。

実際にBTRFSファイルシステムを設定するときに間違いを犯した可能性があります。これ役に立つかもしれませんが、幸いにも試す必要はありませんでした。

答え3

1つしか使用できませんバランスフィルター 設置時

  1. あなたがraid0で正しい配列であることを確認してください。

    $ btrfs fi df /mnt
    
    Data, RAID0: total=16.00GiB, used=14.17GiB
    System, RAID1: total=32.00MiB, used=16.00KiB
    Metadata, RAID1: total=1.00GiB, used=376.92MiB
    GlobalReserve, single: total=39.20MiB, used=0.00B
    
  2. リアルタイム変換
    btrfs fi balance start -dconvert=raid1 /mnt
    
  3. 今raid1であることを確認してください

    btrfs fi df /
    
    Data, RAID1: total=15.00GiB, used=14.22GiB
    System, RAID1: total=32.00MiB, used=16.00KiB
    Metadata, RAID1: total=1.00GiB, used=377.19MiB
    GlobalReserve, single: total=39.41MiB, used=0.00B
    

メタデータがまだraid1でない場合は追加してください-mconvert=raid1

関連情報