專利名稱:磁盤陣列恢復(fù)數(shù)據(jù)時(shí)增加磁盤訪問并行性的方法和系統(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ù),并且是獲得數(shù)據(jù)冗余最簡(jiǎn)單的辦法,其通過對(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)先考慮的問題。
例如,現(xiàn)有RAID-6涉及的一個(gè)局限涉及與執(zhí)行再同步(其中使用于奇偶校驗(yàn)帶區(qū)的奇偶校驗(yàn)數(shù)據(jù)與當(dāng)前的數(shù)據(jù)再同步)、重構(gòu)(其中基于奇偶校驗(yàn)數(shù)據(jù)重新生成錯(cuò)誤或丟失磁盤中的數(shù)據(jù))或者其它暴露模式的操作(諸如暴露模式的讀)相關(guān)聯(lián)的性能開銷。例如,再同步操作要求,對(duì)于磁盤陣列中所定義的每個(gè)奇偶校驗(yàn)帶區(qū),數(shù)據(jù)必須從所有磁盤中讀出并且用于通過下述操作求解奇偶校驗(yàn)帶區(qū)方程式,所述操作為將來自每個(gè)磁盤的數(shù)據(jù)乘以適當(dāng)值以及如乘積之和那樣對(duì)乘后得到的數(shù)據(jù)進(jìn)行異或以構(gòu)建奇偶校驗(yàn)帶區(qū)的奇偶校驗(yàn)值。此外,必須將作為求解該奇偶校驗(yàn)帶區(qū)方程式的結(jié)果計(jì)算得到的奇偶校驗(yàn)值寫到適當(dāng)?shù)拇疟P中。此外,由于RAID-6設(shè)計(jì)對(duì)于每個(gè)奇偶校驗(yàn)帶區(qū)依賴于兩個(gè)奇偶校驗(yàn)值,所以對(duì)于每個(gè)奇偶校驗(yàn)帶區(qū)前述處理通常必須執(zhí)行兩遍以生成兩個(gè)奇偶校驗(yàn)值并且將其寫到磁盤陣列中。
同樣,為重構(gòu)暴露的磁盤,每個(gè)奇偶校驗(yàn)帶區(qū)的數(shù)據(jù)必須從所有其它磁盤中讀出并且用來以與用于再同步的乘法操作及異或運(yùn)算類似的方式求解奇偶校驗(yàn)帶區(qū)方程式。求解奇偶校驗(yàn)帶區(qū)方程式的結(jié)果是被寫回到暴露磁盤中的數(shù)據(jù)。此外,對(duì)于諸如暴露模式的讀操作之類的其它暴露模式的操作,雖然無需將奇偶校驗(yàn)帶區(qū)方程式的結(jié)果存儲(chǔ)回磁盤陣列,但是必須執(zhí)行與重構(gòu)操作類似的處理。
但是,在這些暴露模式的操作的每個(gè)中,從某些磁盤讀數(shù)據(jù)以及向某些磁盤寫數(shù)據(jù)的需求導(dǎo)致相當(dāng)大的性能開銷,相對(duì)于磁盤陣列上各種磁盤訪問操作的順序本性來說尤其如此。因而非常需要一種提高諸如RAID-6系統(tǒng)的磁盤陣列系統(tǒng)的性能以提高關(guān)于再同步、重構(gòu)以及其它暴露模式的操作的性能的方式。
發(fā)明內(nèi)容
本發(fā)明通過許多技術(shù)解決了與現(xiàn)有技術(shù)相關(guān)聯(lián)的上述和其它問題,上述本發(fā)明的技術(shù)個(gè)別地或整體地增加關(guān)于訪問磁盤陣列中的磁盤的并行性,并且由此降低了與諸如再同步、重構(gòu)和暴露模式的讀操作之類的暴露模式的操作相關(guān)聯(lián)的性能開銷。
例如,在一個(gè)方面,出于求解奇偶校驗(yàn)帶區(qū)方程式的目的對(duì)磁盤陣列中磁盤的訪問(例如,關(guān)于重構(gòu),暴露模式的讀或其它暴露模式的操作)可以通過僅選擇求解該奇偶校驗(yàn)帶區(qū)訪問所需的可能磁盤的子集、從而省略對(duì)一個(gè)或多個(gè)磁盤的訪問來優(yōu)化。通過這樣做,當(dāng)在特定時(shí)間段內(nèi)執(zhí)行多個(gè)這樣的操作時(shí),只要為不同的操作選擇不同的磁盤子集通常就可以更好地平衡磁盤陣列中磁盤的利用率。
雖然可以使用其它磁盤陣列環(huán)境,但當(dāng)在其中通過兩個(gè)奇偶校驗(yàn)帶區(qū)方程式使奇偶校驗(yàn)帶區(qū)方程式中的數(shù)據(jù)相關(guān)的RAID-6環(huán)境中實(shí)施時(shí),每個(gè)磁盤子集可以包括磁盤陣列的N個(gè)磁盤之中的N-2個(gè)磁盤。此外,雖然可以使用其它方式選擇磁盤子集,但在一個(gè)實(shí)施例中,可以使用隨機(jī)選擇機(jī)制從而隨機(jī)省略某些磁盤。
與本發(fā)明的該方面一致,可以訪問具有N個(gè)磁盤的磁盤陣列,從而,對(duì)于磁盤陣列中所定義的多個(gè)奇偶校驗(yàn)帶區(qū)的每個(gè),從N個(gè)磁盤中選擇要用于求解這樣的奇偶校驗(yàn)帶區(qū)的奇偶校驗(yàn)帶區(qū)方程式的不同磁盤子集。然后可以啟動(dòng)僅從下述奇偶校驗(yàn)帶區(qū)的所選擇的磁盤子集中檢索與每個(gè)奇偶校驗(yàn)帶區(qū)相關(guān)聯(lián)的數(shù)據(jù)的操作,這樣檢索的數(shù)據(jù)用于求解該奇偶校驗(yàn)帶區(qū)的奇偶校驗(yàn)帶區(qū)方程式。此外每個(gè)所選擇的磁盤子集包括至多N-2個(gè)磁盤。
此外,在磁盤陣列系統(tǒng)中當(dāng)恢復(fù)磁盤陣列中的數(shù)據(jù)(例如,再同步奇偶校驗(yàn)和數(shù)據(jù),或者重構(gòu)暴露磁盤的數(shù)據(jù))時(shí)可以通過使與不同奇偶校驗(yàn)帶區(qū)相關(guān)聯(lián)的數(shù)據(jù)訪問相交迭而增加并行性。特別地,與本發(fā)明這方面一致,恢復(fù)磁盤陣列的數(shù)據(jù)可以包括檢索與第一奇偶校驗(yàn)帶區(qū)相關(guān)聯(lián)的第一組數(shù)據(jù),接著與向磁盤陣列中寫入通過處理該第一組數(shù)據(jù)而生成的結(jié)果值,同時(shí)從磁盤陣列中讀取與第二奇偶校驗(yàn)帶區(qū)相關(guān)聯(lián)的第二組數(shù)據(jù)。與當(dāng)與恢復(fù)不同奇偶校驗(yàn)帶區(qū)的數(shù)據(jù)相關(guān)聯(lián)的訪問和操作被順序執(zhí)行時(shí)的情況相比,通過使與不同奇偶校驗(yàn)帶區(qū)相關(guān)聯(lián)的讀和寫訪問相交迭,可以以較少的開銷恢復(fù)與多個(gè)奇偶校驗(yàn)帶區(qū)相關(guān)聯(lián)的數(shù)據(jù)。
圖1是根據(jù)本發(fā)明的原理的、可以實(shí)現(xiàn)RAID-6存儲(chǔ)控制器的示例性計(jì)算機(jī)系統(tǒng)的框圖。
圖2是圖示圖1的RAID控制器的主要組件的框圖。
圖3描繪了根據(jù)本發(fā)明原理以交迭方式執(zhí)行恢復(fù)操作以提高RAID-6系統(tǒng)中磁盤陣列利用率的流程圖。
圖4描繪了根據(jù)本發(fā)明原理利用隨機(jī)選擇要訪問的磁盤來執(zhí)行暴露模式的讀操作以提高RAID-6系統(tǒng)中磁盤陣列利用率的流程圖。
具體實(shí)施例方式
下文中所討論的實(shí)施例利用兩種技術(shù)中的一個(gè)或者兩個(gè)來在諸如RAID-6環(huán)境之類的磁盤陣列環(huán)境中增加與恢復(fù)數(shù)據(jù)相關(guān)聯(lián)的并行性或者減少與恢復(fù)數(shù)據(jù)相關(guān)聯(lián)的開銷。下文中描述的一種技術(shù)關(guān)于諸如重構(gòu)或暴露模式的讀操作之類的操作選擇要訪問的磁盤的不同子集。下文中描述的另一種技術(shù)將與相對(duì)于多個(gè)奇偶校驗(yàn)帶區(qū)執(zhí)行的恢復(fù)操作相關(guān)聯(lián)的讀訪問和寫訪問交迭。
下文中給出了實(shí)現(xiàn)前述技術(shù)的磁盤陣列環(huán)境的多個(gè)實(shí)施例。但是,在討論這樣的實(shí)施例之前,首先提供RAID-6的背景簡(jiǎn)述,隨后是對(duì)其中可以實(shí)現(xiàn)前述技術(shù)的示例性硬件環(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ā)明可適用于除RAID-6環(huá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磁盤訪問中的并行性在RAID-6系統(tǒng)中,當(dāng)執(zhí)行諸如再同步奇偶校驗(yàn)和數(shù)據(jù)、重構(gòu)磁盤或者執(zhí)行暴露模式的讀之類的恢復(fù)操作時(shí),必須執(zhí)行不同磁盤上的許多I/O操作以讀取可用數(shù)據(jù),如果適當(dāng)則將所恢復(fù)的數(shù)據(jù)存儲(chǔ)回到磁盤陣列中。在讀取特定奇偶校驗(yàn)帶區(qū)的數(shù)據(jù)之后,可以執(zhí)行適當(dāng)?shù)挠?jì)算以恢復(fù)磁盤陣列中磁盤上的數(shù)據(jù)或奇偶校驗(yàn)信息。本發(fā)明的實(shí)施例包括用于以最大化各種I/O操作的并行性以及更好平衡磁盤利用率的方式執(zhí)行這些操作的技術(shù)。
例如,已經(jīng)發(fā)現(xiàn),可以通過選擇性地省略磁盤陣列中關(guān)于各種恢復(fù)操作的、來自磁盤的訪問來獲得性能上的改進(jìn)。如前所述,RAID-6被設(shè)計(jì)成處理兩個(gè)磁盤失效,因而可以使用來自N-2個(gè)磁盤的數(shù)據(jù)求解上面的方程式(7)。如果兩個(gè)磁盤失效了,則可使用剩余的N-2個(gè)磁盤從方程式(7)恢復(fù)磁盤的數(shù)據(jù)。即使當(dāng)只有一個(gè)磁盤失效時(shí),該磁盤的數(shù)據(jù)也可根據(jù)方程式(7)恢復(fù)。但是,請(qǐng)注意,應(yīng)該理解,在這樣的情況下,當(dāng)求解該方程式時(shí)可以省略來自磁盤之一的數(shù)據(jù)。
在RAID-5實(shí)現(xiàn)中,從給定磁盤恢復(fù)奇偶校驗(yàn)或數(shù)據(jù)的任何嘗試(例如,再同步奇偶校驗(yàn)和數(shù)據(jù)、重構(gòu)磁盤或者執(zhí)行暴露模式的讀)都要求訪問陣列中的所有其它磁盤。但是,已知RAID-6實(shí)現(xiàn)為求解一個(gè)奇偶校驗(yàn)帶區(qū)方程式并不需要來自所有其它磁盤的數(shù)據(jù),則我們發(fā)現(xiàn)關(guān)于求解這樣的方程式可能甚至不需要訪問一個(gè)磁盤。結(jié)果是,在與本發(fā)明一致的實(shí)施例中,可以期望省略對(duì)與檢索用于求解奇偶校驗(yàn)帶區(qū)的數(shù)據(jù)相關(guān)聯(lián)的一個(gè)或多個(gè)磁盤的訪問,由此降低了這些磁盤的總體利用率。
此外,雖然在需要求解一個(gè)奇偶校驗(yàn)帶區(qū)方程式的所有情形下都可以省略一個(gè)特定磁盤,但是通常期望,關(guān)于諸如磁盤重構(gòu)或者一系列暴露模式的讀操作之類的恢復(fù)操作,在求解不同奇偶校驗(yàn)帶區(qū)的奇偶校驗(yàn)帶區(qū)方程式時(shí)選擇不同的磁盤子集來省略。因而,與在恢復(fù)操作期間一個(gè)磁盤始終不被訪問的情況不同,可以執(zhí)行確定在給定恢復(fù)操作期間不使用哪個(gè)磁盤以便在所有磁盤中更好地平衡利用水平。
可以使用與本發(fā)明一致的各種方式選擇磁盤的不同子集。在一個(gè)實(shí)施例中,可以使用隨機(jī)選擇。但是,在其它實(shí)施例中,可以使用其它負(fù)載平衡型的算法,例如輪盤制(round robin)選擇。應(yīng)該理解,不同子集的選擇并不要求每個(gè)子集與所有其它子集不同,而是只要被包含到用于求解奇偶校驗(yàn)帶區(qū)方程式的子集中的磁盤不時(shí)發(fā)生變化(例如,對(duì)每個(gè)奇偶校驗(yàn)帶區(qū),或者對(duì)于奇偶校驗(yàn)帶區(qū)的子集),從而與每個(gè)奇偶校驗(yàn)帶區(qū)都省略相同一個(gè)或多個(gè)磁盤的情況相比更好地平衡了磁盤陣列中磁盤的利用率。
此外還發(fā)現(xiàn),關(guān)于各種恢復(fù)操作通過使與多個(gè)奇偶校驗(yàn)帶區(qū)相關(guān)聯(lián)的磁盤訪問較低可以獲得性能上的改進(jìn)。例如,當(dāng)再同步奇偶校驗(yàn)帶區(qū)時(shí),首先讀數(shù)據(jù)驅(qū)動(dòng)器,然后將奇偶校驗(yàn)計(jì)算的結(jié)果寫到奇偶校驗(yàn)盤中。在常規(guī)的設(shè)計(jì)中,在正在讀數(shù)據(jù)驅(qū)動(dòng)器期間,奇偶校驗(yàn)盤保持空閑。與本發(fā)明一致的實(shí)施例通過使與恢復(fù)數(shù)據(jù)到多個(gè)奇偶校驗(yàn)帶區(qū)相關(guān)聯(lián)的讀操作和寫操作相交迭以減少給定磁盤陣列中的空閑時(shí)間而解決了該低效率的問題。除了RAID-6和類似環(huán)境外,本文所描述的交迭磁盤訪問也可以用在其它磁盤陣列環(huán)境中,例如,用在RAID-5環(huán)境中。
圖3中描繪了用于完成恢復(fù)操作(例如,再同步或重構(gòu)操作)的示例性方法的流程圖。根據(jù)該方法,用于兩個(gè)不同奇偶校驗(yàn)再同步操作的訪問被交織進(jìn)行(interleave),從而對(duì)奇偶校驗(yàn)和數(shù)據(jù)盤的訪問可以并行發(fā)生,因而減少了磁盤的空閑時(shí)間并且改進(jìn)了用于執(zhí)行重構(gòu)和再同步所花費(fèi)的時(shí)間。應(yīng)該理解,用于兩個(gè)或多個(gè)奇偶校驗(yàn)帶區(qū)的重構(gòu)操作以類似的方式進(jìn)行。
在圖3的流程圖中,數(shù)據(jù)磁盤上分布在奇偶校驗(yàn)帶區(qū)A中的一組數(shù)據(jù)用于計(jì)算奇偶校驗(yàn)帶區(qū)A的奇偶校驗(yàn)值P和Q。此外,數(shù)據(jù)磁盤上分布在奇偶校驗(yàn)帶區(qū)B中的一組數(shù)據(jù)用于計(jì)算奇偶校驗(yàn)帶區(qū)B的奇偶校驗(yàn)值P和Q。在步驟302中,執(zhí)行針對(duì)數(shù)據(jù)磁盤尤其是針對(duì)位于奇偶校驗(yàn)帶區(qū)A中區(qū)域的第一組讀操作以檢索用于計(jì)算奇偶校驗(yàn)帶區(qū)A的相應(yīng)奇偶校驗(yàn)值P的一組數(shù)據(jù)。同時(shí),將第二組讀操作排隊(duì),該第二組讀操作將從分配于每個(gè)數(shù)據(jù)磁盤上的奇偶校驗(yàn)帶區(qū)B的區(qū)域中檢索一組不同的數(shù)據(jù),該組不同的數(shù)據(jù)用于計(jì)算奇偶校驗(yàn)帶區(qū)B的相應(yīng)的奇偶校驗(yàn)值B。一旦第一組讀操作完成,則在步驟304中,可以將奇偶校驗(yàn)帶區(qū)A的新奇偶校驗(yàn)值P寫到P奇偶校驗(yàn)盤中,同時(shí)通過磁盤陣列的其它磁盤執(zhí)行第二組讀操作。在步驟306中,執(zhí)行第三組讀操作——這時(shí)是第二次從奇偶校驗(yàn)帶區(qū)A檢索數(shù)據(jù)以生成奇偶校驗(yàn)值Q,并且同時(shí)將奇偶校驗(yàn)帶區(qū)B的奇偶校驗(yàn)值寫到P奇偶校驗(yàn)磁盤中。接下來,在步驟308中,執(zhí)行第四組讀操作以讀取來自奇偶校驗(yàn)帶區(qū)B的一組數(shù)據(jù),該組數(shù)據(jù)用于生成奇偶校驗(yàn)帶區(qū)B的奇偶校驗(yàn)值Q。在執(zhí)行這些后面的讀操作的同時(shí)將奇偶校驗(yàn)帶區(qū)A的奇偶校驗(yàn)值Q寫到Q奇偶校驗(yàn)盤中。最終在步驟310中,將奇偶校驗(yàn)帶區(qū)B的奇偶校驗(yàn)值Q寫到Q奇偶校驗(yàn)盤中。
通過根據(jù)該算法交迭再同步和重構(gòu)操作,更平等地利用奇偶校驗(yàn)盤和數(shù)據(jù)盤,這將提高再同步和重構(gòu)功能的性能。受益于本直接公開的本領(lǐng)域普通技術(shù)人員將注意到,前述算法可以應(yīng)用于交迭許多奇偶校驗(yàn)帶區(qū)之間的操作。
例如,圖4接下來圖示了用于完成暴露模式的讀操作以從暴露的磁盤取數(shù)據(jù)的示例性方法。根據(jù)該方法,圖示了用于對(duì)兩個(gè)奇偶校驗(yàn)帶區(qū)的兩個(gè)暴露的讀操作的訪問,其中一個(gè)這樣的訪問在步驟400中執(zhí)行,另一個(gè)訪問在步驟402中執(zhí)行。在這兩個(gè)操作中,N-2個(gè)磁盤的不同子集被從N-1個(gè)磁盤中隨機(jī)選出并且生成暴露磁盤的數(shù)據(jù),該N-1個(gè)磁盤包含來自奇偶校驗(yàn)帶區(qū)的可以用于求解奇偶校驗(yàn)帶區(qū)方程式的數(shù)據(jù)。結(jié)果是,在每個(gè)操作中,磁盤陣列中的一個(gè)磁盤將不被訪問,從而使得該磁盤空出來執(zhí)行其它操作(包括例如,處理交迭的訪問,諸如上面關(guān)于圖3討論的)。應(yīng)該理解,通過隨機(jī)地從一系列操作中省略不同磁盤將有助于在磁盤陣列上更好地平衡磁盤利用率,并因而提供總體系統(tǒng)吞吐量。應(yīng)該理解,重構(gòu)操作可以以類似的方式利用這樣的技術(shù)。
這樣,本發(fā)明的實(shí)施例在RAID-6或類似磁盤陣列環(huán)境中提供了一種方法和系統(tǒng),其使不同的磁盤訪問操作交織和/或選擇在執(zhí)行恢復(fù)操作時(shí)要使用的不同磁盤以平衡磁盤利用率并且減少等待時(shí)間(latency)。在不背離本發(fā)明的精神和范圍的條件下可以對(duì)所示的實(shí)施例進(jìn)行各種修改。因而,本發(fā)明在于所附的權(quán)利要求。
權(quán)利要求
1.一種訪問包括N個(gè)磁盤的磁盤陣列的方法,該方法對(duì)于磁盤陣列中所定義的多個(gè)奇偶校驗(yàn)帶區(qū)的每個(gè)執(zhí)行下述步驟從N個(gè)磁盤中選擇要用于求解該奇偶校驗(yàn)帶區(qū)的奇偶校驗(yàn)帶區(qū)方程式的不同磁盤子集,其中每個(gè)磁盤子集包括至多N-2個(gè)磁盤;啟動(dòng)僅從所選擇的磁盤子集中檢索與該奇偶校驗(yàn)帶區(qū)相關(guān)聯(lián)的數(shù)據(jù)的操作;以及使用所檢索的數(shù)據(jù)求解奇偶校驗(yàn)帶區(qū)方程式。
2.如權(quán)利要求1所述的方法,其中,所述選擇步驟包括隨機(jī)選擇磁盤子集的步驟。
3.如權(quán)利要求1所述的方法,其中,所述磁盤陣列屬于其中由多個(gè)奇偶校驗(yàn)帶區(qū)方程式使每個(gè)奇偶校驗(yàn)帶區(qū)中的數(shù)據(jù)相關(guān)的類型。
4.如權(quán)利要求1所述的方法,其中所述磁盤陣列包括RAID-6系統(tǒng)。
5.如權(quán)利要求1所述的方法,其中,所述求解奇偶校驗(yàn)帶區(qū)方程式的步驟包括重構(gòu)數(shù)據(jù)值,該方法還包括啟動(dòng)將數(shù)據(jù)值存儲(chǔ)到除了該磁盤子集外的磁盤之一的操作。
6.如權(quán)利要求1所述的方法,還包括在啟動(dòng)檢索與第二奇偶校驗(yàn)帶區(qū)相關(guān)聯(lián)的數(shù)據(jù)的操作的同時(shí),啟動(dòng)存儲(chǔ)對(duì)于第一奇偶校驗(yàn)帶區(qū)的奇偶校驗(yàn)帶區(qū)方程式的結(jié)果的操作。
7.一種恢復(fù)N個(gè)磁盤的RAID-6系統(tǒng)中的數(shù)據(jù)的方法,該方法包括下述步驟標(biāo)識(shí)多個(gè)數(shù)據(jù)值,每個(gè)數(shù)據(jù)值要被恢復(fù)到N個(gè)磁盤中的相應(yīng)一個(gè),其中每個(gè)數(shù)據(jù)值能夠從取自其它N-2個(gè)磁盤的數(shù)據(jù)中恢復(fù);以及對(duì)于該多個(gè)數(shù)據(jù)值的每個(gè),從相應(yīng)的其它N-1個(gè)磁盤中選擇用于計(jì)算該數(shù)據(jù)值的N-2個(gè)磁盤;對(duì)于該多個(gè)數(shù)據(jù)值的每個(gè),啟動(dòng)從相應(yīng)的所選擇的N-2個(gè)磁盤檢索數(shù)據(jù)的操作,其中,對(duì)于該多個(gè)數(shù)據(jù)值的每個(gè)選擇N-2個(gè)磁盤的操作平衡在數(shù)據(jù)恢復(fù)期間N個(gè)磁盤的利用率。
8.如權(quán)利要求7所述的步驟,其中所述選擇N-2個(gè)磁盤的步驟包括隨機(jī)地選擇N-2個(gè)磁盤。
9.一種程序產(chǎn)品,包括程序代碼,其被配置成在執(zhí)行時(shí)通過下述操作訪問包括N個(gè)磁盤型的磁盤陣列對(duì)于磁盤陣列中所定義的多個(gè)奇偶校驗(yàn)帶區(qū)的每個(gè),從N個(gè)磁盤中選擇要用于求解該奇偶校驗(yàn)帶區(qū)的奇偶校驗(yàn)帶區(qū)方程式的不同磁盤子集;啟動(dòng)僅從所選擇的磁盤子集中檢索與該奇偶校驗(yàn)帶區(qū)相關(guān)聯(lián)的數(shù)據(jù)的操作;以及使用所檢索的數(shù)據(jù)求解奇偶校驗(yàn)帶區(qū)方程式,其中每個(gè)磁盤子集包括至多N-2個(gè)磁盤;以及承載該程序代碼的計(jì)算機(jī)可讀信號(hào)承載介質(zhì)。
10.一種裝置,包括被配置成耦接到磁盤陣列中的至少N個(gè)磁盤的接口;以及耦接到該接口的磁盤陣列控制器,該磁盤陣列控制器被配置成執(zhí)行下述操作對(duì)于磁盤陣列中所定義的多個(gè)奇偶校驗(yàn)帶區(qū)的每個(gè),從N個(gè)磁盤中選擇要用于求解該奇偶校驗(yàn)帶區(qū)的奇偶校驗(yàn)帶區(qū)方程式的不同磁盤子集;啟動(dòng)僅從所選擇的磁盤子集中檢索與該奇偶校驗(yàn)帶區(qū)相關(guān)聯(lián)的數(shù)據(jù)的操作;以及使用所檢索的數(shù)據(jù)求解奇偶校驗(yàn)帶區(qū)方程式,其中每個(gè)磁盤子集包括至多N-2個(gè)磁盤。
11.如權(quán)利要求10所述的裝置,其中所述磁盤陣列控制器包括RAID-6控制器。
12.如權(quán)利要求10所述的裝置,其中,所述磁盤陣列控制器包括被配置成執(zhí)行選擇不同子集、啟動(dòng)數(shù)據(jù)的檢索和求解奇偶校驗(yàn)帶區(qū)方程式操作中的至少一個(gè)操作的程序代碼。
13.如權(quán)利要求10所述的裝置,還包括耦接到該接口的多個(gè)磁盤。
14.如權(quán)利要求10所述的裝置,其中,所述磁盤陣列控制器被配置成通過隨機(jī)選擇磁盤子集來選擇不同的磁盤子集。
15.如權(quán)利要求10所述的裝置,其中,所述磁盤陣列控制器被配置成通過重構(gòu)數(shù)據(jù)值求解奇偶校驗(yàn)帶區(qū)方程式,以及啟動(dòng)將數(shù)據(jù)值存儲(chǔ)到除了該磁盤子集外的磁盤之一的操作。
16.如權(quán)利要求10所述的裝置,其中,所述磁盤陣列控制器還被配置成在啟動(dòng)檢索與第二奇偶校驗(yàn)帶區(qū)相關(guān)聯(lián)的數(shù)據(jù)的操作的同時(shí),啟動(dòng)存儲(chǔ)對(duì)于第一奇偶校驗(yàn)帶區(qū)的奇偶校驗(yàn)帶區(qū)方程式的結(jié)果的操作。
17.一種恢復(fù)包括多個(gè)磁盤的磁盤陣列中的數(shù)據(jù)的方法,該方法包括下述步驟從磁盤陣列中讀取與第一奇偶校驗(yàn)帶區(qū)相關(guān)聯(lián)的第一組數(shù)據(jù);向磁盤陣列中寫入通過處理該第一組數(shù)據(jù)而生成的結(jié)果值;以及在將該結(jié)果值寫入磁盤陣列的同時(shí),從磁盤陣列中讀取與第二奇偶校驗(yàn)帶區(qū)相關(guān)聯(lián)的第二組數(shù)據(jù)。
18.如權(quán)利要求17所述的方法,還包括向磁盤陣列中寫入通過處理該第二組數(shù)據(jù)而生成的第二結(jié)果值;以及在將該第二結(jié)果值寫入磁盤陣列的同時(shí),從磁盤陣列中讀取第三組數(shù)據(jù)。
19.如權(quán)利要求18所述的方法,其中所述第一和第二結(jié)果值是通過使用至少一個(gè)奇偶校驗(yàn)帶區(qū)方程式處理該第一和第二組數(shù)據(jù)而生成的。
20.如權(quán)利要求19所述的方法,其中,所述第三組數(shù)據(jù)與第一奇偶校驗(yàn)帶區(qū)相關(guān)聯(lián),該方法還包括向磁盤陣列寫入通過使用第二奇偶校驗(yàn)帶區(qū)方程式處理第三組數(shù)據(jù)而生成的第三結(jié)果值。
21.如權(quán)利要求20所述的方法,還包括在將該第三結(jié)果值寫入磁盤陣列的同時(shí),從磁盤陣列中讀取與第二奇偶校驗(yàn)帶區(qū)相關(guān)聯(lián)的第四組數(shù)據(jù);以及向磁盤陣列寫入通過使用第二奇偶校驗(yàn)帶區(qū)方程式處理第四組數(shù)據(jù)而生成的第四結(jié)果值。
22.如權(quán)利要求19所述的方法,其中所述第一和第二結(jié)果值每個(gè)包括奇偶校驗(yàn)值,并且寫入第一和第二結(jié)果值的操作被執(zhí)行來使第一和第二奇偶校驗(yàn)帶區(qū)的奇偶校驗(yàn)和數(shù)據(jù)同步。
23.如權(quán)利要求19所述的方法,其中所述第一和第二結(jié)果值每個(gè)包括數(shù)據(jù)值,并且寫入第一和第二結(jié)果值的操作被執(zhí)行來重構(gòu)磁盤陣列中磁盤的數(shù)據(jù)。
24.如權(quán)利要求18所述的方法,其中,所述第三組數(shù)據(jù)與第三奇偶校驗(yàn)帶區(qū)相關(guān)聯(lián)。
25.如權(quán)利要求17所述的方法,其中,所述向磁盤陣列中寫入結(jié)果值的步驟包括向磁盤陣列中的第一磁盤寫入結(jié)果值,并且從磁盤陣列讀取第二組數(shù)據(jù)的步驟包括從不包括該第一磁盤的磁盤陣列中的磁盤子集中讀取第二組數(shù)據(jù)。
26.一種程序產(chǎn)品,包括程序代碼,被配置成在執(zhí)行時(shí)通過下述操作恢復(fù)包括多個(gè)磁盤的磁盤陣列中的數(shù)據(jù)從磁盤陣列中讀取與第一奇偶校驗(yàn)帶區(qū)相關(guān)聯(lián)的第一組數(shù)據(jù);向磁盤陣列中寫入通過處理該第一組數(shù)據(jù)而生成的結(jié)果值;以及在將該結(jié)果值寫入磁盤陣列的同時(shí),從磁盤陣列中讀取與第二奇偶校驗(yàn)帶區(qū)相關(guān)聯(lián)的第二組數(shù)據(jù);和承載該程序代碼的計(jì)算機(jī)可讀信號(hào)介質(zhì)。
27.一種裝置,包括被配置成耦接到磁盤陣列中的多個(gè)磁盤的接口;以及耦接到該接口的磁盤陣列控制器,該磁盤陣列控制器被配置成通過下述操作恢復(fù)磁盤陣列中的數(shù)據(jù)從磁盤陣列中讀取與第一奇偶校驗(yàn)帶區(qū)相關(guān)聯(lián)的第一組數(shù)據(jù);向磁盤陣列中寫入通過處理該第一組數(shù)據(jù)而生成的結(jié)果值;以及在將該結(jié)果值寫入磁盤陣列的同時(shí),從磁盤陣列中讀取與第二奇偶校驗(yàn)帶區(qū)相關(guān)聯(lián)的第二組數(shù)據(jù)。
28.如權(quán)利要求27所述的裝置,其中所述磁盤陣列控制器包括RAID-6控制器。
29.如權(quán)利要求27所述的裝置,其中,所述磁盤陣列控制器包括被配置成執(zhí)行選擇不同子集、啟動(dòng)數(shù)據(jù)的檢索和求解奇偶校驗(yàn)帶區(qū)方程式操作中的至少一個(gè)操作的程序代碼。
30.如權(quán)利要求27所述的裝置,還包括耦接到該接口的多個(gè)磁盤。
31.如權(quán)利要求27所述的裝置,其中,所述磁盤陣列控制器還被配置成執(zhí)行下述操作向磁盤陣列中寫入通過處理該第二組數(shù)據(jù)而生成的第二結(jié)果值,以及在將該第二結(jié)果值寫入磁盤陣列的同時(shí),從磁盤陣列中讀取第三組數(shù)據(jù)。
32.如權(quán)利要求31所述的裝置,其中,所述磁盤陣列控制器被配置成通過使用至少一個(gè)奇偶校驗(yàn)帶區(qū)方程式處理該第一和第二組數(shù)據(jù)而生成該第一和第二結(jié)果值。
33.如權(quán)利要求32所述的裝置,其中,所述第三組數(shù)據(jù)與第一奇偶校驗(yàn)帶區(qū)相關(guān)聯(lián),并且所述磁盤陣列控制器還被配置成向磁盤陣列寫入通過使用第二奇偶校驗(yàn)帶區(qū)方程式處理第三組數(shù)據(jù)而生成的第三結(jié)果值。
34.如權(quán)利要求33所述的裝置,其中所述磁盤陣列控制器還被配置成執(zhí)行下述操作在將該第三結(jié)果值寫入磁盤陣列的同時(shí),從磁盤陣列中讀取與第二奇偶校驗(yàn)帶區(qū)相關(guān)聯(lián)的第四組數(shù)據(jù),以及向磁盤陣列寫入通過使用第二奇偶校驗(yàn)帶區(qū)方程式處理第四組數(shù)據(jù)而生成的第四結(jié)果值。
35.如權(quán)利要求32所述的裝置,其中所述第一和第二結(jié)果值每個(gè)包括奇偶校驗(yàn)值,并且所述磁盤陣列控制器被配置成寫入第一和第二結(jié)果值以使第一和第二奇偶校驗(yàn)帶區(qū)的奇偶校驗(yàn)和數(shù)據(jù)同步。
36.如權(quán)利要求32所述的裝置,其中所述第一和第二結(jié)果值每個(gè)包括數(shù)據(jù)值,并且所述磁盤陣列控制器被配置成寫入第一和第二結(jié)果值以重構(gòu)磁盤陣列中磁盤的數(shù)據(jù)。
37.如權(quán)利要求31所述的裝置,其中,所述第三組數(shù)據(jù)與第三奇偶校驗(yàn)帶區(qū)相關(guān)聯(lián)。
38.如權(quán)利要求27所述的裝置,其中所述磁盤陣列控制器被配置成通過向磁盤陣列中的第一磁盤寫入結(jié)果值而向磁盤陣列中寫入結(jié)果值,并且所述磁盤陣列控制器被配置成通過從不包括該第一磁盤的磁盤陣列中的磁盤子集中讀取第二組數(shù)據(jù)而從磁盤陣列讀取第二組數(shù)據(jù)。
全文摘要
在諸如RAID-6之類環(huán)境的磁盤陣列環(huán)境中,通過增加并行性減少了與諸如再同步、重構(gòu)、暴露模式的讀操作之類的暴露模式操作相關(guān)聯(lián)的總體性能開銷。通過僅選擇為求解特定奇偶校驗(yàn)帶區(qū)的奇偶校驗(yàn)帶區(qū)方程式所需的可能磁盤的子集,對(duì)磁盤陣列中的一個(gè)或多個(gè)磁盤的訪問可以被省略,從而使被省略的磁盤自由地執(zhí)行其它磁盤訪問。此外,可以使與不同奇偶校驗(yàn)帶區(qū)相關(guān)聯(lián)的磁盤訪問相交迭,以便能將為恢復(fù)一個(gè)奇偶校驗(yàn)帶區(qū)的數(shù)據(jù)所必需的數(shù)據(jù)的檢索與為另一奇偶校驗(yàn)帶區(qū)所恢復(fù)的數(shù)據(jù)的存儲(chǔ)同時(shí)執(zhí)行。
文檔編號(hào)G06F3/06GK1776599SQ20051012672
公開日2006年5月24日 申請(qǐng)日期2005年11月21日 優(yōu)先權(quán)日2004年11月19日
發(fā)明者卡爾·E·福漢, 羅伯特·E·蓋爾布雷斯, 阿德里安·C·格哈德 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司