Freebsd

如何修復 zpool detach 掛起整個池?

  • October 24, 2017

昨天在 FreeBSD 10.3-RELEASE-p20 系統上嘗試替換 zpool 中的磁碟時,zfs 文件系統在發出zpool detach srv gpt/d0命令後變得無響應。伺服器充當 NFS 伺服器、WebDAV 伺服器和 iSCSI 目標,並且在執行zpool detach所有 iSCSI 客戶端后開始出現超時。

這顯然導致整個 ZFS 子系統鎖定。zpool status或任何其他命令只會掛起並且不會產生任何輸出。中沒有顯示任何內容dmesgtop也沒有顯示任何消耗大量 CPU 的程序。最後,我們無法找到任何解決方案並被迫重新啟動系統(包括使用硬重新啟動,因為在停止所有服務後軟重新啟動未能重新啟動系統)以使 iSCSI 目標重新聯機。

是什麼導致了這種情況,我們如何避免這種情況?zpool detach在 FreeBSD 下更換 ZFS 池中的設備時,我們如何防止掛起?

看起來這已在 11.0-RELEASE 中修復:https ://bugs.freebsd.org/bugzilla/show_bug.cgi?id=216881

我猜他們認為不值得將其向後移植到 10.3-RELEASE-p22。:(

我不確定為什麼會發生這種情況,但我們發現此問題與在池上啟用 ZFS 自動擴展有關。設置autoexpand=off使用:

zpool set autoexpand=off srv

允許我們在不zpool detach以相同方式掛起的情況下拆卸和更換更多設備。

我仍然有興趣了解有關此故障模式的更多資訊,但我正在回答我自己的問題,希望分享禁用自動擴展可以解決此問題的知識。

引用自:https://serverfault.com/questions/880025