您好,登錄后才能下訂單哦!
本篇文章為大家展示了如何用多流寫技術提高SSD的性能和壽命,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
今天學習FMS16的會議材料。有一個三星的多流寫技術,三星正在推薦成為國際標準,我覺得比較有意思,因此,今天就來聊聊這個東西。
首先,我們知道NAND閃存的一些和硬盤不同的特性:其有三種操作,讀,編程(其實就是寫)和擦除。硬盤支持覆蓋寫,因此不需要擦除。而閃存讀寫的單位都是page,但擦除的單位是block(即多個page)。由于不能覆蓋寫,因此有一個垃圾回收的額外動作,即把有用的page數據復制到別的地方,然后擦除這個block,才能重新寫數據。這就帶來額外的寫放大,而且垃圾回收的時候數據移動肯定要加鎖的,因此除了影響寫性能,其實讀性能也是受影響的。
但閃存和硬盤還有一個不同就是壽命的問題。也就是一個page編程的次數是有限的(其實硬盤也有壽命,只是相對閃存來說,大家都認為其生命周期內沒有這個問題)。根據三星的統計,不同的閃存的寫壽命都在下降,應該不是技術問題,而是為了追求更高密度而導致的結果。不過3D-NAND技術出來后,應該有所改善,因為3D的空間要大一些,相互干擾小一些。一般3D TLC NAND的壽命和2D NAND MLC的壽命差不多。
為此,三星提出了一個多流寫的技術,即應用把數據按照不同更新頻率分成多個數據流,而SSD寫的時候識別這些數據流,把相同特征的數據流寫在一起(連續的block)。
這種數據布局的好處就是垃圾回收的時候更加高效,因為數據流的特征不同,垃圾回收的頻度就不同,有些不常改動的數據占據的block就不用回收了。回收的block一般這個block數據都失效了,可以直接擦除,避免了數據的復制。
由于避免更多的page的數據復制,減少了寫放大,其實就相當于延長了系統的寫壽命。
三星拿開源的No-SQL數據庫Cassandra,打上多流寫的補丁前后進行測試對比,發現可以提高2倍的寫壽命,而且還有45%的性能提升,讀的時延也減少了50%。還是一個非常不錯的結果。
三星目前正在推動這個多流寫技術成為一個標準。目前在SCSI/SAS接口已經完成,而NVMe正在做最后審查。
我把標準下載下來看了一下,目前還是一個草案,還不是正式標準。
標準其實主要定義SCSI的initiator和target通信的格式。讓操作系統寫盤的時候通過SCSI命令把數據流的標識告訴SSD。如果是NVMe,由于by pass了SCSI層,因此需要增加NVMe的命令,因此是不同的標準。還有,標準化以后,需要操作系統支持,也需要各個應用程序支持。因為只有應用程序才最終清楚自己的數據特征,讓它來打標記是最好不過的了。
其實,AFA(all flash array)也可以利用這個思路。比如華為馬上要在上海HC大會上發布的OceanStor Dorado V3,據說采用了全局的FTL,采用冷熱數據分離的方式來提高垃圾回收的效率。
這個冷熱數據分離其實和多流寫思路是一樣的。不同的是三星提出的多流寫需要應用系統或者操作系統支持,而且只針對單個SSD的。而華為的這個冷熱分離,是存儲內部實現,是系統級別的。華為可以這么做,主要是采用了自研的HSSD盤,可以讓陣列的軟件和SSD的fireware協同起來。
但是,如果三星這個多流寫成為一個標準,那么華為的Dorado V3也必將從中受益。因為應用程序直接在寫的數據上打上標簽,發送到陣列上,陣列進行冷熱數據判斷就更加精確和容易,效率會更高。而且,有了這些數據流標簽,陣列的Cache調度算法也會更加高效,你會把最熱的數據盡量保存到Cache里,提高Cache的命中率。
閃存技術給整個存儲系統帶來很多設計上的變化,而數據的智能布局對閃存性能和壽命都有巨大的影響。未來的AFA系統會更加智能,更加應用感知。
上述內容就是如何用多流寫技術提高SSD的性能和壽命,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。