為固態(tài)盤硬件制定計劃是一項復(fù)雜的任務(wù),要求充分地了解固態(tài)盤如何應(yīng)用于存儲網(wǎng)絡(luò)環(huán)境中。
固態(tài)盤硬件通常有兩種基本的接口類型:PCIe和光纖通道/SAS/SATA。每種接口都有自己的缺點和優(yōu)點,了解兩者的折中是很重要的。
另一個問題就是固態(tài)盤管理。固態(tài)盤是應(yīng)該被置于RAID控制器呢,還是通過其他接口進行連接?當然,固態(tài)盤性能是一個大問題,或者你根本就沒有考慮過購買固態(tài)盤。我們都聽說過一些基于閃存的固態(tài)盤存在損耗均衡和寫入性能降級等性能問題。關(guān)于這方面的文章有很多,因此我就談一些重要的細節(jié)吧。最后也是最重要的就是固態(tài)盤的可靠性。和往常一樣,我們先從可靠性開始,對于企業(yè)數(shù)據(jù)存儲用戶來說,沒有什么比可靠性更重要的了。
固態(tài)盤可靠性
我們都聽說過,你向閃存單元寫入的次數(shù)是有限的。這個數(shù)字根據(jù)不同的廠商和采用的是哪一代技術(shù)而大不相同,從每單元寫入 100000~1000000次不等,但是閃存單元的可靠性并不是固態(tài)盤的全部,我們在下一篇文章中將更深入地進行分析??煽啃缘牧硪粋€關(guān)鍵因素就是固態(tài)盤的糾錯碼,它反過來會影響設(shè)備的硬錯誤率。硬錯誤率通常是針對磁盤驅(qū)動器來說的,是指扇區(qū)每位讀取的錯誤率。對于企業(yè)級SAS/光纖通道驅(qū)動器來說,這個數(shù)字通常是每10的16次方個位有一個扇區(qū)錯誤,相當于每移動11PB有512字節(jié)(錯誤),如果你有1000個磁盤驅(qū)動器以100 MB/s的速度遷移數(shù)據(jù),那么每33個小時就會出現(xiàn)一個故障。
這并不是一段很長的時間,固態(tài)盤的操作速度要比磁盤驅(qū)動器快得多,因此這可能會成為一個問題,但基本上使用 1000個磁盤驅(qū)動器的例子很少見。真正要問的問題是,什么是硬錯誤率?廠商如何得出這個值的?主要的磁盤制造商了解潛在的ECC問題,有專門的可靠性工程師根據(jù)他們的介質(zhì)設(shè)計來計算得出這些數(shù)值。對于所有固態(tài)盤初創(chuàng)廠商我還想問的另一個問題就是,他們的硬錯誤率是如何計算出來的?如果他們無法回答的話,那么說明它還不如企業(yè)級磁盤驅(qū)動器。
而且關(guān)于磁盤驅(qū)動器你要記住一點,固態(tài)盤的硬錯誤率與SAS/FC(注意,光纖通道固態(tài)盤很少見,因為固態(tài)盤是一項新興的技術(shù)和行業(yè)趨勢,驅(qū)動器的接口是SAS)和SATA固態(tài)盤都是不同的。企業(yè)級SATA磁盤驅(qū)動器的硬錯誤率比SAS/FC高一個數(shù)量級(每10的15次方個位有一個扇區(qū)錯誤),而非企業(yè)級 SATA更是每10的14次方個位就有一個扇區(qū)錯誤。SAS/FC驅(qū)動器容量遠小于SATA驅(qū)動器的原因之一就是,它的每個磁盤驅(qū)動器 ECC更多,這就降低了密度,因為ECC空間是占用存儲的。
除了硬錯誤率以外,你還要考慮另外兩個因素:年故障率和每天的寫開銷。
硬錯誤率測量的是介質(zhì)的故障率,而年故障率通常測量的是其他組件的故障率,用每年百分比表示。例如,企業(yè)級磁盤驅(qū)動器的年故障率通常小于1%。
因為在出現(xiàn)故障之前每個單元的寫入次數(shù)是有限的,所以大多數(shù)固態(tài)盤在寫入次數(shù)方面也是受限的。寫開銷通?;谠O(shè)備的性能,在預(yù)期失效之前單元可以寫入的次數(shù),以及可以被重新映射到翻轉(zhuǎn)值失效的單元的地址的空白單元的數(shù)量。企業(yè)級設(shè)備和非及企業(yè)級設(shè)備的寫開銷大不相同,因此通過固態(tài)盤類型和接口性能了解寫開銷是很重要的。如果你正在使用3Gb SAS (300MB/s)或者PCIe 2.0 x16 8GB/s,那么你的寫開銷需求就會有很大變化。我們將在下篇文章中具體談到這一問題。
固態(tài)盤性能
不同的固態(tài)盤設(shè)備性能也不盡相同,并且通常是根據(jù)每秒讀取和寫入的MB/s或者IOPS來測量的。關(guān)于IOPS的一個重要問題就是,在廠商確定的IOPS性能下包的大小是多少?盡管讀寫性能有很大差別,但是一些廠商的寫入性能比其他廠商更加接近于讀取性能。這就是為什么了解你的應(yīng)用要求很重要的原因。
固態(tài)盤的性能通常取決于使用的是3Gb還是6Gb技術(shù)。這是一個重要的性能局限,它不會影響到磁盤驅(qū)動器,因為單個的驅(qū)動器還沒有快到要求6Gb技術(shù),不過大多數(shù)驅(qū)動器廠商都開始采用6Gb,這樣同一個通道就可以支持更多驅(qū)動器??紤]到固態(tài)盤的速度,采用6Gb技術(shù)對于企業(yè)級固態(tài)盤來說是很關(guān)鍵的。對于那些使用PCIe接口的固態(tài)盤來說,你需要確保固態(tài)盤性能沒有超過PCIe插槽支持的范圍。目前大多數(shù)小型服務(wù)器(Intel和 AMD)都支持PCIe 2.0,8個PCIe 2.0甚至16個插槽都是很常見的。高端非Intel/AMD(IBM和Sun)服務(wù)器在部署PCIe方面比較滯后,因為需要設(shè)計和這些企業(yè)級服務(wù)器相關(guān)的復(fù)雜內(nèi)存接口。如果你打算采用基于PCIe的固態(tài)盤,那么一定要確保你的服務(wù)器有滿足或者超出廠商要求的PCIe插槽。
固態(tài)盤管理
固態(tài)盤的S.M.A.R.T.并沒有一個官方的標準,不管是SAS還是SATA。這意味著你必須了解每個固態(tài)盤專有的S.M.A.R.T.數(shù)據(jù)的意義。當然,如果固態(tài)盤是用于RAID陣列的,那么陣列廠商在固態(tài)盤認證的時候就已經(jīng)幫你搞定了這一切。我看到很多使用附加于標準SAS卡的固態(tài)盤用戶存在一個問題,那就是一些廠商沒有提供查看S.M.A.R.T.數(shù)據(jù)的工具,即使你通過一些免費工具獲取的S.M.A.R.T.數(shù)據(jù),你也無法知道這真正意味著什么。就我了解的一些廠商,如果他們有一款工具,那么這款工具就會有關(guān)于S.M.A.R.T.值的定義,然后還設(shè)定了發(fā)送警報的上下限。當然,這在企業(yè)數(shù)據(jù)存儲環(huán)境中是一個不錯的工具,因為你希望在設(shè)備發(fā)生故障之前就有所察覺從而立即采取措施。
固態(tài)盤硬件接口
與SAS/SATA相比,PCIe的速度更快,但不管是PCIe還是直連SATA接口都不允許從一臺設(shè)備到另一臺設(shè)備的故障轉(zhuǎn)移。有一些廠商提供了外部PCIe通道擴展器,允許你通過卷管理器監(jiān)控設(shè)備,但是我并不喜歡這種做法,因為這并不是一個真正利用了PCIe 2.0的好方法。也許我有些偏執(zhí)了,但是我并不希望成為在生產(chǎn)企業(yè)環(huán)境(例如文件系統(tǒng)元數(shù)據(jù))中嘗試這種做法的第一人。
SAS與SATA之間的折衷比較簡單,而且對于磁盤驅(qū)動器來說沒有太大區(qū)別,但因為固態(tài)盤比普通磁盤驅(qū)動器更快,因此區(qū)別是很明顯的。主要有以下一些區(qū)別:
·SATA驅(qū)動器不是雙端口的,因此故障轉(zhuǎn)移就是一個難題
·SATA在驅(qū)動器中處理更多的錯誤問題,因此命令處理的重試使得驅(qū)動器速度變慢,因為有更多命令問題需要處理
·考慮到命令包中的ECC(Error Checking and Correcting,錯誤檢查和糾正)數(shù)量,SATA通道無法檢測出的錯誤率要比SAS通道更高。這是一個重要的問題,因為這之間可能相差了4個數(shù)量級
如果你有一個企業(yè)應(yīng)用,那么SAS是一個不錯的選擇。為你的應(yīng)用選擇一個合適的固態(tài)盤硬件類型并不難,但關(guān)鍵的是架構(gòu)設(shè)計。本系列的最后一篇文章將談到固態(tài)盤的內(nèi)部設(shè)計,以及它在RAID設(shè)備或者連接到SAS控制卡中的使用。