Cache

ZFS 和記憶體設備

  • March 13, 2019

我將在我的 ZFS 儲存中添加一個 SSD 驅動器作為記憶體。有人有這方面的經驗嗎?如果記憶體設備死了,任何數據都會受到影響嗎?

http://web.archive.org/web/20100911224754/http://www.solarisinternals.com/wiki/index.php/ZFS_Best_Practices_Guide

(Solaris Internals 網站不再可用,但 WebArchive 有一個副本)

基本上有三種類型的 ZFS 記憶體,都用於數據和元數據。

  • ARC(自適應替換記憶體)- 用於讀取和寫入的主記憶體儲器 DRAM 記憶體。
  • L2ARC (Level 2 ARC) - 安全讀取記憶體:設備故障不會導致數據失去/服務中斷。通常基於 SSD。
  • ZIL (ZFS Intent Log) - 安全地保存在永久儲存上的寫入,這些寫入也在 ARC 中等待刷新到磁碟。數據在此記憶體中的停留時間很少超過 30 秒,並且除非發生崩潰以重播任何未送出的池寫入,否則永遠不會讀取數據。在最近的任何 ZFS 版本中,Zil 設備故障不會導致數據失去(所有數據仍在 ARC 中),但設備故障 + 崩潰或斷電可能會導致一些寫入失去。

首先升級你的ARC,購買大量的主記憶體。注意 L2ARC 和 Zil 也都從 ARC 分配了成本。

L2Arc 由讀取記憶體的塊填充,因為它們從 ARC 中被逐出。預設情況下,ZFS 僅將隨機 IO(小讀取)記憶體到 L2ARC 中,並且不用於流式工作負載(除非有指示)。您基本上可以為此使用任何設備(包括快速的 15k HD),但它最適用於輕鬆處理許多隨機讀取 IOPS 的 SSD。

ZIL 加速需要同步寫入的工作負載(程序在繼續執行之前等待確認寫入實際上已送出到磁碟)。Zil 的作用與高端 RAID 控制器上的電池備份記憶體類似。儘管寫入延遲和流式​​寫入 IOPS 是優秀 Zil SSD 的定義,但最重要的是 Zil 絕不能在斷電時失去任何數據。許多合適的設備都有一個超級電容器,可以在沒有系統電源的情況下完成任何未決操作。過去推薦使用具有高寫入耐久性(Intel X25-E)的 SLC SSD,但較新的設備使用帶有電池/超級電容的 RAM,以便在發生電源故障時回寫到 NAND。ZIL 不必很大,但只需使用大型設備的一小部分(例如 300GB Intel 320 MLC SSD 中的 8GB),您可以獲得更高的有效寫入耐久性。“企業”供應商總是推薦鏡像 ZIL,我的工作負載從未如此重要。

至於具體產品,STEC 為 Sun 的 Fishworks 項目(Logzilla 和 Readzilla)製造了第一批 SSD,並擁有 ZIL(ZeusRAM 2500 美元/8GB)和 L2ARC(Zeus IOPS 3000美元/400GB)的目前設備,兩者都受到強烈推薦。基於 PCIe 的 SSD 也值得考慮,例如 ZIL 專用DDRdrive x1($2k/4GB)或任何用於 L2ARC 的大型 PCIe SSD。其他性能較低(閱讀:更便宜)的 2.5 英寸 SSD 設備也可以提供顯著的性能提升,尤其是在用於 L2ARC 時。

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