
它是什麼
ZFS 是 Sun Microsystems 為 Solaris 所創。Oracle 收購 Sun 之後,開源程式碼以 OpenZFS 的名義延續下來,可在 Linux 與 FreeBSD 上執行,並內建於 Proxmox VE 與 TrueNAS。由於它同時管理磁碟與檔案系統,所以知道哪個磁碟存放哪一份資料副本,並能用完好的副本修復損壞的副本。
值得了解的概念
- 儲存池、鏡像與 RAID-Z:磁碟被組成儲存池。鏡像在兩個或更多磁碟上保存相同的副本。RAID-Z 使用同位檢查,並依等級不同,每組可承受一、二或三個磁碟故障。
- 校驗和:每個區塊都有校驗和,因此當磁碟悄悄傳回損毀的資料時,ZFS 會發現,並從備援副本修復。定期排程的 scrub 會檢查整個儲存池。
- 快照:檔案系統或虛擬磁碟的凍結視圖,幾乎瞬間建立,且只在資料變動時才佔用空間。
- 傳送與接收:快照可串流到另一台 ZFS 機器。第一次完整複製之後,只傳送變更的部分。
- 壓縮:資料可以在寫入時壓縮。常用的方法 LZ4 增加的處理器負載很少。
- 直接存取磁碟與記憶體:ZFS 應該直接看到每個磁碟,而不是透過硬體 RAID 磁碟區。它會將讀取內容快取在閒置記憶體中,因此記憶體不足的伺服器會感覺很慢。
ZFS 與 Ceph 的比較
ZFS 是單一伺服器內的儲存。如果那台伺服器停機,它的儲存池也會停擺,不過第二台伺服器上的複本可以接手,只是缺少最新的變更。Ceph 則將儲存分散到多台伺服器,因此失去一台不會造成任何中斷,代價是需要更多硬體與照管。我們的儲存服務頁面說明了各自適用的時機。兩者都無法取代備份。
KawaConnect 如何運用 ZFS
我們自己的基礎架構使用 Proxmox 與 Ceph,也為客戶建置 Proxmox 伺服器。ZFS 是 Proxmox 內建的儲存,對於單一主機或一對主機,我們的設計就從它開始。當儲存必須在整台伺服器遺失時仍持續運作,我們就規劃 Ceph。
相關服務
瞭解更多
- OpenZFS 文件官方手冊,附有各作業系統的設定指南與指令參考頁面。
- OpenZFS 專案網站專案消息、支援的平台,以及開發人員如何協同合作。
- 維基百科的 ZFS 條目從 Sun 到 OpenZFS 的中立歷史,以及功能概述。
- Proxmox VE wiki 中的 ZFS on Linux說明 Proxmox VE 如何使用 ZFS,包括儲存池配置、記憶體設定,以及更換故障磁碟。