跟LSI SSDC服務相同, 這些擁有SSDC技術的相關IP Core廠商, 比LSI更早推出的Adaptec, 它的應用稱為maxCaching. 根本的目的是一樣的, 希望能有效快取Hot-zone上的熱數據. 最新版本已發行到v2.0版, 允許使用Write-caching機制回寫Hot-data至SSD裡.
Intel的IP Core所擁有的Smart Response Technology(SRT)同樣也是一種SSDC服務. SRT智能快取那些存在於Hot-zone上的熱數據, 大幅加速傳統機械式硬碟的I/O存取速度, 尤其是隨機存取.
不過可惜的是Intel SRT存在功能上的限制, 沒辦法像前兩者能夠Multiple SSD Caching, 並且難以保證數據可靠性. 適合在普通Desktop市場. 下圖為它的操作功能畫面, 必須要依靠RST軟體來啟用:
從上圖可以看到, Intel SRT只能對向單顆SSD(Single SSD)做Caching, 並且容量設限更小. 對於一種嘗鮮的使用下, 不免為是一種廉價方案.
回到主題, LSI在早期推出SSDC服務, CacheCade v1.x. 僅能提供安全的Read-caching機制. 如下圖的架構所示:
v1.x版的SSDC僅能針對頻繁讀取的那些Hot-data進行快取. 而之後推出的v2.0版本, 加入了Write-caching才完善了基本的I/O快取機制:
不過由於Write-caching機制可能會引發可靠性問題, 那些寫入的熱數據Hot-data預快取到SSDC中, 如果SSDC發生異常, 可能會引發VD上的數據不同步問題, 這時需要依靠RAID f/w要如何處理這些非正常情況下的問題. 因為SSD上的NAND FLASH壽命是有限的. LSI在早期的MegaRAID v3.6版本推出SSD Guard技術來增強對SSD的數據可靠性, 這個技術也適用在SSDC服務上面:
透過RAID f/w有效的PFA機制, 能夠在SSD完全故障前, 警示管理人員提醒有SSD存在故障問題. SSD Guard允許針對SSD配置GHSP, 使被設定的SSD(Configured SSD), 有故障的情況將發生時, RAID f/w馬上操作RAID Controller使用Copyback機制將快故障的SSD上的數據拷貝到GHSP, 並且重新復原整個SSD陣列(這包括了SSDC). 透過LSI MSM監控工具在Controller Properties View可查看SSD Guard是否啟用:
到幾怎樣的熱數據才有機會被SSDC給快取到呢? 當然高線呈I/O的情況下, 快取機率會隨之提高. LSI提供了一張概念上的分布圖來看看不同的數據分布比例:
想當然的, 可以看出隨著線程I/O的提高, 代表著該數據常常被利用, 意味著將容易快取到SSDC中. 但是可以看出這樣的數據分布區域愈來愈小, 也表示說SSDC的用途要明顯使用是對的方向, 否則會適得其反. 另外, 從另一張圖可以看出不同存取比例的數據下, SSDC快取的效率會隨著比例的下降而逐漸減少:
有效的SSDC應用對於整體I/O存取上的效能提升是立竿見影的. LSI提供的CacheCade服務允許建議多組以上的SSDC VD, 而SSDC VD的基礎是建立上RAID上, 這表示Multiple SSDs使用RAID達成多重I/O存取, 有效提升效能! 目前LSI允許透過RAID 0(Data Striping)或著RAID 1(Mirror)模式建立SSDC VD. 完成SSDC VD的建立後, 可以讓RAID VD去跟SSDC VD做關聯, 使RAID f/w操作SSDC VD去加速RAID VD效能. 如下圖的操作畫面, 使用LSI MSM監控工具綁定SSDC VD:
完成關聯操作後, 可以查看SSDC VD的詳細內容確認是否已關聯指定的RAID VD, 如下圖畫面所示:
從上圖畫面看出, Associated Virtual Drive(s)項目下關聯的RAID VD, 另外也可以看到SSDC VD其他相關屬性, 例如建立的RAID Level, Size以及Write Policy等...
- 這邊以一個硬體環境測試LSI CacheCade Pro 2.0的SSDC有效性, 相關的測試條件如下:
- 安裝LSI MegaRAID SAS 9260-8i(LSISAS2108 RoC) HBA搭配LSI CacheCade Pro 2.0服務使用
- 使用Crucial M4 SATA 3.0 SSD 64GB, 數量8顆用以建立SSDC.
- 建立一組RAID VD, 使用WD1000FYYG SAS 2.0 1TB HDD, 數量4顆建立RAID 5.
- 分別使用不同的設定來測試其差異: Baseline(RA&WB&DIO), SSDC01(NRA&WB&DIO), SSDC02(NRA&WT&DIO)
使用CrystalDiskMark測試, 在Baseline的情況下, 可以看出這是一個典型的RAID 5 I/O性能, 僅針對循序I/O的有效性:
透過SSDC01 Profile, 使用SSDC加速Baseline環境的效能, 如下圖所示, 對隨機存取I/O產生重大影響性:
可以看出整體發生了出彩的變化, 尤其多線程I/O(QD:32)產生爆發性的增長, 提升極為明顯. 另外, 做了一個SSDC02 Profile進行測試, 差別是僅關閉了WB轉用WT策略:
從上圖可以看出, 轉用WT策略之後, 使得多線程4K的小尺寸文件隨機I/O呈現性能上的大幅提升, 尤其是寫入性能. 不過由於WT策略使得一般傳統的循序I/O嚴重受到衝擊, 因此大多使用建議開啟WB策略, 雖然會影響隨機I/O存取, 不過至少性能提升幅度依然比傳統的RAID VD應用(Baseline)要高出不少.
根據已一個簡單的CrystalDiskMark測試能有效提升傳統RAID VD的I/O效能, 不過這並非代表一定如此. 如果存在於大文件傳輸, 而且不常被利用, 例如數據拷貝. 可能反而會出現悲慘的情況發生, 例如如下圖所示:
可以看出一般數據拷貝下, SSDC反而嚴重拖垮了整體I/O性能, 因為這些拷貝的文件幾乎無法被重複利用. 當改成傳統RAID設定後, 會出現嚴重的反差情況, 表明使用SSDC必須搭配良好的應用:
使用SSDC服務的目的在於能大幅加速傳統RAID應用的整體I/O性能, 尤其是針對隨機I/O存取部分. 但是SSDC應用Write-caching機制後存在的數據可靠性, SSDC服務並沒有辦法保證. 須搭配其他機制進行強化, 例如LSI的SSD Guard. 但是要採用SSDC服務之前, 必須要考量當前的環境是否需要? 不當的應用將會出現不良的整體I/O性能發生.