CacheCade Pro 2.0(SSD Caching)

    內容表格
    沒有標頭

    版本為 05:18, 27 Nov 2024

    到這個版本。

    返回到 版本存檔.

    查閱目前版本

    原作:OSSLAB VXR 
    最佳化參數:
     Baseline(Read ahead &Write back &Direct I O), SSDC01(N Read head&Write Though  &Direct IO)

    LSI MegaRAID CacheCade Pro 2.0 讀/寫快取記憶體軟體.該軟體可智慧地在固態記憶體 (SSD) 上為頻繁訪問的資料,或稱“熱點”資料建立快取記憶體,從而可以顯著提高硬碟驅動器 (HDD) 陣列的應用 I/O 性能.採用 CacheCade Pro 2.0 軟體的 MegaRAID控制器與完全使用 HDD 的陣列相比,每秒事物處理量可提升 13倍,成本可降低 82%.
     
    CacheCade Pro 2.0透過一種RAID Key的PCB元件來啟動以增強LSISAS 2208/2108 RoC的功能性. CacheCade Pro 2.0是CacheCade 1.x的改進版本, 比起1.x版更是大幅增強了I/O性能, 透過新加入的Write-caching機制允許熱數據(Hot data)可以回寫到SSD Cache上.
     

    CacheCade Pro 2.0是LSI新推出的一種SSD Caching服務, 簡稱SSDC, 用以大幅加速傳統機械式硬碟不足的隨機I/O性能, 良好的應用可以使效能增強至50倍以上. LSI SSDC的使用必須要透過一種小型的PCB元件裝置來啟動, 這並非是功能的新增, 而是進行安全解鎖(unlock).

    從上圖可以看到透過一種稱為RAID Premium Feature Key(簡稱PFK)的PCB元件安裝在指定的pin header上, 這樣在RAID f/w操作BIOS initializing時, 便會自動啟用LSI SSDC服務. LSI SSDC是LSI推出的高階軟體服務(Advanced Software Options)之一, 軟體服務推出如下:
    從列出的項目可以看到, RAID 6和RAID 5也包括在裡面, 但是這兩個服務大多僅作為OEM solution應用, 對於LSI零售性產品, 原廠初始設定都是啟用的. 當PFK安裝在指定的pin header之後, 開機RAID f/w操作BIOS初始化時, 會自動啟用指定的功能. 從幾個部分可以看出是否已啟用該軟體服務:
    1. 從WebBIOS的Advanced Software Options項目查看.
    2. 利用MegaRAID Storage Manager的Dashboard查看.
    3. 使用MegaCLI鍵入相關命令查看.
    4. 打開tty Log檢查相關初始化時, 是否已啟動.
    這邊利用LSI MSM監控工具打開使用Dashboard View來確認是否啟動, 如下圖所示:
    可以看出SSDC with Write-caching服務(CacheCade Pro 2.0)確實已經正確被啟動了. 另外FastPath服務(SSD加速)則是隨SSDC服務啟動時附加的. 另外可以點擊Manage MegaRAID Advanced Software Options項目打開專屬的視窗查看有關高階軟體服務的相關資訊.
    也可以透過TTY Log(Firmware Log)查看相關的功能是否已正確啟動, MFC settings紀錄RAID f/w相關的功能操作設定:
    紅色圈選的部分, enableSSC和enableSSCWB, 這兩個各代表不同的意思上存在:
    1. SSC: Solid State Caching
    2. SSCWB: Solid State Caching with Write Back
    使用LSI MSM監控工具, 透過Controller Properties View可以檢查SSDC服務的相關功能設定, 這包括大小限制以及Write-caching功能:
    可以發現使用CacheCade Pro 2.0服務時, Write Cache Capable項目的flag會被標記為Yes, 代表已啟動熱數據回寫(Write-back)服務. 另外, 當建立完VD操作後, 使用VD Properties View查看是否將該VD使用SSDC服務.
    當CacheCade Type標記為Read and Write時, 代表這是啟動CacheCade Pro 2.0服務. 目前針對有效的SSDC最佳化設定, LSI的建議如下:
    LSI提供的建議設定, 見仁見智了! 基本上要看當前的用途是否需要! 否則, 用途不適合, 反而會拖垮I/O性能. 當確認CacheCade Pro 2.0服務正確啟動後, Write-caching機制就會被解鎖(unlock)允許使用了. 如下圖可以看到將SSDC VD選擇設定為Write-back:
    CacheCade Pro 2.0利用集中密度高的熱數據(Hot data)加以快取到SSD上, 這意味著這些數據是常常被利用的. 尤其頻繁的多線程應用
    從上圖可以看出不同應用下以及單顆語多顆SSD作為Caching使用下的差異, 在一個OLTP或著一些傳統資料庫(Database)環境下, 使用LSI SSDC服務可能會發揮極大的效益存在. 因為有較高的熱數據密集度情況出現. 有效的SSDC加速機制使得RAID f/w操作RAID Controller大幅加速傳統HDD不足之處, 現階段SSDC利用6Gb/s RoC支持SSDC服務.
    根據LSI的SSDC文件, 提供了一種應用的案例說明CacheCade Pro 2.0能有效加速傳統RAID VD的I/O性能, 尤其隨著SSD Caching的數量增長, 越是明顯看出其差異性存在, 下圖是為使用MySQL資料庫的模擬測試:
    一些數據非常集中且常常被重複使用, 那麼這塊區域化的部分稱為Hot-zone; 反之, 密集度低且較少被利用的數據區域則稱為Cold-zone. SSDC不管存在於哪個廠商所擁有的相關IP Core, 概念與目的都相當接近的. 只要能大幅快取處於Hot-zone的那些熱數據(Hot-data), 那麼SSDC就是值回票價了. 下圖簡單說明SSDC的有效架構:
    跟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等...
    1. 這邊以一個硬體環境測試LSI CacheCade Pro 2.0的SSDC有效性, 相關的測試條件如下:
    2. 安裝LSI MegaRAID SAS 9260-8i(LSISAS2108 RoC) HBA搭配LSI CacheCade Pro 2.0服務使用
    3. 使用Crucial M4 SATA 3.0 SSD 64GB, 數量8顆用以建立SSDC.
    4. 建立一組RAID VD, 使用WD1000FYYG SAS 2.0 1TB HDD, 數量4顆建立RAID 5.
    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性能發生.
    有一種同樣與SSDC類似, 但是它的目的在於強化數據可靠性, 完全避免電源丟失上出現的dirty cache問題, 並且能提供比傳統BBU更有優勢的效率及長時間壽命. 那就是使用Super Capacitor元件搭配NAND FLASH提供有效的數據保護(Data Protection)方案. 例如LSI的CacheVault或著Adaptec的ZMCP solution.
    這種設計利用一種超大電流儲存體-Super Capacitor, 在電源發生丟失的時候. RAID HBA上會有一顆特殊的FPGA控制晶片會快速將Hot-date Buffer上的dirty-cache快速寫回板卡(Flash-based Cache Module)上提供的NAND FLASH元件. 電源的維持是透過Super Capacitor短暫提供.
     
    目前針對高階軟體服務(Advanced Software Options)部分, 除了使用Hardware Key的PCB元件來支持之外, LSI已發行一種Advanced Software Licensing的電子軟件認證, 跟Hardware Key不一樣的是透過授權軟體Key的方式來提供軟體服務.
     
    LSI目前針對CacheCade Pro 2.0 SSDC服務, 現階段支持的規格如下圖表所示:
    Notes: LSI在新版的LSISAS2208 MR f/w已提供對CacheCade Pro 2.0的支持.
    Powered by MindTouch Core