固態硬盤是否真適合企業數據庫環境?
固態硬盤(SSD)在企業應用中扮演著越來越重要的角色。同傳統的硬盤相比,無論是讀寫還是隨機存取的速度,SSD性能的優勢都非常明顯。但是傳統硬盤是比較成熟的產品
,它們作為主流存儲介質已經存在數十年,而且背后還有一系列經過實踐檢驗的技術作為支持。
隨著存儲技術的革新,固態硬盤(SSD)在企業應用中扮演著越來越重要的角色。同傳統的硬盤相比,無論是讀寫還是隨機存取的速度,SSD性能的優勢 都非常明顯。但是傳統硬盤是比較成熟的產品,它們作為主流存儲介質已經存在數十年,而且背后還有一系列經過實踐檢驗的技術作為支持。因此我們不禁要問,對 于SQL Server數據庫來說,是否真的有必要改用固態硬盤存儲設備?考慮到昂貴的成本問題,SSD能給企業帶來怎樣的投資回報率?
同傳統硬盤相比,SSD有許多吸引人的特性,這也使得它們越來越具有競爭力。SSD的能耗更小,隨機存取的讀模式速度更快,同時具有標準的硬盤接口 標準(如SATA)。可以說SSD的出現使得傳統硬盤幾乎走向了命運的終點。站在DBA的角度來說,SSD高速的讀取速度是其最大的優勢,因為它對于解決 I/O瓶頸問題起到了至關重要的作用。
但是反過來說,SSD也并不是十全十美,特別是針對SQL Server數據庫的情況,以下幾個原因往往會讓DBA對它望而卻步。首先想到的一定是成本問題,它們所帶來的數據吞吐速度提升是否能夠物有所值?一個企 業管理者在處理存在多個硬盤的存儲系統時,關注的不光是純性能問題,他們更關注的是每多花一分錢性能能夠提升多少的問題。如果你使用廉價的普通硬盤同時又 能解決帶寬問題,得到的性能不會差到哪里去,為何還要選擇SSD呢?在使用SSD時,你可能要花費10倍的資金去購買,這時你需要問自己,性能是否也能提 升10倍呢?當然,答案往往是不能的,那么我還是建議你使用普通硬盤。
在2009年由微軟研究機構發布名為“服務器存儲改用SSD:分析與權衡”的論文中,分析師認為在近一段時間內,對于任何的測試服務器場景,固態硬 盤都并不是最佳的選擇。“只有SSD性價比提升3-3000倍之后,才有可能真正成為傳統硬盤的替代品,”分析師寫道:“SSD作為中間緩存層的價值十分 有限,針對各種工作負載的測試中,只有不到10%的場景證明使用SSD得到了應有的回報。”SQL Server數據庫不在這10%的范圍之內,同時我們對一個5000個用戶的微軟Exchange Server進行了SSD測試(使用了嵌入式數據庫),其結果證明不適合投資固態硬盤。
另外一個針對SSD討論比較多的問題就是它的可靠性,即能否長期反復使用:閃存單元能否禁得起反復的寫操作?同樣的討論在U盤推出市場時也出現過, 但是我們現在關注的是企業級應用,同個人電子消費品不太一樣,企業應用的I/O總數要遠遠大于個人消費者,特別是考慮到數據庫這樣的I/O密集型應用。數 據對于一個企業的重要性無需贅言,而穩定性是重中之重。因此沒有人希望新技術的代價是將數據捆綁在定時炸彈上。
當然如果我們將現實與理論對比的話就可以發現其實SSD長期使用問題并沒有那么嚴重,況且一個良好的設計就可以在很大程度上緩解這一問題。SSD市 場分析師Zsolt Kerekes親自對這一問題進行了研究并得出了這樣的結論:在一個設計良好的閃存SSD中,你可能需要寫滿整個硬盤才會出現上述所說的問題。因此即使是 數據庫這樣的應用,其中包含了大量的寫操作,但是這對于SSD來說并不會造成使用威脅。
鑒于上述情況,寫操作造成的長期使用問題其實并不會造成太多困擾,它的使用壽命之內肯定又會出現新的SSD技術,那時候更新、更快、容量更高、更節能的模型將占據市場。
當然,目前SSD市場也在不斷地推陳出新,盡管價格在短時間內不會降低太多,因此如果你在現階段想要在數據庫系統中花費上萬資金購買固態硬盤,那還 不如去花費同樣的錢去購買其他的數據庫硬件。比如增加內存減少負載中的I/O,相比之下,這樣比購買固態硬盤更加劃算。如果現實場景中有太多的I/O不能 夠減少,那么再決定購買SSD也不遲。
來自微軟公司的工程師James Hamilton發表了一系列的公式,可以幫助用戶計算購買SSD是否劃算,以確定更換存儲設備的投資回報率。在這個公式(參考鏈接)中,它用到了一個數 據庫服務器作為測試用例,在他的發現中,我們可以看到往返在磁盤之間的隨機I/O是拖后其他I/O的主要原因,因此他決定用SSD來替換原有的存儲設備。 但是還是和之前一樣,投資回報率成為最大問題,利用他給出的公式我們可以看出他所使用的場景并不適合替換SSD.
雖然SSD發展的勢頭很快,大有替代傳統硬盤的趨勢,但是在企業級應用方面,特別是數據庫環境(如SQL Server),其高成本造成投資回報率偏低的情況依然不容忽視。所以只有當工作負載或者SSD價格降低時,它才可能成為合格的替代品。在大把大把花鈔票 的時候,先去用公式計算一下,這些錢沒準兒用到其他的地方會更好。