两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

提高磁盤陣列奇偶校驗(yàn)更新的緩沖器利用率的方法和系統(tǒng)的制作方法

文檔序號(hào):6651066閱讀:251來源:國(guó)知局
專利名稱:提高磁盤陣列奇偶校驗(yàn)更新的緩沖器利用率的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及用于數(shù)據(jù)存儲(chǔ)的數(shù)據(jù)保護(hù)方法,尤其涉及實(shí)現(xiàn)RAID-6的系統(tǒng)以及類似的數(shù)據(jù)保護(hù)和恢復(fù)策略。
背景技術(shù)
RAID代表獨(dú)立磁盤冗余陣列(Redundant Array of Independent Disks),是這樣一類冗余磁盤陣列存儲(chǔ)模式,其中冗余磁盤陣列存儲(chǔ)模式定義了眾多配置和使用多個(gè)計(jì)算機(jī)磁盤驅(qū)動(dòng)器,以獲得各種級(jí)別的可用性、性能、容量和成本的方式,同時(shí)作為單個(gè)大容量驅(qū)動(dòng)器呈現(xiàn)給軟件應(yīng)用程序。典型的RAID存儲(chǔ)子系統(tǒng)(subsystem)可以用硬件或者軟件來實(shí)現(xiàn)。在前者的情況下,RAID算法被封裝到耦接到計(jì)算機(jī)輸入/輸出(“I/O”)總線的單獨(dú)控制器硬件中,并且雖然增加很少或者沒有增加中央處理單元(“CPU”)開銷,但是所需的額外硬件仍然增加了整個(gè)系統(tǒng)的成本。另一方面,軟件實(shí)現(xiàn)將RAID算法并到與操作系統(tǒng)一起由主處理器執(zhí)行的系統(tǒng)軟件中,從而避免了單獨(dú)的硬件控制器的需要和成本,然而增加了CPU開銷。
從RAID-0到RAID-6已經(jīng)定義了各種RAID級(jí)別,每個(gè)都在前述因素中進(jìn)行權(quán)衡。RAID-0只不過是常規(guī)的分帶(striping),其中將用戶數(shù)據(jù)分成塊(chunk),這些塊被存儲(chǔ)在帶區(qū)組上,該用戶數(shù)據(jù)散布在多個(gè)磁盤上而不存在數(shù)據(jù)冗余。RAID-1等價(jià)于常規(guī)的“影像(shadowing)”或“鏡像(mirror)”技術(shù),并且是最簡(jiǎn)單的獲得數(shù)據(jù)冗余的辦法,其通過對(duì)于每個(gè)磁盤都具有容納相同數(shù)據(jù)的另一磁盤并且同時(shí)向兩個(gè)磁盤寫數(shù)據(jù)來獲得數(shù)據(jù)冗余。RAID-0和RAID-1的組合通常被稱作RAID-0+1,是通過分帶影像組實(shí)現(xiàn)的,從而得到該兩種RAID級(jí)別的相對(duì)的性能優(yōu)點(diǎn)。RAID-2采用了被寫在RAID組的成員上的漢明碼(Hamming Code),其現(xiàn)在被認(rèn)為并不很重要。
在RAID-3中,數(shù)據(jù)被分帶在一組磁盤上,其中添加了用于保存奇偶校驗(yàn)數(shù)據(jù)的單獨(dú)的專用盤。隨著將用戶數(shù)據(jù)寫到其它盤而動(dòng)態(tài)地計(jì)算奇偶校驗(yàn)數(shù)據(jù),以便如果盤失效允許重構(gòu)初始的用戶數(shù)據(jù)而無需一個(gè)比特一個(gè)比特地復(fù)制數(shù)據(jù)。錯(cuò)誤檢驗(yàn)和糾正碼(“ECC”)諸如異或(“XOR”)或者更復(fù)雜的里得-所羅門(Reed-Solomon)技術(shù)之類可以用來對(duì)二進(jìn)制數(shù)據(jù)執(zhí)行必要的數(shù)學(xué)計(jì)算以得到RAID-3和更高級(jí)別實(shí)現(xiàn)中的奇偶校驗(yàn)信息。雖然奇偶校驗(yàn)在盤失效的情況下允許重構(gòu)用戶數(shù)據(jù),但是這種重構(gòu)的速度是系統(tǒng)負(fù)載和所使用的特定算法的函數(shù)。
與RAID-3類似,稱作RAID-4的RAID方案由N個(gè)數(shù)據(jù)盤和一個(gè)奇偶校驗(yàn)盤組成,其中奇偶校驗(yàn)盤扇區(qū)包含每個(gè)數(shù)據(jù)盤上相應(yīng)扇區(qū)的逐位XOR。這使得在任一個(gè)盤失效的情況下RAID組中的數(shù)據(jù)內(nèi)容可以保存。RAID-5是RAID-4的變型,其將奇偶校驗(yàn)分帶在陣列中的所有磁盤上,以便使盤上的負(fù)載在統(tǒng)計(jì)上均衡。
RAID-6的名稱用來通俗地描述下述冗余和復(fù)雜的ECC技術(shù)的RAID方案,其通過使用兩個(gè)奇偶校驗(yàn)驅(qū)動(dòng)器(通常稱為“P”和“Q”驅(qū)動(dòng)器)可以容忍兩個(gè)磁盤失效而不丟失數(shù)據(jù)。盡管術(shù)語“奇偶校驗(yàn)”用于描述RAID-6技術(shù)中使用的碼,但是這些碼更恰當(dāng)?shù)卣f是一種ECC碼而不僅僅是奇偶校驗(yàn)碼。數(shù)據(jù)和ECC信息被分帶在RAID組的所有成員上并且寫性能通常低于RAID-5,這是因?yàn)樵趯懖僮髌陂g三個(gè)單獨(dú)的驅(qū)動(dòng)器必須每個(gè)都被訪問兩次。不過,取決于所使用的“奇偶校驗(yàn)”驅(qū)動(dòng)器的數(shù)目,RAID-6的原理可用于恢復(fù)多個(gè)驅(qū)動(dòng)器失效。
某些RAID-6實(shí)現(xiàn)是基于里得-所羅門算法的,該算法依賴于伽羅華域(Galois Field)算術(shù)。對(duì)伽羅華域算術(shù)及RAID-6背后的數(shù)學(xué)的全面解釋可以在各種資源中找到,因而,下面僅提供簡(jiǎn)單概述作為背景。RAID-6實(shí)現(xiàn)中所使用的伽羅華域算術(shù)發(fā)生在GF(2N)中。這是具有GF(2)中的系數(shù)的多項(xiàng)式對(duì)某N階生成多項(xiàng)式取模得到的域。該域中的所有多項(xiàng)式為N-1或者更小階,并且它們的系數(shù)都是0或者1,這意味著它們可以用全部在{0,1}中的N個(gè)系數(shù)的向量表示;即,這些多項(xiàng)式“看”起來就象N位的二進(jìn)制數(shù)。該域中的多項(xiàng)式加法只是N比特XOR運(yùn)算,其具有該域的每個(gè)元素是其自身的加性逆元(additive inverse)的屬性,所以加法和減法是相同的運(yùn)算。但是,該域中的多項(xiàng)式乘法可以利用基于對(duì)數(shù)的查表技術(shù)或者利用簡(jiǎn)單的組合邏輯來進(jìn)行。
每個(gè)RAID-6校驗(yàn)碼(即,P和Q)表示RAID-6陣列的數(shù)據(jù)盤上的數(shù)據(jù)與校驗(yàn)盤之一或者兩者上的數(shù)據(jù)之間的不變關(guān)系或者方程式。如果存在C個(gè)校驗(yàn)碼并且一組F盤失效,F(xiàn)≤C,則可以通過選擇這些方程式中的F個(gè)方程式并且在GF(2N)中同時(shí)對(duì)這些方程式求解F個(gè)丟失的變量而重構(gòu)失效磁盤。在目前所實(shí)現(xiàn)或者構(gòu)思的RAID-6系統(tǒng)中,僅有2個(gè)校驗(yàn)盤,即校驗(yàn)盤P和校驗(yàn)盤Q。值得注意的是,校驗(yàn)盤P和Q對(duì)于陣列上數(shù)據(jù)和奇偶校驗(yàn)的每個(gè)帶區(qū)都發(fā)生變化,從而校驗(yàn)數(shù)據(jù)并不寫入專用盤而是相反分帶在所有的盤上。
即使在不同系統(tǒng)中通過不同方式以不同成功程度地實(shí)現(xiàn)了RAID-6,仍然存在改進(jìn)提供數(shù)據(jù)存儲(chǔ)的RAID-6保護(hù)的效率和成本的持續(xù)需求。實(shí)現(xiàn)RAID-6的數(shù)學(xué)涉及重復(fù)性的復(fù)雜計(jì)算。據(jù)此,在現(xiàn)今和未來,努力改進(jìn)實(shí)現(xiàn)RAID-6所需的電路的簡(jiǎn)易性、電路的成本、電路的效率仍是優(yōu)先考慮的問題。
例如,常規(guī)RAID-6設(shè)計(jì)的一個(gè)缺陷涉及這樣的設(shè)計(jì)中的奇偶校驗(yàn)更新的吞吐量,這是由于為執(zhí)行這樣的更新需要相對(duì)較高的緩沖器需求。此上下文中的奇偶校驗(yàn)更新指的是響應(yīng)于奇偶校驗(yàn)帶區(qū)中所存儲(chǔ)的數(shù)據(jù)的變化而更新磁盤陣列中給定奇偶校驗(yàn)帶區(qū)中所存儲(chǔ)的奇偶校驗(yàn)信息。
作為比較,在RAID-5設(shè)計(jì)中,奇偶校驗(yàn)更新操作通常需要首先將待更新的舊數(shù)據(jù)從適當(dāng)?shù)拇疟P中取出并且將其與新數(shù)據(jù)比較(例如,通過對(duì)新數(shù)據(jù)和舊數(shù)據(jù)進(jìn)行XOR運(yùn)算)來計(jì)算增量值Δ。該增量值Δ然后用于例如通過對(duì)舊奇偶校驗(yàn)值與增量值Δ進(jìn)行XOR運(yùn)算來更新該奇偶校驗(yàn)。
公知地,在RAID-5奇偶校驗(yàn)更新期間所執(zhí)行的兩個(gè)XOR運(yùn)算可以僅使用兩個(gè)緩沖器來實(shí)現(xiàn)。具體地,第一緩沖器可以用于最初存儲(chǔ)待寫入的新數(shù)據(jù),而第二緩沖器用于存儲(chǔ)增量值Δ,該增量值Δ是由存儲(chǔ)在第一緩沖器中的新數(shù)據(jù)與從適當(dāng)?shù)拇疟P中取出的舊數(shù)據(jù)(數(shù)據(jù)可以直接輸入到XOR邏輯,從而不需要被緩沖)的XOR運(yùn)算生成的。一旦將新數(shù)據(jù)寫入適當(dāng)?shù)拇疟P,該第一緩沖器然后可以重新用于存儲(chǔ)存儲(chǔ)在第二緩沖器的增量值Δ與從適當(dāng)?shù)拇疟P取出的舊奇偶校驗(yàn)值(也可以直接輸入到XOR邏輯而無需緩沖)之間XOR運(yùn)算的結(jié)果。在該第二XOR運(yùn)算之后,該第一緩沖器存儲(chǔ)新奇偶校驗(yàn)值,該新奇偶校驗(yàn)值然后可以從該第一緩沖器中讀出并且被寫入到適當(dāng)?shù)拇疟P中。
另一方面,在其中兩個(gè)磁盤包括每個(gè)奇偶校驗(yàn)帶區(qū)的奇偶校驗(yàn)數(shù)據(jù)的RAID-6環(huán)境中,奇偶校驗(yàn)更新操作通常需要至少一個(gè)額外的緩沖器來存儲(chǔ)與這樣的操作相關(guān)聯(lián)的中間數(shù)據(jù)。具體地,在RAID-6奇偶校驗(yàn)更新仍然需要計(jì)算增量值Δ的同時(shí),對(duì)給定的奇偶校驗(yàn)帶區(qū)更新兩個(gè)奇偶校驗(yàn)值要求該增量值Δ乘以或縮放(scale)下述不同的常數(shù),該不同的常數(shù)分別與不同的奇偶校驗(yàn)帶區(qū)方程式相關(guān)聯(lián),該方程式將奇偶校驗(yàn)值與該奇偶校驗(yàn)帶區(qū)方程式中的數(shù)據(jù)相聯(lián)系。這些不同的常數(shù)通常表示為常數(shù)K1和K2,同樣地,奇偶校驗(yàn)帶區(qū)的一個(gè)奇偶校驗(yàn)值P通常通過對(duì)舊奇偶校驗(yàn)值P與常數(shù)K1和增量值Δ的乘積(即,K1Δ)進(jìn)行XOR運(yùn)算來計(jì)算得到,而同一奇偶校驗(yàn)帶區(qū)的另一奇偶校驗(yàn)值Q通常通過對(duì)舊奇偶校驗(yàn)值Q與常數(shù)K2和增量值Δ的乘積(即,K2Δ)進(jìn)行XOR運(yùn)算來計(jì)算得到。
在常規(guī)的RAID-6實(shí)現(xiàn)中,使用了三個(gè)或者更多的緩沖器,其中第一緩沖器最初存儲(chǔ)待寫入的新數(shù)據(jù),第二緩沖器用于存儲(chǔ)增量值Δ,該增量值Δ由存儲(chǔ)在第一緩沖器中的新數(shù)據(jù)與從適當(dāng)磁盤取出的舊數(shù)據(jù)的XOR運(yùn)算生成。由于兩個(gè)奇偶校驗(yàn)值都需要該增量值Δ,所以使用第三緩沖器來存儲(chǔ)存儲(chǔ)在第二緩沖器中的增量值Δ與常數(shù)K1的乘積K1Δ。同樣,與RAID-5實(shí)現(xiàn)類似,在將新數(shù)據(jù)寫入適當(dāng)?shù)拇疟P之后,該第一緩沖器重新用于存儲(chǔ)存儲(chǔ)在第三緩沖器中的乘積K1Δ與從適當(dāng)?shù)拇疟P取出的舊奇偶校驗(yàn)值P之間XOR運(yùn)算的結(jié)果,該結(jié)果然后作為新奇偶校驗(yàn)值P被寫回到該適當(dāng)?shù)拇疟P中。為了更新奇偶校驗(yàn)值Q,在更新奇偶校驗(yàn)值P后,然后重新使用第三緩沖器來存儲(chǔ)存儲(chǔ)在第二緩沖器中的增量值Δ與常數(shù)K2的乘積K2Δ,然后重新使用第一緩沖器來存儲(chǔ)現(xiàn)在存儲(chǔ)在第三緩沖器中的乘積K2Δ與從適當(dāng)磁盤取出的舊奇偶校驗(yàn)值Q之間的XOR運(yùn)算的結(jié)果。然后將現(xiàn)在存儲(chǔ)在第一緩沖器中的該結(jié)果作為新奇偶校驗(yàn)值Q寫回到適當(dāng)?shù)拇疟P中。
但是,為RAID-6奇偶校驗(yàn)更新使用三個(gè)緩沖器比RAID-5設(shè)計(jì)所需的兩個(gè)緩沖器增加了50%的緩沖器需求。結(jié)果是,在緩沖器的數(shù)目受限的情況下,與RAID-5設(shè)計(jì)相比RAID-6設(shè)計(jì)通常只有2/3數(shù)目的奇偶校驗(yàn)更新操作處于進(jìn)行中,從而減少了吞吐量并且限制了總體性能。

