
在 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
。
這本身是有道理的,但一個令人困惑的方面是,雖然故障管理器意識到了“問題”,但 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 沒有池的概念,而故障管理器仍在抱怨它。可能有人在斷開連接後已經執行了 ZFS 命令來銷毀它。
我瀏覽了fmadm
「在 Oracle® Solaris 11.4 中管理故障、缺陷和警報」的手冊頁,但介面似乎有一個漏洞:它希望您「修復」、「替換」或「釋放」設備,但沒有提及要做什麼如果您不再需要該裝置或其提供的服務。
所以我的問題是:
為什麼故障管理器仍然記得 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