我有一个由两个驱动器组成的镜像配置的 ZPool。似乎在服务器维护(清理)期间,其中一个驱动器由于接线松动而离线。
# zpool status -v zmsmall1
pool: zmsmall1
state: DEGRADED
status: One or more devices could not be used because the label is missing or
invalid. Sufficient replicas exist for the pool to continue
functioning in a degraded state.
action: Replace the device using 'zpool replace'.
see: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-4J
scan: scrub repaired 0B in 02:00:24 with 0 errors on Sun Apr 14 02:24:25 2024
config:
NAME STATE READ WRITE CKSUM
zmsmall1 DEGRADED 0 0 0
mirror-0 DEGRADED 0 0 0
ata-ST1000NM0033-9ZM173_Z1W074QR ONLINE 0 0 0
16687432235547222567 UNAVAIL 0 0 0 was /dev/disk/by-id/ata-TOSHIBA_MG03ACA100_93S2K8CZF-part1
errors: No known data errors
不幸的是,没有关于该问题的通知。4 天后,我发现了问题,现在我对如何继续进行产生了怀疑。我担心的是,在线驱动器在过去几天一直在接收数据,并且偏离了第二个驱动器的状态。我担心简单地恢复第二个驱动器并发出一个zpool clear zmsmall1
可能会弄乱第一个驱动器上的好数据。
我应该如何进行安全恢复?PS:我已经在进行第二次备份,但我更愿意解决这个问题(用于练习),而不是建立一个新的池。
我最终冒险重新连接了离线驱动器。
正如 storsan 所评论的,池立即变为正常状态,并且立即启动了针对“过时”驱动器的重新同步过程。错误仍然显示在 中
zpool status
,但它清楚地表明池一切正常。因此我发出了zpool clear zmsmall1
,错误历史记录被清除,并且没有任何线索表明存在错误。