專利名稱:再平衡條帶盤數(shù)據(jù)的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用于再平衡條帶盤數(shù)據(jù)的方法、系統(tǒng)和制品。
背景技術(shù):
在連接到多個硬盤的計算機(jī)中,數(shù)據(jù)條帶化(也稱為盤條帶化)是將數(shù)據(jù)體劃分為條帶并在多個硬盤上分散所述條帶的過程。
某些系統(tǒng)可以在獨立磁盤冗余陣列(RAID)排列(rank)之間執(zhí)行數(shù)據(jù)條帶化,其中所述RAID排列也稱為RAID陣列。RAID是使用多個盤來存儲和分布數(shù)據(jù)的存儲系統(tǒng)。為了執(zhí)行數(shù)據(jù)條帶化,可以將屬于特定邏輯單元(LUN)的數(shù)據(jù)劃分為盤區(qū)。然后可以在可用的RAID排列之間以旋轉(zhuǎn)的方式來分布卷的連續(xù)盤區(qū)。這樣的條帶化可以允許平衡輸入/輸出(I/O)負(fù)載。
如果向其上已執(zhí)行數(shù)據(jù)條帶化的集合添加新的排列,則可能會失去在RAID排列之間的I/O負(fù)載平衡。
發(fā)明內(nèi)容
本發(fā)明提供了一種方法、系統(tǒng)和制品,其中在連接到控制器的第一存儲單元集合中存儲多個盤區(qū)。確定第二存儲單元集合已連接到所述控制器。將所述多個盤區(qū)分布在所述第一存儲單元集合和所述第二存儲單元集合內(nèi)包含的所有存儲單元中。
在某些其他實施例中,所述存儲單元是冗余磁盤陣列(RAID)陣列,其中所述多個盤區(qū)均勻分布在所述第一RAID陣列集合和所述第二RAID陣列集合內(nèi)包含的所有RAID陣列中,其中在將所述多個盤區(qū)分布到所有所述RAID陣列中時,任何盤區(qū)的移動都不超過一次,并且其中以最少的移動次數(shù)將所述多個盤區(qū)分布到所有所述RAID陣列中,并且其中所述多個盤區(qū)跨越卷。
在其他實施例中,所述第一存儲單元集合包括多個現(xiàn)有的RAID陣列,其中所述第二存儲單元集合包括新近添加的空RAID陣列,并且其中所述現(xiàn)有的和所述新近添加的RAID陣列共同構(gòu)成了RAID陣列的總數(shù)。通過將現(xiàn)有的RAID陣列數(shù)乘以RAID陣列的總數(shù)來確定結(jié)果。通過將所述多個盤區(qū)的數(shù)量除以所述結(jié)果來確定商。生成數(shù)量與所述商相等的組,其中將數(shù)量與所述結(jié)果相等的盤區(qū)分配給每個組。通過在所述總數(shù)的RAID陣列中均勻地重新分布分配給組的盤區(qū)來處理所述組。
在其他實施例中,所述多個盤區(qū)是第一多個盤區(qū),其中所述第一和所述第二存儲單元集合共同構(gòu)成了存儲單元的總數(shù)。在所述第二存儲單元集合中存儲第二多個盤區(qū),其中所述第一和所述第二多個盤區(qū)構(gòu)成了盤區(qū)的總數(shù)。通過將所述存儲單元的總數(shù)平方來確定結(jié)果。通過將所述盤區(qū)的總數(shù)除以所述結(jié)果來確定商。生成數(shù)量與所述商相等的組,其中將數(shù)量與所述結(jié)果相等的盤區(qū)分配給每個組,并且其中每個組包括來自所述第一和所述第二存儲單元集合的選定盤區(qū)。通過在所述總數(shù)的存儲單元中均勻地重新分布分配給組的盤區(qū)來處理所述組。
在另一個實施例中,所述第一和所述第二存儲單元集合共同構(gòu)成了存儲單元的總數(shù)。確定所述第一存儲單元集合中的存儲單元數(shù)與存儲單元的總數(shù)的最小公倍數(shù)。生成存儲單元組,其中將從所述多個盤區(qū)選擇的數(shù)量為所述最小公倍數(shù)的盤區(qū)分配給每個組。通過在所述總數(shù)的存儲單元中均勻地重新分布組的已分配盤區(qū)來處理所述組,其中所述重新分布基于執(zhí)行最少數(shù)量的從所述第一到所述第二存儲單元集合的復(fù)制操作。
現(xiàn)在參考附圖,其中相同的標(biāo)號代表圖中的相應(yīng)部件圖1示出了根據(jù)特定實施例的包括帶有現(xiàn)有的和新近添加的RAID陣列的存儲控制單元的計算環(huán)境的方塊圖;圖2示出了根據(jù)特定實施例的當(dāng)新近添加的RAID陣列為空時用于在所有RAID陣列之間再平衡盤區(qū)的流程圖;圖3是示出了根據(jù)特定實施例的當(dāng)新近添加的RAID陣列為空時在所有RAID陣列之間再平衡盤區(qū)的實例;圖4示出了根據(jù)特定實施例的當(dāng)已將盤區(qū)存儲在新添加的RAID陣列中時用于在所有RAID陣列之間再平衡盤區(qū)的流程圖;以及圖5示出了計算系統(tǒng)的體系結(jié)構(gòu),其中在特定實施例中,可以根據(jù)所述計算系統(tǒng)的體系結(jié)構(gòu)來實現(xiàn)圖1的計算環(huán)境的存儲控制單元。
具體實施例方式
在以下說明中,參考了形成本說明書的一部分并示出了本發(fā)明的若干實施例的附圖。應(yīng)當(dāng)理解,可以采用其他實施例并且可以做出結(jié)構(gòu)和操作更改。例如,可以應(yīng)用推薦的實施例而不必考慮存儲在所述存儲設(shè)備中的應(yīng)用數(shù)據(jù)的類型。
特定實施例提供了條帶盤數(shù)據(jù)的再平衡,以響應(yīng)將新的排列添加到其間已執(zhí)行數(shù)據(jù)條帶化的盤集合。在特定實施例中,在盤區(qū)池(“條帶”大小為一個盤區(qū))之間條帶化邏輯卷。特定實施例可以允許在向所述池添加一個或多個新的排列后再平衡所述卷條帶化模式。在特定實施例中,在所述池中的所有排列之間條帶化每個卷,同時盡可能少地移動數(shù)據(jù),并且不引入任何對所移動數(shù)據(jù)的臨時盤存儲的需要。
在特定實施例中,將每個現(xiàn)有卷的盤區(qū)組織成大小為M的集合,其中M是新排列和舊排列的數(shù)量的乘積。然后以這樣的方式將從這個組選擇的特定盤區(qū)移動到新排列中在所述新排列的集合之間平衡盤區(qū)的分布。
在特定的其他實施例中,在執(zhí)行再平衡操作之前,可能已將特定數(shù)量的新卷分配給所述新排列。在此情況下,形成大小等于所述新排列的數(shù)量的平方的組,并且每個組都包括來自一個舊卷和一個新卷的盤區(qū)。然后以這樣的方式將選定的盤區(qū)相互交換在所述新排列的集合之間條帶化來自每個卷的盤區(qū)的分布。
圖1示出了根據(jù)特定實施例的包括存儲控制單元102的計算環(huán)境100的方塊圖,所述存儲控制單元102連接到存儲裝置104,存儲裝置104包括現(xiàn)有的RAID陣列106a、106b、...106n和新近添加的RAID陣列108a、108b、…108m。在存儲控制單元102已將數(shù)據(jù)存儲在先前連接的現(xiàn)有的RAID陣列106a...106n中后,將新近添加的RAID陣列108a...108m連接到存儲控制單元102。
所述存儲控制單元102(也稱為控制器)包括任何適合的計算設(shè)備,包括本領(lǐng)域內(nèi)目前已知的此類設(shè)備,如個人計算機(jī)、工作站、大型機(jī)、中端計算機(jī)、網(wǎng)絡(luò)家電、掌上電腦、電話設(shè)備、刀片計算機(jī)、手提電腦等。
雖然圖1示出了帶有現(xiàn)有的RAID陣列106a...106n和新近添加的RAID陣列108a...108m的存儲裝置104,但是在備選實施例中,所述存儲裝置104可以包括不同于RAID陣列的存儲設(shè)備。例如,代替所述RAID陣列106a...106n、108a...108m或除它們以外,存儲裝置104可以包括磁帶、光學(xué)設(shè)備等。
盤區(qū)110a、110b、...110p、112a、112b、...112q、114a、114b、...114r分布在現(xiàn)有的RAID陣列106a...106n之間。盤區(qū)是存儲數(shù)據(jù)的元素,其中每個盤區(qū)的大小都相同。盤區(qū)的大小可以改變,并且例如在一個實施例中可以是5千字節(jié),在另一個實施例中是50千字節(jié),而在再一個實施例中是1兆字節(jié)。與每個RAID陣列的存儲容量相比,每個盤區(qū)的大小很小。多個盤區(qū)可以屬于被寫入存儲裝置104的同一卷。雖然在新近添加的RAID陣列108a...108m中沒有示出盤區(qū),但是可以將盤區(qū)復(fù)制或?qū)懭胄陆砑拥腞AID陣列108a...108m。
所述存儲控制單元102包括盤區(qū)重分布器應(yīng)用116,其中所述盤區(qū)重分布器應(yīng)用116能夠在RAID陣列106a...106n、108a...108m之間重新排列盤區(qū)110a...110p、112a...112q、114a...114r。
在特定實施例中,盤區(qū)重分布器應(yīng)用116在現(xiàn)有的RAID陣列106a...106和新近添加的RAID陣列108a...108m之間組織盤區(qū),以便在現(xiàn)有的RAID陣列106a...106n和新近添加的RAID陣列108a...108m之間平衡盤區(qū)的分布。
圖2示出了根據(jù)特定實施例的當(dāng)新近添加的RAID陣列108a...108m為空時在圖1的計算環(huán)境100中的所有RAID陣列之間再平衡盤區(qū)的流程圖。圖2中示出的某些操作可以在所述盤區(qū)重分布器應(yīng)用116中實現(xiàn)。
以下示出了特定實施例,之后將在圖2的流程圖中示出它們的特定方面。假設(shè)盤區(qū)池初始包含排列0和1,其中排列是RAID陣列。因而,給定的卷V可以使所述卷V的盤區(qū)以順序{0,1,0,1,...}分配給所述兩個排列。其后,可以添加第三個排列,其中所述第三個排列稱為排列2。為了再平衡,特定實施例將所述卷V的盤區(qū)組織成2×3=6的組。每個6盤區(qū)的組(比方說組g)將包括排列0中的3個成員和排列1中的3個成員。
為了引用,將排列0中的三個成員稱為g0,0、g0,1、以及g0,2。類似地,將排列1中的三個成員稱為g1,0、g1,1、以及g1,2。
特定實施例按如下方式將六個盤區(qū)的組分配到三個新排列排列0盤區(qū)g0,0,盤區(qū)g0,1排列1盤區(qū)g1,0,盤區(qū)g1,1排列2盤區(qū)g0,2,盤區(qū)g1,2此類實施例避免了進(jìn)行任何數(shù)據(jù)復(fù)制(除將數(shù)據(jù)復(fù)制到排列2中以外)。
更具體地說,在第一方法中,特定實施例中需要盤區(qū)池中排列的數(shù)量的從Nold到Nnew的擴(kuò)展。特定實施例通過將卷的現(xiàn)有盤區(qū)形成大小為M=NoldX Nnew的組來進(jìn)行。每個舊排列在每個組中出現(xiàn)Nnew次。
可以通過獨立標(biāo)識屬于每個舊排列的盤區(qū)來建立給定組。這可以通過以相對字節(jié)地址(RBA)順序處理所述卷盤區(qū),保留指向?qū)儆诿總€排列的最近添加的盤區(qū)的指針來完成。通過以第一排列的指針前進(jìn)來將一個盤區(qū)添加到所述第一排列;然后通過以下一個排列的指針前進(jìn)來將一個盤區(qū)添加到所述下一個排列;依此類推,直到找到屬于每個排列的Nnew個盤區(qū)。此類用于建立組的實施例避免了做出有關(guān)現(xiàn)有盤區(qū)分配模式的假設(shè)。
在生成盡可能多的均勻平衡的組之后,將任何可能剩余的盤區(qū)延遲到最后。然后做出第二次嘗試來將剩余的盤區(qū)形成組,這次放松在給定組中只使用一個卷的要求。
在形成該第二組集合后,如果仍然有盤區(qū)剩余,則忽略此類盤區(qū)。將排列0中包括的給定組g中的盤區(qū)編號為g0,0、g0,1、......、g0,Nnew-1,并且還可以以相應(yīng)的方式來編號排列1、2、...,Nold-1中的盤區(qū)。然后可以以如下方式執(zhí)行再平衡操作對于i=Nold到Nnew-1;對于j=0到Nold-1;分配新盤區(qū)fi,j;對于i=0到Nold-1;對于j=Nold到Nnew-1;將gi,j移動到fj,i;釋放盤區(qū)gi,j;復(fù)制的盤區(qū)數(shù)是確保每個排列包含來自所述卷的相等數(shù)量的盤區(qū)所需的最小值。
現(xiàn)在繼續(xù)到圖2的流程圖,其中示出了所述計算環(huán)境100中實現(xiàn)的用于再平衡條帶盤數(shù)據(jù)的實施例的特定方面,控制開始于方塊200,其中所述盤區(qū)重分布器應(yīng)用116接收已將一個或多個RAID陣列108a...108m新近添加到現(xiàn)有的RAID陣列106a...106n的指示。
所述盤區(qū)重分布器應(yīng)用116設(shè)置(在方塊202)M等于現(xiàn)有的RAID陣列106a...106n的數(shù)量與添加新的RAID陣列108a...108m后的RAID陣列的總數(shù)的乘積。
所述盤區(qū)重分布器應(yīng)用116將現(xiàn)有的RAID陣列106a...106n中的盤區(qū)數(shù)量除以(在方塊204)M以確定商和余數(shù)。將盤區(qū)組的數(shù)量賦值(在方塊206)等于所述商。
其后,對于每個盤區(qū)組,所述盤區(qū)重分布器應(yīng)用116從現(xiàn)有的RAID陣列106a...106n將盤區(qū)復(fù)制(在方塊208)到一個或多個新近添加的RAID陣列108a...108m,以使每個RAID陣列中的盤區(qū)數(shù)量相等。
控制繼續(xù)到方塊210,其中所述盤區(qū)重分布器應(yīng)用116判定所述余數(shù)是否為0。如果是,控制繼續(xù)到方塊214且再平衡過程終止。如果否,將余數(shù)數(shù)量的盤區(qū)盡可能均勻地分布(在方塊212)在所述RAID陣列106a...106n、108a...108m中,并且控制繼續(xù)到方塊214,在方塊214,再平衡過程終止。
因此,圖2示出了其中在所述現(xiàn)有的RAID陣列106a...106n和所述新近添加的RAID陣列108a...108m中再平衡盤區(qū)的過程之前,沒有將盤區(qū)分配到所述新近添加的RAID陣列108a...108m的特定實施例。特定實施例確保復(fù)制的盤區(qū)數(shù)是保證每個排列包含來自包括所述盤區(qū)的卷的相等數(shù)量的盤區(qū)所需的最小值。
圖3是示出了根據(jù)特定實施例的當(dāng)新近添加的RAID陣列為空時在所有RAID陣列之間再平衡盤區(qū)的實例。
在圖3中,存儲裝置300包括三個現(xiàn)有的RAID陣列和兩個新近添加的RAID陣列。圖3的方塊302示出了如何根據(jù)圖2的方塊202和204的邏輯來計算M、商和余數(shù)。
因為計算M為15并且所述商為4,方塊304示出了形成四個組,其中所述四個組中的每個組都具有15個盤區(qū)。除所述四個組外,方塊304中示出了4個剩余盤區(qū)306。
方塊308示出了如何在五個RAID陣列中重新分布所述四個組的盤區(qū),以及如何在五個RAID陣列中重新分布所述四個剩余盤區(qū)306??梢允褂脠D2的方塊206-214中示出的邏輯來重新分布所述盤區(qū)。
方塊310示出了再平衡后所述五個RAID陣列的每個陣列中的盤區(qū)數(shù)。再平衡后,每個所述RAID陣列都使盤區(qū)盡可能均勻地分布。
因此,圖3示出了根據(jù)圖2中說明的邏輯在RAID陣列之間再平衡盤區(qū)的實例。
圖4示出了根據(jù)特定實施例的當(dāng)已將盤區(qū)存儲在新添加的RAID陣列108a...108m中時用于再平衡所有RAID陣列之間的盤區(qū)的流程圖。圖4中說明的特定操作可以在所述存儲控制單元102中實現(xiàn)的盤區(qū)重分布器應(yīng)用116中實現(xiàn)。
以下根據(jù)第二方法示出了特定實施例,在圖4的流程圖中將示出所述實施例的特定方面。在特定實施例中實現(xiàn)的示例性步驟1,2和3(在以下提供)允許在再平衡之前在新近添加的RAID陣列108a...108m中出現(xiàn)分配步驟1對于每個卷,形成盡可能多的Nnew個目標(biāo)排列中的每個排列恰好出現(xiàn)一次的組。忽略以這種方式標(biāo)識的盤區(qū)。
步驟2形成盡可能多的在一個卷上每個舊排列(標(biāo)識為gi,j)出現(xiàn)Nnew次而在不同卷上每個添加的排列(標(biāo)識為hi,j)出現(xiàn)Nnew次的組??梢砸宰钌俚膹?fù)制將每個這樣的組重新布置到適當(dāng)位置。為了以最少的復(fù)制完成所述重新布置,可以執(zhí)行以下一組成對的盤區(qū)交換對于i=0到Nold-1;對于j=Nold到Nnew-1;將gi,j與hi,j交換;步驟3對于每個卷,形成盡可能多的與此前在所述第一方法中說明的組類型相同的組,并以此前為所述第一方法說明的相同方法處理所述組。
與所述第一方法中一樣,在擴(kuò)展版本中處理忽略的盤區(qū)被推遲到最后。在步驟(1)中處理盡可能多的此類盤區(qū),但是這次放松組中的所有成員屬于同一卷的要求。然后如在第一方法中延遲的盤區(qū)那樣處理任何剩余盤區(qū)。
現(xiàn)在繼續(xù)到圖4的流程圖,其中示出了如計算環(huán)境100中實現(xiàn)的用于再平衡條帶盤數(shù)據(jù)的實施例的特定方面,控制開始于方塊400,其中所述盤區(qū)重分布器應(yīng)用116已經(jīng)平衡了所述現(xiàn)有的RAID陣列106a...106n。
控制繼續(xù)到方塊402,其中將新的RAID陣列108a...108m添加到所述現(xiàn)有的RAID陣列106a...106n。根據(jù)所添加的盤區(qū)的循環(huán)分布,繼續(xù)將盤區(qū)添加(在方塊404)到現(xiàn)有的RAID陣列106a...106n和新的RAID陣列108a...108m。
所述盤區(qū)重分布器應(yīng)用116判定(在方塊406)是否需要再平衡盤區(qū)。如果否,控制返回方塊404,反之如果需要再平衡卷,則所述盤區(qū)重分布器應(yīng)用116啟動(在方塊408)在所述RAID陣列之間再平衡盤區(qū)。
在特定實施例中,所述盤區(qū)重分布器應(yīng)用116設(shè)置(在方塊410)M為RAID陣列總數(shù)的平方。然后在方塊412,對于每個卷,所述盤區(qū)重分布器應(yīng)用116將所述現(xiàn)有的RAID陣列106a...106n和新近添加的RAID陣列108a...108m中的盤區(qū)數(shù)除以M來確定商和余數(shù)??刂评^續(xù)到方塊414,其中使盤區(qū)組的數(shù)量等于所述商的值,其中在特定實施例中,每個組都包括來自一個舊卷和一個新卷的盤區(qū)。
所述盤區(qū)重分布器應(yīng)用116為每個盤區(qū)組在所有RAID陣列之間交換(在方塊416)盤區(qū),以使每個RAID陣列中的盤區(qū)數(shù)相同,其中在特定實施例中,以最少的復(fù)制來重新布置每個組。
控制繼續(xù)到方塊418,其中所述盤區(qū)重分布器應(yīng)用116判定所述余數(shù)是否為0。如果是,控制繼續(xù)到方塊424且再平衡過程終止。如果否,將余數(shù)數(shù)量的盤區(qū)盡可能均勻地分布(在方塊420)在所述RAID陣列106a...106n、108a...108m中,并且控制繼續(xù)到方塊424,在方塊424,再平衡過程終止。
因此,圖4示出了特定實施例,其中在已將特定數(shù)量的盤區(qū)存儲在所述新近添加的RAID陣列108a...108m中后再平衡所述盤區(qū)。
圖1-4示出了用于再平衡盤區(qū)的特定實施例,其中在某些實施例中,在添加新排列后(當(dāng)所述排列仍然為空時)立即執(zhí)行用于再平衡的操作。在特定其他實施例中,卷分配可以在執(zhí)行用于再平衡的操作之前發(fā)生。
在特定備選實施例中,確定所述現(xiàn)有的存儲單元集合中的存儲單元(例如RAID陣列)的數(shù)量與存儲單元總數(shù)的最小公倍數(shù)。生成存儲單元組,其中將從所述多個盤區(qū)選擇的數(shù)量為所述最小公倍數(shù)的盤區(qū)分配給每個組。通過在數(shù)量為所述總數(shù)的存儲單元之間均勻地重新分布組的已分配盤區(qū)來處理所述組,其中所述重新分布基于執(zhí)行最少數(shù)量的從所述第一到所述第二存儲單元集合的復(fù)制操作。
其他實施例詳細(xì)信息所述技術(shù)可以實現(xiàn)為包括軟件、固件、微碼、硬件和/或它們的任意組合的方法、裝置或制品。在此使用的術(shù)語“制品”指在介質(zhì)中實現(xiàn)的代碼或邏輯,其中此類介質(zhì)可以包括硬件邏輯[例如,集成電路芯片、可編程門陣列(PGA)、專用集成電路(ASIC)等]或計算機(jī)可讀介質(zhì),如磁存儲介質(zhì)(例如,硬盤驅(qū)動器、軟盤、磁帶等)、光存儲(CD-ROM、光盤等)、易失性和非易失性存儲器設(shè)備[例如,電可擦除可編程只讀存儲器(EEPROM)、只讀存儲器(ROM)、可編程只讀存儲器(PROM)、隨機(jī)存取存儲器(RAM)、動態(tài)隨機(jī)存取存儲器(DRAM)、靜態(tài)隨機(jī)存取存儲器(SRAM)、閃存、固件、可編程邏輯等]。由處理器來存取和執(zhí)行所述計算機(jī)可讀介質(zhì)中的代碼。其中編碼所述代碼或邏輯的介質(zhì)還可以包括通過空間傳播的傳輸信號或諸如光纖、銅線之類的傳輸介質(zhì)。其中編碼所述代碼或邏輯的傳輸信號還可以包括無線信號、衛(wèi)星傳輸、無線電波、紅外線信號、藍(lán)牙等。其中編碼所述代碼或邏輯的傳輸信號能夠通過發(fā)射站發(fā)射并且通過接收站接收,其中在傳輸信號中編碼的代碼或邏輯可以被解碼并存儲在硬件或接收和發(fā)射站或設(shè)備處的計算機(jī)可讀介質(zhì)中。此外,“制品”可以包括其中包含、處理和執(zhí)行代碼的硬件和軟件組件的組合。當(dāng)然,本領(lǐng)域的技術(shù)人員將認(rèn)識到,可以做出許多修改而不偏離實施例的范圍,并且所述制品可以包括任何信息承載介質(zhì)。例如,所述制品包括其中存儲有指令(當(dāng)由機(jī)器執(zhí)行時,所述指令將導(dǎo)致操作被執(zhí)行)的存儲介質(zhì)。
特定實施例可以采取完全硬件實施例、完全軟件實施例或包含硬件和軟件元素兩者的實施例的形式。在一個優(yōu)選實施例中,本發(fā)明以軟件實現(xiàn),所述軟件包括但不限于固件、駐留軟件、微代碼等。
此外,某些實施例可以采取可從計算機(jī)可用或計算機(jī)可讀介質(zhì)訪問的計算機(jī)程序產(chǎn)品的形式,所述計算機(jī)可用或計算機(jī)可讀介質(zhì)提供了可以被計算機(jī)或任何指令執(zhí)行系統(tǒng)使用或與計算機(jī)或任何指令執(zhí)行系統(tǒng)結(jié)合的程序代碼。出于此描述的目的,計算機(jī)可用或計算機(jī)可讀介質(zhì)可以是任何能夠包含、存儲、傳送、傳播或傳輸由指令執(zhí)行系統(tǒng)、裝置或設(shè)備使用或與所述指令執(zhí)行系統(tǒng)、裝置或設(shè)備結(jié)合的程序的裝置。所述介質(zhì)可以是電、磁、光、電磁、紅外線或半導(dǎo)體系統(tǒng)(或裝置或設(shè)備)或傳播介質(zhì)。計算機(jī)可讀介質(zhì)的實例包括半導(dǎo)體或固態(tài)存儲器、磁帶、可移動計算機(jī)盤、隨機(jī)存取存儲器(RAM)、只讀存儲器(ROM)、硬磁盤和光盤。光盤的當(dāng)前實例包括光盤-只讀存儲器(CD-ROM)、光盤-讀/寫(CR-R/W)和DVD。
術(shù)語“特定實施例”、“一個實施例”、“實施例”、“多個實施例”、“所述實施例”、“所述多個實施例”、“一個或多個實施例”、“某些實施例”和“某一實施例”指一個或多個(但不是所有)實施例,除非另外明確指出。術(shù)語“包含”、“包括”、“具有”及其變型指“包括但不限于”,除非另外明確指出。列舉的項目的列表并非暗示任何或所有的項目互相排斥,除非另外明確指出。術(shù)語“a”、“an”和“the”指“一個或多個”,除非另外明確指出。
相互通信的設(shè)備不必持續(xù)地相互通信,除非另外明確指出。此外,相互通信的設(shè)備可以通過一個或多個媒介直接或間接地通信。此外,具有若干相互通信的組件的實施例的描述并非暗示所有此類組件都是必需的。相反,描述了多種可選的組件以說明更多可能的實施例。
此外,盡管可以按照連續(xù)的順序來描述處理步驟、方法步驟、算法或類似步驟,但是此類處理、方法和算法可以被配置為以替代順序工作。換句話說,所描述的步驟的任何序列或順序并不一定指示要求按此順序執(zhí)行步驟。實際可以按任何順序執(zhí)行在此描述的處理的步驟。此外,可以同時、并行或并發(fā)地執(zhí)行某些步驟。
當(dāng)在此描述單個設(shè)備或物品時,將顯而易見的是,可以使用多個設(shè)備/物品(無論它們是否協(xié)作)來代替單個設(shè)備/物品。同樣,當(dāng)在此描述了多個設(shè)備或物品(無論它們是否協(xié)作)的情況下,將顯而易見的是,可以使用單個設(shè)備或物品來代替多個設(shè)備或物品。設(shè)備的功能和/或特性可以替代地由一個或多個其他未明確描述為具有此類功能/特性的設(shè)備來體現(xiàn)。因此,其他實施例不必包括設(shè)備本身。
圖5示出了示例性計算機(jī)系統(tǒng)500,其中在特定實施例中,圖1的計算環(huán)境100的存儲控制單元102可以根據(jù)所述計算機(jī)系統(tǒng)500的計算機(jī)體系結(jié)構(gòu)來實現(xiàn)。所述計算機(jī)系統(tǒng)500也稱為系統(tǒng),并可包括在特定實施例中可以包括處理器504的電路502。所述系統(tǒng)500還可以包括存儲器506(例如,易失性存儲器設(shè)備)以及存儲裝置508。所述系統(tǒng)500的特定元素可以在所述存儲控制單元102中,也可以不在所述存儲控制單元102中。所述存儲裝置508可以包括非易失性存儲器設(shè)備(例如,EEPROM、ROM、PROM、RAM、DRAM、SRAM、閃存、固件、可編程邏輯等)、磁盤驅(qū)動器、光盤驅(qū)動器、磁帶驅(qū)動器等。所述存儲裝置508可以包括內(nèi)部存儲設(shè)備、附加存儲設(shè)備和/或網(wǎng)絡(luò)可存取的存儲設(shè)備。所述系統(tǒng)500可以包括程序邏輯510,所述程序邏輯510包括可以裝入所述存儲器506并由所述處理器504或電路502執(zhí)行的代碼512。在特定實施例中,所述程序邏輯510包括可以存儲在所述存儲裝置508中的代碼512。在特定其他實施例中,所述程序邏輯510可以在所述電路502中實現(xiàn)。因此,雖然圖5示出了程序邏輯510與其他元素分離,但是程序邏輯510可以在存儲器506和/或電路502中實現(xiàn)。
某些實施例可以涉及用于由個人或集成計算機(jī)可讀代碼的自動處理將計算指令部署到計算系統(tǒng)中的方法,其中所述代碼結(jié)合所述計算系統(tǒng)被使能執(zhí)行所描述的實施例的操作。
至少可以并行以及順序執(zhí)行圖2和4中示出的某些操作。在備選實施例中,可以以不同的順序執(zhí)行、修改或刪除某些操作。
此外,出于說明的目的在單獨的模塊中描述了許多軟件和硬件組件。此類組件可以集成到更少數(shù)量的組件中或者分成更多數(shù)量的組件。另外,所描述的由特定組件執(zhí)行的某些操作可以由其他組件來執(zhí)行。
圖1-5中示出或指出的數(shù)據(jù)結(jié)構(gòu)和組件被描述為具有特定類型的信息。在備選實施例中,可以不同地構(gòu)造所述數(shù)據(jù)結(jié)構(gòu)和組件,并且與圖中示出或指出的數(shù)據(jù)結(jié)構(gòu)和組件相比,可以具有更少的、更多的或不同的字段或不同的功能。因此,出于說明和描述目的提供了以上實施例的描述。其并非旨在是窮舉的或?qū)⑺鰧嵤├抻谝雅兜木_形式。根據(jù)上述教導(dǎo),可以做出許多修改和變型。
權(quán)利要求
1.一種方法,所述方法包括將多個盤區(qū)存儲在連接到控制器的第一存儲單元集合中;確定第二存儲單元集合已連接到所述控制器;以及將所述多個盤區(qū)分布在所述第一存儲單元集合和所述第二存儲單元集合內(nèi)包含的所有存儲單元中。
2.如權(quán)利要求1中所述的方法,其中所述存儲單元是RAID陣列,其中所述多個盤區(qū)均勻分布在所述第一RAID陣列集合和所述第二RAID陣列集合內(nèi)包含的所有RAID陣列中,其中在將所述多個盤區(qū)分布到所有所述RAID陣列中時,任何盤區(qū)的移動都不超過一次,并且其中以最少的移動次數(shù)將所述多個盤區(qū)分布到所有所述RAID陣列中,并且其中所述多個盤區(qū)跨越卷。
3.如權(quán)利要求1中所述的方法,其中所述第一存儲單元集合包括多個現(xiàn)有的RAID陣列,其中所述第二存儲單元集合包括新近添加的空RAID陣列,并且其中所述現(xiàn)有的和所述新近添加的RAID陣列共同構(gòu)成了RAID陣列的總數(shù),所述方法還包括通過將所述現(xiàn)有的RAID陣列數(shù)乘以所述RAID陣列的總數(shù)來確定結(jié)果;通過將所述多個盤區(qū)的數(shù)量除以所述結(jié)果來確定商;生成數(shù)量與所述商相等的組,其中將數(shù)量與所述結(jié)果相等的盤區(qū)分配給每個組;以及通過在所述總數(shù)的RAID陣列中均勻地重新分布分配給組的盤區(qū)來處理所述組。
4.如權(quán)利要求1中所述的方法,其中所述多個盤區(qū)是第一多個盤區(qū),其中所述第一和所述第二存儲單元集合共同構(gòu)成了存儲單元的總數(shù),所述方法還包括將第二多個盤區(qū)存儲在所述第二存儲單元集合中,其中所述第一和所述第二多個盤區(qū)構(gòu)成了盤區(qū)的總數(shù);通過將所述存儲單元的總數(shù)平方來確定結(jié)果;通過將所述盤區(qū)的總數(shù)除以所述結(jié)果來確定商;生成數(shù)量與所述商相等的組,其中將數(shù)量與所述結(jié)果相等的盤區(qū)分配給每個組,并且其中每個組包括來自所述第一和所述第二存儲單元集合的選定盤區(qū);以及通過在所述總數(shù)的存儲單元中均勻地重新分布分配給組的盤區(qū)來處理所述組。
5.如權(quán)利要求1中所述的方法,其中所述第一和所述第二存儲單元集合共同構(gòu)成了存儲單元的總數(shù),其中所述方法還包括確定所述第一存儲單元集合中的存儲單元數(shù)與所述存儲單元的總數(shù)的最小公倍數(shù);生成存儲單元組,其中將從所述多個盤區(qū)選擇的數(shù)量為所述最小公倍數(shù)的盤區(qū)分配給每個組;通過在所述總數(shù)的存儲單元中均勻地重新分布組的已分配盤區(qū)來處理所述組,其中所述重新分布基于執(zhí)行最少數(shù)量的從所述第一到所述第二存儲單元集合的復(fù)制操作。
6.一種連接到第一存儲單元集合并且能夠連接到一組第二存儲單元集合的系統(tǒng),所述系統(tǒng)包括存儲器;以及連接到所述存儲器的處理器,其中所述處理器可執(zhí)行以下操作(i)將多個盤區(qū)存儲在所述第一存儲單元集合中;(ii)確定所述第二存儲單元集合已連接到所述系統(tǒng);以及(iii)將所述多個盤區(qū)分布在所述第一存儲單元集合和所述第二存儲單元集合內(nèi)包含的所有存儲單元中。
7.如權(quán)利要求6中所述的系統(tǒng),其中所述存儲單元是RAID陣列,其中所述多個盤區(qū)均勻分布在所述第一RAID陣列集合和所述第二RAID陣列集合內(nèi)包含的所有RAID陣列中,其中在將所述多個盤區(qū)分布到所有所述RAID陣列中時,任何盤區(qū)的移動都不超過一次,并且其中以最少的移動次數(shù)將所述多個盤區(qū)分布到所有所述RAID陣列中,并且其中所述多個盤區(qū)跨越卷。
8.如權(quán)利要求6中所述的系統(tǒng),其中所述第一存儲單元集合包括多個現(xiàn)有的RAID陣列,其中所述第二存儲單元集合包括新近添加的空RAID陣列,其中所述現(xiàn)有的和所述新近添加的RAID陣列共同構(gòu)成了RAID陣列的總數(shù),并且其中所述處理器還可執(zhí)行以下操作通過將所述現(xiàn)有的RAID陣列數(shù)乘以所述RAID陣列的總數(shù)來確定結(jié)果;通過將所述多個盤區(qū)的數(shù)量除以所述結(jié)果來確定商;生成數(shù)量與所述商相等的組,其中將數(shù)量與所述結(jié)果相等的盤區(qū)分配給每個組;以及通過在所述總數(shù)的RAID陣列中均勻地重新分布分配給組的盤區(qū)來處理所述組。
9.如權(quán)利要求6中所述的系統(tǒng),其中所述多個盤區(qū)是第一多個盤區(qū),其中所述第一和所述第二存儲單元集合共同構(gòu)成了存儲單元的總數(shù),并且其中所述處理器還可執(zhí)行以下操作將第二多個盤區(qū)存儲在所述第二存儲單元集合中,其中所述第一和所述第二多個盤區(qū)構(gòu)成了盤區(qū)的總數(shù);通過將所述存儲單元的總數(shù)平方來確定結(jié)果;通過將所述盤區(qū)的總數(shù)除以所述結(jié)果來確定商;生成數(shù)量與所述商相等的組,其中將數(shù)量與所述結(jié)果相等的盤區(qū)分配給每個組,并且其中每個組包括來自所述第一和所述第二存儲單元集合的選定盤區(qū);以及通過在所述總數(shù)的存儲單元中均勻地重新分布分配給組的盤區(qū)來處理所述組。
10.如權(quán)利要求6中所述的系統(tǒng),其中所述第一和所述第二存儲單元集合共同構(gòu)成了存儲單元的總數(shù),并且其中所述處理器還可執(zhí)行以下操作確定所述第一存儲單元集合中的存儲單元數(shù)與所述存儲單元的總數(shù)的最小公倍數(shù);生成存儲單元組,其中將從所述多個盤區(qū)選擇的數(shù)量為所述最小公倍數(shù)的盤區(qū)分配給每個組;通過在所述總數(shù)的存儲單元中均勻地重新分布組的已分配盤區(qū)來處理所述組,其中所述重新分布基于執(zhí)行最少數(shù)量的從所述第一到所述第二存儲單元集合的復(fù)制操作。
11.一種用于部署計算基礎(chǔ)結(jié)構(gòu)的方法,所述方法包括將計算機(jī)可讀代碼集成到計算系統(tǒng)中,其中所述代碼與所述計算系統(tǒng)結(jié)合能夠執(zhí)行以下操作將多個盤區(qū)存儲在連接到所述計算系統(tǒng)的第一存儲單元集合中;確定第二存儲單元集合已連接到所述計算系統(tǒng);以及將所述多個盤區(qū)分布在所述第一存儲單元集合和所述第二存儲單元集合內(nèi)包含的所有存儲單元中。
12.如權(quán)利要求11中所述的部署計算基礎(chǔ)結(jié)構(gòu)的方法,其中所述存儲單元是RAID陣列,其中所述多個盤區(qū)均勻分布在所述第一RAID陣列集合和所述第二RAID陣列集合內(nèi)包含的所有RAID陣列中,其中在將所述多個盤區(qū)分布到所有所述RAID陣列中時,任何盤區(qū)的移動都不超過一次,并且其中以最少的移動次數(shù)將所述多個盤區(qū)分布到所有所述RAID陣列中,并且其中所述多個盤區(qū)跨越卷。
13.如權(quán)利要求11中所述的部署計算基礎(chǔ)結(jié)構(gòu)的方法,其中所述第一存儲單元集合包括多個現(xiàn)有的RAID陣列,其中所述第二存儲單元集合包括新近添加的空RAID陣列,并且其中所述現(xiàn)有的和所述新近添加的RAID陣列共同構(gòu)成了RAID陣列的總數(shù),所述方法還包括通過將所述現(xiàn)有的RAID陣列數(shù)乘以所述RAID陣列的總數(shù)來確定結(jié)果;通過將所述多個盤區(qū)的數(shù)量除以所述結(jié)果來確定商;生成數(shù)量與所述商相等的組,其中將數(shù)量與所述結(jié)果相等的盤區(qū)分配給每個組;以及通過在所述總數(shù)的RAID陣列中均勻地重新分布分配給組的盤區(qū)來處理所述組。
14.如權(quán)利要求11中所述的部署計算基礎(chǔ)結(jié)構(gòu)的方法,其中所述多個盤區(qū)是第一多個盤區(qū),其中所述第一和所述第二存儲單元集合共同構(gòu)成了存儲單元的總數(shù),所述方法還包括將第二多個盤區(qū)存儲在所述第二存儲單元集合中,其中所述第一和所述第二多個盤區(qū)構(gòu)成了盤區(qū)的總數(shù);通過將所述存儲單元的總數(shù)平方來確定結(jié)果;通過將所述盤區(qū)的總數(shù)除以所述結(jié)果來確定商;生成數(shù)量與所述商相等的組,其中將數(shù)量與所述結(jié)果相等的盤區(qū)分配給每個組,并且其中每個組包括來自所述第一和所述第二存儲單元集合的選定盤區(qū);以及通過在所述總數(shù)的存儲單元中均勻地重新分布分配給組的盤區(qū)來處理所述組。
15.如權(quán)利要求11中所述的部署計算基礎(chǔ)結(jié)構(gòu)的方法,其中所述第一和所述第二存儲單元集合共同構(gòu)成了存儲單元的總數(shù),其中所述方法還包括確定所述第一存儲單元集合中的存儲單元數(shù)與所述存儲單元的總數(shù)的最小公倍數(shù);生成存儲單元組,其中將從所述多個盤區(qū)選擇的數(shù)量為所述最小公倍數(shù)的盤區(qū)分配給每個組;通過在所述總數(shù)的存儲單元中均勻地重新分布組的已分配盤區(qū)來處理所述組,其中所述重新分布基于執(zhí)行最少數(shù)量的從所述第一到所述第二存儲單元集合的復(fù)制操作。
全文摘要
本發(fā)明提供了一種方法、系統(tǒng)和制品,其中在連接到控制器的第一存儲單元集合中存儲多個盤區(qū)。確定第二存儲單元集合已連接到所述控制器。將所述多個盤區(qū)分布在所述第一存儲單元集合和所述第二存儲單元集合內(nèi)包含的所有存儲單元中。
文檔編號G06F3/06GK1971499SQ200610139310
公開日2007年5月30日 申請日期2006年9月22日 優(yōu)先權(quán)日2005年11月23日
發(fā)明者B·麥克納特, J·S·海登二世 申請人:國際商業(yè)機(jī)器公司