近乙個星期我將外出,為此留下兩篇文章,多為51cto做些貢獻:)。本篇介紹一下hp伺服器技術中的raid技術。
說起raid,人們不約而同首先、而且唯一想到的是我們聽到的磁碟冗餘陣列,其實這一技術早已被hp應用於記憶體之中,那就是它的熱插拔raid記憶體技術,並且在其
proliant
系列中的
700子系列伺服器中得到應用。
由於應用程式越來越複雜對記憶體要求越來越高,同時處理器的處理能力也更強,伺服器記憶體的擴充套件已經是必然的事情。要滿足這個要求,伺服器的製造商面臨的問題就是在增加記憶體的密度、增大記憶體的容量的同時,保證系統記憶體的可靠性。
hp 也面臨同樣的問題,它的解決辦法是利用
3種容錯記憶體保護技術(
fault-tolerant memory protection technologies
raid
hp熱插拔
raid
記憶體的可靠性最高。它可以保證記憶體子系統執行正常,即使是在有乙個記憶體裝置完全出現故障的情況下也是如此,它支援工業標準的
dimm
hp的熱插拔
raid
技術。
raid記憶體的含義是工業標準的dimm容錯陣列(redundant array)
,結構圖如圖1。
圖1 對比下面的圖2,我們不難看出,惠普熱插拔raid記憶體(hp hot plug raid memory)在概念上和raid 4 磁碟儲存技術是相似的,
在系統架構上就更像乙個硬碟,所以採用了熱插拔
raid
記憶體保護模式的系統就可以達到像
raid
硬碟一樣隨意替換記憶體的效果。
但在一些關鍵的效能上會有所不同,兩者的實現方式上也不一樣。與磁碟陣列不同,惠普熱插拔raid記憶體使用的是並行的點對點的連線方式寫資料,而不是通過連線多塊磁碟的序列匯流排,這種方式的優點是資料可以同時被寫入多個儲存區(記憶體盒),不存在延時(mechanical delay),消除了因為儲存系統使用raid技術處理而帶來的寫資料的瓶頸問題。而在乙個磁碟冗餘儲存陣列中,通常情況下raid控制器在寫資料之前會先讀現有的奇偶資訊,如果有專門奇偶校驗驅動器做這項工作,那麼就會帶來瓶頸。但惠普不是這樣做的,惠普熱插拔raid記憶體執行在整個資料快取線上(參見圖1),所以在寫資料前沒有必要讀現有的奇偶資訊。
採用惠普熱插拔raid記憶體方式的伺服器使用5個記憶體控制器來控制5個記憶體盒(memory cartridges)。每個盒可以安裝最多8個工業標準dimm(參見圖3),當記憶體控制器向記憶體中寫資料的時候,它們會把資料分成4塊分別寫入4個記憶體盒,並把計算所得的奇偶資訊存放在第5個記憶體盒中。利用前4個記憶體盒中的資料和第5個記憶體盒中奇偶資訊,資料可以完全恢復,即使是任何dimm工作故障,或任何乙個記憶體盒被拆掉了,也可以做到不丟失資料。
可以看出,熱插拔
raid
圖3 在讀操作中,每個從記憶體盒中讀出的資料都會經過記憶體控制器和乙個
ecc裝置進行錯誤檢查,
另外,其餘
4個記憶體控制器會重新生成乙個值,
raid
記憶體引擎會將讀出的資料和這個生成值進行比較。
raid
記憶體的讀寫過程可參見圖4。
圖4資料1(
data word1
)通過它自己的記憶體控制器(
mc1)後,送到
ecc
裝置進行錯誤檢查,這個
ecc
裝置使用的是新的
8-bit ecc 演算法(
由hp開發)
,它可以檢測到
x8記憶體(
x8 memory modules
)中發生的錯誤,可信度很高。
ecc用乙個訊號將檢查結果「好」(
good
)或「壞」(
bad)
送給多路復用器(
mux1
)。具備下列
3條中的一條,
ecc
裝置就判斷資料
1是好的:
(1)
資料正確
(2) ecc
檢查出了錯誤但改正了
(3)資料中有錯誤,但
ecc
裝置檢查不出來。
hp 熱插拔raid
記憶體通過進一步的校驗方法控制所有三個部分的錯誤。其餘的4個
ecc
裝置(包括儲存奇偶資訊的記憶體盒的)將它們保持的資料送給
raid
記憶體控制引擎(
raid engine
),後者利用這些資訊通過
raid
演算法重構資料1,
raid
記憶體引擎將重構的資料1送到
mux1
的比較裝置中
(奇偶比較
) ,在這個裝置裡面重構的值和
ecc傳過來的資料
1進行比較,如果兩個完全相同,
mux
輸出資料
1。如果不同,說明資料
1有錯誤,比較裝置會給系統發出乙個「
non-maskable interrupt
」(nmi)
訊號,中止系統執行,禁止錯誤資料
1的輸出。這個過程是同時在重複進行的,因為同一時間內還會從其它的儲存盒中讀資料,參見圖5。
hp 熱插拔
raid
記憶體方式的這個特性保證了採用這種方式時資料的可靠性非常高。
hp 將對熱插拔
raid
記憶體進行改進,採用回寫技術(
scrubbing
)定位軟錯誤。
在hp的熱插拔技術中還應用到兩個小技術,它們就是:
回寫(scrubbing)技術和
熱插拔容量(
hot-plug capabilities
)技術,下面分別予以簡單介紹。 ÿ
回寫(scrubbing)技術
hp熱插拔raid
記憶體提供了乙個回寫硬體方式,它可以確認
ecc或
raid
檢查出來的軟錯誤。惠普技術嘗試定位在讀記憶體時檢查出來的所有軟錯誤,方法是把改正後的正確的資料寫回記憶體中去。但此方法不適用於硬錯誤。回寫技術可以阻止軟錯誤的累積,避免發生更嚴重的錯誤。它降低了
ecc的工作量,提高了系統的效能。一些傳統的系統採用的是軟體回寫,
hp熱插拔
raid
記憶體使用硬體完成這個工作。
hp熱插拔raid
記憶體會對錯誤生成錯誤日誌,錯誤極限由軟體設定。當記錄的錯誤值達到錯誤極限的時候,軟體會自動作出反應。例如當超過錯誤極限的時候故障燈會自動點亮,這就是由軟體控制的。 ÿ
熱插拔容量
hot-plug capabilities
raid
記憶體模式下,那麼系統會自動在所有的記憶體盒上重新放置資料(
rebuild
)。雖然這樣做會暫時降低記憶體的工作效能(重新放置
4 gb
的資料花費時間少於
30秒),但是只需要花費很少的錢就可以增加容錯能力,並可避免系統檢修期間帶來的經濟損失。
茶鄉浪子
記憶體也玩RAID
近乙個星期我將外出,為此留下兩篇文章,多為51cto做些貢獻 本篇介紹一下hp伺服器技術中的raid技術。說起raid 人們不約而同首先 而且唯一想到的是我們聽到的磁碟冗餘陣列,其實這一技術早已被 hp應用於記憶體之中,那就是它的熱插拔 raid 記憶體技術,並且在其 proliant 系列中的 7...
SeekBar也玩分段
android高階之ui深度定製系列 一 seekbar也玩分段 常見的seekbar和進度條一樣從0 100 之間均可以滑動,但是有時候我希望能把進度粗略的分成幾段,就像ratingbar那樣 下面是大致效果圖 seekbar android id id seekbar1 android layo...
手機上也玩Python Ruby
最近 python for s60又更新,現在最新版本是10月24號發布的1.3.12,增加了乙個scriptshell的模組。有幾個版本,分別是s60v1,s60v2 偶的6600用的這個版本 s60v2 fp1,s60v2 fp2,s60v2 fp3,s60v3。這個專案進展還不錯,基於pyth...