有很多文章在寫存儲(chǔ)的發(fā)展趨勢(shì),其中包括云存儲(chǔ)、軟件定義存儲(chǔ),當(dāng)然筆者聽到最多的還是閃存。作為存儲(chǔ)的最為基本的單元,閃存較磁盤有更高的IOPS,特別是在大量隨機(jī)讀寫小文件的系統(tǒng)中,閃存有著磁盤無法達(dá)到的性能。當(dāng)前最為常見的閃存方案是將閃存卡或者固態(tài)硬盤加到服務(wù)器中做為一個(gè)高速緩存層,存儲(chǔ)熱數(shù)據(jù)并應(yīng)對(duì)前端應(yīng)用大量的讀寫需求。但是全閃存陣列現(xiàn)在發(fā)展的遠(yuǎn)沒有磁盤陣列那樣成熟,這篇文章則從全閃存陣列以及市場(chǎng)上新舊兩大閃存陣營來闡述全閃存陣列。
全閃存就是插滿SSD?
是不是傳統(tǒng)的存儲(chǔ)陣列在插滿SSD就可以稱之為全閃存陣列?這顯然不是。磁盤陣列的根本依然是基于硬盤的,硬盤的特點(diǎn)就是存在尋道的延遲,所以非常不擅長處理隨機(jī)I/O,因?yàn)檫^多的seek影響性能。因此,對(duì)于基于硬盤的陣列,設(shè)計(jì)者一開始的想法就是盡可能的讓陣列處理連續(xù)I/O。而SSD的優(yōu)勢(shì)就是延遲低,另一方面SSD的存儲(chǔ)單元在經(jīng)過數(shù)千次擦寫之后就會(huì)磨損不能再使用,所以從存儲(chǔ)介質(zhì)的層面來看,全閃存陣列的設(shè)計(jì)應(yīng)該盡量避免對(duì)SSD進(jìn)行多次擦寫以保證壽命,而不是想盡辦法讓陣列處理連續(xù)I/O請(qǐng)求。
簡單的用SSD替換磁盤是不能發(fā)揮閃存的性能的。猶如一輛汽車不能單純的加上飛機(jī)的引擎來提高時(shí)速一樣。
從控制的角度看,傳統(tǒng)的磁盤陣列性能瓶頸在磁盤,保證磁盤不過載的前提下,磁盤不足以榨干CPU的性能,但是將傳統(tǒng)的磁盤陣列的硬盤替換為SSD之后,SSD的IOPS性能非常高,不等SSD性能充分發(fā)揮,CPU就會(huì)崩潰了。
簡單來說為了適應(yīng)SSD的優(yōu)勢(shì),延長SSD壽命,不論是硬件還是軟件架構(gòu)全閃存陣列都需要重新設(shè)計(jì)。另一方面性能只是全閃存陣列需要重新設(shè)計(jì)的一個(gè)重要的因素卻非全部,全閃存陣列還需要考慮快照、克隆、精簡配置和重復(fù)數(shù)據(jù)刪除等功能的實(shí)現(xiàn),雖然這些功能在傳統(tǒng)磁盤陣列中應(yīng)用非常成熟,但是都是基于底層磁盤管理引擎所構(gòu)建的,采用同樣的規(guī)則和限制,并不適用于全閃存的架構(gòu)。