正文&說明
本篇將主要以LSI的SSD RAID Caching技術-CacheCade Pro 2.0作為重點介紹. SSD Caching是利用NAND FLASH為基礎的SSD裝置來作為次級緩衝快取來提供傳統的HDD作為存放, 好處就是用以大幅提升傳統機械式HDD傳輸I/O性能以及降低反應時間.由於實作硬線Memory Controller設計或著以firmware-based設計載入少量系統記憶體的RAID Controller通常只能提通有限制性的Cache buffer, 例如LSISAS2208 RoC產品提供1GB DDR3-1333 Memory或著Intel RST RAID允許使用16MB的系統記憶體作為Cache, 依照這種限制性的情況下, 除了Cache算法本身的有效性以及其用途, 例如在適中的Web應用, 通常這類的I/O資料尺寸較小, 容易被caching, 因此會有一些效果, 但是這不代表效用是最大的, 本身Web Application也有自己的Cache算法, 應用系統記憶體來做為緩衝, 對於Web Application而言這是非常重要的機制. 或著一般容易想到的, 在Parity RAID mode情況下, Cache Memory的存在與否幾乎是影響效能的關鍵.
從上圖可以看到, 硬線設計的Memory Controller會帶有RAID Assist的支持, 允許使用Write-back Caching來提供大幅的I/O加速, Parity的寫入或計算(Read-Modify-Write)幾乎是必須要依賴這種機制才能提供良好的效能. 雖然次世代SSD的逐漸發展, SSD的優勢逐漸展現出來, 利用SSD作為次級Cache, 雖然性能上目前是遠不如在RAID Controller提供的Hot-data buffer, 但是這依然絕對優於傳統HDD的特性, 利用SSD Caching的優勢在於提供的buffer容量允許遠高於RAID Controller上的Hot-data buffer, 提供更有效的應用, 例如大型I/O串流數據傳輸或著大量的OLTP應用. 目前現行市面上可以見到的相關產品, 像是ROM-based的Intel RST技術在較新的RAID stack版本提供SSD Caching的支持, SRT允許兩種SSD Caching模式提供不同程度的性能加速.
在更早於SRT技術之前, Adaptec提供性能更好的MaxIQ加速技術, 這個是maxCache的前身, maxCache允許建立SSD pool有效對傳統VD陣列進行I/O上的大幅加速.
這個效益尤其在隨機(Application)應用下會被大幅展現出來, 尤其以SSD pool結構可以提供數倍至數百倍的加速性能來大幅強化實際應用, 在這個使用下, VD陣列可以之稱為Cold Zone, SSD pool則是Hot Zone, 性質與RAID Controller提供的Cache Memory是相似的. 自Adaptec被PMC併走之後, 提出一種Hyrid RAID模式, 更有效發揮SSD Caching的價值. 智能型的SSD Caching可以完全從SSD的Hot Zone進行I/O讀取傳輸, 進而再增幅性能, 另外對於SSD Caching的數據保證性還提供的Mirror模式來強化可靠性. 不像LSI, 這個技術隨著選購支持的RAID HBA便會提供, 不需要額外的支出費用.
大型的商務應用, 像是IBM或著Supermicro提供3rd party方案, 提供SSD Caching來增強產品線, 或著自家發展, 例如IBM在XIV Storage System提供SSD Caching支持.
當然像是IBM自家發展的方案事實上未必比較便宜, 這是一種高性能的強化方案, 但3rd party的OEM方案是常見的, 以目前RAID產品的龍頭-LSI, 便使用自家發展的SSD Caching提供給各家採購的OEM廠商來使用. LSI作為龍頭, 在SSD應用發展上目前是最為成熟的, 透過高階軟件服務技術(Advanced Software Service), 提供各項支持:
1. FastPath: 針對SSD本身進行有效的I/O加速強化, 尤其是在隨機性能下.
2. CacheCade: LSI的SSD Caching技術, 提供Read/Write Caching, 對傳統VD陣列有效加速.
3. CacheVault: 這是一種本身在RAID HBA提供NAND FLASH作為dirty cache的存在, 提高數據可靠性.
這些支持並非是本身原有的, 像是CacheVault必須選購對應的支持產品, 而其他兩項必須要額外添購LSI的高階軟件服務.
測試設備與軟體
CPU: Intel Xeon E5620, 4C8T, 2.40GHz
Motherboard: Supermicro X8STE, x58 IOH
Memory: DDR3-1333 ECC 2GB x3, UDIMM
GPU: nVIDIA Quadro 600, 1GB Framebuffer
Storage Part
HDD: WD WD1000FYYG, SAS 2.0, 6Gb/s, 1TB x4
RAID: LSI MegaRAID SAS 9260-8i, LSISAS2108 RoC
SSD: Crucial M4 64GB x8
Crucial M4 128GB x2
PFK: LSI Advanced Software Service, LSI00292
Software
OS: Windows Server 2008 R2, x64
Benchmark
1. Crystal Disk Mark
2. ioMeter
3. AS SSD Benchmark
5. ATTO Disk Benchmark
7. AJA KONA System Test
Configuration
根據LSI多份相關CacheCade評估文件顯示, 其使用的相關配置往往在VD設定採用64KB的StripeSize配置, 不管在Baseline或著事CacheCade Enabled, 但是根據個人的長期使用, 並不是很推薦使用64KB的StripeSize, 因為發現他會對寫入性能造成不小的衝擊, 尤其是在較大數量組成的VD下, 故這邊採用的是256KB的SrtipeSize大小.
以四顆SAS 2.0 HDD組成使用廣泛的RAID 5模式, 將會使用不同的配置來衡量CacheCade的效益.
不同VD的衡量配置如下分類:
1. Baseline: CacheCade Disabled, ReadCache&WriteBack&DirectIO
2. CacheCade Enable 01: CacheCade RW Enabled, NoReadCache&WriteThrough&DirectIO
3. CacheCade Enable 02: CacheCade RW Enabled, NoReadCache&WriteBack&DirectIO
4. CacheCade Enable 03: CacheCade Read Enable, NoReadCache&WriteBack&DirectIO
第四個案例在LSI官方文件沒有任何相關部分, 這是個人評估過後的一種測試配置, 使用SSD的Read Caching混合一級熱緩衝快取(Tier-1 Hot Data Buffer Cache)進行測試.