我怎样才能让 Solaris 故障管理器忘记错误删除的 ZFS 池?

我怎样才能让 Solaris 故障管理器忘记错误删除的 ZFS 池?

在 Solaris 11.4 系统上,我有一个 ZFS 池占用了三个驱动器。系统关闭时,这三个驱动器被物理移除,但都没有zpool export执行zpool destroy,因此原则上系统认为该池仍然存在。这个池是不需要的。

现在,每次登录时,都会看到一条消息:

NOTE: system has 3 active faults; run 'fmadm list' for details.

当我这样做时,我得到了关于已移除磁盘的许多页信息,其中包括严重性Major、消息IDZFS-8000-CSZFS-8000-PE、问题状态isolated、问题类别fault.fs.zfs.poolfault.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 中的故障、缺陷和警报”的手册页,但界面似乎有一个巨大的漏洞:它希望您“修复”、“更换”或“释放”设备,但却没有提到要做什么如果您不再需要该设备或其提供的服务。

我的问题是:

  1. 为什么 Fault Manager 仍然记得 ZFS 似乎已经忘记的池? 和,

  2. 我怎样才能让故障管理器忘记它?

的输出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

相关内容