閃存SSD存儲與HDD存儲速度大比拼
閃存SSD以及閃存SSD存儲陣列已經(jīng)變得越發(fā)普及。其原因來自于許多方面,比如說有對速度的需求,或者至少是感覺有這樣的需求。市場上大多數(shù)人對SSD存儲的看法是這是一款比傳統(tǒng)HDD存儲更快的設(shè)備。但這究竟是否屬實?我們將在本文一起探討閃存SSD的真相。
觀點:閃存SSD總是比傳統(tǒng)硬盤更快
大多數(shù)IT人員都會認(rèn)為這句話說的沒錯。但事實是,這里的“總是”是否用的正確。
事實:閃存SSD存儲并不總是比HDD存儲快
這取決于應(yīng)用負(fù)載,SSD使用壽命以及SSD被寫入的位置。
在隨機訪問及讀訪問延時上的表現(xiàn)均會優(yōu)于傳統(tǒng)HDD硬盤上的表現(xiàn),例如在隨機讀延時上,傳統(tǒng)硬盤在合理的2.9ms到12ms的范圍內(nèi),而SSD閃存的表現(xiàn)則會控制在100微秒左右,這對高負(fù)載的讀操作和隨機訪問場景是不錯的選擇。低延時的直接效果是使得閃存SSD讀取數(shù)據(jù)的能力更加直接,可以直接從閃存SSD的特定區(qū)域?qū)?shù)據(jù)讀出來。在操作系統(tǒng)啟動和應(yīng)用啟動的時候,閃存SSD通常會幫上大忙,特別是在讀取數(shù)據(jù)的環(huán)節(jié)。
當(dāng)在寫操作放大的時候,SSD閃存存儲的性能明顯有所降低,并且會隨著閃存SSD的使用而持續(xù)下降。盡管有手段將性能降低的水準(zhǔn)減緩,但這只是相對而言的。性能降低的程度很大程度上取決于閃存NAND的類型。更為昂貴的單層單元SLC閃存性能表現(xiàn)會比企業(yè)級多層單元eMLC,多層MLC或者三層單元TLC閃存更好。
傳統(tǒng)磁盤存儲的性能也會因為做過磁盤碎片整理而降低。每一個碎片都會去讀取整個數(shù)據(jù)塊,隨著碎片的增加延遲也隨之增加。對于傳統(tǒng)磁盤來說,碎片整理工作相對直接且有效。很遺憾的是,就目前的閃存來說,SSD寫操作會降低性能是一個不爭的事實。因此,盲目的表示SSD的速率優(yōu)于傳統(tǒng)磁盤的速率是不科學(xué)的,在一些場景下閃存的確遜于傳統(tǒng)磁盤的表現(xiàn)。
寫操作對于閃存SSD來說,的確是一塊短板。同樣是寫操作,閃存SSD和傳統(tǒng)磁盤處理的方式相當(dāng)不同。所有閃存SSD的寫操作僅能發(fā)生在沒有使用過的或是事先擦除過的數(shù)據(jù)塊,而對于傳統(tǒng)磁盤來說,則可以覆蓋之前寫過的數(shù)據(jù),這點在閃存SSD上是無法實現(xiàn)的。這些數(shù)據(jù)塊需要先被擦除干凈,再寫入新的數(shù)據(jù)。這就意味著對于閃存SSD來說,數(shù)據(jù)寫起來就沒有傳統(tǒng)磁盤這么方便。
SSD控制器的作用則是通過后臺進(jìn)行垃圾清理,從而減緩閃存SSD的性能問題??刂破骼厥盏膶崿F(xiàn)方法有許多種,但最常見的方法是提前分配20%-50%額外的空間,取決于廠商以及存儲單元的不同。
這就意味著,對于一個200TB的SSD存儲來說,可能就需要有256TB的空間,其中僅有200TB的空間是真實可見并可用的。額外的空間則用于給控制器提供動態(tài)空間,這樣在做垃圾清理的時候用戶的寫操作并不會被影響。存有廢棄數(shù)據(jù)的寫入頁與剩余的頁空間交換,然后新擦除后的頁則成為了新的可用空間。
閃存SSD的動態(tài)空間縮短了整體寫入時間,其本質(zhì)是縮短了寫入操作的整個流程,從而大大提升了寫操作的性能。
寫操作在較為昂貴的單層單元SLC閃存SSD上的表現(xiàn)接近于讀速度。而對于企業(yè)級多層單元eMLC,多層單元MLC,尤其是三層單元TLC來說,寫性能是遠(yuǎn)遠(yuǎn)低于讀性能的。而對于傳統(tǒng)磁盤來說,讀和寫的性能則相對接近。
的確,從一般意義上來說,閃存SSD會比傳統(tǒng)磁盤的速度要快。因此,在什么時候閃存SSD會慢于傳統(tǒng)硬盤的表現(xiàn)呢?答案是在工作負(fù)載大多為寫操作或者是在用久了的或已進(jìn)行過大量寫操作的SSD上進(jìn)行混合操作的時候。