NVDIMM

NVDIMM

非易失性雙列直插式記憶體模組(英語:non-volatile dual in-line memory module,縮寫NVDIMM)是一種用於計算機的隨機存取存儲器。非易失性存儲器是即使斷電也能保留其內容的記憶體,這包括意外斷電、系統崩潰或正常關機。雙列直插式表示該記憶體使用DIMM封裝。NVDIMM在某些情況下可以改善應用程式的性能、數據安全性和系統崩潰恢復時間。這增強了固態硬碟(SSD)的耐用性和可靠性。

歷史

NVDIMM由BBU(Battery Backed Up) DIMM演變而來。BBU採用含有重金屬的後備電池以維持普通揮發性記憶體中的內容幾小時之久,但不符合綠色能源的要求。由超級電容作為動力源的NVDIMM應運而生。並且NVDIMM使用非揮發性的flash存儲介質來保存數據,數據能夠保存的時間更長。

套用

數據保護

計算機系統的計算結果和服務信息皆臨時保存在記憶體中,這些數據在系統掉電後將丟失,甚至能引起整個系統的崩潰。NVDIMM可以解決系統異常掉電情況下,記憶體數據的保存工作,並且能夠在系統恢復正常運行後,繼續之前的工作。

全系統保護 是NVDIMM的一個典型套用場景。在系統異常掉電後,該系統能在短時間內將整個計算機系統當前的工作狀態(包括CPU,橋接晶片,網卡等硬體設備以及系統中所有的進程)保存至NVDIMM。在系統重新上電運行後,立即恢復至之前的運行狀態,仿佛系統只是“打了個盹”。

NVDIMM NVDIMM

在雲技術發展日新月異的今天,虛擬化技術作為雲的核心技術,得到了廣泛的關注與創新。與此同時,作為雲服務運行的底層載體,虛擬機的數據安全與完整是目前急需解決的重要課題。虛擬機實質為軟體模擬的具有完整硬體系統功能的、運行在一個完全隔離環境中的完整計算機系統,也就意味著虛擬機的所有運行狀態都在記憶體中。NVDIMM可以利用虛擬機本身的快照功能,在系統異常情況下,迅速保護存儲在記憶體中的臨時快照,達到保護整個虛擬機的目的。

磁碟快取

磁碟快取是為了減少CPU透過I/O讀寫磁碟的次數,提升磁碟I/O的效率,用一部分記憶體來儲存訪問較頻繁的磁碟內容。磁碟快取的存在對於數據訪問的一致性帶來了問題,尤其是採用write-back策略的寫快取導致異常掉電情況下記憶體中更新的數據未能及時寫入磁碟而丟失。NVDIMM是寫快取的最佳存儲介質。它的隨機訪問性質能讓CPU和作業系統直接訪問管理,並且非易失性保證數據在異常掉電情況下得以保護。

目前,針對RAID控制器的寫快取NVDIMM已逐漸被接受。對於帶有板級RAID控制晶片或者採用軟體RAID方案的計算機,缺乏寫快取,NVDIMM可以直接用做系統主存,配合作業系統,完成寫快取任務。還有一類PCIE接口的RAID控制卡,它們採用普通的帶電池後備的記憶體條作為快取使用,NVDIMM可以直接替代這些記憶體條。

存儲鏈

存儲鏈是將整個存儲系統中的數據按照安全度,性能要求以及使用頻率分層存儲在不同的非易失存儲介質中。

storage tier storage tier

如圖所示為一典型的存儲鏈實例。IO性能要求較高的數據被存儲在SSD上,而要求較低的數據放入各種類型的磁碟陣列以及NAS。NVDIMM可作為存儲鏈的最前端,它的速度比SSD更快,並且能夠提供直接隨機訪問的特性。CPU的記憶體柵障與刷新cache指令能夠保證NVDIMM數據的原子寫與一致性。所以,NVDIMM非常適合用作檔案系統或者資料庫元數據與日誌的存儲介質。

相關技術發展

SNIA NVM Express

SNIA在2013年底相繼發表的NVM(Non-volatile memory)的硬體接口規範和編程模型規範。定義了NVM的範圍為PCIE接口的flash存儲器,控制卡以及NVDIMM,PCM等可以隨機訪問的非易失性存儲器。SNIA 提出了block volume和persistent memory兩種模型,並給出了每種模型能夠處理的命令集以及能完成的功能。Block volume即傳統的塊設備模型,以塊為單位進行數據傳輸,採用與現有的ATA,SCSI,FC等協定具有相同的編程方式,比如PCIE SSD,PCIE RAID controller就是此類模型。Persistent memory是具有直接隨機訪問與非易失性雙重特性的編程模型,可以採用傳統虛擬記憶體管理接口,為檔案系統或者資料庫提供新的存儲行為。NVDIMM即採用此類編程模型,同樣PCIE卡如果將其存儲空間映射至PCIE存儲域,並且能夠禁止底層的flash特性,亦能採用此類模型。

Linux kernel

作業系統方面,Ric Wheeler 在2013 Linux Foundation Collaboration Summit提出了在Linux系統中支持NVM的想法,並且SNIA組織也已經給出了NVMe設備的Linux驅動。在Ric的討論中,在兼容老式編程模型的API的基礎上,定義新的適合NVM設備的API,讓檔案系統和資料庫都能更好地利用NVM的特性。

CPU

Intel最新的家用機晶片Haswell-E CPU開始支持288pin的DDR4記憶體條。在JEDEC 最新的DDR4規範中 ,有4個pin為NVDIMM的電源與控制信號。可見主流CPU與主機板已經開始將NVDIMM加入商業化的存儲系統。

異步DRAM自刷新(ADR)技術是Intel在凌動S12X9家族處理器上推出的新技術,可保證在異常掉電時,CPU沖刷cache,寫回cache的髒數據,然後將DRAM設定進入自刷新狀態。NVDIMM就是在DRAM處於自刷新狀態時將控制權由CPU移交給NVDIMM本身,ADR技術就是為NVDIMM量身定製。另外,ADR技術能夠有選擇的在計算機熱啟動時,不對特定通道的DRAM進行重新初始化,從而保留DRAM中的數據。包括MacroSAN、Dahua、Accusys、Qsan和Qnap等數據中心製造商已經宣布開始支持S12X9處理器家族。

相關詞條

熱門詞條

聯絡我們