ZFS - 銷毀重複數據刪除的 zvol 或數據集會使伺服器停止。如何恢復?
我在帶有 12 個 Midline (7200 RPM) SAS 驅動器的 HP ProLiant DL180 G6 上執行的輔助儲存伺服器上使用 Nexentastor。該系統具有 E5620 CPU 和 8GB RAM。沒有 ZIL 或 L2ARC 設備。
上週,我創建了一個 750GB 的稀疏 zvol,啟用了去重和壓縮,以通過 iSCSI 共享到 VMWare ESX 主機。然後,我創建了一個 Windows 2008 文件伺服器映像並將大約 300GB 的使用者數據複製到 VM。對系統感到滿意後,我將虛擬機移至同一池中的 NFS 儲存。
在 NFS 數據儲存上啟動並執行我的虛擬機後,我決定刪除原來的 750GB zvol。這樣做會使系統停滯不前。對 Nexenta Web 界面和 NMC 的訪問停止。我最終能夠得到一個原始的外殼。大多數作業系統操作都很好,但係統一直掛在
zfs destroy -r vol1/filesystem
命令上。醜陋。我發現了以下兩個 OpenSolaris bugzilla 條目,現在了解到該機器將在未知的一段時間內被阻塞。已經 14 小時了,所以我需要一個計劃才能重新獲得對伺服器的訪問權限。http://bugs.opensolaris.org/bugdatabase/view_bug.do?bug_id=6924390
和
將來,我可能會採用 buzilla 解決方法之一中給出的建議:
Workaround Do not use dedupe, and do not attempt to destroy zvols that had dedupe enabled.
更新:我不得不強制系統關機。重新啟動後,系統停在
Importing zfs filesystems
. 現在已經這樣2個小時了。
這已經解決了。他們的關鍵是去重卷需要在刪除之前關閉去重標誌。這應該在池級別以及 zvol 或文件系統級別完成。否則,刪除本質上是重複數據刪除。該過程需要時間,因為正在引用 ZFS 重複數據刪除表。在這種情況下,RAM 會有所幫助。我臨時為系統增加了 16 GB 的 RAM,並使伺服器重新聯機。zpool 在 4 小時內完全導入。
寓意可能是重複數據刪除不是超級完善的,而 RAM 對其性能至關重要。我建議 24GB 或更多,具體取決於環境。否則,請關閉 ZFS 重複數據刪除。對於家庭使用者或較小的系統來說,這絕對是不合理的。