發(fā)明內(nèi)容
本發(fā)明通過下述操作解決了與現(xiàn)有技術(shù)相關(guān)聯(lián)的上述及其它問題,該操作為代數(shù)上組合在更新奇偶校驗(yàn)帶區(qū)的多個(gè)奇偶校驗(yàn)值中所使用的多個(gè)常數(shù)值從而在生成一個(gè)奇偶校驗(yàn)值的過程中所使用的乘積可以有效地從在生成其它奇偶校驗(yàn)值中所使用的乘積中得出。通過這樣做,無需為計(jì)算每個(gè)乘積在緩沖器中單獨(dú)存儲(chǔ)為兩個(gè)乘積共有的增量值,從而消除了對(duì)這樣的緩沖器的需求。結(jié)果是,可以利用較少數(shù)目的所需緩沖器來執(zhí)行對(duì)多個(gè)奇偶校驗(yàn)值進(jìn)行的奇偶校驗(yàn)更新,從而限制了與緩沖器相關(guān)聯(lián)的瓶頸,并提高了總體吞吐量和性能。
作為示例,在一個(gè)其中通過將舊P值、舊Q值與單獨(dú)的乘積K1Δ、K2Δ進(jìn)行XOR運(yùn)算計(jì)算得到P值、Q值的、與本發(fā)明一致的示例性RAID-6實(shí)現(xiàn)中,乘積K2Δ是通過將乘積K1Δ乘以代表K2和K1的比率(即,K2/K1)的值(本文用K3表示)而從乘積K1Δ中得到的。結(jié)果是,消除了對(duì)存儲(chǔ)用在計(jì)算每個(gè)乘積K1Δ、K2Δ的增量值的單獨(dú)緩沖器的需要。
因而,與本發(fā)明一致,與將新數(shù)據(jù)存儲(chǔ)在奇偶校驗(yàn)帶區(qū)中相關(guān)聯(lián)地更新磁盤陣列中奇偶校驗(yàn)帶區(qū)的奇偶校驗(yàn)值,其中該磁盤陣列屬于其中奇偶校驗(yàn)帶區(qū)至少包括第一奇偶校驗(yàn)值和第二奇偶校驗(yàn)值的類型,該第一奇偶校驗(yàn)值和第二奇偶校驗(yàn)值通過至少一個(gè)奇偶校驗(yàn)帶區(qū)方程式與存儲(chǔ)在奇偶校驗(yàn)帶區(qū)中的數(shù)據(jù)相關(guān),其中該第一奇偶校驗(yàn)值能夠基于該新數(shù)據(jù)使用從該至少一個(gè)奇偶校驗(yàn)帶區(qū)方程式得出的第一常數(shù)而被更新,以及其中該第二奇偶校驗(yàn)值能夠基于該新數(shù)據(jù)使用從該至少一個(gè)奇偶校驗(yàn)帶區(qū)方程式得出的第二常數(shù)而被更新。通過下述操作更新該奇偶校驗(yàn)值將第一值存儲(chǔ)在第一緩沖器中,該第一值代表第一常數(shù)與增量值的乘積,該增量值代表該新數(shù)據(jù)與先前存儲(chǔ)在奇偶校驗(yàn)帶區(qū)中的舊數(shù)據(jù)之間的差,使用存儲(chǔ)在第一緩沖器中的第一值更新該第一奇偶校驗(yàn)值,將第二值存儲(chǔ)在第二緩沖器中,該第二值代表存儲(chǔ)在第一緩沖器中的第一值與第三常數(shù)的乘積,該第三常數(shù)代表第二常數(shù)對(duì)第一常數(shù)的比率,以及使用存儲(chǔ)在第二緩沖器中的第二值更新該第二奇偶校驗(yàn)值。


