nas4free ZFS 重新镀银期间更换驱动器发生故障

nas4free ZFS 重新镀银期间更换驱动器发生故障

我正在运行 nas4free v. 10.3.0.3.,使用 ZFS,带有四个 2TB 驱动器 RaidZ1。每年一次,我会进行一次完整备份,将最旧的驱动器脱机,用新驱动器替换它,然后发出“zpool replace mytank /dev/ada0”命令,它会自动启动重新同步。

这个周末,我像往常一样开始了这个过程。当时,完成时间约为 8 小时。但是,现在已经超过 24 小时了,重新同步仍然没有完成。查看“磁盘|ZFS|池|信息”屏幕,似乎重新同步过程不断重新启动。现在,它完成了 0.14%。我知道以前也出现过几次这种情况。

因此,考虑到重新同步会给驱动器带来压力,我在每个驱动器上运行了 smartctl。三个“旧”驱动器没有显示任何错误。一切都“正常”。

但是,“新”驱动器不是。以下是 smartctl 输出中的几行相关内容:

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: FAILED!
Drive failure expected in less than 24 hours. SAVE ALL DATA.
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  5 Reallocated_Sector_Ct   0x0033   001   001   005    Pre-fail  Always   FAILING_NOW 0
196 Reallocated_Event_Count 0x0032   100   100   000    Old_age   Always       -       0
197 Current_Pending_Sector  0x0022   001   001   000    Old_age   Always       -       2000

SMART Error Log Version: 1
ATA Error Count: 270 (device log contains only the most recent five errors)

是的,我认为驱动器出现故障。

现在我的问题是:

1) 我如何像往常一样将坏磁盘脱机?

2) 将坏磁盘“离线”是否会停止重新镀银过程?

3) 更换坏盘并发出命令后zpool replace,重新镀银程序会自动重新启动吗?

感谢您的帮助。

答案1

ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  5 Reallocated_Sector_Ct   0x0033   001   001   005    Pre-fail  Always   FAILING_NOW 0
197 Current_Pending_Sector  0x0022   001   001   000    Old_age   Always       -       2000

在我看来,你买到的是个次品。这种情况时有发生;退回磁盘并更换。对于最近购买的产品,可能开机时间短,SMART 指示有故障,这应该不是问题。如果经销商确实对此大惊小怪,请找其他经销商并开始在那里购物。

1) 我如何像往常一样将坏磁盘脱机?

您始终可以使用 使磁盘脱机zpool offline <pool> <dev>。只需小心保持在池的冗余阈值之上即可。(我不认为 ZFS 会让您在没有强制的情况下删除导致池冗余阈值以下的磁盘,甚至可能不会这样做,但很容易陷入-f不考虑后果而添加 的陷阱。)

2) 将坏磁盘“离线”是否会停止重新镀银过程?

应该如此,因为现在不需要重新同步。但请注意,您将没有任何冗余,因此当池处于该配置时,任何故障(甚至是扇区级 I/O 错误)都可能很严重。

3) 更换坏磁盘并发出 zpool replace 命令后,重新镀银程序会自动重新启动吗?

您可能需要zpool online新的磁盘,因为旧磁盘已被占用offline,但我不这么认为。从概念上讲,与后面的zpool replace <pool> <old> <new>内容相同(但您无法在 raidz vdev 中附加/分离设备)。zpool attach <pool> <new>zpool detach <pool> <old>

就 ZFS 而言,新的替换磁盘将需要重新镀银,因此将启动重新镀银。

话虽如此,你问题的这一部分对我来说很突出:

四个 2TB 硬盘 RaidZ1。每年我都会进行一次完整备份,脱机最旧的驱动器,替换它使用新驱动器,并发出“zpool replace mytank /dev/ada0”命令,

我建议您在安装新磁盘之前不要移除旧磁盘,尤其如果它工作得还不错。(我曾经遇到过磁盘从开始就出现错误的情况想法在该磁盘上放置 I/O,在这种情况下,脱机或移除有问题的磁盘可能是一个合理的选择。)相反,将新磁盘挂在旧磁盘旁边,然后zpool replace <pool> <old> <new>。通过这样做,您可以获得池中冗余的好处;然后,如果任何其他磁盘在重新同步期间遇到问题,系统将更有可能妥善处理该问题并且不会丢失数据。

非常至少,zpool scrub在离线要替换的磁盘之前立即在池上运行完成。

相关内容