SSD盤根據容量、可靠性和性能的要求分爲SLC SSD和MLC SSD,SLC主要應用於服務器、工作站、存儲等高可行性環境中,MLC主要應用於桌面PC可靠性要求不高的環境中。
SSD盤和傳統的機械硬盤的內部構造圖對比如下:
SSD盤內部構造圖機械硬盤內部構造圖
相比傳統的機械硬盤,SSD硬盤擁有如下優點:
1、數據存取速度快。因爲全部採用了閃存芯片,所以SSD固態存儲器內部不存在任何機械部件,SSD在密集的IO讀寫和低延遲方面與傳統硬盤對比性能優異。
2、故障率低。防震抗摔是SSD的一個特點之一,因爲全部採用了閃存芯片,所以SSD固態存儲器內部不存在任何機械部件,這樣即使在高速移動甚至伴隨翻轉傾斜的情況下也不會影響到正常使用,而且在筆記本電腦發生意外掉落或與硬物碰撞時能夠將數據丟失的可能性降到最小。
3、綠色環保。固態存儲器工作時靜音(固態存儲器因爲沒有機械馬達和風扇,工作時噪音值爲0分貝)、發熱量小、散熱快。
4、重量更輕。固態存儲器在重量方面更輕,有利於移動設備的攜帶。
在目前HDD機械硬盤容量每年增速較慢,讀寫速度10年來基本上沒有增加,而處理器的速度已經是按莫爾定律成倍的增加,HDD硬盤存儲介質已經成爲計算系統的瓶頸,而SSD隨着半導體工業的發展,Flash集成度愈來愈高,成本不斷下降,在採用多通道並行等技術下,SSD盤以其讀寫速度快、綠色省電和無機械部件可靠性高,在高端服務器、存儲和便攜機中愈來愈廣泛使用。
基於閃存的SSD主流產品目前有SLC和MLC兩種,兩種產品的主要差別在於擦寫次數和性能。
SLC全稱單層式儲存(Single Level Cell),是指一個Block(塊,Flash的基本存儲單元,也可稱爲Cell)只有兩種電荷值,高低不同的電荷值表明0或者1,因爲只需要一組高低電壓就可以區分出0或者1信號,所以SLC最大壓可以做到很低,傳統的雙電壓卡或者低電壓版本卡片肯定採用SLC類型的NAND Flash芯片。
SLC因爲結構簡單,在寫入數據時電壓變化的區間小,所以壽命較長,傳統的SLC Flash可以經受10萬次的讀寫,因此出現壞Block的機率較小,因爲存儲結構非常簡單,一組電壓即可驅動,所以其速度表現更好,目前所有的超高速卡都採用SLC類型的Flash芯片。
MLC(多層式儲存—Multi Leveled Cell)是種充分利用Block的技術,它採用較高的電壓驅動,通過不同級別的電壓在一個Block中記錄兩組位信息(00、01、11、10),這樣就可以將原本SLC的記錄密度理論提升一倍。不過MLC除了同製程、同晶圓面積時理論大一倍的記錄空間外,存在一些先天的弊端,比如說電壓區間更小,Flash就需要更多的CRC校驗空間,這會大概佔據Block中10%的空間,因此實際使用中同製程同晶圓面積的MLC的容量不到SLC的一倍。
因爲電壓變化更頻繁,所以MLC技術的Flash在壽命方面遠劣於SLC,官方給出的可擦寫次數僅爲1萬次,這是MLC最要命的一個缺點。
MLC技術的Flash還有一個缺點,它的讀寫速度先天不如SLC,一個Block存儲兩組位數據,自然需要更長的時間,這裏面還有電壓控制、CRC寫入方式等因素需要考慮。
lNAND FLASH損耗均衡算法(Wear Leveling)
因爲閃存的寫操作的次數是有限制的,如果針對某些單元進行過10萬次寫操作,那麼後續這些單元的寫入可靠性則無法保證,有些單元則可能會失效,例如有些管理數據系統日誌等改寫頻繁,而某些靜態文件數據卻幾乎從不改寫.如不加控制,部分塊就會因反覆多次擦除而提前損壞,而部分塊還未被改寫過,以至影響SSD盤的使用壽命,爲解決此問題,使用寫操作均勻分佈到各閃存單元上,從整體上做一個平衡,以避免個別單元失效,損耗均衡算法(Wear Leveling)就是爲解決此問題而廣泛採用的算法。
Wear Leveling就是提供一個塊映射機制,把寫入損耗分散在不同的塊上,不會導致某些塊先被寫壞而使整個SSD盤失效,而是把在預期壽命前失效的塊,會有一些保留塊來替代,這個算法使得整個設備的壽命跟Flash的最大壽命在同一量級。
一般爲實現損耗均衡算法(Wear Leveling)會採用一種基於頁的文件存儲算法,閃存物理地址和邏輯地址之間並沒有一一對應的關係。當固態硬盤收到數據寫入請求時,並不會循規蹈矩的按順序進行寫入,而是找到最少寫入的單元寫入。因而,在爲寫入數據動態分配物理塊時,會根據各塊的使用情況不同分配相應的優先級,從而均衡整個存儲器各單元的使用壽命。
lSSD多通道併發技術
由於目前Nand Flash的數據總線爲8bit,最大能提供25MB/s的讀速度和3MB/s的寫速度,顯然SSD如果提供此速度是用戶無法接受的,目前SSD控制器普遍採用多個通道同時並行操作多片Flash,類似RAID0,這樣讀寫速度得到了極大地提高,如下圖所示:
l糾錯管理與映射機制
SSD控制器會監測和校驗讀寫Flash的數據,以確保對數據操作的成功,並內置糾錯冗餘數據,防止基於閃存設備的個別單元數據丟失造成整個數據塊丟失。
SSD的映射機制一般採用基於頁的文件存儲算法,閃存物理地址和邏輯地址之間並沒有一一對應的關係。當固態硬盤收到數據寫入請求時,並不會循規蹈矩的按順序進行寫入,而是找到最方便寫入最快的位置進行寫入,以提高寫入速度。
通常檢測工作通過片上狀態寄存器和特定的硬件部件來校驗寫操作和擦除操作是否成功,校驗工作通過回讀寫入數據與用戶數據進行比較來完成。當寫操作失敗時,系統並不將錯誤簡單的反饋給用戶,而是通過塊重映射機制,另外分配一個空閒塊重新執行寫操作,由於SSD在設計的時候,已經預留了一部分Flash用於臨時存儲數據和壞塊替換使用,再加上Flash芯片對擦寫次數有限制,讀沒有次數限制,這樣即使某些塊被寫壞了,也不會影響到整個SSD的使用壽命。因此,SSD通過自動校驗來預防錯誤發生,個別單元讀錯誤可以通過糾錯來恢復數據,確保數據的完整性,邏輯地址與物理地址的映射機制,解決了寫物理區塊錯誤問題,同時在損耗均衡算法中也需要邏輯地址與物理地址的映射機制來實現。
4、SSD優缺點
優點:
主要談下缺點:
成本高 每單位容量價格是傳統硬盤的5~10倍(基於閃存),甚至200~300倍(基於DRAM)。
容量低 目前固態硬盤最大容量遠低於傳統硬盤。(美國公司Foremay推出了EC188M系列固態硬盤2TB。)傳統硬盤的容量仍在迅速增長,據稱IBM已測試過4TB的傳統硬盤。
易受外界影響 由於不像傳統硬盤那樣屏蔽於法拉第籠中,固態硬盤更易受到某些外界因素的不良影響。如斷電(基於DRAM的固態硬盤尤甚)、磁場干擾、靜電等。
數據難以恢復 數據損壞後難以恢復。一旦在硬件上發生損壞,如果是傳統的磁盤或者磁帶存儲方式,通過數據恢復也許還能挽救一部分數據。但是如果是固態存儲,一但芯片發生損壞,要想在碎成幾瓣或者被電流擊穿的芯片中找回數據那幾乎就是不可能的。當然這種不足也是可以犧牲存儲空間來彌補的,主要用RAID 1來實現的備份,和傳統的存儲的備份原理相同。由於目前SSD的成本較高,採用這種方式備份還是價格不菲。
電池航程較短 根據實際測試,使用固態硬盤的筆記本電腦在空閒或低負荷運行下,電池航程短於使用5400RPM的2.5英寸傳統硬盤。
能耗較高 基於DRAM的固態硬盤在任何時候的能耗都高於傳統硬盤,尤其是關閉時仍需供電,否則數據丟失。
SSD盤相對於普通機械硬盤的特點是順序和隨機讀取數據性能一樣,且響應時間小於1毫秒,無機械部件,可靠性高。通過仔細研究分析測試多個廠家的SSD盤後,H3C爲與萬兆存儲配合使用和發揮最好的性能,選用了高可靠性和高性能的SLC SSD盤,每個盤讀性能能達到250MB/s,每個磁盤的寫性能能達到170MB/s,在4 KB塊讀的情況下,每個盤可以達到35KIOPS,在4 KB塊寫的情況下,每個盤可以達到3.3KIOPS。
SSD盤性能和可靠性都很高,但價格相對也較高,而且容量偏小。這就決定了SSD比較適合隨機讀比例較高,響應時間有較高要求的應用場合,主要包括如下:
l數據庫環境。數據庫的數據盤一般是小數據塊的隨機讀寫,響應時間要求較高,容量在2TB以下的佔絕大多數,採用SSD盤組成的RAID5既可以提供很高的IOPS又最大限度地利用其容量。
l作爲H3C存儲的SafeCache空間。H3C存儲提供的SafeCache功能可以使用戶寫入的數據先緩存在SafeCache盤中,後臺再不斷地把SafeCache盤中的數據刷回對應的數據盤。這樣SSD相當於一個大容量的緩存,可以極大地提高突發寫的能力。
l高性能集羣系統的共享數據盤。在集羣系統中需要共享大量數據,且數據需要被各節點頻繁訪問,要求響應速度快,在此係統中通過採用SSD盤後,可以極大地減少各節點的訪問共享盤的待定時間,提高其性能。