SSD 充當 HDD 快取的技術,為什麼沒有被廣泛運用?

語言: CN / TW / HK

很簡單,普及速度趕不上 SSD 價格下降的速度。

首先要說的是 SSD 給 HDD 當快取其實是很有效的。以現代檔案系統的資料組織結構,小容量快閃記憶體對於提升機械硬碟的隨機檔案訪問速度的確是非常有幫助的。原理在於大部分檔案系統是樹型結構,要訪問一個具體檔案的物理儲存位置,往往需要七八次甚至十數次的單執行緒單佇列 4K 隨機訪問。因為機械硬碟的機械結構,定位到一個具體扇區平均需要 10ms 甚至更長時間的延遲,導致訪問一個檔案需要 0.1 秒甚至更多。而快閃記憶體因為是全電子操作,這個定位延遲可以縮短到數十μs 甚至數μs,幾百倍的效能提升。如果把檔案系統結構相關的元資料(Metadata)儲存在快閃記憶體上作為機械硬碟的快取,訪問一個檔案只需要定位一次,也可以獲得十多倍的效能提升。更詳細的解釋,可以參看我之前寫過的文章:

為什麼說固態硬碟的 4K 效能很重要?

比較普及的用快閃記憶體作為機械硬碟快取的技術,我認為應該是 2007 年 Windows Vista 推出時的 ReadyBoost。不過 ReadyBoost 用的快閃記憶體裝置是 U 盤,一方面當時只有 USB 2.0(USB 3.0 在 2008 年才釋出,支援 USB 3.0 的 Sandy Bridge 平臺 2011 年才上市),持續寫入速度還沒硬碟快;另一方面 ReadyBoost 要求的 4K 隨機讀取 2.5 MB/s,十多年能符合這個要求的 U 盤可不便宜。所以 ReadyBoost 從來沒有真正普及過。

而支援 USB 3.0 的 Sandy Bridge 平臺上市時,Z68 就支援 Smart Respones Technology(SRT,智慧響應技術)。但 Z68 主機板的高昂價格對 SRT 普及造成了障礙;到了 Ivy Bridge 平臺也只是下放到次高階的 H77 主機板,直到 Haswell 平臺最主流的 B85 才支援 SRT,此時已經是 2013 年了。

然鵝 SSD 的 NAND 快閃記憶體,2010 年三星開始量產 TLC 快閃記憶體,2013 年上市了 TLC 的 840 evo,2014 年上市了 3D V-NAND 的 850 系列。TLC 和 3D V-NAND 這兩個技術大幅降低了 SSD 的成本,TLC + 3D V-NAND 的 850 evo 在 2015 年上市,240~256 GB 型號價格迅速降低到主流價位(500~600),二線品牌甚至有不到 400 的。例如太平洋電腦 2015 年底的一份入門級 SSD 評測中 [1] ,參測產品型號及參考價格如下:

256G SSD 成為主流後,主流電腦使用者就沒必要採用 SSD 快取技術了——一般使用者系統 + 應用程式也就佔 100G 不到的儲存空間,加上一些經常訪問的常用檔案也就佔 200 不到。需要更大固態容量的大型軟體、遊戲使用者,上 480~512G 的型號價格大概在 800~1200,也並非無法接受。機械硬碟就用來儲存一些很少訪問的冷資料如備份檔案、歸檔專案檔案等,或者佔用儲存空間大但又不太需要效能(尤其是隨機訪問效能)的多媒體檔案,例如音樂、視訊、照片等。

SRT 的不足

除了因為 SSD 價格快速下降外,Intel 的 SRT 未能普及還有幾個 SRT 本身的原因。

首先是快取的容量。SRT 只能支援最大 64GB 的快取分割槽,主流使用者應該是足夠的,但對於需要數 TB 儲存空間的使用者來說,可能不太足夠。一旦快取容量不足,需要頻繁替換快取資料的話,加速效果會很差。

其次是啟用 SRT 的步驟過於呆板。啟用 SRT 需要在 Windows 環境下使用 Intel RST(Rapid Storage Technology,快速儲存技術,不要和 SRT 混淆)的客戶端操作,並且要求 SSD 上沒有任何分割槽。

所以如果新裝機,SSD 容量在 120G 以上,為了不浪費 SSD 的容量和效能,想把系統和應用安裝到剩餘的 SSD 空間會很麻煩。使用者需要:

  1. 在機械硬碟上安裝 Windows;
  2. 安裝 RST,在 RST 介面中啟用 SRT,用固態給機械硬碟加速;
  3. 在 SSD 的剩餘空間中建立分割槽,安裝 Windows;
  4. 在 SSD 上的 Windows 中安裝 RST;
  5. 刪除 HDD 上的 Windows(可選)。

一旦 SRT 出現錯誤,需要停止並重新啟用的話就更麻煩了——你需要先備份 SSD 上系統盤中的資料,清除所有 SSD 上的分割槽,然後重複上述操作…

從 Skylake 開始,Intel 開始主推傲騰加速方案,SRT 在後續平臺上相當於被廢掉了。和 SSD 方案相比,傲騰雖然效能更好,也無需 TRIM 和 GC 加速效果更好,但因為介質成本高,接受程度就更差了。

最後就是,SSD 給 HDD 快取在一些同時需要大容量儲存空間和讀寫效能的場景中其實很常見。例如高階 NAS、混合磁碟陣列等。如果是電腦需要類似的混合儲存,可以考慮 Windows 自帶的儲存空間建立分層儲存池。

儲存空間 Windows

能接受 200 塊錢的軟體許可費用話,個人推薦使用 PrimoCache,使用上靈活很多,可以用 SSD 上的一個分割槽來加速機械硬碟、加速機械硬碟上的多個分割槽或者多塊機械硬碟;也支援用記憶體給 SSD 加速;可以選擇多種寫入策略。

PrimoCache - 加速各種儲存裝置的快取軟體