在 ZFS 主機上執行 VM 對性能有何影響?
我正在考慮從 ext3 遷移到 ZFS 以在我的 Debian Linux 主機上使用ZFS on Linux進行數據儲存。我真正想要的 ZFS 的一個殺手級特性是它的數據完整性保證。隨著我的儲存需求增加而微不足道地增加儲存的能力也是我所期待的。
但是,我也在同一台主機上執行了一些虛擬機。(雖然通常情況下,在我的情況下,任何時候主機上都只有一個 VM 執行。)
考慮到 ZFS 的數據校驗和和寫時複製行為,以及 VM 磁碟映像是相對較大的文件這一事實(我的主 VM 的磁碟映像文件目前位於 31 GB),**這樣的 VM 來賓內部的性能影響是什麼?遷移?**我可以採取哪些步驟來減少可能的負面性能影響?
如有必要,我可以在 VM 磁碟映像上使用較少的數據完整性保證(我不會在任何 VM 內做任何真正關鍵的事情),並且可以輕鬆地將它們與文件系統的其餘部分分開,但如果我不這樣做會很好不必(甚至有選擇地)關閉幾乎讓我想遷移到不同文件系統的功能。
硬體對於工作站級系統來說是相當強大的,但對於高端伺服器(32 GB RAM,很少使用 > 10 GB,6 核 3.3 GHz CPU,目前 2.6 TB 可用磁碟空間根據
df
總共大約 1.1 TB 可用;遷移到 ZFS 可能會增加一些可用空間)而且我不打算執行重複數據刪除(因為在我的情況下打開重複數據刪除不會增加太多)。計劃是從 JBOD 配置開始(顯然有良好的備份),但如果條件允許,我最終可能會轉向雙向鏡像設置。
由於 ZFS 在塊級別上工作,因此文件的大小沒有區別。ZFS 需要更多的記憶體和 CPU,但作為文件系統本身並不會明顯變慢。儘管您需要注意 RAIDZ 在速度上並不等同於 RAID5。RAID10 在速度優先的情況下很好。
體面(即 buff)硬體上的 ZFS 可能比其他文件系統更快,您可能希望在快速(即 SSD)位置創建 ZIL。這本質上是記憶體寫入的位置(嗯,更像是 ext3/4 中的日誌)。這使得 box ack 在實際主軸有數據之前寫入磁碟。
您還可以在 SSD 上創建 L2 ARC 用於讀取記憶體。這在 VM 環境中非常棒,您可以通過同時啟動多個 VM 來使物理磁碟癱瘓。
驅動器進入 VDEV,VDEV 進入 zpool(請一次使用整個磁碟)。如果這是一個較小的系統,您可能需要一個 zpool 和(如果您不太擔心數據失去)一個 VDEV。VDEV 是您選擇 RAID 級別的地方(儘管如果您有足夠的磁碟,您也可以鏡像 VDEV)。VDEV 中最慢的磁碟決定了整個 VDEV 的速度。
ZFS 是關於數據完整性的——許多用於文件系統維護的傳統工具(如 fsck)不存在的原因是它們解決的問題在 ZFS 文件系統上不存在。
IMO ZFS 的最大缺點是,如果您的文件系統接近滿載(例如 75%+),它會變得非常緩慢。只是不要去那裡。