PCIe SSD介紹及其應用(一)

發布時間:2016-05-31

SATA/SAS接口的SSD已經面世十幾年了,目前已普遍應用于個人消費領域,但其性能仍無法充分滿足企業用戶對高吞吐、低延時的要求,數年前世界上第一塊PCIe接口SSD問世,以其驚人的讀寫吞吐能力、超低延時迅速獲得企業用戶的青睞?;チ幸凳荘CIe SSD的最初擁躉,經過多年的實踐已經驗證PCIe SSD的穩定性完全可以勝任企業的24x7工作模式,目前PCIe SSD應用正迅速從互聯網行業延伸至傳統行業,甚至進入對安全穩定性要求苛刻的金融行業,可以預期在不久的將來,PCIe SSD很有可能成為服務器存儲的標準配置。
PCIe SSD基本原理
下圖為寶存科技PCIe SSD硬件邏輯結構:

PCIe SSD存儲顆粒使用NAND Flash(以下簡稱Flash),生活中我們無時無刻不在使用Flash,例如手機的存儲、SD卡、平板電腦、U盤等都是基于Flash設計的存儲,相較于這些低速設備,PCIe SSD將數十甚至數百片Flash組成可并行操作的陣列以提高讀寫吞吐能力、降低延時。下圖為一典型的閃存顆粒邏輯結構:

Flash由塊(block)組成、塊由頁(page)組成、頁存數據,Flash具有如下特性:
- Flash出廠時就會存在不能使用的壞塊,使用過程中會動態增加壞塊;
- 讀寫Flash必須以page為單位;
- 不可覆蓋寫入數據,必須擦除后才可再次寫入,擦除以block為單位;
- block擦除次數有限制,MLC Flash一般在3000至10000次;
- 寫入數據存在bit翻轉,必須采用ECC加以糾正。
用戶自不必關心這些問題,PCIe SSD軟件算法屏蔽了這些特點,使用戶看到的就是一塊通用的存儲設備,原來怎么使用硬盤的就怎樣使用SSD,換句說可以直接替換掉原來的硬盤,不會存在兼容性問題。這個軟件算法有個專有名詞叫做Flash Translation Layer(FTL),這也是PCIe SSD的核心價值所在。Flash的這些特性帶來一些對開發者和用戶都比較有意義的概念:
- Over Provision(OP):開發者必須保留一部分容量以實現FTL算法,保留容量除以物理容量即是OP值,例如一塊按照1GB=1024*1024*1024B計算的3.2T的SSD,板載Flash物理容量是4T,那么OP等于(4-3.2)/4即20%,但是根據IDEMA(國際磁盤設備制造商協會)的規范,存儲設備的容量是按照大約1GB=1000*1000*1000B來計算的,所以一塊標稱3.2T的SSD卡OP大概在27%左右,對開發者和用戶來說這個值一般越大越好;
- 寫放大系數WA(Write Amplification):Flash不能覆蓋寫的特點決定了用戶在寫入一筆數據時,FTL可能需要搬運寫入數筆數據,FTL實際寫入數據量除以用戶寫入數據量即是WA,例如用戶寫入16KB數據導致FTL實際寫入32KB數據,那么WA就等于2。這個值越小意味著更好的性能,理論極限是無限接近1、不可能小于或等于1,優秀的FTL算法可降低這個值;
- ECC糾錯能力:寫入數據存在bit翻轉決定開發者必須使用ECC糾錯算法,ECC算法一般由FPGA邏輯實現,這個值越大越好;
- 磨損均衡與使用壽命:Flash塊擦除次數限制決定了FTL必須努力保證使用過程中每個塊擦除次數大致相當,這將影響SSD的壽命,寶存科技設計的ECC與RAID雙重?;?,以及FTL可動態替換壞塊的能力和磨損均衡算法,保證SSD的壽命在每天更新數據5遍的條件下(例如一塊3.2T的卡每天寫入16TB數據)可達到4至6年,在實際使用中可以產生這么大數據量的業務是很少見的。
PCIe SSD性能參數
同一般的存儲設備類似,PCIe SSD主要有如下幾種性能參數:
- 讀寫帶寬(Bandwidth):讀寫速度;
- 讀寫IOPS(nput/Outputs Per Seccond):一般是指每秒最大可隨機讀寫多少個4KB;
- 讀寫延時(Latency):讀寫4KB數據最短完成時間。
一般而言,高帶寬或高IOPS是可以通過增加RAID磁盤組數目來拼接出來,但是傳統磁盤存儲采用機械裝置尋址,Latency很大是它無法逾越的障礙,一般而言由磁盤組成的存儲,讀寫Latency都在毫秒或者數十毫秒級,同PCIeSSD相差3個數量級。更為重要的是,對于大多數企業數據庫而言,Latency恰恰是影響性能的重要參數。下表是寶存科技PCIe SSD各種容量規格的技術參數,供參考。

敬請期待下期內容:PCIe SSD介紹及其應用(二)