什么会导致 btrfs 设备替换悄无声息地失败?

什么会导致 btrfs 设备替换悄无声息地失败?

在性能至关重要的系统中,我们运行 Btrfs RAID0。我们有三个与此问题相关的设备:

  • /dev/sda2,太小且速度太慢的SSD,会限制系统的大小和整体性能。
  • /dev/sdb,实际上是硬件 RAID0 配置中的多个驱动器,在软件中视为一个。
  • /dev/sdc,与 相同/dev/sdb,但目前不是 Btrfs 系统的一部分。

为了获得我们想要的性能和大小,我们将 /dev/sda2 替换为 /dev/sdc:

btrfs replace start /dev/sda2 /dev/sdc /
btrfs replace status /

检查此状态,我们得到2.3% done, 0 write errs, 0 uncorr. read errs并计数,但它会在随机点无错误地取消。我们得到的是 34.7%。状态恢复为 0.0%:。Started on 31.Aug 22:31:17, canceled on 31.Aug 22:43:28 at 0.0%, 0 write errs, 0 uncorr. read errs同样,绝对没有添加到dmesg

$ uname -sr
Linux 5.5.11-1.el7.elrepo.x86_64

附录:

看起来就像我们在当前卷上获得更多可用空间一样。我们现在有 20% 的可用空间,并且在失败之前已完成 75.0%。不过,这可能是一个转移注意力的借口。

$ btrfs filesystem usage /
Overall:
    Device size:                   4.33TiB
    Device allocated:              1.06TiB
    Device unallocated:            3.27TiB
    Device missing:                  0.00B
    Used:                        841.52GiB
    Free (estimated):              3.50TiB      (min: 1.86TiB)
    Data ratio:                       1.00
    Metadata ratio:                   2.00
    Global reserve:              512.00MiB      (used: 0.00B)

Data,RAID0: Size:1.01TiB, Used:802.82GiB
   /dev/sda2     517.00GiB
   /dev/sdb      517.00GiB

Metadata,RAID1: Size:24.19GiB, Used:19.35GiB
   /dev/sda2      24.19GiB
   /dev/sdb       24.19GiB

System,RAID1: Size:32.00MiB, Used:112.00KiB
   /dev/sda2      32.00MiB
   /dev/sdb       32.00MiB

Unallocated:
   /dev/sda2       1.00MiB
   /dev/sdb        2.75TiB

相关内容