除了延遲和IOPS 評估SSD性能還要考慮這些因素
企業級SSD供應商通常基于吞吐量、延遲和IOPS指標來為市場上的買家區分固態驅動器的性能檔次,但這些規格并不能代表全部。其他因素——驅動器組件的架構以及處理寫入放大的方式——同樣是評估驅動器在生命周期內性能表現的重要指標。
目前在數據中心內已經部署的大多數SSD都基于flash閃存技術。構成閃存驅動器的零件包括存儲數據的NAND單元以及存儲控制器、接口和高速緩沖存儲器,每個組件都會對固態驅動器的性能起到重要作用。
NAND單元技術經歷了長期的發展,現在支持的容量越來越大,市場價格越來越便宜。最初的閃存驅動器基于單級單元(SLC)結構,每個數據單元能存儲1位二進制數據。后來出現的是每個單元能存儲2位二進制數據的多級單元(MLC)驅動器,再然后是三級單元(TLC)驅動器,每個單元能存儲3位數據。
基于TLC的閃存驅動器可以支持比過去更高的容量,其容量甚至超過了他們的許多硬盤驅動器近親。不幸的是,TLC驅動器無法持續提供與最初的SLC驅動器相同的性能水平。***出現的3D NAND技術給出了供容量和性能兩全的承諾——只要制造成本降低到與其他NAND技術相當就可以實現。
存儲控制器
存儲控制器是一種專用于各型號驅動器的處理器,用于運行固件程序并處理耗損均衡、垃圾回收、加密、壞塊映射和錯誤代碼糾正等操作,這是決定固態硬盤性能的另一個關鍵要素。無論驅動器的I/O工作負載程度如何,控制器都要維持關鍵的操作功能,即使在滿負荷運行時也必須能夠正確執行所有存儲相關的操作。控制器的任何缺陷都可能嚴重降低SSD的性能。
服務器和驅動器之間的接口也是SSD架構中的關鍵組件。常用的兩種接口是:串行連接SCSI(SAS)和串行高級技術連接(SATA)。SAS側重于提供更多的企業級功能,通常也可以提供(比SATA)更好的固態驅動器性能。
潛臺詞是,這兩種接口都可能成為存儲瓶頸。為了突破瓶頸,供應商提供非易失性存儲器快速接口(NVMe),讓閃存結合PCI Express運作以提供比SAS或SATA更好的性能。
在企業級SSD內部的存儲介質和接口之間還包括一個動態RAM內聯緩沖區。緩沖區提供高速緩存機制,為數據提供臨時分段和匯集區域。為了有效地執行這些操作,緩沖區必須足夠大才能有效加速數據訪問和修改動作,并盡可能減少寫入操作的影響。正確設計的緩沖區是高性能SSD中的關鍵組件。
寫入放大
大多數SSD和閃存驅動器都同樣容易產生寫入放大的問題,在某些情況下的實際寫入次數會超過實際請求的寫入次數。寫入放大問題是由SSD的數據寫入方式而帶來的固有缺陷。和硬盤直接添加或覆蓋數據的操作不同,SSD必須整塊寫入,并且在數據寫入之前必須先擦除數據塊內已有的數據,然后重新寫入。由于寫入放大帶來的額外IOPS會明顯降低寫入性能。
數據存儲在閃存驅動器上時會被寫入頁面,這些頁面被組合成塊。將數據寫入單元之前必須先擦除整個塊,除非塊已經是空的。如果要寫入的塊非空,則必須復制舊數據到緩存,然后從原始位置刪除數據,***合并新舊數據一起重新寫入驅動器。這些過程會增加大量寫入操作,不僅會影響SSD性能,還會縮短驅動器的使用壽命。
為了提高寫入性能,SSD通常會啟用某種類型的垃圾回收過程,在后臺主動釋放帶有舊數據的廢棄塊。這個過程可以消除每次寫入操作中的擦除整個數據塊的步驟。但是,如果處理不當,垃圾回收過程同樣會導致寫入放大并影響主寫入操作的性能。
大多數固態硬盤還會實施磨損平衡處理,以防止存儲單元過早磨損。磨損均衡算法能將寫入次數均勻地分布在可用塊上,以防止相同塊持續承受擦除和寫入操作。磨損平衡與垃圾回收一樣也會導致寫入放大,并可能影響固態驅動器性能,具體取決于實這些技術的實現方式。
其他進程也可能有助于緩解寫入放大問題,例如壞塊管理,控制器能識別和標記出對于存儲數據可能不可靠的一個或多個塊。另外,對驅動器進行碎片整理不會給SSD帶來任何好處,只會白白增加讀/寫開銷。
如果要減少寫入放大,減輕垃圾收集、磨損平衡和其他操作的不良影響,一個常見的策略是過量配置SSD,或將驅動器的允許被使用的存儲空間限制在一定比例。例如,一些組織將允許使用的存儲空間限制在75%或80%,有時甚至更低。通過預留足夠的剩余可用空間,驅動器可以更有效地支持寫入操作,并***限度地提高SSD性能。
另外,SSD有時可以利用接口內置的功能來緩解寫入放大。例如,SATA提供TRIM指令,SAS提供UNMAP指令。兩種指令都能標識不再使用的數據塊,從而可以讓設備從內部自動清除這些數據。這些措施可以獲得更好的固態驅動器性能,因為可以最小化垃圾收集進程,并且可以盡快在驅動器上獲得更多可用空間。
在數據中心部署固態硬盤要注意的事項還有很多,例如可用的服務器和網絡資源,以及在這些服務器上運行的操作系統類型,但驅動器的組件架構和寫放大對策才是最需要關心的問題。只有充分考慮到所有因素,組織才能確保購買的驅動器能提供足夠的性能,更好地支持各種應用程序。