圖1是根據(jù)本發(fā)明的原理的、可以實(shí)現(xiàn)RAID-6存儲(chǔ)控制器的示例性計(jì)算機(jī)系統(tǒng)的框圖。
圖2是圖示圖1的RAID控制器的主要組件的框圖。
圖3是與本發(fā)明一致的示例性奇偶校驗(yàn)更新操作的流程圖。
具體實(shí)施例方式
下文中討論的實(shí)施例通過下述操作減少了在RAID-6和類似的環(huán)境中執(zhí)行奇偶校驗(yàn)更新所需的緩沖器的數(shù)目,即,代數(shù)上組合(algebraicallycombined)在更新奇偶校驗(yàn)帶區(qū)的多個(gè)奇偶校驗(yàn)值中所使用的多個(gè)常數(shù)值從而在生成一個(gè)奇偶校驗(yàn)值的過程中所使用的乘積可以有效地從在其它奇偶校驗(yàn)值的生成中所使用的乘積中得出。通過這樣做,通常消除了單獨(dú)存儲(chǔ)增量值的需要,從而減少了緩沖器需求并且提高了性能,該增量值代表奇偶校驗(yàn)帶區(qū)中新數(shù)據(jù)與舊數(shù)據(jù)之間的差。
下文中給出了與本發(fā)明一致的奇偶校驗(yàn)更新操作的磁盤陣列環(huán)境的多個(gè)實(shí)施例。但是,在討論這樣的實(shí)施例之前,首先提供RAID-6的背景簡(jiǎn)述,隨后是對(duì)可以實(shí)現(xiàn)與本發(fā)明一致的奇偶校驗(yàn)更新操作的示例性硬件環(huán)境的描述。
一般RAID-6背景這里用來描述RAID-6存儲(chǔ)系統(tǒng)的專用術(shù)語符合本領(lǐng)域最易于接受的標(biāo)準(zhǔn)。特別地,存在N個(gè)驅(qū)動(dòng)器,其中任何兩個(gè)將被認(rèn)為是奇偶校驗(yàn)驅(qū)動(dòng)器,P和Q。利用伽羅華域算術(shù),可以寫出兩個(gè)獨(dú)立方程式α0d0+α0d1+α0d2+…+α0dN-1=0 (1)α0d0+α1d1+α2d2+…+αN-1dN-1=0 (2)其中,這里所采用的“+”運(yùn)算符表示異或(Exclusive-OR,XOR)操作。
在這些方程式中,αX是有限域的元素,dX是來自第X個(gè)磁盤的數(shù)據(jù)。雖然P和Q盤對(duì)于數(shù)據(jù)的任意特定帶區(qū)可以是N個(gè)磁盤的任一個(gè),但是它們通常用dP和dQ表示。當(dāng)更新磁盤之一的數(shù)據(jù)(即,dX)時(shí),上面的兩個(gè)方程式分解為Δ=(舊dX)+(新dX) (3)(新dP)=(舊dP)+((αQ+αX)/(αP+αQ))Δ(4)
(新dQ)=(舊dQ)+((αP+αX)/(αP+αQ))Δ(5)在最后兩個(gè)方程式的每個(gè)中,加號(hào)右邊的項(xiàng)是常數(shù)乘以數(shù)據(jù)中的變化(即,Δ)。方程式(4)和(5)的這些項(xiàng)通常分別表示為K1Δ和K2Δ。
在一個(gè)磁盤丟失或不可用的情況下,可以采用簡(jiǎn)單的XOR運(yùn)算來恢復(fù)該磁盤的數(shù)據(jù)。例如,如果d1失效則可如下恢復(fù)d1d1=d0+d1+d2+… (6)在兩個(gè)磁盤失效或者被“暴露”的情況下,上面的方程式可以用來恢復(fù)磁盤的數(shù)據(jù)。例如,給定磁盤0到X并且假設(shè)磁盤A和B失效了,則該兩個(gè)磁盤的任一磁盤的數(shù)據(jù)可以從剩余的磁盤中恢復(fù)。例如,如果要恢復(fù)磁盤A,則上面的方程式變?yōu)閐A=((αB+α0)/(αB+αA))d0+((αB+α1)/(αB+αA))d1+…+((αB+α0)/(αB+αA))dx(7)示例性硬件環(huán)境在腦海中有了RAID-6的一般背景知識(shí)之后,可以將注意力轉(zhuǎn)向附圖,其中在幾個(gè)附圖中相同的附圖標(biāo)記表示系統(tǒng)的部件。圖1圖示了可以實(shí)現(xiàn)RAID-6或其它磁盤陣列的示例性計(jì)算機(jī)系統(tǒng)。為了本發(fā)明的目的,裝置10可以實(shí)際上代表任何類型的計(jì)算機(jī)、計(jì)算機(jī)系統(tǒng)或者其它可編程的電子設(shè)備,包括客戶端計(jì)算機(jī)、服務(wù)器計(jì)算機(jī)、便攜式計(jì)算機(jī)、手持式計(jì)算機(jī)、嵌入式控制器等。此外,裝置10可以采用例如集群式或分布式計(jì)算系統(tǒng)中的一個(gè)或多個(gè)聯(lián)網(wǎng)的計(jì)算機(jī)來實(shí)現(xiàn)。下文中將稱裝置10為“計(jì)算機(jī)”,不過應(yīng)該理解術(shù)語“裝置”也可以包括與本發(fā)明一致的其它適當(dāng)?shù)目删幊屉娮釉O(shè)備。
計(jì)算機(jī)10通常包括至少一個(gè)耦接到存儲(chǔ)器14的處理器12。處理器12可以表示一個(gè)或多個(gè)處理器(例如,微處理器),存儲(chǔ)器14可以表示隨機(jī)存取存儲(chǔ)器(RAM)設(shè)備,包括計(jì)算機(jī)10的主存以及任何輔助級(jí)別的存儲(chǔ)器,例如高速緩存存儲(chǔ)器、非易失或者備用存儲(chǔ)器(例如,可編程或者閃存存儲(chǔ)器)、只讀存儲(chǔ)器等。此外,存儲(chǔ)器14可以視為包括物理上位于計(jì)算機(jī)10中別處的存儲(chǔ)器存儲(chǔ),例如,處理器12中的任何高速緩存存儲(chǔ)器以及用作虛擬存儲(chǔ)器的任何存儲(chǔ)容量,例如存儲(chǔ)在磁盤陣列34上或者經(jīng)由網(wǎng)絡(luò)18存儲(chǔ)在耦接到計(jì)算機(jī)10的另一臺(tái)計(jì)算機(jī)(例如,客戶端計(jì)算機(jī)20)上。
計(jì)算機(jī)10通常還接收多個(gè)輸入和輸出以與外部交換信息。對(duì)于與用戶或者操作員的接口,計(jì)算機(jī)10通常包括一個(gè)或多個(gè)用戶輸入設(shè)備22(例如,其中有鍵盤、鼠標(biāo)、跟蹤球、操縱桿、觸摸板和/或麥克風(fēng))以及顯示器24(例如,其中有CRT顯示器、LCD顯示面板和/或揚(yáng)聲器)。此外,用戶輸入可以經(jīng)由在網(wǎng)絡(luò)上與計(jì)算機(jī)10連接的另一臺(tái)計(jì)算機(jī)(例如,計(jì)算機(jī)20)或者經(jīng)由專用工作站接口等接收。
對(duì)于額外的存儲(chǔ)設(shè)備,計(jì)算機(jī)10還可以包括經(jīng)由存儲(chǔ)控制器或者適配器16存取的一個(gè)或多個(gè)大容量存儲(chǔ)設(shè)備,例如,其中有可移動(dòng)磁盤驅(qū)動(dòng)器、硬盤驅(qū)動(dòng)器、直接存取存儲(chǔ)設(shè)備(DASD)、光盤驅(qū)動(dòng)器(例如,CD驅(qū)動(dòng)器,DVD驅(qū)動(dòng)器,等等)和/或磁帶驅(qū)動(dòng)器。此外,計(jì)算機(jī)10可以包括與一個(gè)或多個(gè)網(wǎng)絡(luò)18(例如,LAN、WAN、無線網(wǎng)和/或因特網(wǎng))的接口以允許與耦接到網(wǎng)絡(luò)的其它計(jì)算機(jī)交換信息。應(yīng)該理解,如本領(lǐng)域公知的,計(jì)算機(jī)10通常包括處理器12與組件14、16、18、22、24的每個(gè)之間的適當(dāng)?shù)哪M和/或數(shù)字接口。
根據(jù)本發(fā)明的原理,大容量存儲(chǔ)器控制器16有利于實(shí)現(xiàn)磁盤陣列34中的RAID-6存儲(chǔ)保護(hù)。
計(jì)算機(jī)10在操作系統(tǒng)30的控制下運(yùn)行,并且執(zhí)行或者反之依賴于各種計(jì)算機(jī)軟件應(yīng)用程序、組件、程序、對(duì)象、模塊、數(shù)據(jù)結(jié)構(gòu)等等(例如,軟件應(yīng)用程序32)。此外,各種應(yīng)用程序、組件、程序、對(duì)象、模塊等等也可以在例如分布式或者客戶機(jī)/服務(wù)器計(jì)算環(huán)境下在經(jīng)由網(wǎng)絡(luò)18耦接到計(jì)算機(jī)10的另一臺(tái)計(jì)算機(jī)中的一個(gè)或多個(gè)處理器上執(zhí)行,由此為實(shí)現(xiàn)計(jì)算機(jī)程序的功能所需的處理可以被分配到網(wǎng)絡(luò)上的多臺(tái)計(jì)算機(jī)上。
通常,為實(shí)現(xiàn)本發(fā)明實(shí)施例所執(zhí)行的例程(不管被實(shí)現(xiàn)為操作系統(tǒng)的一部分或者特定應(yīng)用程序,組件,程序,對(duì)象,模塊或者指令序列,或者甚至為其子集)本文中都稱之為“計(jì)算機(jī)程序代碼”或者簡(jiǎn)稱“程序代碼”。程序代碼通常包括一個(gè)或多個(gè)指令,其在各個(gè)時(shí)間駐留于計(jì)算機(jī)中的各種存儲(chǔ)器或者存儲(chǔ)設(shè)備中,并且當(dāng)被計(jì)算機(jī)中的一個(gè)或多個(gè)處理器讀取并執(zhí)行時(shí)使得該計(jì)算機(jī)執(zhí)行下述步驟,這些步驟是執(zhí)行具體化本發(fā)明各個(gè)方面的步驟或者元件所必需的。此外,雖然本發(fā)明是在并且將繼續(xù)在完全運(yùn)行計(jì)算機(jī)和計(jì)算機(jī)系統(tǒng)功能的語境下描述的,但是本領(lǐng)域的技術(shù)人員將理解,本發(fā)明的各種實(shí)施例能夠作為各種形式的程序產(chǎn)品而分發(fā),并且不管用于實(shí)際攜帶該分發(fā)的計(jì)算機(jī)可讀信號(hào)承載介質(zhì)的具體類型如何本發(fā)明都同等適用。計(jì)算機(jī)可讀信號(hào)承載介質(zhì)的示例包括但不限于可記錄型介質(zhì)和諸如數(shù)字和模擬通信鏈路的傳輸型介質(zhì),可記錄型介質(zhì)例如其中有易失和非易失存儲(chǔ)設(shè)備、軟盤和其它可移動(dòng)盤、硬盤驅(qū)動(dòng)器、磁帶、光盤(例如,CD-ROM,DVD,等等)。
此外,下文中描述的各種程序代碼可以基于其中在本發(fā)明的特定實(shí)施例中實(shí)現(xiàn)的應(yīng)用程序來標(biāo)識(shí)。但是,應(yīng)該理解,跟隨的任何特定程序?qū)S眯g(shù)語僅出于便利而使用,因而本發(fā)明不應(yīng)限于僅用于由這樣的專用術(shù)語標(biāo)識(shí)和/或暗示的任何特定應(yīng)用程序中。此外,給定通常無數(shù)的藉之可以將計(jì)算機(jī)程序組織成例程、過程、方法、模塊、對(duì)象等等的方式,以及給定藉之將程序功能分配于駐留于特定計(jì)算機(jī)的各種軟件層(例如,操作系統(tǒng),庫,API,應(yīng)用程序,java應(yīng)用小程序(applet),等等)中的各種方式,應(yīng)該理解,本發(fā)明并不限于這里所描述的程序功能的特定組織和分配。
圖2圖示了磁盤陣列系統(tǒng)(例如RAID-6兼容系統(tǒng))的控制子系統(tǒng)的框圖。特別地,更詳細(xì)地示出了圖1的大容量存儲(chǔ)控制器16包括RAID控制器202,該RAID控制器202通過系統(tǒng)總線208與處理器12耦接并且通過存儲(chǔ)總線210耦接到各個(gè)磁盤驅(qū)動(dòng)器212-218。如一名普通技術(shù)人員所熟知的,這些總線可以是本質(zhì)上專有的或者遵循諸如SCSI-1、SCSI-2等工業(yè)標(biāo)準(zhǔn)的。RAID控制器包括執(zhí)行下述程序代碼的微處理器204,該程序代碼實(shí)現(xiàn)用于數(shù)據(jù)保護(hù)的RAID-6算法并且通常駐留于位于RAID控制器的存儲(chǔ)器中。特別地,要存儲(chǔ)到磁盤212-218上的數(shù)據(jù)被用來產(chǎn)生奇偶校驗(yàn)數(shù)據(jù),然后被拆開(break apart)并且分帶于磁盤212-218上。磁盤驅(qū)動(dòng)器212-218可以是直接通過總線210耦接到控制器202的單獨(dú)磁盤驅(qū)動(dòng)器或者可以包括其自身的磁盤驅(qū)動(dòng)適配器,其允許一串單獨(dú)磁盤驅(qū)動(dòng)器連接到存儲(chǔ)總線210。換言之,磁盤驅(qū)動(dòng)器212可以在物理上實(shí)現(xiàn)為耦接到單個(gè)控制器的4或8個(gè)單獨(dú)磁盤驅(qū)動(dòng)器,該單個(gè)控制器連接到總線210。當(dāng)數(shù)據(jù)在任一方向上在磁盤驅(qū)動(dòng)器212-218和RAID控制器202之間交換時(shí),提供緩沖器20以幫助數(shù)據(jù)傳輸。緩沖器206的使用有時(shí)可能在數(shù)據(jù)傳輸上產(chǎn)生瓶頸,并且眾多緩沖器的引入可能增加RAID控制202的成本、復(fù)雜性和尺寸。這樣,本發(fā)明的某些實(shí)施例涉及以經(jīng)濟(jì)有效的方式提供及利用這些緩沖器206。
應(yīng)該理解,圖1和圖2中所示的實(shí)施例本質(zhì)上僅是示例性的。例如,應(yīng)該理解,本發(fā)明可適用于其中多個(gè)奇偶校驗(yàn)值與每個(gè)奇偶校驗(yàn)帶區(qū)相關(guān)聯(lián)的其它磁盤陣列環(huán)境。還應(yīng)該理解,與本發(fā)明一致的磁盤陣列環(huán)境可以利用駐留于計(jì)算機(jī)的主存儲(chǔ)器中的完全軟件實(shí)現(xiàn)的控制算法,或者計(jì)算機(jī)或控制器中通過程序代碼操縱的某些功能可以以硬件邏輯電路實(shí)現(xiàn),反之亦然。因而,本發(fā)明不應(yīng)限于這里所討論的具體實(shí)施例。
減少用于RAID-6奇偶校驗(yàn)更新的緩沖器在RAID6系統(tǒng)中,對(duì)于每個(gè)普通的奇偶校驗(yàn)更新操作產(chǎn)生六個(gè)I/O操作。這些I/O操作可以總結(jié)如下1)從磁盤讀舊數(shù)據(jù)dX2)向磁盤寫新數(shù)據(jù)dX3)從磁盤讀舊奇偶校驗(yàn)dP4)向磁盤寫新奇偶校驗(yàn)dP5)從磁盤讀舊奇偶校驗(yàn)dQ6)向磁盤寫新奇偶校驗(yàn)dQ該新數(shù)據(jù)和奇偶校驗(yàn)值是根據(jù)方程式(3)、(4)、(5)計(jì)算得到。通常,這些操作需要如下面的表I所示的多個(gè)緩沖器。列表示三個(gè)不同的緩沖器A、B、C,而行是更新奇偶校驗(yàn)操作的不同的順序步驟。
表I

