POPPUR爱换

 找回密码
 注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

搜索
查看: 18414|回复: 25
打印 上一主题 下一主题

關於LSI CacheCade Pro 2.0 R/W(含評測和簡單介紹)...

  [复制链接]
跳转到指定楼层
1#
发表于 2011-10-8 09:49 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 per1-q1222 于 2011-10-16 18:05 编辑


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比較長...

前提補充
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下.
在1.1版如果要啟動LSI SSDC, 只要在VD的屬性設定部分, 將IO Policy改成Cached IO, 便可立即啟用.

從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盤去做測試...
26#
 楼主| 发表于 2011-10-16 16:22 | 只看该作者
大致全數修文完成..=3=
回复 支持 反对

使用道具 举报

25#
 楼主| 发表于 2011-10-16 13:38 | 只看该作者
更新部分資訊..
回复 支持 反对

使用道具 举报

24#
 楼主| 发表于 2011-10-15 10:55 | 只看该作者
本帖最后由 per1-q1222 于 2011-10-15 10:56 编辑
dracocephalum 发表于 2011-10-15 10:50
對了,還有一個問題~
假如我只有一個SSD做SSDC(只讀,CacheCade 1.1)用來增加4K IOPS 的讀取,Control ...

你只要將Read Ahead開啟...
並且stripe size維持256KB..
seq read性能損失就會縮到最小..
SEQ I/O是連續的..
透過hba上的hot data buffer實現Read Ahead機制有極大的幫助..
回复 支持 反对

使用道具 举报

23#
发表于 2011-10-15 10:50 | 只看该作者
per1-q1222 发表于 2011-10-14 16:14
不管是循序或著隨機也好..
你只要能讓數據重複再利用...
那LSI SSDC的價值就會出現了...

對了,還有一個問題~
假如我只有一個SSD做SSDC(只讀,CacheCade 1.1)用來增加4K IOPS 的讀取,Controller 會否自動檢測並把所有的 Sequential Read 直接 pass 給 HDD?因爲在只有一個 SSD 的情況下,4x SAS HDD 綫性讀寫絕對快過SSD的……
回复 支持 反对

使用道具 举报

22#
发表于 2011-10-14 19:18 | 只看该作者
这个比混合硬盘弹性更大
回复 支持 反对

使用道具 举报

21#
 楼主| 发表于 2011-10-14 12:14 | 只看该作者
dracocephalum 发表于 2011-10-14 12:11
貌似還真的沒什麽用處——主要還是循序讀寫。算了,還是SAS HDD好了...
SSDC看以後需要4k IO 時再考慮了 ...

不管是循序或著隨機也好..
你只要能讓數據重複再利用...
那LSI SSDC的價值就會出現了...
回复 支持 反对

使用道具 举报

20#
发表于 2011-10-14 12:11 | 只看该作者
per1-q1222 发表于 2011-10-14 10:01
上SSDC必須要考慮自身用途為何!!.

貌似還真的沒什麽用處——主要還是循序讀寫。算了,還是SAS HDD好了...
SSDC看以後需要4k IO 時再考慮了...
回复 支持 反对

使用道具 举报

19#
 楼主| 发表于 2011-10-14 06:01 | 只看该作者
dracocephalum 发表于 2011-10-13 08:45
其實現在還是比較糾結到底是M4還是企業級SAS HDD,因爲M4實在太便宜了...
按照容量來説,4x M4 128GB 和 ...

上SSDC必須要考慮自身用途為何!!.
回复 支持 反对

使用道具 举报

18#
发表于 2011-10-13 08:45 | 只看该作者
per1-q1222 发表于 2011-10-13 11:49
我並沒有去看f/w的更新日誌..
但是我相信是有改善的...
anandtech這篇情況比較極端...

其實現在還是比較糾結到底是M4還是企業級SAS HDD,因爲M4實在太便宜了...
按照容量來説,4x M4 128GB 和 4x Savvio 15k.3 146GB 差不多,價錢反而 4x M4 128GB 更便宜。
我的主要用途是循序讀寫(有寫)操作,還要安全性(RAID 5),小型IOPS倒是不太重要...
4x M4 的讀取好像真的不錯,不過寫入有點挫,而且還會Degrade,就是4k IOPS 無敵。現在就在糾結到底是4x M4,還是上 Savvio 以後加個 SSDC (PERC H700 可憐的CacheCade 1.1)
回复 支持 反对

使用道具 举报

17#
 楼主| 发表于 2011-10-13 07:49 | 只看该作者
