記憶體也玩RAID

2021-09-22 04:50:20 字數 3459 閱讀 3464

近乙個星期我將外出,為此留下兩篇文章,多為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...