web-dev-qa-db-ja.com

デグレードモードでbtrfs RAIDはどのように機能しますか?

私のアイデアは(ループバックデバイスを使用して)このように動作することでした

  1. RAID配列Sudo mkfs.btrfs -m raid1 -d raid1 /dev/loop1 /dev/loop2を作成します
  2. Sudo mount /dev/loop1 /mntをマウントし、touch goodconditionとマークします
  3. ディスクのマウントを解除してディスク障害をシミュレートします(ディスクを削除するか、ループバックデバイスを削除しますloop2)。
  4. 劣化した-o degradedをマウントし、再度マークtouch degraded
  5. 不良ディスクを再度追加しますSudo btrfs dev add /dev/loop2
  6. Sudo btrfs fi ba /mntのバランスを取り直します

Raid 1が再び機能するはずです。しかし、そうではありません。 Sudo btrfs fi show

Total devices 3 FS bytes used 28.00KB
devid    3 size 4.00GB used 264.00MB path /dev/loop1
devid    2 size 4.00GB used 272.00MB path /dev/loop2
*** Some devices missing

ファイルdegradedは、loop1が劣化モードでマウントされている場合、loop2には存在しますが、loop2には存在しません。何故ですか?

6
turbo

3番目のデバイスを追加したように見えるため、元の2番目のデバイスはまだありません。新しいデバイスを追加する前に、不足しているデバイスを削除する必要があると思います。 brtfsメーリングリストもこの質問をするのに適した場所です。

3
psusi

この状況では、2つのことを行う必要があります。まず、不足しているデバイスが永久になくなっていることをbtrfsに示す必要があります:btrfs dev delete missing /mntmissingは不足しているデバイスを示すキーワードです)。次に、データが適切に複製されるように、バランスを再調整する必要があります:btrfs fi balance /mnt

4
amcnabb