dracocephalum 发表于 2011-10-13 06:31
看來 M4 的 FW 有改善(?)或者寫入並不是SSDC的主要工作~
看了這篇文章之後有點不太敢用MLC組RAID,沒TR ...

我並沒有去看f/w的更新日誌..
但是我相信是有改善的...
anandtech這篇情況比較極端...
我到現在根本沒遇到這種情況...
你不可能沒事去寫滿全部LBA blocks吧.....

使用良好可以得到正常的效能和較長壽命...

至於寫入的問題...
那個是LSI要改善SSDC的部分...

如果直接把SSD做成VD RAID便可得到正常的性能...
回复 支持 反对

使用道具 举报

16#
发表于 2011-10-13 06:31 | 只看该作者
per1-q1222 发表于 2011-10-12 09:20
沒有...!!
我從寫入並沒有看出性能有甚麼下降..
M4的GC回復挺快的...

看來 M4 的 FW 有改善(?)或者寫入並不是SSDC的主要工作~
看了這篇文章之後有點不太敢用MLC組RAID,沒TRIM的話貌似M4會耍流氓的……

http://www.anandtech.com/show/4253/the-crucial-m4-micron-c400-ssd-review/2
回复 支持 反对

使用道具 举报

15#
 楼主| 发表于 2011-10-12 12:45 | 只看该作者
ZHY 发表于 2011-10-12 10:10
要用那个版本的软件,CacheCade 的WRITE设置才能出来呢?H700能否开到这个功能?

H700只能支持1.1版
回复 支持 反对

使用道具 举报

14#
发表于 2011-10-12 10:10 | 只看该作者
要用那个版本的软件,CacheCade 的WRITE设置才能出来呢?H700能否开到这个功能?
回复 支持 反对

使用道具 举报

13#
 楼主| 发表于 2011-10-12 05:20 | 只看该作者
idolclub 发表于 2011-10-12 00:18
我曾比較過M4和Intel SSD組RAID後的性能,發現在沒有TRIM下M4的性能下降明顯高於Intel,所以我現在也是用 ...

沒有...!!
我從寫入並沒有看出性能有甚麼下降..
M4的GC回復挺快的...

一般來說性能下降只有在寫入的時候會造成影響...
回复 支持 反对

使用道具 举报

12#
发表于 2011-10-12 00:18 | 只看该作者
per1-q1222 发表于 2011-10-11 05:20
8顆....!!!!!!!!!!!!!!!

我曾比較過M4和Intel SSD組RAID後的性能,發現在沒有TRIM下M4的性能下降明顯高於Intel,所以我現在也是用Intel SSD來組CacheCade,你的M4經過幾天使用後性能下降是否明顯?

回复 支持 反对

使用道具 举报

11#
 楼主| 发表于 2011-10-11 05:20 | 只看该作者
idolclub 发表于 2011-10-10 23:55
目前你是用多少顆M4來組CacheCade?

8顆....!!!!!!!!!!!!!!!
回复 支持 反对

使用道具 举报

10#
发表于 2011-10-10 23:55 | 只看该作者
per1-q1222 发表于 2011-10-9 07:17
LSI SSDC並不會將全部I/O給caching...
如果一個I/O的workingset操作不頻繁的話...
也就是所謂的cold zo ...

目前你是用多少顆M4來組CacheCade?
回复 支持 反对

使用道具 举报

9#
 楼主| 发表于 2011-10-9 10:19 | 只看该作者
本帖最后由 per1-q1222 于 2011-10-9 10:21 编辑
dracocephalum 发表于 2011-10-9 09:22
了解,看來還是無法替代傳統的cache,特別是在 RAID 5/6 情況下,SSDC 可以解決小型 IOPS 的問題,不過大型 ...

如果這個大型數據傳輸...
是屬於多線程併發...
那SSDC效果會極佳..
並不是不適合..
而且要在併發傳輸下才有優勢..
例如64/128線程...

或著這個數據的傳輸有重複性...
都會被cache到..

但是像我剛剛提的例如檔案拷貝..
這種根本沒辦法cache..
送過去就沒了..
只有一次而已..
回复 支持 反对

使用道具 举报

8#
发表于 2011-10-9 09:22 | 只看该作者
了解,看來還是無法替代傳統的cache,特別是在 RAID 5/6 情況下,SSDC 可以解決小型 IOPS 的問題,不過大型文件連續讀寫,沒有WB可能會悲劇,還是要cache...
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

广告投放或合作|网站地图|处罚通告|

GMT+8, 2024-5-9 04:45

Powered by Discuz! X3.4

© 2001-2017 POPPUR.

快速回复 返回顶部 返回列表