Starblaze乾貨分享第一期:淺談NVMe1.4 IO Determinism!
NVMe協會發布了最新的NVMe 1.4 draft版本,其中NVMe 1.4中增加的最重要的一個內容應該就是IO determinism。IO determinism主要包含兩部分一個是NVM Sets一個是PLM(Predictable LatencyMode)。
不同的NVM Set使用的物理資源可以是獨立的,每個NVM Set可以包含多個channel多個die,不同的NVM Set讀寫,擦除等都是相互獨立互不干擾,可以提供更好的QoS。 同一個NVM Set內部可以包含一個或者多個NS(name space)。
PLM是IO determinism中另外一個組成部分,主要用於優化系統的讀寫延時,提高系統的QoS。在PLM有效之後系統劃分為DTWIN(Deterministic Window)NDWIN(Non-Deterministic Window)兩種時間視窗,在DTWIN時間視窗內,SSD系統提供為讀寫指令提供deterministic latency,以提高系統的QoS,在NDWIN時間視窗內,SSD系統不需要提供deterministic latency,以完成SSD系統內部的GC等操作。
SSD系統提供在DTWIN可以執行read(rand 4K read)/write(Optimal Write Unit Size)的command的typical值。Host可以通過log page得到SSD系統在DTWIN視窗內剩餘的可執行的read/write command的能力(Reliable Estimate)。 以read command為例,typical與reliable estimate的關係如下圖。
由於在read過程中會出現資料錯誤,而資料出錯的比例的不同造成data recovery的時間也會不同,所以為了實現PLM,NVMe協議規定在支援PLM的時候需要同時支援Read Recovery Level Config。不同的Read Recovery Level對應不同的read latency。
Xhpbl80MzI5MTQ4MQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70) 隨著SSD的不斷髮展,SSD系統的峰值效能已經不再是客戶追求的主要目標。客戶需要效能更加穩定,延時更低的解決方案,NVMe IO determinism的出現將會在這兩方面發揮重要作用。相信隨著後續NVMe 1.4的正式釋出會有越來越多的廠商關注NVMe IO determinism技術。 如果您也想針對儲存行業分享自己的想法和經驗,歡迎您在文章底部留言評論,如您有任何的建議與指正,敬請在文章底部留言,感謝您的不吝指教!