主流的PCIe閃存卡性能要遠高于SAS和SATA接口的固態硬盤,這是一個公認的觀點,但是另一個問題是原生PCIe閃存卡就需要廠商為其開發專屬的接口規范,以便PCIe能夠與閃存實現更好的結合。但是市場要往前走就必須實現標準化,這時候NVMe出現了。
NVMe是一個可擴展的主機控制接口,主要為企業、數據中心以及客戶端系統中應用PCIe接口的固態存儲設備設計。這個接口規范在指令和執行路徑上都做了優化,而且支持多個并行操作(單一I/O隊列可以支持到64K命令)。此外,NVMe支持很多包括端到端數據保護(和T10DIF和DIX標準配套)這樣的企業級功能。上面一段文字是NVMe聯盟官網對于NVMe接口標準的一段描述,概述了NVMe的本質和幾個比較重要的優勢。對于NVMe來說,最大限度的釋放閃存的潛能是其終極目標,本篇文章將從NVMe的發展進程和標準化兩個方面來介紹。
NVMe的前身當屬NVMHCI (Non-Volatile Memory Host Controller Interface),這是英特爾、IDT(已經被PMC收購)、NetApp等公司聯合推出的非易失性存儲主機控制器接口標準,包括不需要寄存器的讀取操作、針對能夠直接與CPU通信的PCIe接口標準設計在內的特性都被NVMe繼承,當然NVMHCI工作組大部分成員也是當下NVMe聯盟的成員。
截至2015年2月6日,NVMe擁有近60家成員(包括聯盟發起成員13家、貢獻者成員40家以及采用者成員6家,成員名單下載)。從這份名單來看,NVMe的生態已經初步形成,聯盟成員不僅有Memblaze這樣的PCIe閃存卡廠商和閃存控制器廠商PMC,還有EMC、NetApp這樣傳統存儲巨頭、有東芝、SK這樣的芯片供應商,甚至Qlogic這樣的HBA卡廠商也在聯盟當中,當然最后還少不了英特爾這樣生態搭建高手。像Linux、在Hadoop等所有開源項目一樣,每一家聯盟成員享受到“基準驅動”持續改進好處的同時,還要將自己的修改在適當時候貢獻到整個生態系統中。
NVMe 1.0規范于2011年3月1日發布,1.0規范旨在打造一個高可擴展并且能夠充分釋放PCIe閃存潛能的標準,這個規范為NVMe的發展奠定了一個基礎。具體到接口的細節上,1.0規范支持多核架構;保障多個線程在每個核上都有自己的SSD隊列并且不會被中斷。在企業級解決方案中,NVMe支持端到端的數據保護、安全以及加密功能,同時還有健全的錯誤報告和管理功能。
2012年10月11日,NVMe1.1規范發布。NVMe在企業級和客戶端上的功能也上升了一個層級,對于企業級,1.1規范通過多I/O路徑以及命名空間共享的方式增加了多主機使用模式(這種多路訪問方案可以促進SSD資源被多個主機共享的實現,也會促進PCIe交換技術的發展),增強了重置功能,簡化了預留機制并提高容錯能力。對于企業級和客戶端系統,1.1規范都增加了設備狀態自動轉化的功能以降低設備功耗。
2014年11月3日,NVMe1.2規范發布。最新的規范同樣針對企業級和客戶端系統做了升級。客戶端方面增強了電源管理等功能。這為消費級