不足しているBtrfs RAID-1デバイスの交換 - btrfsの交換とバランス?

不足しているBtrfs RAID-1デバイスの交換 - btrfsの交換とバランス?

最近ディスクを交換する必要があるため、2つのBtrfs RAID-1ファイルシステムでデバイスを交換しました。

これが私がする方法です:

mount -o noatime,degraded /dev/sda3 /mnt/tmp
btrfs fi show /dev/sda3
btrfs replace start -B 1 /dev/nvme0n1p3 /mnt/tmp 
btrfs replace status /mnt/tmp 
btrfs fi show /dev/sda3
btrfs fi show /mnt/tmp
btrfs scrub start -B /mnt/tmp
mount -o noatime /dev/sda3 /mnt/tmp
ls /mnt/tmp
btrfs fi show /mnt/tmp
umount /mnt/tmp

これは次のことを意味します。

  • btrfs replaceすでにマウントされているファイルシステムのデバイス交換のみがサポートされているようで、デバイスをマウントしました。
  • btrfs fi showどのデバイスIDが欠落しているかを確認しました(1この場合)。
  • それで、失われたデバイスを新しいディスク上のデバイス1と交換しました。nvme0n1p3
  • 最終ショーはよさそうだし、Scrubsでも不満はなかった。
  • プログラムが正常に実行された後のアンインストールとインストール(ダウングレードなし)
  • このコマンドまたはカーネルログにエラーが報告されていません。

ただし、前の脚(例:/ dev / sda3)を削除した後は、ファイルシステムをマウントできなくなります。

mount -o noatime,degraded /dev/nvme0n1p3 /mnt/tmp
mount: /mnt/tmp: wrong fs type, bad option, bad superblock on /dev/nvme0n1p3, missing codepage or helper program, or other error.

失敗:

Dec 22 09:41:34 BTRFS info (device nvme0n1p3): allowing degraded mounts
Dec 22 09:41:34 BTRFS info (device nvme0n1p3): disk space caching is enabled
Dec 22 09:41:34 BTRFS info (device nvme0n1p3): has skinny extents
Dec 22 09:41:34 BTRFS warning (device nvme0n1p3): devid 2 uuid f9c9c081-0fdc-4b61-8329-c1addb51e3fe is missing
Dec 22 09:41:34 BTRFS error (device nvme0n1p3): failed to read chunk root
Dec 22 09:41:34 BTRFS error (device nvme0n1p3): open_ctree failed

だから私の期待は次のとおりです。

  • 1つのbtrfs replaceコマンドで、RAID-1 btrfsファイルシステムから欠落しているデバイスを交換できます。
  • 特に、btrfs replace残りのデータ/メタデータは新しく追加されたデバイスにコピーされます。

btrfs replaceこれがうまくいかないため、aが常に十分かどうかはもうわかりません。

btrfs replace後で明確なバランスが必要でしょうか?

たとえば、このような方法ですか?

btrfs balance start -dconvert=raid1,soft -mconvert=raid1,soft /mnt/tmp

追加情報:

  • したがって、全体的な目標は、RAID-1 btrfsファイルシステムの両方の脚を交換することです。つまり、2つのステップで行います。まず左脚、次に右脚です。
  • Fedora 33(カーネル5.8.18-300.fc33.x86_64およびbtrfs-progs-5.7-5.fc33.x86_64)で交換が完了しました。
  • BtrfsファイルシステムはUbuntu 20.04で作成されました。
  • btrfs rescue chunk-recover役に立たない

現在のbtrfs fi showレポートは次のとおりです。

btrfs fi show /dev/nvme0n1p3
warning, device 2 is missing
warning, device 2 is missing
bad tree block 934674432, bytenr mismatch, want=934674432, have=0
ERROR: cannot read chunk root
Label: none  uuid: 1c1a03db-38c2-4b08-a2ec-47d200f98b0a
    Total devices 2 FS bytes used 196.62MiB
    devid    1 size 1.00GiB used 758.38MiB path /dev/nvme0n1p3
    *** Some devices missing

なぜ警告が2回繰り返されるのかわかりません。

2番目の例

同じシステム上の他のBtrfs RAID-1ファイルシステムから欠落しているディスクを交換すると、同様の方法で失敗します。

交換手順:

mount -o noatime,degraded /dev/mapper/new-root-1 /mnt/tmp
btrfs fi show /mnt/tmp
btrfs replace start -B 1 /dev/mapper/new-root-0 /mnt/tmp 
journalctl -fk
btrfs fi show /mnt/tmp
btrfs scrub start -B /mnt/tmp
umount /mnt/tmp

もう一方の脚を取り外した後、インストールは失敗します。

mount -o noatime,degraded /dev/mapper/new-root-0 /mnt/tmp
mount: /mnt/tmp: wrong fs type, bad option, bad superblock on /dev/mapper/new-root-0, missing codepage or helper program, or other error.

インストール中に記録されたエラー:

Dec 22 09:57:12 BTRFS info (device dm-1): allowing degraded mounts
Dec 22 09:57:12 sos.lru.li kernel: BTRFS info (device dm-1): disk space caching is enabled
Dec 22 09:57:12 BTRFS info (device dm-1): has skinny extents
Dec 22 09:57:12 BTRFS warning (device dm-1): devid 2 uuid 3093e508-17e0-4f5c-af13-642954e6fd9b is missing
Dec 22 09:57:12 BTRFS warning (device dm-1): devid 2 uuid 3093e508-17e0-4f5c-af13-642954e6fd9b is missing
Dec 22 09:57:12 BTRFS info (device dm-1): bdev (efault) errs: wr 0, rd 8, flush 0, corrupt 0, gen 0
Dec 22 09:57:12 BTRFS warning (device dm-1): chunk 69823627264 missing 1 devices, max tolerance is 0 for writable mount
Dec 22 09:57:12 BTRFS warning (device dm-1): writable mount is not allowed due to too many missing devices
Dec 22 09:57:12 BTRFS error (device dm-1): open_ctree failed

デバイスの紛失警告はここで4回繰り返されます。

btrfs fi show /dev/mapper/new-root-0         
warning, device 2 is missing
warning, device 2 is missing
warning, device 2 is missing
warning, device 2 is missing
Label: none  uuid: 3e861d70-9a98-402d-8bbc-ddec6f869433
    Total devices 2 FS bytes used 62.81GiB
    devid    1 size 231.67GiB used 65.01GiB path /dev/mapper/new-root-0
    *** Some devices missing

答え1

インストールがダウングレードされたときに記録されたすべてのデータは、最終的にシングルプロファイルまたはデュアルプロファイルに保存できます。バランスの取れた実行は、そのようなデータもミラーリングされることを保証します。

関連情報