ZFS 數據失去場景
我正在尋找建構一個更大的 ZFS 池(150TB+),我想听聽人們對由於硬體故障導致的數據失去場景的體驗,特別是區分僅失去一些數據的實例與整個文件系統(如果 ZFS 中有這樣的區別)。
例如:假設由於外部驅動器機箱斷電或控制器卡故障等故障導致 vdev 失去。根據我的閱讀,池應該進入故障模式,但是如果返回 vdev,池應該恢復嗎?或不?或者如果 vdev 部分損壞,是否會失去整個池、一些文件等?
如果 ZIL 設備發生故障會怎樣?還是只是幾個 ZIL 之一?
真正由深厚的技術知識支持的任何和所有軼事或假設場景都值得讚賞!
謝謝!
更新:
因為我們是一家小型企業(大約 9 人),所以我們這樣做的成本很低,但我們會生成大量的成像數據。
數據主要是小文件,據我統計,每 TB 大約有 500k 個文件。
數據很重要,但不是超級關鍵。我們計劃使用 ZFS 池來鏡像 48TB “實時”數據陣列(使用 3 年左右),並將其餘儲存用於“歸檔”數據。
該池將使用 NFS 共享。
機架應該在建築物的備用發電機線上,我們有兩個 APC UPS 能夠在滿載情況下為機架供電 5 分鐘左右。
設計正確的方式,您將最大限度地減少 ZFS 數據失去的機會。不過,您還沒有解釋您在池中儲存的內容。在我的應用程序中,它主要為 VMWare VMDK 提供服務並通過 iSCSI 導出 zvol。150TB 不是一個小數目,所以我會依靠專業人士來提供擴展建議。
我從未使用 ZFS 失去過數據。
我經歷過其他一切:
- 十幾個 SSD 故障(一些在L2ARC 任務中)
- 多個故障池磁碟
- 無法預測的 SATA 驅動器錯誤,需要最終更換為近線 SAS 磁碟
- 錯誤配置的重複數據刪除工作的後果
- 從安全模式恢復損壞或故障的 zpool
- 壞的 10GbE NIC 埠/佈線
- 頻繁的作業系統崩潰
- 雷擊… _
但在所有這些過程中,從未有過明顯的數據失去。只是停機時間。對於位於此儲存之上的 VMWare VMDK,通常需要在事件發生後執行 fsck 或重新啟動,但不會比任何其他伺服器崩潰更糟糕。
至於 ZIL 設備失去,這取決於設計、您儲存的內容以及您的 I/O 和寫入模式。我使用的 ZIL 設備相對較小(4GB-8GB),功能類似於寫記憶體。有些人鏡像他們的 ZIL 設備。使用高端 STEC SSD 設備會使鏡像成本過高。我改用單個DDRDrive PCIe 卡。規劃電池/UPS 保護並使用帶有超級電容器備份的 SSD 或 PCIe 卡(類似於 RAID 控制器BBWC 和 FBWC 實施)。
我的大部分經驗都在 Solaris/OpenSolaris 和NexentaStor方面。我知道人們在 FreeBSD 上使用 ZFS,但我不確定 zpool 版本和其他功能落後多遠。對於純儲存部署,我建議採用 Nexentastor 路線(並與有經驗的合作夥伴交談),因為它是一個專門建構的作業系統,並且在 Solaris 衍生產品上執行的關鍵部署比 FreeBSD 更多。