當(dāng)前位置:中美貿(mào)易網(wǎng) > 技術(shù)中心 > 所有分類
SSD的出現(xiàn)在存儲界具有里程碑的意義,尤其是在軟件定義存儲方興未艾的當(dāng)下,你要是不在存儲中加上幾塊SSD,你都不好意思和友商打招呼。
Gartner報告顯示,全閃存陣列市場的整體規(guī)模將以年均37%的復(fù)合增長率持續(xù)拓展,而2020年數(shù)據(jù)中心單純利用全閃存陣列技術(shù)進行主數(shù)據(jù)的存儲比例將會達到25%,閃存技術(shù)正在收到越來越多用戶的青睞。
不過,金無足赤、人無完人,如此的SSD缺因為自身的運行機制,卻也具有了一個先天的不足,即寫入放大的問題。在2008年,Intel公司和SiliconSystems公司(2009 年被西部數(shù)字收購)次提出了“寫入放大”(Write Amplification,簡稱WA),并在公開稿件里用到這個術(shù)語。
要了解寫入放大就要先從SSD的寫入機制說起。SSD的設(shè)計不同于機械磁盤,甚至可以認(rèn)為SSD就是一個五臟俱全的小型PC。首先,因為沒有寫磁頭,在讀寫數(shù)據(jù)的時候就少了磁頭在磁道之間的尋道過程,所以也就能提供較高的IOPS性能。這里插一句,很多人認(rèn)為因為少了機械磁頭的搬來搬去,會減少電量的使用,但這一點其實并不,比如有的NVMe類型的SSD在耗電量上并不比機械硬盤低。但當(dāng)SSD被寫滿一遍后,再寫入數(shù)據(jù)就需要對原有的數(shù)據(jù)進行擦除(注:一般擦除的單位要比Z小寫入單位大,比如常見的寫入單位,即頁大小是4K,但常見的擦除單位,即塊大小是512K或者更高),這就額外增加了一個步驟,所以整體的速度就下來了。就像一張紙,頻繁的用橡皮擦除,紙就自燃變薄了,而寫入放大增加了SSD整體寫入的數(shù)據(jù)量,自然也就減少了SSD的使用壽命。
那到底什么是寫放大呢?
讓我們舉個例子來進行說明,假設(shè)要寫入一個4KB的數(shù)據(jù),可是一個塊里已經(jīng)沒有干凈空間了,但是有失效的數(shù)據(jù)可以擦除,所以主控就把所有的數(shù)據(jù)搬到緩存或者OP空間,然后擦除塊,再加上這個4KB新數(shù)據(jù)寫回去,這個操作就造成了寫入放大,即本來是寫4K的數(shù)據(jù),卻造成了整個塊(以512KB為例)的寫入操作,也就是128倍放大(當(dāng)然,真實世界的SSD內(nèi)部主控不會這么“傻”,但寫入放大卻是真實存在的)。
同時,原本只需要簡單的寫4KB的操作變成讀取(512KB),擦(512KB),改寫(512KB),造成了延遲大大增加,寫的速度自然就慢了。當(dāng)這樣的擦除過多時,也就影響了SSD的使用壽命。
所以一個有效的方法就是可以通過修改OP預(yù)留空間,以及及時清理固態(tài)硬盤中的無用數(shù)據(jù),留出更多的空白空間,以減少多余的擦除和寫入,從而降低固態(tài)的寫入放大值,提升固態(tài)壽命,但這種方式Z大的問題是對SSD造成了浪費。
除此之外,正如我們前文說的,SSD可以看作是一個迷你型的PC,在設(shè)計SSD的時候,寫入放大問題也是主控芯片設(shè)計要考慮的主要問題之一。
SSD發(fā)展至今,本身已經(jīng)演繹出了很多具體的功能來解決寫入放大的問題,比如對齊寫、追加寫、Trim命令、垃圾回收、磨損均衡等功能機制,進而提升自身的使用壽命。
而在目前流行的軟件定義理念的趨勢下,則是通過軟件定義的方式,在主機端通過軟件控制自己的訪問行為,使之更符合SSD的特性,進而解決SSD自身硬件上的“不理性”。很多喜歡稱這種方式為Host Based(別翻譯,翻譯顯得不專業(yè)),而傳統(tǒng)使用SSD的方式,是把SSD當(dāng)機械硬盤一樣用的,即 Device Based的方式。
常見的隨機寫入(Random writes)會寫入很多非連續(xù)的LBA(Logical Block Address),將會大大提升寫入放大。
所以在使用SSD作為cache時,利用軟件定義的方式,將發(fā)往SSD的隨機IO變成順序IO,使得寫入SSD的數(shù)據(jù)都是追加寫,而不是原地更改的寫,這樣就減少了SSD的寫入放大,而對于被覆蓋寫的數(shù)據(jù),使用Trim命令以及智能的垃圾回收機制,保證了用戶數(shù)據(jù)空間的及時高效回收。
在測試中,我們往往會遇到很多這樣的情況:在硬件配置相同的情況下,不同的軟件性能會相差很多。這其中Z主要的原因就是寫放大的問題,寫得多不如寫的準(zhǔn)!所以,一款好的存儲軟件一定需要一個好的算法,一個好的算法一定需要盡可能的減少寫入放大。對于減少寫放大的問題還有一些其它的方法,比如靜動數(shù)據(jù)分離等等,由于篇幅有限,這里不再贅述。
在可預(yù)見的未來,搞定寫入放大者得SSD,得SSD者,得天下。
---------------------
作者:benfenge
來源:CSDN
原文:/benfenge/article/details/