CacheCade Pro 2.0(SSD Caching)

    內容表格
    沒有標頭

    版本為 06:06, 27 Nov 2024

    到這個版本。

    返回到 版本存檔.

    查閱目前版本


    LSI MegaRAID CacheCade Pro 2.0 讀/寫快取記憶體軟體。該軟體可智慧地在固態記憶體 (SSD) 上為頻繁訪問的資料,或稱“熱點”資料建立快取記憶體,從而可以顯著提高硬碟驅動器 (HDD) 陣列的應用 I/O 性能。採用 CacheCade Pro 2.0 軟體的 MegaRAID控制器與完全使用 HDD 的陣列相比,每秒事物處理量可提升 13倍,成本可降低 82%。
    這款第二代軟體可相容 LSI MegaRAID SAS 9260、9261 和 9280 系列控制器,該軟體將上一代 CacheCade 軟體只能提供 SSD 讀緩存的性能進行了擴展,可同時提供讀緩存和寫緩存,也是業界首款採用 SSD 同時實現讀/寫快取記憶體功能的 SSD 專用控制器快取記憶體技術。

    大概有些人已經看過了吧, 不過內容有一些更新了...
    在這篇會見到一個術語: SSDC..
    為SSD Caching, 因為CacheCade比較長
    這裡先"謝謝惠顧"...=3="


    前提補充
    Write-caching這個機制本身最大影響是的就是Parity RAID mode下, 像是RAID 5或RAID 6...
    由於這幾個模式會牽涉到Parity的Read-Modify-Write操作.., 因此Caching機制可以說是影響效能的重大關鍵...
    當一個Parity根據前面的條帶數據計算出的時候..
    P1=D1 xor D2 xor D3 xor ......xor Dn
    這個Parity在Caching機制下未必要立即寫入VD上..
    而是他會暫存在Hot data buffer...
    因為任何時候的情況下都有可能Parity被再次拿來操作..

    從這張圖可以看到了這個操作, 請注意綠色流線...
    多個數據被取出的情況下...
    D1, D2, .....,Dn...
    如果沒有應用一種回寫機制扔到Hot data buffer上...
    那性能之悲慘可想而知...
    尤其在大量的XOR operation..
    只會更慘不會更好..
    下面的連結是之前花很多時間翻譯的AMCC RAID 6論文, 不妨可以去觀看:
    http://www.osslab.com.tw/Storage/Enterprise/SAS%e8%88%87RAID/Raid_6_Structure
    再次提醒, 一個決定Hardware RAID的關鍵與否, 請看下圖:

    1. 硬件Caching機制
    2. RAID Assist的存在, ex: MCU附加XOR function
    3. 根據Frimware Stack設計而定

    一般Built-In Porcessor最有效的作用就是乘載大量I/O操作...
    由其實I/O中斷上的處理...
    但是這個並非是決定Hardware與Software RAID的差異點...


    從USA寄到TW的一個fedex box, 效率很好, 只花3天就送達了...
    LSI使用International Overnight Priority Service寄送...

    LSI00292的box部分:

    其實內容就是一隻小塊PCB的2-pin RAID key而已:

    在新版的CacheCade Pro 2.0下...
    加入了Write Caching...

    另外在LSI00292提供了FastPath的SSD I/O加速技術, 用來提升SSD的I/O存取性能
    目前FastPath提供了2.0版本, 而且效能也比早期的好
    這邊在說明一點, 在前一代的LSI00248, 也就是CacheCade 1.1提供SafeStore加密技術

    在LSI00292不再繼續提供支持..
    關於高階軟件服務的詳細部分:

    當安裝CacheCade之後, 在MSM管理工具上, RAID Controller屬性便會看到相關的啟動資訊...

    在正常且良好的情況下, LSI SSDC在性能上的衝擊是相當明顯...
    所謂性能上衝擊明顯並不是指她的效能上的提升..
    而是有好有壞, 啟動它會帶來好處, 但未必是絕對的情況..
    LSI SSDC目前最高支持到512GB, 但是未來會開放到2TB..
    並且支持RAID 5模式, 不過這個Parity mode僅針對LSISAS2208 RoC...

    上圖的各種VD設定都會導致出來的結果有所不同..
    與1.1版的f/w在設定上有些變化...
    不再是使用Cached I/O來啟動..
    而是有個別的專屬項目...

    LSI CacheCade Pro 2.0 R/W目前僅支援LSISAS2108 RoC產品, 另外特殊的CTF-NVRAM的CV系列尚不支援:

    將LSI00292的RAID key安插到對應的2-pins header上..

    之後CacheCade的設定項目會變解鎖, 因為這個RAID key封裝相關的雜湊密鑰...

    在LSI00292便開始支持Write Caching...
    從高級的Firmware Log, 又稱為Persistent Log....
    從這份進階的Log可以看到LSI RAID HBA再進行初始化時候的相關狀態...
    在T4階段可以看到LSI SSDC的啟動資訊...

    另外在MegaCLI可以看到當安裝RAID key之後, Upgrade Key屬性值便會改變...

    在啟用Write Caching之後...
    隨機寫入性能最好的情況下會提升50~100倍左右...
    但是這個前提是必須要把HBA上的Hot data buffer徹底關掉...
    也就是不能啟用Write-back caching...
    一切交由SSD Array處理..
    在這種情況下...
    我個人的想法是...
    1. 把SSD本身體質問題排除, 數據安全性會大幅提升, 因為任何時候寫入操作面向的都是非揮發的SSD, 而非DRAM...
    2. 但是關掉HBA上的Hot data buffer, 循序性能是有可能受到大幅衝擊...
    3. 隨機性能會大幅提升..
    當針對VD啟用SSDC後, 從SSDC本身便可以看到被關聯的VD..

    而且從VD本身也可以看到相關的SSDC屬性..

    從一塊操作極為頻繁的WorkingSet, 姑且可以稱為Hot Zone
    相反地, 不頻繁的情況下, 這塊區域則是Cold Zone

    早期在1.1版的情況下, 可以從來自LSI CacheCade 1.1文件中的一張圖表示, 下圖是早期1.1版Read Caching作用流程:

    在早期1.1版由於只支持Read Caching, 代表著如果一個數據被操作操作很頻繁,
    那他就有很大的機會被衝進LSI SSDC, 並且由SSDC成為次層Cache,
    不過LSI的評估文件顯示各項測試期HBA上的Hot data buffer(Cache Memory)都一律強制被關閉掉,
    包括Write Caching, 這是為了顯示其LSI SSDC的最大差異性.
    但我不認為這是一種好方法, 如果是在1.1版下, 至少我會建議Write Caching是要開啟的,
    因為該功能轉用Write Through會對寫入性能造成很大的衝擊, 尤其是在Parity RAID mode下.
    從2.0版開始提供針對LSI SSDC的Write Caching機制,
    允許在任何時候異動LSI SSDC上的Hot data, 根據適當的應用下能有效加速讀取和寫入性能.
    並且根據RAID Controller的設定, 在一段時間後會將LSI SSDC上的數據自動衝回VD的實體結構(Cache Flush).
    下圖是我從1.1版的Read Caching流程進行的一些更改, 可以看到寫入數據的流線:

    當然這可能會想到SSD上的數據安全性問題, 因為根據SSD本身體質而有所不同,
    在MegaRAID 3.6板之後便提供一種SSD Guard技術可以提前得知SSD是否發生異常,
    如果影響到本身的數據結構, 可以另外再安裝新的SSD, 便會自動將有問題的SSD上的數據衝回新安裝的SSD上,
    這保證了一定程度的數據安全性和一致性.

    LSI SSD Guard基礎上是基於SMART和Copyback這兩種支持而提供的, 插入新的SSD作為Hot spare.
    Copyback操作完成後, 可以把舊有故障的SSD取下, 換上完成數據更換的SSD,
    在讓RAID Controller自動進行OAR(Online RAID Roaming)重新配置Array(這會重新設定HBA上的NVRAM).
    SSD Guard對大多RAID mode有效, 這包括了不具安全性的RAID 0模式.
    在LSI SSDC啟用Write Caching下, 如果透過SMART得知SSD發生問題, 在嚴重影響數據結構以前,
    會自動將SSDC上的數據衝回VD實體結構, 以保證數據安全性和一致性,
    並且自動將Wirte Caching改回Write Through. 對SSDC而言, 這是處於在degrade的狀態下
    關於LSI的SSDC在消費級領域上, 類似的就是Intel的SRT(Smart Response Technology)...

    這是SRT的相關設定, 不過要透過IRST的RAID Stack去啟動..
    當然LSI的SSDC要遠比SRT先進許多了...
    另外還有類似的技術就是Adaptec的maxCache, 前身為MaxIQ..

    原理同樣類似, 不過他沒有支持Write-caching機制...
    我不清楚新型的Hybrid SSD&HDD RAID有沒有這樣設計...
    http://www.adaptec.com/en-us/_common/hybrid-raid/
    下圖為來自1.1版的應用說明, 從最左圖可以看較大的WorkingSet data並不容易cache到SSDC的hot zone..

    這張來自LSI CacheCade文件顯示出在HDD透過LSI SSDC開啟加速後, 所表明的一種存取情況:

    不同的I/O線程下, 呈現不同的數據分布區域. QD1在一個線程, 由於這個數據通常單純且較不易cache住, 在隨著QD逐漸拉升之後.
    多線程I/O可以有效反應出數據是容易被cache的, 因為經過了多次存取.
    在以往的情況下, Hardware RAID HBA會將這種所謂的Hot Data暫存在Cache Memory, 也就是Hot-data buffer.
    這個有效且經過驗證的加速設計在典型的Parity RAID mode會獲得最大效益, 而轉成SSDC設計之後, 雖然NAND FLASH的速度無法跟DRAM相比.
    不過由於存取效率依然遠勝傳統HDD, 而且容量高於DRAM Cache, 因此在像是大型串流的線性I/O存取, 利用SSDC可以獲取更好的效能.

    這表示著在不同的應用下, Hot-data buffer的存取次數會明顯有所不同. 上圖是來自早期1.1版的文件, 從OLTP情況下可以獲得最大效率, 在大型的WorkingSet data改進會減少. 但是在新版的2.0引進Write Caching機制以後, 其各方面效能皆會有所明顯改善.

    這個在2.0 R/W之後, 這些情況都會受到大幅的改變, 因為啟用了SSDC Write caching機制..
    從先簡單的測試來看...
    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

    WD WD1000FYYG SAS HDD部分資訊:

    從HDD資訊可以看到, LSI MSM管理工具提供HDD溫度監控, HDD溫度監控支持產品有: LSISAS1078, LSISAS2008, LSISAS2108和LSISAS2208全部產品
    另外LSISAS2208 RoC更是支持了Controller和Chip溫度監控.
    使用軟體為CDM..
    測試檔案尺寸為1GB...
    首先來一張Baseline的情況下..
    正常關閉SSDC, 使用最佳的設置..
    256k, RA&WB&DIO

    而啟用SSDC後, 設定上必須要稍微做一些改變...
    64k, NRA&WB&DIO, 你可以發現我故意啟動WB...

    這邊可以看到使用LSI的SSDC後, 成績有出彩的變化...
    整體性能可以說是大幅提升..
    不過有個問題就是隨機寫入性能遭受影響..
    這是因為開啟WB後的結果..
    那我把WB關掉的話呢?
    64K, NRA&WT&DIO

    可以看到隨機寫入性能因而大幅提升..
    可是循序性能卻受到大幅影響...
    LSI其實很早就表明過...
    HBA上的Hot data buffer會嚴重影響性能...
    不過在這個案例上..
    數據可以保障安全性...
    因為你不會直接寫入HBA上的Hot data buffer...
    但是可是缺點就是某些情況循序性能會重創...
    還有我們可以看到在有些測試上可以見到LSI SSDC的強悍案例...
    檔案尺寸1GB
    來先看看Baseline的情況..

    開啟LSI SSDC後...

    很歡樂的情況...
    像吃了威爾鋼一樣..
    當然ATTO本身就是很歡樂的測試軟體..
    因此不太可考性......

    我們在看AS SSD的情況..
    Baseline結果..

    LSI SSDC之後..

    成績明顯大幅拉開了差距....
    以上都是以4盤去做測試...

    最後得到了一些結論就是:
    1. 針對循序性能的大幅強化方案=> 256KB, NRA&WB&DIO
    2. 針對隨機性能的大幅強化方案=> 256KB, NRA&WT&DIO
    另外就是使用CacheCade Pro, 採用第二方案的話..
    BBU可以免除, 透過SSD Array保證數據安全性...
    如果要保證SSD Array的數據安全性..
    有兩種做法..
    1. 不可關閉SSD Guard, 因為SSD Guard是結合Copyback和SMART而設計的

    2. 使用SSDC的RAID 10模式來保證數據安全..
    如果SSD夠強悍的話, 我的建議可以使用4顆...
    當然米多的話, 多買幾顆也無所謂..
    但是目前最大容量限制為512GB..
    這點請注意!
    然後關閉HBA上的任何Hot Data buffer..
    一切由SSD Array來操作..
    而且BBU可以完全免除...
    不過有可能會因為Wide-ports數量不足的情況發生, 因為大多使用者都是選購非high-port count的版本,
    例如LSI MegaRAID SAS 9260-8i, 提供Native Wide-port Connector x2..
    最多只能連接8顆PHY Target, 在這種情況下如果要進行更多的裝置串接(expand connector number),
    你可以需要如下的裝置-SAS Expander:

    RAID HBA面對的target是SAS Expander, 上圖為Intel RES2SV240, 提供4x6的wide-ports數量,
    對於SAS Expander對向RAID HBA這種initiator而言, 其routing method會是使用direct routing算法, 也就是所謂的no routing,
    當然如果對向的又是SAS Expander的話, 則是subtractive routing算法, 而面對路徑選擇的話則會採用table routing,
    不過這些說明都已經超出本帖講的範圍, 因此稍微看看即可...

    增加影片部分(請點擊)...

    來看看LSI SSDC的運作情況..
    我強制寫一個4GB的檔案進行操作..
    這檔案比較大..
    綠燈為HDD在閃燈..
    藍燈為SSD在閃燈...
    你可以發現一段時間後HDD便不會在運作了...
    轉由SSD在處理..

    無法Caching所帶來的慘況:
    256K, NRA&WT&DIO

    更改成一般設定:
    256K, RA&WB&DIO


    Sequential I/O獲得SSDC的效益, 這個前提是數據必須是重複性:


    根據官方MSM Content Help的建議設定

    問題補充:
    LSI SSDC並不會將全部I/O給caching...
    如果一個I/O的workingset操作不頻繁的話...
    也就是所謂的cold zone的部分
    那這個數據集有很大的機會跟直接跳過caching...
    像是如果是做大型串流數據複製..
    例如檔案拷貝...
    這種數據很難被caching...
    那沒有經過SSDC的情況下..
    你只會看到一個很慘的情況...

    使用LSI的SSDC要注意用途...
    如果I/O請求併發數量很大的話..
    那他會有使用價值存在...

    16562, Is TRIM supported with LSI RAID controllers or SAS HBAs?
    TRIM is not supported with LSI RAID controllers or SAS HBAs.
    http://kb.lsi.com/KnowledgebaseArticle16562.aspx?Keywords=trim
    PS: 如果使用pass-through打穿讓OS識別, 可以正常使用TRIM.

    太強大了!看來 CacheCade 2.0 可以把 Adaptec 的 MaxIQ/ZCR 以及其他的電池方案淘汰掉……
    如果單純考量到CacheCade Pro 2.0 R/W的泛用性用途情況下..
    依然還是需要搭配HBA上的Hot Data Buffer..
    作三層混合使用...

    CacheCade是不可能把Adaptec的最高安全級別-ZMCP給取代掉..
    LSI的CacheVault才是用來對向ZMCP的高階服務..

    Powered by MindTouch Core