NVM Express® (NVMe®) 接口允許主機軟件與非易失性內存子系統進行通信。它定義了協議並提高了 PCIe NVMe SSD 的性能。
2021 年 6 月, NVMe 2.0發布,標準化一些額外的功能和改進,特別是對於數據中心。但最顯著的變化是“重構”,NVM Express對原有的NVMe1.4、NVMe-MI和NVMe-oF進行了重構,使最新的NVMe規範更具可擴展性和可擴展性。
NVMe 2.0重構
最新 NVMe 重構的規模是該版本編號為 2.0 而不是 1.5 的原因。 NVMe 2.0 中包含的重構可以更快、更簡單地開發 NVMe 解決方案,以支持日益多樣化的 NVMe 設備環境。
以前的版本包括 NVMe 1.4 基本規範、NVMe-MI 和 NVMe-Of 規範。然而,最新的NVMe 2.0規範庫包含四組規範,總共八個文檔:
1. NVMe基礎規範
• NVMe 基礎規範
2. 每個命令集單獨的規範
• NVM 命令集規範
• 分區命名空間命令集規範
• 鍵值命令集規範
3. 模塊化傳輸映射層
• PCIe 傳輸規範
• RDMA 傳輸規範
• TCP 傳輸規範
4.NVMe管理接口
• NVMe-MI
NVMe 2.0 中的重構包括集成 NVMe 和 NVMe over Fabrics (NVMe-oF) 規範,以及為每個命令集和每個傳輸映射層創建單獨的規範。例如,PCIe 已分解為一種傳輸規範。
NVMe 2.0 的主要功能
除了重構和發布以前規範中隱藏的技術提案外,NVMe 2.0 系列規範還包括四個關鍵功能。
分區命名空間 (ZNS)
此功能提供了允許 NVMe SSD 和主機協作進行數據放置的接口。它可以將數據與SSD的物理介質對齊,從而提高整體性能並增加可以暴露給主機的容量。更重要的是,ZNS 顯著改善了寫放大。也就是說,使用ZNS可以延長NVMe SSD的使用壽命。
分區命名空間命令集規範定義了 ZNS SSD 的操作方式。 ZNS SSD 的三個重要運行特性是:
1. 分區命名空間被劃分為一組大小相等的區域,這些區域是連續的、不重疊的邏輯塊地址範圍。
2. 區域內的寫入必須是連續的,並且從“寫入指針”的位置開始。
3. 每個區域必須先擦除後才能重寫。
鍵值命令集
2000年代末後非結構化數據的爆發推動了非關係數據庫的發展。鍵值數據庫是一種非關係型數據庫,使用簡單的鍵值方法來存儲數據。鍵和值都可以是任何東西。這種類型的數據庫是高度分佈式的,並且允許水平擴展,其規模是其他類型的數據庫無法實現的。然而,在鍵值數據庫中可能需要將數據組織成日誌結構合併樹(LSMT)。除了原始數據寫入之外,此操作還涉及更多的寫入周期,並導致 SSD 的使用壽命縮短。
NVMe-KV就是為了解決這個問題而開發的。它允許使用密鑰而不是邏輯塊地址訪問 NVMe SSD 命名空間上的數據。 NVMe-KV 命令集提供了在非易失性介質上存儲相應值的密鑰,然後通過指定相應的密鑰從介質中檢索該值。通過遵循 SNIA 定義的 NVMe-KV 命令集和鍵值存儲 API 規範,KV SSD 允許用戶訪問鍵值數據,而無需在鍵和邏輯塊之間添加昂貴且耗時的額外轉換錶 [4] 。
NVMe 耐力組管理
NVMe 耐力組管理允許將介質配置為耐力組和 NVM 集。這可以實現對 SSD 的訪問粒度並改進控制。
Endurance Group 和 NVM 集首次在 NVMe 1.4 中引入,但客戶配置它們的能力有限。配置要么需要在驅動器的固件中進行硬編碼,要么使用供應商特定的命令進行處理。 NVMe 2.0為用戶提供了分配Endurance Group和NVM集的機制。有了更多的可配置參數,NVM子系統可以更加靈活地隔離不同用戶在共享驅動器或陣列上的I/O性能影響和磨損均衡操作。
下圖顯示了 NVMe 存儲實體層次結構:
1. NVM子系統包含域
2. 域包含耐力組
3. 耐力組包含 NVM 組
4. NVM集包含命名空間
5. 命名空間包含邏輯塊數組
NVMe 2.0 現在支持 HDD(旋轉介質)
儘管SATA規範已經12年沒有更新,但硬盤仍然無法接近SATA接口的理論帶寬(600MB/s)。因此,我們預計 NVMe 2.0 的旋轉介質支持不會為 HDD 的性能帶來立竿見影的好處。 NVMe 支持旋轉介質的關鍵原因是提高整體系統的可組合性。高度可組合的系統提供可以選擇並以各種組合方式組裝的組件,以滿足特定的用戶需求。此功能將使數據中心和企業環境受益。
NVMe 2.0較1.4有顯著改進
從NVMe 2.0的新特性來看,很明顯NVMe現在正在關注企業和數據中心的需求。結果一點也不令人意外。正如 IDC 研究副總裁 Jeff Janukowicz 所說:“NVMe 技術是 SSD 的領先接口,預計到 2024 年,全球企業級 SSD 總體容量將以 43% 的複合年增長率增長。NVMe 架構專為未來 SSD 發展而設計,隨著我們進入推動數字化轉型的超大規模和企業計算的新時代。”
本文使用的資源:
1、圖1、2、6: NVM快遞
2、圖3: 區域存儲
3、圖4: 東北大學工程學院
4 圖。 5: NVM快遞
常見問題 (FAQ):
NVMe 2.0 與 NVMe 1.4 有何不同?
NVMe 2.0 引入了模組化重構,將命令集和傳輸層分離,從而更易於整合和擴展。它還帶來了關鍵的企業級功能,例如分區命名空間支援、鍵值儲存和動態 Endurance Group 配置。, 提供更好的資源隔離和系統可組合性。
區域命名空間 (ZNS) 如何提高 SSD 性能和耐用性?
ZNS 將資料與實體媒體佈局對齊,最大限度地減少寫入放大。資料必須在區域內依序寫入,且區域在重複使用前必須擦除。, 這 減少內部開銷、提高效能並顯著延長驅動器壽命,使其成為寫入密集型工作負載的理想選擇。
為什麼鍵值 (KV) 儲存與 NVMe 2.0 相關?
KV 儲存支援基於鍵的直接訪問,無需傳統的區塊位址轉換,解決了非結構化資料處理效率低下的問題。這對於 NoSQL 資料庫以及效能和 SSD 壽命至關重要的大規模、低延遲環境尤其有利。
Endurance Group Management 提供了哪些 NVMe 1.4 所沒有的功能?
儘管 NVMe 1.4引入了配置的概念 依賴供應商. NVMe 2.0 對其進行了標準化,允許使用者動態建立和管理耐久性群組和 NVM 集。這增強了多租戶 SSD 的效能、磨損隔離以及在不同工作負載下的驅動器使用壽命。
NVMe 2.0 如何與 AI 和機器學習工作負載保持一致?
NVMe 2.0 支援細粒度儲存控制、低延遲存取(透過 KV)和最佳化的耐用性, 所有這些對於產生高吞吐量、混合讀取/寫入工作負載的AI/ML環境至關重要。分區儲存和直接密鑰存取還可以簡化資料預處理流程。