數據中心的福音 | NVMe協議將增加IO Determinism功能

IO Determinism功能的引入

NVMe Spec 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協議將增加IO Determinism功能

NVMe協議爲什麼增加IO Determinism功能呢?因爲用戶需要高速、可靠、穩定的IO性能。在平時我們訪問一些APP或者網站的時候遇到卡頓,很大一部分原因是因爲IO延遲造成的波動。

數據中心的福音|NVMe協議將增加IO Determinism功能

NVMe SSD已經取代傳統的SSD稱爲數據中心佈局的重要存儲介質。解決IO穩定的問題是刻不容緩的任務。真正落實到標準落實到產品中如何解決這個問題,大家想到的一點是如何做並行化。NVMe協議中引入的IO Determinism功能也是基於IO並行化。NVMe協議提供將整塊SSD分爲多個邏輯單元(叫做Set),不同的邏輯單元之間相互獨立,在不同邏輯單元並行的讀和寫,做並行的操作,減少串行的工作避免時延的出現。在每個邏輯單元中,可能包含一個或者多個Namespace。

數據中心的福音|NVMe協議將增加IO Determinism功能

擴展:每個NS都有一個名稱與ID,如同每個人都有名字和身份證號碼,ID是獨一無二的,系統就是通過 NS的ID來區分不同的NS。如下圖例子,整個閃存空間劃分成2個NS,名字分別是NS A和NS B,對應的NS ID分別是1和2。如果NS A大小是M (以邏輯塊大小爲單位),NS B大小是N,則他們的邏輯地址空間分別是0到M-1和0到N-1。

數據中心的福音|NVMe協議將增加IO Determinism功能

SSD數據佈局結構的影響

以4 Namespace, 8 Channels的SSD系統爲例,傳統的data佈局如下圖:最簡單的結構配置,數據均勻分佈在所有的die。但是這個佈局的缺點就是會有IO衝突造成的延遲。

數據中心的福音|NVMe協議將增加IO Determinism功能

基於IO determinism功能, 引入三種邏輯單元結構的數據佈局:

1. 垂直邏輯單元((Vertical Sets):

數據中心的福音|NVMe協議將增加IO Determinism功能

2. 水平邏輯單元(Horizontal Sets):

數據中心的福音|NVMe協議將增加IO Determinism功能

3. 混合型邏輯單元(Mixed Sets):

數據中心的福音|NVMe協議將增加IO Determinism功能

測試干擾條件在NS1進行32K順序寫操作(QD=4),在NS2進行4K隨機讀操作(QD=8)。

測試結果:

(1)平均讀延遲

在垂直邏輯單元的數據佈局結構條件下,平均讀延遲提升了7倍;在水平邏輯單元的數據佈局結構條件下,平均讀延遲提升了9.5倍;

數據中心的福音|NVMe協議將增加IO Determinism功能

(2)最大讀延遲

在垂直邏輯單元的數據佈局結構條件下,最大讀延遲提升了16倍;在水平邏輯單元的數據佈局結構條件下,最大讀延遲提升了11倍;

數據中心的福音|NVMe協議將增加IO Determinism功能

(3)4K隨機讀IOPS與隊列深度的關係

在三種數據佈局條件下,IOPS隨着隊列深度的增加均有上升的趨勢。不過,水平邏輯單元數據佈局結構(HS)的IOPS在QD=6時達到最大。最重要的是,水平邏輯單元數據佈局結構(HS)和垂直邏輯單元數據佈局結構(VS)的IOPS均是傳統數據佈局結構IOPS的2倍之多。

數據中心的福音|NVMe協議將增加IO Determinism功能

IO Determinism中的時間窗

上面的測試結果是主要是針對SSD邏輯單元(Set)對IO延遲的影響。在NVMe推廣的信息中,我們發現關於IO determinism還有兩個重要的概念:Deterministic Window和Non-Determinism Window.

數據中心的福音|NVMe協議將增加IO Determinism功能

我們先想象一下平時的汽車,當你的汽車在5千公里行駛以內的時候,你這個時延是穩定的,性能跟說明書上一樣,當汽車開到4S店做保養換機油的時候,它沒有穩定的時延,它的性能指標和說明書上說的完全沒有關係。

NVMe在完全借鑑了汽車保養的特性,在SSD裏面設置了一個時間窗,這個時間窗是穩定時延的模式,即Determinism Window。當SSD盤需要垃圾回收、Wear-leveling維持操作時切換到非穩定模式,這個階段IO性能是不穩定的,即Non-Determinism Window, 也可以稱作Maintainance Window。如果用兩塊SSD合作,則在任何一個時間點,至少會有一個SSD處在Determinism Window,爲系統提供穩定的IO性能,如下圖:

數據中心的福音|NVMe協議將增加IO Determinism功能

寫在最後

不管是之前介紹的Multi-Stream還是本篇介紹的IO Determinism基本都是NVME協議針對數據中心提供的新功能。隨着大數據時代的來臨,我相信,在企業級SSD存儲領域會有更多更強大的功能被引入,讓我們拭目以待吧~

精彩推薦:


更多精彩內容,敬請關注頭條號【存儲隨筆】獲取更多活動內容。


同時,也可以關注公衆號: 存儲隨筆,Memory-logger. 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章