Btrfs 如何在没有可用 SATA 端口的 RAID1 设置上更换故障/故障硬盘驱动器

Btrfs 如何在没有可用 SATA 端口的 RAID1 设置上更换故障/故障硬盘驱动器

我正在运行 ubuntu 服务器 16.04.05 LTS 我的主板只有 6 个 SATA 端口。

端口 1 有一个硬盘驱动器,其中包含操作系统、SWAP 和主分区。端口 2、3、4 和 5 各有一个 WD red 2TB 硬盘,端口 6 有一个 WD red 4TB 硬盘。所有红色潜水端口 2-6 都位于单个 BTRFS RAID1 池中。前几天,服务器似乎崩溃了,但速度非常慢。当我检查时,我在 /dev/sdf(端口 6)上发现了很多磁盘延迟,在 15、16 秒范围内。我还收到了一堆错误,“BTRFS 错误(设备 sdb):父 transid 验证失败......

我关闭系统并运行 WD DOS 磁盘诊断简短测试,每个驱动器和 sde(端口 5 上的 2TB 驱动器)只会超时。错误代码 0134。WD 将发送替换硬盘。系统在安装了 BRTFS 池的情况下启动,并且似乎运行良好,并弹出随机 transid 验证失败错误。当新驱动器到达时,我需要更换坏的驱动器。
我读过的所有内容都表明使用“替换”命令。但在我看来,它期望旧驱动器在那里。我无法执行此操作,因为我没有空的 SATA 端口。

有没有办法物理删除旧驱动器并更换它并重新启动我的池?由于某种原因,我认为我没有完全理解这个命令。

我尝试在 fstab 中注释掉我的 BTRFS 安装,物理删除损坏的驱动器,并以降级模式安装池。这时,我试图逃跑sudo btrfs device delete missing /mnt/btrfs,但又回来了error removing the device 'missing' - Read-only file system

答案1

要做的第一件事是让系统像平常一样安装,而不是在降级模式下安装。

下一步是使用btrfs device delete删除有问题的磁盘。该命令将根据您的 BTRFS 配置文件(“RAID 级别”)将所有块从所选磁盘移动到池中的其他磁盘。在运行命令来删除设备之前,需要设置您的配置文件(数据和元数据),以便在删除设备时您的池仍将具有必要的磁盘来满足配置文件要求;如果需要,临时更改配置文件。

从池中删除磁盘后,您可以使用以下命令添加替换磁盘btrfs device add /dev/...

最后,您可以使用btrfs balanceshuffle 有关使用新磁盘的数据。如果您需要临时更改配置文件,您肯定需要此命令来更改配置文件。

相关内容