btrfsがメタデータをRAID1に変換することを拒否する理由

btrfsがメタデータをRAID1に変換することを拒否する理由

単一のデバイスbtrfsファイルシステムを作成しました。 btrfs Wikiの記事によると複数のデバイスを使用、以下を使用してRAID1に変換できる必要があります。

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

Linux 3.16で起動しましたが失敗しました(カーネルパニック)。 Linux 4.0 にアップグレードし、ファイルシステムをマウントして、続行してください。しかし、メタデータやシステム(ベースbtrfs fi df)ではないデータだけを扱っています。私はgitから最新のbtrfs-progsを取得し(以前のバージョンによるものではないことを確認するために)、次のようにしました。

Watt:/home/anthony/src/btrfs-progs# ./btrfs balance start -v -mconvert=raid1 /path
Dumping filters: flags 0x6, state 0x0, force is off
  METADATA (flags 0x100): converting, target=16, soft is off
  SYSTEM (flags 0x100): converting, target=16, soft is off
Done, had to relocate 6 out of 1411 chunks

しかし、明らかにそれは実際には反映しません。今私にいます:

Watt:/home/anthony/src/btrfs-progs# ./btrfs fi usage /path
Overall:
    Device size:                   7.28TiB
    Device allocated:              2.75TiB
    Device unallocated:            4.53TiB
    Device missing:                  0.00B
    Used:                          2.74TiB
    Free (estimated):              2.26TiB      (min: 2.26TiB)
    Data ratio:                       2.00
    Metadata ratio:                   2.00
    Global reserve:              512.00MiB      (used: 0.00B)

Data,RAID1: Size:1.37TiB, Used:1.37TiB
   /dev/mapper/luks-562e4e2f-2894-415a-aaf1-7c94a11c33b9           1.37TiB
   /dev/mapper/luks-ec97c1ad-21d8-41bb-9072-e5a74f68e416           1.37TiB

Metadata,DUP: Size:2.50GiB, Used:1.58GiB
   /dev/mapper/luks-562e4e2f-2894-415a-aaf1-7c94a11c33b9           5.00GiB

System,DUP: Size:32.00MiB, Used:224.00KiB
   /dev/mapper/luks-562e4e2f-2894-415a-aaf1-7c94a11c33b9          64.00MiB

Unallocated:
   /dev/mapper/luks-562e4e2f-2894-415a-aaf1-7c94a11c33b9           3.17TiB
   /dev/mapper/luks-ec97c1ad-21d8-41bb-9072-e5a74f68e416           1.36TiB

私は再び完全なバランスを試しましたが(-dconvert=raid1そして両方を使って-mconvert=raid1)それもうまくいきませんでした。

注:大きなディスク(56…b9)は私が追加しました。

メタデータとシステムイメージを取得するには?

答え1

これは、バランス時にトランジションフィルタが機能しなくなるカーネル4.0の回帰です。すべてのコンバージョンが影響を受けるように見えます(ただし、シングル-> raid1またはraid1-> raid5ではありません)。最近見るメーリングリストスレッド、現在正式な修正はありません。カーネルにパッチを適用する場合は、単純なパッチを一時修正として使用できます。

これはv4.0の既知のバグです。回帰を引き起こしたコミットを元に戻すためにパッチ[1]を送信しましたが、応答がありませんでした。この方法を適用するか、2f0810880f08(「btrfs:ブロックグループroを設定したときにブロック割り当て試行を削除しました」)を復元して、問題を一時的に解決できます。

[1]:https://patchwork.kernel.org/patch/6238111/

関連情報