如同我們在前幾期儲存月報提過的,NVMe藉由全新設計的軟體堆疊架構,所帶來的存取延遲縮減與效能提高效益,將是追求極致高效的SSD儲存應用,未來不可或缺的重要規格。

除了效能面以外,NVMe也正在逐步強化其他面向的功能,今年5月底發表的NVMe 1.3版便大幅擴充了針對虛擬化、雲端與其他面向應用的功能。

NVMe 1.3的新功能

NVMe 1.3是繼2014年11月發布的NVMe 1.2以來,3年來的首次重大更新(2016年中發表的NVMe 1.2.1是相對較不重要的更新)。NVMe標準組織在這次更新中引進了20多項新功能,包括針對消費端、企業端與雲端應用等不同領域應用的技術與機制,我們這裡先看其中幾項與企業資料中心或雲端應用有關的部份。

裝置自檢

裝置自檢(Device Self Tests)是NVMe 1.3的選用功能,對應於傳統硬碟的SMART自我檢查功能。

利用NVMe提供的裝置自檢工能,可以指示NVMe裝置執行自我檢查,為使用者提供一個檢測裝置狀態的手段。NVMe的自我檢查作業包含2種類型,ㄧ為不超過兩分鐘的快速檢查,另一為較長時間的擴展檢查,在這個模式下,SSD 必須提供檢測完成時間、並提供對應的進度指示器。具體檢查內容則是由NVMe裝置供應商提供,檢查作業不能影響用戶資料,且 SSD 在檢測期間仍能保持運行。

資料清除

SSD的資料清除是影響用戶資料安全,以及SSD使用壽命的關鍵作業,但目前SSD的資料清除卻是各廠商各行其是的狀態,沒有統一的標準規範。NVMe 1.3則試圖透過引進新的資料清除(Sanitize)功能,統一SSD的資料清除作業標準,並提供更完善的資料清除作業,防止資料外洩,同時讓清除資料後的SSD可以再次被利用。

NVMe 1.3的資料清除功能提供了3種擦除(Erase)模式:

●區塊擦除(Block Erase):刪除實體NAND區塊資料的低階區塊擦除,大致類似硬碟的低階格式化。

●加密擦除(Crypto Erase):針對加密的SSD,直接修改密鑰,使其無法再解密。

●覆寫(Overwrite):直接對應實體定址的覆寫,不過覆寫會影響NAND壽命,因此不是NVMe推薦的資料擦除方式。

命名空間最優I/O分界

4kB對齊是確保SSD存取效能的必要作業,讓作業系統磁碟分割區sector與SSD NAND記憶體的page彼此對應。不過現在許多NAND記憶體的page大小已經不是4kB,因此NVMe 1.3提供了命名空間最優I/O分界(Namespace Optimal IO Boundary)功能,為系統自動指示最佳的sector大小。

儲存虛擬化

NVMe 1.3提供了直接對應到SSD裝置的儲存虛擬化(Storage Vituralization)功能,可以改善虛擬化環境下VM存取SSD的效率。

目前在虛擬化環境下,VM是透過Hypervisor內的NVMe驅動程式,來存取底層NVMe裝置,所有存取都必須透過Hypervisor的中介,也制約了VM的I/O效能。

而NVMe 1.3的儲存虛擬化功能,則能透過PCIe的單根I/O虛擬化(single root I/O virtualization,SR-IOV)技術,讓VM可以直接存取NVMe裝置—NVMe裝置同時也是PCIe裝置,因而也能像網路卡或顯示卡ㄧ樣,透過SR-IOV技術提供直接存取通道,從而有效提高VM的存取效能。

指令與串流

在目前的SSD架構下,在承載多資料流寫入作業時,寫入作業是冷熱無序的,SSD控制器不管寫入命令的來源為何,都直接把資料連續寫入到物理層上,所有負載都混在一起,結果導致不同來源的資料交錯分布在SSD各個區域上,這對於垃圾回收(Garbage Collection)作業來說特別不利。

而NVMe 1.3則透過指令與串流(Directives and Streams)功能,提供一種多流寫入(Stream Separation)標準,來改善前述問題。

NVMe 1.3可以在每個I/O指令上加上一個標籤,SSD則根據寫入I/O的標籤,把不同標籤的資料放到不同的區域,藉此讓多流寫入作業能有序的進行,進而實現冷熱資料的分區存放,從而大幅改善垃圾回收的效率,讓SSD能提供更好的性能,不受傳統的垃圾回收作業的困擾。

除了用於多流寫入作業外,NVMe 1.3這種I/O標籤的功能,未來還可望擴展到其他應用面向,利如用於服務等級(QoS)管理,利用附加在每筆I/O上的QoS等級標籤,讓SSD控制器優先處理高QoS等級的I/O。NVMe未來預定在2019年提供的IO Determinism(IO確定性)功能,或許就是基於這種方式來運作。

 

NVMe 1.3的多流寫入管理

傳統SSD在承載多筆寫入資料流時,寫入命令的來源為何,SSD控制器不管都直接把資料連續寫入到物理層上,導致不同來源的資料交錯分佈在SSD各個區域上。

在NVMe 1.3新增的多流寫入架構下, SSD則根據寫入I/O的標籤,把不同標籤的資料放到不同的區域,藉此讓多流寫入作業能有序的進行,使冷熱資料分區存放。

資料來源:nvmexpress.org

 

 

改進的電力與熱管理

NVMe 1.3引進了稱作非操作電源狀態允許模式(Non-Operational Power State Permissive Mode)的電力管理功能,可允許SSD在空閒狀態下,執行超過閒置功率的工作、或限制執行垃圾回收等後臺作業。

另外還有一個稱作主機控制熱管理(Host Controlled Thermal Management)的新功能,可以讓系統指定2個溫度上下限,從而讓SSD決定是否啟動輕度或重度節能功能,以便降低溫度。

擴展中的NVMe架構

NVMe 1.3只是預定中的NVMe三大核心架構之ㄧ,另外還有NVMe管理介面(NVM Express Management Interface,NVMe-MI),以及NVMe-over-Fabrics(NVMe-oF)網路儲存架構,待這些規範陸續到位後,將能讓NVMe擴展到完整的內接與網路儲存領域,逐步一統未來的SSD高效能儲存應用介面規格。

依照NVMe標準組織提供的路線圖,下一波NVMe協定改版預定是在2019年中提出,將會增加IO確定性、多重路徑存取(Multipathing),以及持續式控制器記憶體緩衝(Persistent Controller Memory Buffer)等功能。

至於NVMe管理介面1.0版,則已在2015年底發布,提供基本的Out Band式管理,以及裝置發現、監控與韌體更新等管理功能。預定在2017年底發布的NVMe管理介面1.1版,則會加上In-Band管理與SES裝置的支援。NVMe-over-Fabrics則在2016年中發布了初步的傳輸協定,預計到2019年完成更完整的協定規範。

NVMe發展路線圖

包括NVMe介面本身,以及NVMe管理介面(NVMe-MI),以及NVMe-over-Fabrics(NVMe-oF)網路儲存架構等三大部份,目前以NVMe介面發展的最快,其餘兩部份都還在初期階段。

資料來源:nvmexpress.org

 

 

熱門新聞

Advertisement