在 Solaris 11.4 系统上,我有一个 ZFS 池占用了三个驱动器。系统关闭时,这三个驱动器被物理移除,但都没有zpool export
执行zpool destroy
,因此原则上系统认为该池仍然存在。这个池是不需要的。
现在,每次登录时,都会看到一条消息:
NOTE: system has 3 active faults; run 'fmadm list' for details.
当我这样做时,我得到了关于已移除磁盘的许多页信息,其中包括严重性Major
、消息IDZFS-8000-CS
和ZFS-8000-PE
、问题状态isolated
、问题类别fault.fs.zfs.pool
和fault.fs.zfs.no_replicas
、状态faulted and taken out of service
以及FRU 状态faulty/not present
。
这本身是有道理的,但一个令人困惑的方面是,虽然 Fault Manager 知道这个“问题”,但 ZFS 却不知道。ZFS 似乎对丢失的池完全没有概念。当我运行时,zpool list
我只看到rpool
(没有其他池)。zpool status
和 也是一样zdb
;两者都只列出健康的rpool
,没有给出错误、故障或降级,也没有提到有故障的池。如果我尝试zpool status badpool
,我会得到:
cannot open 'badpool': no such pool
因为我不想要这个池,所以我尝试过zpool destroy badpool
,但这也得到:
cannot open 'badpool': no such pool
-f
没有帮助,它会不出所料地发出相同的消息。
我不知道是什么导致系统处于这种状态,ZFS 不知道池的概念,而 Fault Manager 仍在抱怨。可能有人在断开连接后已经执行了 ZFS 命令来销毁它。
我浏览了fmadm
“管理 Oracle® Solaris 11.4 中的故障、缺陷和警报”的手册页,但界面似乎有一个巨大的漏洞:它希望您“修复”、“更换”或“释放”设备,但却没有提到要做什么如果您不再需要该设备或其提供的服务。
我的问题是:
为什么 Fault Manager 仍然记得 ZFS 似乎已经忘记的池? 和,
我怎样才能让故障管理器忘记它?
的输出zpool status
,除了缺少池之外没有什么特别的,是:
pool: rpool
id: 3268360325047915522
state: ONLINE
scan: scrub repaired 0 in 54s with 0 errors on Tue Sep 19 20:05:51 2023
config:
NAME STATE READ WRITE CKSUM
rpool ONLINE 0 0 0
c2t0d0 ONLINE 0 0 0
errors: No known data errors