在上面的表中,加法(即XOR)步驟經(jīng)由XOR引擎來執(zhí)行,其中將不在緩沖器中的數(shù)據(jù)直接從驅(qū)動(dòng)器讀入XOR引擎中。與RAID-5相比,RAID-6的奇偶校驗(yàn)更新使用了額外的緩沖器,并且因而在緩沖器受限的環(huán)境中以約2/3的吞吐量運(yùn)行。
據(jù)此,本發(fā)明的實(shí)施例包括不同的緩沖器配置,其改進(jìn)了RAID-6環(huán)境中奇偶校驗(yàn)更新操作的吞吐量。特別地,不是在全部時(shí)間將增量值Δ保持在緩沖器B中,而是可以利用簡(jiǎn)單的代數(shù)學(xué)來在生成新奇偶校驗(yàn)dQ時(shí)計(jì)算增量值Δ。下面示出的表II表示對(duì)表I的修改,它圖示了可以如何操縱乘積K1Δ和K2Δ的值或乘積(參考方程式(4)和(5))來減少RAID-6奇偶校驗(yàn)更新中對(duì)緩沖器的依賴。
表II

從該表II可見,定義并存儲(chǔ)了值K3使得K3=K2/K1。將值K3與乘積K1Δ相乘時(shí),結(jié)果等于K2Δ。這樣,通過根據(jù)表II的簡(jiǎn)單代數(shù)操縱,僅使用兩個(gè)緩沖器實(shí)現(xiàn)了RAID-6奇偶校驗(yàn)更新,這應(yīng)該可以理解為通過限制由于受限的緩沖器需求而導(dǎo)致的瓶頸可以提高性能和吞吐量。
與表II類似,圖3圖示了在示例性RAID-6環(huán)境中在執(zhí)行奇偶校驗(yàn)更新操作中涉及的步驟。在步驟302中,將磁盤dX的新數(shù)據(jù)取入緩沖器A,以及在步驟304中,通過將從磁盤dX取出的舊數(shù)據(jù)與緩沖器A的內(nèi)容進(jìn)行XOR運(yùn)算計(jì)算得到增量值Δ并且將之存儲(chǔ)在緩沖器B中。在步驟306中,將新數(shù)據(jù)從緩沖器A寫到磁盤dX,以及在步驟308中,通過將緩沖器B的內(nèi)容乘以常數(shù)K1計(jì)算得到第一值或乘積K1Δ并且將之存儲(chǔ)在緩沖器A中。
在步驟310中,通過將從磁盤dP取出的舊奇偶校驗(yàn)P與緩沖器A的內(nèi)容進(jìn)行XOR運(yùn)算計(jì)算得到新奇偶校驗(yàn)值P,以及在步驟312中,將該新奇偶校驗(yàn)值P寫到磁盤dP中。然后,在步驟314中,通過將緩沖器A的內(nèi)容乘以常數(shù)K3(設(shè)置為等于K2/K1)而計(jì)算得到第二值或乘積K2Δ,并且將之存儲(chǔ)在緩沖器B中。然后,在步驟316中,通過將從磁盤dQ取出的舊奇偶校驗(yàn)Q與緩沖器B的內(nèi)容進(jìn)行XOR運(yùn)算計(jì)算得到新奇偶校驗(yàn)值Q,以及在步驟318中,將該新奇偶校驗(yàn)值Q寫到磁盤dQ中。于是完成了奇偶校驗(yàn)更新操作。
這樣,本發(fā)明的實(shí)施例在其中多個(gè)奇偶校驗(yàn)值與每個(gè)奇偶校驗(yàn)帶區(qū)相關(guān)聯(lián)的RAID-6或類型環(huán)境中提供了一種利用較少數(shù)目的緩沖器執(zhí)行奇偶校驗(yàn)更新的方法和系統(tǒng)。在不背離本發(fā)明的精神和范圍的條件下可以對(duì)所示的實(shí)施例進(jìn)行各種修改。因而,本發(fā)明在于所附的權(quán)利要求書。
權(quán)利要求
1.一種與將新數(shù)據(jù)存儲(chǔ)在奇偶校驗(yàn)帶區(qū)中相關(guān)聯(lián)地更新磁盤陣列中的奇偶校驗(yàn)值的方法,其中該磁盤陣列屬于其中奇偶校驗(yàn)帶區(qū)至少包括第一奇偶校驗(yàn)值和第二奇偶校驗(yàn)值的類型,該第一奇偶校驗(yàn)值和第二奇偶校驗(yàn)值通過至少一個(gè)奇偶校驗(yàn)帶區(qū)方程式與存儲(chǔ)在奇偶校驗(yàn)帶區(qū)中的數(shù)據(jù)相關(guān),該第一奇偶校驗(yàn)值能夠基于該新數(shù)據(jù)使用從該至少一個(gè)奇偶校驗(yàn)帶區(qū)方程式得出的第一常數(shù)而被更新,并且該第二奇偶校驗(yàn)值能夠基于該新數(shù)據(jù)使用從該至少一個(gè)奇偶校驗(yàn)帶區(qū)方程式得出的第二常數(shù)而被更新,該方法包括下述步驟將第一值存儲(chǔ)在第一緩沖器中,該第一值代表第一常數(shù)與增量值的乘積,該增量值代表該新數(shù)據(jù)與先前存儲(chǔ)在奇偶校驗(yàn)帶區(qū)中的舊數(shù)據(jù)之間的差;使用存儲(chǔ)在第一緩沖器中的第一值更新該第一奇偶校驗(yàn)值;將第二值存儲(chǔ)在第二緩沖器中,該第二值代表第三常數(shù)與存儲(chǔ)在第一緩沖器中的第一值的乘積,該第三常數(shù)代表第二常數(shù)對(duì)第一常數(shù)的比率;以及使用存儲(chǔ)在第二緩沖器中的第二值更新該第二奇偶校驗(yàn)值。
2.如權(quán)利要求1所述的方法,還包括生成增量值;以及用新數(shù)據(jù)更新奇偶校驗(yàn)帶區(qū)。
3.如權(quán)利要求2所述的方法,還包括在將第一值存儲(chǔ)在第一緩沖器中之前將增量值存儲(chǔ)在第二緩沖器中的步驟,其中將第一值存儲(chǔ)在第一緩沖器中的步驟包括從第二緩沖器中取出增量值并且將該增量值乘以第一常數(shù)。
4.如權(quán)利要求2所述的方法,其中,所述生成增量值的步驟包括對(duì)奇偶校驗(yàn)帶區(qū)的新數(shù)據(jù)和舊數(shù)據(jù)進(jìn)行XOR運(yùn)算。
5.如權(quán)利要求1所述的方法,其中,所述更新第一奇偶校驗(yàn)值的步驟包括將第一奇偶校驗(yàn)值與存儲(chǔ)在第一緩沖器中的第一值進(jìn)行XOR運(yùn)算。
6.如權(quán)利要求1所述的方法,其中,所述更新第二奇偶校驗(yàn)值的步驟包括將第二奇偶校驗(yàn)值與存儲(chǔ)在第二緩沖器中的第二值進(jìn)行XOR運(yùn)算。
7.如權(quán)利要求1所述的方法,其中所述更新第一奇偶校驗(yàn)值的步驟是在將第二值存儲(chǔ)在第二緩沖器中的步驟之前執(zhí)行的。
8.如權(quán)利要求1所述的方法,其中,所述第一常數(shù)和第二常數(shù)是有限域常數(shù)。
9.如權(quán)利要求1所述的方法,其中,所述磁盤陣列包括RAID-6磁盤陣列。
10.一種與將奇偶校驗(yàn)帶區(qū)的新數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)磁盤dX中相關(guān)聯(lián)地更新與磁盤陣列中的奇偶校驗(yàn)帶區(qū)相關(guān)的第一和第二奇偶校驗(yàn)值的方法,其中該第一和第二奇偶校驗(yàn)值分別存儲(chǔ)在磁盤陣列中的第一和第二奇偶校驗(yàn)盤dP、dQ上,該方法包括下述步驟將奇偶校驗(yàn)帶區(qū)的新數(shù)據(jù)存儲(chǔ)在第一緩沖器中;將增量值Δ存儲(chǔ)在第二緩沖器中,該增量值Δ是通過將存儲(chǔ)在第一緩沖器中的新數(shù)據(jù)與從數(shù)據(jù)磁盤dX取出的奇偶校驗(yàn)帶區(qū)的舊數(shù)據(jù)進(jìn)行XOR運(yùn)算而計(jì)算得到的;將奇偶校驗(yàn)帶區(qū)的新數(shù)據(jù)從第一緩沖器寫到數(shù)據(jù)磁盤dX中;在將新數(shù)據(jù)寫到數(shù)據(jù)磁盤dX之后,將第一值K1Δ存儲(chǔ)在第一緩沖器中,該第一值K1Δ是通過將存儲(chǔ)在第二緩沖器中的增量值Δ乘以第一常數(shù)K1而計(jì)算得到的,其中該第一常數(shù)K1是從至少一個(gè)與奇偶校驗(yàn)帶區(qū)相關(guān)聯(lián)的奇偶校驗(yàn)帶區(qū)方程式中得到的;在將第一值K1Δ存儲(chǔ)在第一緩沖器中之后,將新的第一奇偶校驗(yàn)值存儲(chǔ)在第二緩沖器中,該新的第一奇偶校驗(yàn)值是通過將存儲(chǔ)在第一緩沖器中的第一值K1Δ與從奇偶校驗(yàn)磁盤dP取出的奇偶校驗(yàn)帶區(qū)的舊的第一奇偶校驗(yàn)值進(jìn)行XOR運(yùn)算而計(jì)算得到的;將存儲(chǔ)在第二緩沖器中的該新的第一奇偶校驗(yàn)值寫到奇偶校驗(yàn)盤dP中;通過將第二常數(shù)K2除以第一常數(shù)K1計(jì)算得到第三常數(shù)K3,第二常數(shù)K2是從至少一個(gè)與奇偶校驗(yàn)帶區(qū)相關(guān)聯(lián)的奇偶校驗(yàn)帶區(qū)方程式中得到的;在將該新的第一奇偶校驗(yàn)值寫到奇偶校驗(yàn)盤dP中之后,將第二值K2Δ存儲(chǔ)在第二緩沖器中,該第二值K2Δ是通過將存儲(chǔ)在第一緩沖器中的第一值K1Δ乘以第三常數(shù)K3而計(jì)算得到的;在將該第二值K2Δ存儲(chǔ)在第二緩沖器中之后,將新的第二奇偶校驗(yàn)值存儲(chǔ)在第一緩沖器中,該新的第二奇偶校驗(yàn)值是通過將存儲(chǔ)在第二緩沖器中的第二值K2Δ與從奇偶校驗(yàn)磁盤dQ取出的奇偶校驗(yàn)帶區(qū)的舊的第二奇偶校驗(yàn)值進(jìn)行XOR運(yùn)算而計(jì)算得到的;以及將存儲(chǔ)在第一緩沖器中的該新的第二奇偶校驗(yàn)值寫到奇偶校驗(yàn)盤dQ中。
11.一種裝置,包括第一和第二緩沖器;以及耦接到該第一和第二緩沖器并且被配置成與將新數(shù)據(jù)存儲(chǔ)在奇偶校驗(yàn)帶區(qū)中相關(guān)聯(lián)地更新磁盤陣列中的奇偶校驗(yàn)值的磁盤陣列控制器,其中該磁盤陣列屬于其中奇偶校驗(yàn)帶區(qū)至少包括第一奇偶校驗(yàn)值和第二奇偶校驗(yàn)值的類型,該第一奇偶校驗(yàn)值和第二奇偶校驗(yàn)值通過至少一個(gè)奇偶校驗(yàn)帶區(qū)方程式與存儲(chǔ)在奇偶校驗(yàn)帶區(qū)中的數(shù)據(jù)相關(guān),該第一奇偶校驗(yàn)值能夠基于該新數(shù)據(jù)使用從該至少一個(gè)奇偶校驗(yàn)帶區(qū)方程式得出的第一常數(shù)而被更新,該第二奇偶校驗(yàn)值能夠基于該新數(shù)據(jù)使用從該至少一個(gè)奇偶校驗(yàn)帶區(qū)方程式得出的第二常數(shù)而被更新,并且該磁盤陣列控制器被配置成執(zhí)行下述操作將第一值存儲(chǔ)在第一緩沖器中,該第一值代表第一常數(shù)與增量值的乘積,該增量值代表該新數(shù)據(jù)與先前存儲(chǔ)在奇偶校驗(yàn)帶區(qū)中的舊數(shù)據(jù)之間的差;使用存儲(chǔ)在第一緩沖器中的第一值更新該第一奇偶校驗(yàn)值;將第二值存儲(chǔ)在第二緩沖器中,該第二值代表存儲(chǔ)在第一緩沖器中的第一值與第三常數(shù)的乘積,該第三常數(shù)代表第二常數(shù)對(duì)第一常數(shù)的比率;以及使用存儲(chǔ)在第二緩沖器中的第二值更新該第二奇偶校驗(yàn)值。
12.如權(quán)利要求11所述的裝置,其中,所述磁盤陣列控制器包括RAID-6控制器。
13.如權(quán)利要求11所述的裝置,其中,所述磁盤陣列控制器包括下述程序代碼,該程序代碼被配置成執(zhí)行下述操作中的至少一個(gè),所述操作為將第一值存儲(chǔ)在第一緩沖器中、更新第一奇偶校驗(yàn)值、將第二值存儲(chǔ)在第二緩沖器中以及更新第二奇偶校驗(yàn)值。
14.如權(quán)利要求11所述的裝置,還包括耦合到所述磁盤陣列控制器的多個(gè)磁盤。
15.如權(quán)利要求11所述的裝置,其中,所述磁盤陣列控制器還被配置成生成增量值和用新數(shù)據(jù)更新奇偶校驗(yàn)帶區(qū)。
16.如權(quán)利要求15所述的裝置,其中所述磁盤陣列控制器還被配置成在將第一值存儲(chǔ)在第一緩沖器中之前將增量值存儲(chǔ)在第二緩沖器中,其中所述磁盤陣列控制器被配置成通過從第二緩沖器中取出增量值并且將該增量值乘以第一常數(shù)來將第一值存儲(chǔ)在第一緩沖器中。
17.如權(quán)利要求15所述的裝置,其中,所述磁盤陣列控制器被配置成通過對(duì)奇偶校驗(yàn)帶區(qū)的新數(shù)據(jù)和舊數(shù)據(jù)進(jìn)行XOR運(yùn)算來生成增量值。
18.如權(quán)利要求11所述的裝置,其中,所述磁盤陣列控制器被配置成通過將第一奇偶校驗(yàn)值與存儲(chǔ)在第一緩沖器中的第一值進(jìn)行XOR運(yùn)算來更新第一奇偶校驗(yàn)值。
19.如權(quán)利要求11所述的裝置,其中,所述磁盤陣列控制器被配置成通過將第二奇偶校驗(yàn)值與存儲(chǔ)在第二緩沖器中的第二值進(jìn)行XOR運(yùn)算來更新第二奇偶校驗(yàn)值。
20.如權(quán)利要求11所述的裝置,其中,所述磁盤陣列控制器被配置成在將第二值存儲(chǔ)在第二緩沖器中之前更新第一奇偶校驗(yàn)值。
21.如權(quán)利要求11所述的裝置,其中,所述第一常數(shù)和第二常數(shù)是是有限域常數(shù)。
22.一種程序產(chǎn)品,包括程序代碼,其被配置成在被執(zhí)行時(shí)與將新數(shù)據(jù)存儲(chǔ)在奇偶校驗(yàn)帶區(qū)中相關(guān)聯(lián)地更新磁盤陣列中的奇偶校驗(yàn)值,其中該磁盤陣列屬于其中奇偶校驗(yàn)帶區(qū)至少包括第一奇偶校驗(yàn)值和第二奇偶校驗(yàn)值的類型,該第一奇偶校驗(yàn)值和第二奇偶校驗(yàn)值通過至少一個(gè)奇偶校驗(yàn)帶區(qū)方程式與存儲(chǔ)在奇偶校驗(yàn)帶區(qū)中的數(shù)據(jù)相關(guān),該第一奇偶校驗(yàn)值能夠基于該新數(shù)據(jù)使用從該至少一個(gè)奇偶校驗(yàn)帶區(qū)方程式得出的第一常數(shù)而被更新,該第二奇偶校驗(yàn)值能夠基于該新數(shù)據(jù)使用從該至少一個(gè)奇偶校驗(yàn)帶區(qū)方程式得出的第二常數(shù)而被更新,并且該程序代碼被配置成執(zhí)行下述操作將第一值存儲(chǔ)在第一緩沖器中,該第一值代表第一常數(shù)與增量值的乘積,該增量值代表該新數(shù)據(jù)與先前存儲(chǔ)在奇偶校驗(yàn)帶區(qū)中的舊數(shù)據(jù)之間的差;使用存儲(chǔ)在第一緩沖器中的第一值更新該第一奇偶校驗(yàn)值;將第二值存儲(chǔ)在第二緩沖器中,該第二值代表存儲(chǔ)在第一緩沖器中的第一值與第三常數(shù)的乘積,該第三常數(shù)代表第二常數(shù)對(duì)第一常數(shù)的比率;以及使用存儲(chǔ)在第二緩沖器中的第二值更新該第二奇偶校驗(yàn)值;以及承載該程序代碼的計(jì)算機(jī)可讀信號(hào)承載介質(zhì)。
全文摘要
本發(fā)明提供提高磁盤陣列奇偶校驗(yàn)更新的緩沖器利用率的方法和系統(tǒng),其中在對(duì)磁盤陣列中的奇偶校驗(yàn)帶區(qū)進(jìn)行奇偶校驗(yàn)更新期間,對(duì)有限域算術(shù)中所使用的常數(shù)值進(jìn)行代數(shù)組合,以便減少在數(shù)據(jù)中發(fā)生變化時(shí)為更新多個(gè)奇偶校驗(yàn)值所需的緩沖器和步驟的數(shù)目。例如,在一種實(shí)現(xiàn)中,存儲(chǔ)與數(shù)據(jù)變化相關(guān)聯(lián)的增量值與第一常數(shù)的乘積的緩沖器的內(nèi)容,被乘以代表第二常數(shù)與第一常數(shù)的比率的值,其中該第一常數(shù)用于更新第一奇偶校驗(yàn)值,該第二常數(shù)用于更新第二奇偶校驗(yàn)值。
文檔編號(hào)G06F3/06GK1776636SQ20051012672
公開日2006年5月24日 申請(qǐng)日期2005年11月21日 優(yōu)先權(quán)日2004年11月19日
發(fā)明者卡爾·E·福漢, 羅伯特·E·蓋爾布雷斯, 阿德里安·C·格哈德 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
竹北市| 长子县| 上林县| 南木林县| 信阳市| 嘉黎县| 府谷县| 乐山市| 茌平县| 哈尔滨市| 彰化县| 乌海市| 莱芜市| 济南市| 田林县| 顺昌县| 滨州市| 左云县| 高碑店市| 沙坪坝区| 定安县| 广州市| 遂平县| 汝城县| 手机| 通江县| 舟曲县| 德庆县| 内黄县| 东港市| 永兴县| 龙里县| 晋中市| 边坝县| 新和县| 勃利县| 瑞金市| 嵩明县| 石门县| 京山县| 新竹市|