再平衡条带盘数据的方法和系统的制作方法

文档序号:6562233阅读:238来源:国知局
专利名称:再平衡条带盘数据的方法和系统的制作方法
技术领域
本发明涉及用于再平衡条带盘数据的方法、系统和制品。
背景技术
在连接到多个硬盘的计算机中,数据条带化(也称为盘条带化)是将数据体划分为条带并在多个硬盘上分散所述条带的过程。
某些系统可以在独立磁盘冗余阵列(RAID)排列(rank)之间执行数据条带化,其中所述RAID排列也称为RAID阵列。RAID是使用多个盘来存储和分布数据的存储系统。为了执行数据条带化,可以将属于特定逻辑单元(LUN)的数据划分为盘区。然后可以在可用的RAID排列之间以旋转的方式来分布卷的连续盘区。这样的条带化可以允许平衡输入/输出(I/O)负载。
如果向其上已执行数据条带化的集合添加新的排列,则可能会失去在RAID排列之间的I/O负载平衡。

发明内容
本发明提供了一种方法、系统和制品,其中在连接到控制器的第一存储单元集合中存储多个盘区。确定第二存储单元集合已连接到所述控制器。将所述多个盘区分布在所述第一存储单元集合和所述第二存储单元集合内包含的所有存储单元中。
在某些其他实施例中,所述存储单元是冗余磁盘阵列(RAID)阵列,其中所述多个盘区均匀分布在所述第一RAID阵列集合和所述第二RAID阵列集合内包含的所有RAID阵列中,其中在将所述多个盘区分布到所有所述RAID阵列中时,任何盘区的移动都不超过一次,并且其中以最少的移动次数将所述多个盘区分布到所有所述RAID阵列中,并且其中所述多个盘区跨越卷。
在其他实施例中,所述第一存储单元集合包括多个现有的RAID阵列,其中所述第二存储单元集合包括新近添加的空RAID阵列,并且其中所述现有的和所述新近添加的RAID阵列共同构成了RAID阵列的总数。通过将现有的RAID阵列数乘以RAID阵列的总数来确定结果。通过将所述多个盘区的数量除以所述结果来确定商。生成数量与所述商相等的组,其中将数量与所述结果相等的盘区分配给每个组。通过在所述总数的RAID阵列中均匀地重新分布分配给组的盘区来处理所述组。
在其他实施例中,所述多个盘区是第一多个盘区,其中所述第一和所述第二存储单元集合共同构成了存储单元的总数。在所述第二存储单元集合中存储第二多个盘区,其中所述第一和所述第二多个盘区构成了盘区的总数。通过将所述存储单元的总数平方来确定结果。通过将所述盘区的总数除以所述结果来确定商。生成数量与所述商相等的组,其中将数量与所述结果相等的盘区分配给每个组,并且其中每个组包括来自所述第一和所述第二存储单元集合的选定盘区。通过在所述总数的存储单元中均匀地重新分布分配给组的盘区来处理所述组。
在另一个实施例中,所述第一和所述第二存储单元集合共同构成了存储单元的总数。确定所述第一存储单元集合中的存储单元数与存储单元的总数的最小公倍数。生成存储单元组,其中将从所述多个盘区选择的数量为所述最小公倍数的盘区分配给每个组。通过在所述总数的存储单元中均匀地重新分布组的已分配盘区来处理所述组,其中所述重新分布基于执行最少数量的从所述第一到所述第二存储单元集合的复制操作。


现在参考附图,其中相同的标号代表图中的相应部件图1示出了根据特定实施例的包括带有现有的和新近添加的RAID阵列的存储控制单元的计算环境的方块图;图2示出了根据特定实施例的当新近添加的RAID阵列为空时用于在所有RAID阵列之间再平衡盘区的流程图;图3是示出了根据特定实施例的当新近添加的RAID阵列为空时在所有RAID阵列之间再平衡盘区的实例;图4示出了根据特定实施例的当已将盘区存储在新添加的RAID阵列中时用于在所有RAID阵列之间再平衡盘区的流程图;以及图5示出了计算系统的体系结构,其中在特定实施例中,可以根据所述计算系统的体系结构来实现图1的计算环境的存储控制单元。
具体实施例方式
在以下说明中,参考了形成本说明书的一部分并示出了本发明的若干实施例的附图。应当理解,可以采用其他实施例并且可以做出结构和操作更改。例如,可以应用推荐的实施例而不必考虑存储在所述存储设备中的应用数据的类型。
特定实施例提供了条带盘数据的再平衡,以响应将新的排列添加到其间已执行数据条带化的盘集合。在特定实施例中,在盘区池(“条带”大小为一个盘区)之间条带化逻辑卷。特定实施例可以允许在向所述池添加一个或多个新的排列后再平衡所述卷条带化模式。在特定实施例中,在所述池中的所有排列之间条带化每个卷,同时尽可能少地移动数据,并且不引入任何对所移动数据的临时盘存储的需要。
在特定实施例中,将每个现有卷的盘区组织成大小为M的集合,其中M是新排列和旧排列的数量的乘积。然后以这样的方式将从这个组选择的特定盘区移动到新排列中在所述新排列的集合之间平衡盘区的分布。
在特定的其他实施例中,在执行再平衡操作之前,可能已将特定数量的新卷分配给所述新排列。在此情况下,形成大小等于所述新排列的数量的平方的组,并且每个组都包括来自一个旧卷和一个新卷的盘区。然后以这样的方式将选定的盘区相互交换在所述新排列的集合之间条带化来自每个卷的盘区的分布。
图1示出了根据特定实施例的包括存储控制单元102的计算环境100的方块图,所述存储控制单元102连接到存储装置104,存储装置104包括现有的RAID阵列106a、106b、...106n和新近添加的RAID阵列108a、108b、…108m。在存储控制单元102已将数据存储在先前连接的现有的RAID阵列106a...106n中后,将新近添加的RAID阵列108a...108m连接到存储控制单元102。
所述存储控制单元102(也称为控制器)包括任何适合的计算设备,包括本领域内目前已知的此类设备,如个人计算机、工作站、大型机、中端计算机、网络家电、掌上电脑、电话设备、刀片计算机、手提电脑等。
虽然图1示出了带有现有的RAID阵列106a...106n和新近添加的RAID阵列108a...108m的存储装置104,但是在备选实施例中,所述存储装置104可以包括不同于RAID阵列的存储设备。例如,代替所述RAID阵列106a...106n、108a...108m或除它们以外,存储装置104可以包括磁带、光学设备等。
盘区110a、110b、...110p、112a、112b、...112q、114a、114b、...114r分布在现有的RAID阵列106a...106n之间。盘区是存储数据的元素,其中每个盘区的大小都相同。盘区的大小可以改变,并且例如在一个实施例中可以是5千字节,在另一个实施例中是50千字节,而在再一个实施例中是1兆字节。与每个RAID阵列的存储容量相比,每个盘区的大小很小。多个盘区可以属于被写入存储装置104的同一卷。虽然在新近添加的RAID阵列108a...108m中没有示出盘区,但是可以将盘区复制或写入新近添加的RAID阵列108a...108m。
所述存储控制单元102包括盘区重分布器应用116,其中所述盘区重分布器应用116能够在RAID阵列106a...106n、108a...108m之间重新排列盘区110a...110p、112a...112q、114a...114r。
在特定实施例中,盘区重分布器应用116在现有的RAID阵列106a...106和新近添加的RAID阵列108a...108m之间组织盘区,以便在现有的RAID阵列106a...106n和新近添加的RAID阵列108a...108m之间平衡盘区的分布。
图2示出了根据特定实施例的当新近添加的RAID阵列108a...108m为空时在图1的计算环境100中的所有RAID阵列之间再平衡盘区的流程图。图2中示出的某些操作可以在所述盘区重分布器应用116中实现。
以下示出了特定实施例,之后将在图2的流程图中示出它们的特定方面。假设盘区池初始包含排列0和1,其中排列是RAID阵列。因而,给定的卷V可以使所述卷V的盘区以顺序{0,1,0,1,...}分配给所述两个排列。其后,可以添加第三个排列,其中所述第三个排列称为排列2。为了再平衡,特定实施例将所述卷V的盘区组织成2×3=6的组。每个6盘区的组(比方说组g)将包括排列0中的3个成员和排列1中的3个成员。
为了引用,将排列0中的三个成员称为g0,0、g0,1、以及g0,2。类似地,将排列1中的三个成员称为g1,0、g1,1、以及g1,2。
特定实施例按如下方式将六个盘区的组分配到三个新排列排列0盘区g0,0,盘区g0,1排列1盘区g1,0,盘区g1,1排列2盘区g0,2,盘区g1,2此类实施例避免了进行任何数据复制(除将数据复制到排列2中以外)。
更具体地说,在第一方法中,特定实施例中需要盘区池中排列的数量的从Nold到Nnew的扩展。特定实施例通过将卷的现有盘区形成大小为M=NoldX Nnew的组来进行。每个旧排列在每个组中出现Nnew次。
可以通过独立标识属于每个旧排列的盘区来建立给定组。这可以通过以相对字节地址(RBA)顺序处理所述卷盘区,保留指向属于每个排列的最近添加的盘区的指针来完成。通过以第一排列的指针前进来将一个盘区添加到所述第一排列;然后通过以下一个排列的指针前进来将一个盘区添加到所述下一个排列;依此类推,直到找到属于每个排列的Nnew个盘区。此类用于建立组的实施例避免了做出有关现有盘区分配模式的假设。
在生成尽可能多的均匀平衡的组之后,将任何可能剩余的盘区延迟到最后。然后做出第二次尝试来将剩余的盘区形成组,这次放松在给定组中只使用一个卷的要求。
在形成该第二组集合后,如果仍然有盘区剩余,则忽略此类盘区。将排列0中包括的给定组g中的盘区编号为g0,0、g0,1、......、g0,Nnew-1,并且还可以以相应的方式来编号排列1、2、...,Nold-1中的盘区。然后可以以如下方式执行再平衡操作对于i=Nold到Nnew-1;对于j=0到Nold-1;分配新盘区fi,j;对于i=0到Nold-1;对于j=Nold到Nnew-1;将gi,j移动到fj,i;释放盘区gi,j;复制的盘区数是确保每个排列包含来自所述卷的相等数量的盘区所需的最小值。
现在继续到图2的流程图,其中示出了所述计算环境100中实现的用于再平衡条带盘数据的实施例的特定方面,控制开始于方块200,其中所述盘区重分布器应用116接收已将一个或多个RAID阵列108a...108m新近添加到现有的RAID阵列106a...106n的指示。
所述盘区重分布器应用116设置(在方块202)M等于现有的RAID阵列106a...106n的数量与添加新的RAID阵列108a...108m后的RAID阵列的总数的乘积。
所述盘区重分布器应用116将现有的RAID阵列106a...106n中的盘区数量除以(在方块204)M以确定商和余数。将盘区组的数量赋值(在方块206)等于所述商。
其后,对于每个盘区组,所述盘区重分布器应用116从现有的RAID阵列106a...106n将盘区复制(在方块208)到一个或多个新近添加的RAID阵列108a...108m,以使每个RAID阵列中的盘区数量相等。
控制继续到方块210,其中所述盘区重分布器应用116判定所述余数是否为0。如果是,控制继续到方块214且再平衡过程终止。如果否,将余数数量的盘区尽可能均匀地分布(在方块212)在所述RAID阵列106a...106n、108a...108m中,并且控制继续到方块214,在方块214,再平衡过程终止。
因此,图2示出了其中在所述现有的RAID阵列106a...106n和所述新近添加的RAID阵列108a...108m中再平衡盘区的过程之前,没有将盘区分配到所述新近添加的RAID阵列108a...108m的特定实施例。特定实施例确保复制的盘区数是保证每个排列包含来自包括所述盘区的卷的相等数量的盘区所需的最小值。
图3是示出了根据特定实施例的当新近添加的RAID阵列为空时在所有RAID阵列之间再平衡盘区的实例。
在图3中,存储装置300包括三个现有的RAID阵列和两个新近添加的RAID阵列。图3的方块302示出了如何根据图2的方块202和204的逻辑来计算M、商和余数。
因为计算M为15并且所述商为4,方块304示出了形成四个组,其中所述四个组中的每个组都具有15个盘区。除所述四个组外,方块304中示出了4个剩余盘区306。
方块308示出了如何在五个RAID阵列中重新分布所述四个组的盘区,以及如何在五个RAID阵列中重新分布所述四个剩余盘区306。可以使用图2的方块206-214中示出的逻辑来重新分布所述盘区。
方块310示出了再平衡后所述五个RAID阵列的每个阵列中的盘区数。再平衡后,每个所述RAID阵列都使盘区尽可能均匀地分布。
因此,图3示出了根据图2中说明的逻辑在RAID阵列之间再平衡盘区的实例。
图4示出了根据特定实施例的当已将盘区存储在新添加的RAID阵列108a...108m中时用于再平衡所有RAID阵列之间的盘区的流程图。图4中说明的特定操作可以在所述存储控制单元102中实现的盘区重分布器应用116中实现。
以下根据第二方法示出了特定实施例,在图4的流程图中将示出所述实施例的特定方面。在特定实施例中实现的示例性步骤1,2和3(在以下提供)允许在再平衡之前在新近添加的RAID阵列108a...108m中出现分配步骤1对于每个卷,形成尽可能多的Nnew个目标排列中的每个排列恰好出现一次的组。忽略以这种方式标识的盘区。
步骤2形成尽可能多的在一个卷上每个旧排列(标识为gi,j)出现Nnew次而在不同卷上每个添加的排列(标识为hi,j)出现Nnew次的组。可以以最少的复制将每个这样的组重新布置到适当位置。为了以最少的复制完成所述重新布置,可以执行以下一组成对的盘区交换对于i=0到Nold-1;对于j=Nold到Nnew-1;将gi,j与hi,j交换;步骤3对于每个卷,形成尽可能多的与此前在所述第一方法中说明的组类型相同的组,并以此前为所述第一方法说明的相同方法处理所述组。
与所述第一方法中一样,在扩展版本中处理忽略的盘区被推迟到最后。在步骤(1)中处理尽可能多的此类盘区,但是这次放松组中的所有成员属于同一卷的要求。然后如在第一方法中延迟的盘区那样处理任何剩余盘区。
现在继续到图4的流程图,其中示出了如计算环境100中实现的用于再平衡条带盘数据的实施例的特定方面,控制开始于方块400,其中所述盘区重分布器应用116已经平衡了所述现有的RAID阵列106a...106n。
控制继续到方块402,其中将新的RAID阵列108a...108m添加到所述现有的RAID阵列106a...106n。根据所添加的盘区的循环分布,继续将盘区添加(在方块404)到现有的RAID阵列106a...106n和新的RAID阵列108a...108m。
所述盘区重分布器应用116判定(在方块406)是否需要再平衡盘区。如果否,控制返回方块404,反之如果需要再平衡卷,则所述盘区重分布器应用116启动(在方块408)在所述RAID阵列之间再平衡盘区。
在特定实施例中,所述盘区重分布器应用116设置(在方块410)M为RAID阵列总数的平方。然后在方块412,对于每个卷,所述盘区重分布器应用116将所述现有的RAID阵列106a...106n和新近添加的RAID阵列108a...108m中的盘区数除以M来确定商和余数。控制继续到方块414,其中使盘区组的数量等于所述商的值,其中在特定实施例中,每个组都包括来自一个旧卷和一个新卷的盘区。
所述盘区重分布器应用116为每个盘区组在所有RAID阵列之间交换(在方块416)盘区,以使每个RAID阵列中的盘区数相同,其中在特定实施例中,以最少的复制来重新布置每个组。
控制继续到方块418,其中所述盘区重分布器应用116判定所述余数是否为0。如果是,控制继续到方块424且再平衡过程终止。如果否,将余数数量的盘区尽可能均匀地分布(在方块420)在所述RAID阵列106a...106n、108a...108m中,并且控制继续到方块424,在方块424,再平衡过程终止。
因此,图4示出了特定实施例,其中在已将特定数量的盘区存储在所述新近添加的RAID阵列108a...108m中后再平衡所述盘区。
图1-4示出了用于再平衡盘区的特定实施例,其中在某些实施例中,在添加新排列后(当所述排列仍然为空时)立即执行用于再平衡的操作。在特定其他实施例中,卷分配可以在执行用于再平衡的操作之前发生。
在特定备选实施例中,确定所述现有的存储单元集合中的存储单元(例如RAID阵列)的数量与存储单元总数的最小公倍数。生成存储单元组,其中将从所述多个盘区选择的数量为所述最小公倍数的盘区分配给每个组。通过在数量为所述总数的存储单元之间均匀地重新分布组的已分配盘区来处理所述组,其中所述重新分布基于执行最少数量的从所述第一到所述第二存储单元集合的复制操作。
其他实施例详细信息所述技术可以实现为包括软件、固件、微码、硬件和/或它们的任意组合的方法、装置或制品。在此使用的术语“制品”指在介质中实现的代码或逻辑,其中此类介质可以包括硬件逻辑[例如,集成电路芯片、可编程门阵列(PGA)、专用集成电路(ASIC)等]或计算机可读介质,如磁存储介质(例如,硬盘驱动器、软盘、磁带等)、光存储(CD-ROM、光盘等)、易失性和非易失性存储器设备[例如,电可擦除可编程只读存储器(EEPROM)、只读存储器(ROM)、可编程只读存储器(PROM)、随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、闪存、固件、可编程逻辑等]。由处理器来存取和执行所述计算机可读介质中的代码。其中编码所述代码或逻辑的介质还可以包括通过空间传播的传输信号或诸如光纤、铜线之类的传输介质。其中编码所述代码或逻辑的传输信号还可以包括无线信号、卫星传输、无线电波、红外线信号、蓝牙等。其中编码所述代码或逻辑的传输信号能够通过发射站发射并且通过接收站接收,其中在传输信号中编码的代码或逻辑可以被解码并存储在硬件或接收和发射站或设备处的计算机可读介质中。此外,“制品”可以包括其中包含、处理和执行代码的硬件和软件组件的组合。当然,本领域的技术人员将认识到,可以做出许多修改而不偏离实施例的范围,并且所述制品可以包括任何信息承载介质。例如,所述制品包括其中存储有指令(当由机器执行时,所述指令将导致操作被执行)的存储介质。
特定实施例可以采取完全硬件实施例、完全软件实施例或包含硬件和软件元素两者的实施例的形式。在一个优选实施例中,本发明以软件实现,所述软件包括但不限于固件、驻留软件、微代码等。
此外,某些实施例可以采取可从计算机可用或计算机可读介质访问的计算机程序产品的形式,所述计算机可用或计算机可读介质提供了可以被计算机或任何指令执行系统使用或与计算机或任何指令执行系统结合的程序代码。出于此描述的目的,计算机可用或计算机可读介质可以是任何能够包含、存储、传送、传播或传输由指令执行系统、装置或设备使用或与所述指令执行系统、装置或设备结合的程序的装置。所述介质可以是电、磁、光、电磁、红外线或半导体系统(或装置或设备)或传播介质。计算机可读介质的实例包括半导体或固态存储器、磁带、可移动计算机盘、随机存取存储器(RAM)、只读存储器(ROM)、硬磁盘和光盘。光盘的当前实例包括光盘-只读存储器(CD-ROM)、光盘-读/写(CR-R/W)和DVD。
术语“特定实施例”、“一个实施例”、“实施例”、“多个实施例”、“所述实施例”、“所述多个实施例”、“一个或多个实施例”、“某些实施例”和“某一实施例”指一个或多个(但不是所有)实施例,除非另外明确指出。术语“包含”、“包括”、“具有”及其变型指“包括但不限于”,除非另外明确指出。列举的项目的列表并非暗示任何或所有的项目互相排斥,除非另外明确指出。术语“a”、“an”和“the”指“一个或多个”,除非另外明确指出。
相互通信的设备不必持续地相互通信,除非另外明确指出。此外,相互通信的设备可以通过一个或多个媒介直接或间接地通信。此外,具有若干相互通信的组件的实施例的描述并非暗示所有此类组件都是必需的。相反,描述了多种可选的组件以说明更多可能的实施例。
此外,尽管可以按照连续的顺序来描述处理步骤、方法步骤、算法或类似步骤,但是此类处理、方法和算法可以被配置为以替代顺序工作。换句话说,所描述的步骤的任何序列或顺序并不一定指示要求按此顺序执行步骤。实际可以按任何顺序执行在此描述的处理的步骤。此外,可以同时、并行或并发地执行某些步骤。
当在此描述单个设备或物品时,将显而易见的是,可以使用多个设备/物品(无论它们是否协作)来代替单个设备/物品。同样,当在此描述了多个设备或物品(无论它们是否协作)的情况下,将显而易见的是,可以使用单个设备或物品来代替多个设备或物品。设备的功能和/或特性可以替代地由一个或多个其他未明确描述为具有此类功能/特性的设备来体现。因此,其他实施例不必包括设备本身。
图5示出了示例性计算机系统500,其中在特定实施例中,图1的计算环境100的存储控制单元102可以根据所述计算机系统500的计算机体系结构来实现。所述计算机系统500也称为系统,并可包括在特定实施例中可以包括处理器504的电路502。所述系统500还可以包括存储器506(例如,易失性存储器设备)以及存储装置508。所述系统500的特定元素可以在所述存储控制单元102中,也可以不在所述存储控制单元102中。所述存储装置508可以包括非易失性存储器设备(例如,EEPROM、ROM、PROM、RAM、DRAM、SRAM、闪存、固件、可编程逻辑等)、磁盘驱动器、光盘驱动器、磁带驱动器等。所述存储装置508可以包括内部存储设备、附加存储设备和/或网络可存取的存储设备。所述系统500可以包括程序逻辑510,所述程序逻辑510包括可以装入所述存储器506并由所述处理器504或电路502执行的代码512。在特定实施例中,所述程序逻辑510包括可以存储在所述存储装置508中的代码512。在特定其他实施例中,所述程序逻辑510可以在所述电路502中实现。因此,虽然图5示出了程序逻辑510与其他元素分离,但是程序逻辑510可以在存储器506和/或电路502中实现。
某些实施例可以涉及用于由个人或集成计算机可读代码的自动处理将计算指令部署到计算系统中的方法,其中所述代码结合所述计算系统被使能执行所描述的实施例的操作。
至少可以并行以及顺序执行图2和4中示出的某些操作。在备选实施例中,可以以不同的顺序执行、修改或删除某些操作。
此外,出于说明的目的在单独的模块中描述了许多软件和硬件组件。此类组件可以集成到更少数量的组件中或者分成更多数量的组件。另外,所描述的由特定组件执行的某些操作可以由其他组件来执行。
图1-5中示出或指出的数据结构和组件被描述为具有特定类型的信息。在备选实施例中,可以不同地构造所述数据结构和组件,并且与图中示出或指出的数据结构和组件相比,可以具有更少的、更多的或不同的字段或不同的功能。因此,出于说明和描述目的提供了以上实施例的描述。其并非旨在是穷举的或将所述实施例限于已披露的精确形式。根据上述教导,可以做出许多修改和变型。
权利要求
1.一种方法,所述方法包括将多个盘区存储在连接到控制器的第一存储单元集合中;确定第二存储单元集合已连接到所述控制器;以及将所述多个盘区分布在所述第一存储单元集合和所述第二存储单元集合内包含的所有存储单元中。
2.如权利要求1中所述的方法,其中所述存储单元是RAID阵列,其中所述多个盘区均匀分布在所述第一RAID阵列集合和所述第二RAID阵列集合内包含的所有RAID阵列中,其中在将所述多个盘区分布到所有所述RAID阵列中时,任何盘区的移动都不超过一次,并且其中以最少的移动次数将所述多个盘区分布到所有所述RAID阵列中,并且其中所述多个盘区跨越卷。
3.如权利要求1中所述的方法,其中所述第一存储单元集合包括多个现有的RAID阵列,其中所述第二存储单元集合包括新近添加的空RAID阵列,并且其中所述现有的和所述新近添加的RAID阵列共同构成了RAID阵列的总数,所述方法还包括通过将所述现有的RAID阵列数乘以所述RAID阵列的总数来确定结果;通过将所述多个盘区的数量除以所述结果来确定商;生成数量与所述商相等的组,其中将数量与所述结果相等的盘区分配给每个组;以及通过在所述总数的RAID阵列中均匀地重新分布分配给组的盘区来处理所述组。
4.如权利要求1中所述的方法,其中所述多个盘区是第一多个盘区,其中所述第一和所述第二存储单元集合共同构成了存储单元的总数,所述方法还包括将第二多个盘区存储在所述第二存储单元集合中,其中所述第一和所述第二多个盘区构成了盘区的总数;通过将所述存储单元的总数平方来确定结果;通过将所述盘区的总数除以所述结果来确定商;生成数量与所述商相等的组,其中将数量与所述结果相等的盘区分配给每个组,并且其中每个组包括来自所述第一和所述第二存储单元集合的选定盘区;以及通过在所述总数的存储单元中均匀地重新分布分配给组的盘区来处理所述组。
5.如权利要求1中所述的方法,其中所述第一和所述第二存储单元集合共同构成了存储单元的总数,其中所述方法还包括确定所述第一存储单元集合中的存储单元数与所述存储单元的总数的最小公倍数;生成存储单元组,其中将从所述多个盘区选择的数量为所述最小公倍数的盘区分配给每个组;通过在所述总数的存储单元中均匀地重新分布组的已分配盘区来处理所述组,其中所述重新分布基于执行最少数量的从所述第一到所述第二存储单元集合的复制操作。
6.一种连接到第一存储单元集合并且能够连接到一组第二存储单元集合的系统,所述系统包括存储器;以及连接到所述存储器的处理器,其中所述处理器可执行以下操作(i)将多个盘区存储在所述第一存储单元集合中;(ii)确定所述第二存储单元集合已连接到所述系统;以及(iii)将所述多个盘区分布在所述第一存储单元集合和所述第二存储单元集合内包含的所有存储单元中。
7.如权利要求6中所述的系统,其中所述存储单元是RAID阵列,其中所述多个盘区均匀分布在所述第一RAID阵列集合和所述第二RAID阵列集合内包含的所有RAID阵列中,其中在将所述多个盘区分布到所有所述RAID阵列中时,任何盘区的移动都不超过一次,并且其中以最少的移动次数将所述多个盘区分布到所有所述RAID阵列中,并且其中所述多个盘区跨越卷。
8.如权利要求6中所述的系统,其中所述第一存储单元集合包括多个现有的RAID阵列,其中所述第二存储单元集合包括新近添加的空RAID阵列,其中所述现有的和所述新近添加的RAID阵列共同构成了RAID阵列的总数,并且其中所述处理器还可执行以下操作通过将所述现有的RAID阵列数乘以所述RAID阵列的总数来确定结果;通过将所述多个盘区的数量除以所述结果来确定商;生成数量与所述商相等的组,其中将数量与所述结果相等的盘区分配给每个组;以及通过在所述总数的RAID阵列中均匀地重新分布分配给组的盘区来处理所述组。
9.如权利要求6中所述的系统,其中所述多个盘区是第一多个盘区,其中所述第一和所述第二存储单元集合共同构成了存储单元的总数,并且其中所述处理器还可执行以下操作将第二多个盘区存储在所述第二存储单元集合中,其中所述第一和所述第二多个盘区构成了盘区的总数;通过将所述存储单元的总数平方来确定结果;通过将所述盘区的总数除以所述结果来确定商;生成数量与所述商相等的组,其中将数量与所述结果相等的盘区分配给每个组,并且其中每个组包括来自所述第一和所述第二存储单元集合的选定盘区;以及通过在所述总数的存储单元中均匀地重新分布分配给组的盘区来处理所述组。
10.如权利要求6中所述的系统,其中所述第一和所述第二存储单元集合共同构成了存储单元的总数,并且其中所述处理器还可执行以下操作确定所述第一存储单元集合中的存储单元数与所述存储单元的总数的最小公倍数;生成存储单元组,其中将从所述多个盘区选择的数量为所述最小公倍数的盘区分配给每个组;通过在所述总数的存储单元中均匀地重新分布组的已分配盘区来处理所述组,其中所述重新分布基于执行最少数量的从所述第一到所述第二存储单元集合的复制操作。
11.一种用于部署计算基础结构的方法,所述方法包括将计算机可读代码集成到计算系统中,其中所述代码与所述计算系统结合能够执行以下操作将多个盘区存储在连接到所述计算系统的第一存储单元集合中;确定第二存储单元集合已连接到所述计算系统;以及将所述多个盘区分布在所述第一存储单元集合和所述第二存储单元集合内包含的所有存储单元中。
12.如权利要求11中所述的部署计算基础结构的方法,其中所述存储单元是RAID阵列,其中所述多个盘区均匀分布在所述第一RAID阵列集合和所述第二RAID阵列集合内包含的所有RAID阵列中,其中在将所述多个盘区分布到所有所述RAID阵列中时,任何盘区的移动都不超过一次,并且其中以最少的移动次数将所述多个盘区分布到所有所述RAID阵列中,并且其中所述多个盘区跨越卷。
13.如权利要求11中所述的部署计算基础结构的方法,其中所述第一存储单元集合包括多个现有的RAID阵列,其中所述第二存储单元集合包括新近添加的空RAID阵列,并且其中所述现有的和所述新近添加的RAID阵列共同构成了RAID阵列的总数,所述方法还包括通过将所述现有的RAID阵列数乘以所述RAID阵列的总数来确定结果;通过将所述多个盘区的数量除以所述结果来确定商;生成数量与所述商相等的组,其中将数量与所述结果相等的盘区分配给每个组;以及通过在所述总数的RAID阵列中均匀地重新分布分配给组的盘区来处理所述组。
14.如权利要求11中所述的部署计算基础结构的方法,其中所述多个盘区是第一多个盘区,其中所述第一和所述第二存储单元集合共同构成了存储单元的总数,所述方法还包括将第二多个盘区存储在所述第二存储单元集合中,其中所述第一和所述第二多个盘区构成了盘区的总数;通过将所述存储单元的总数平方来确定结果;通过将所述盘区的总数除以所述结果来确定商;生成数量与所述商相等的组,其中将数量与所述结果相等的盘区分配给每个组,并且其中每个组包括来自所述第一和所述第二存储单元集合的选定盘区;以及通过在所述总数的存储单元中均匀地重新分布分配给组的盘区来处理所述组。
15.如权利要求11中所述的部署计算基础结构的方法,其中所述第一和所述第二存储单元集合共同构成了存储单元的总数,其中所述方法还包括确定所述第一存储单元集合中的存储单元数与所述存储单元的总数的最小公倍数;生成存储单元组,其中将从所述多个盘区选择的数量为所述最小公倍数的盘区分配给每个组;通过在所述总数的存储单元中均匀地重新分布组的已分配盘区来处理所述组,其中所述重新分布基于执行最少数量的从所述第一到所述第二存储单元集合的复制操作。
全文摘要
本发明提供了一种方法、系统和制品,其中在连接到控制器的第一存储单元集合中存储多个盘区。确定第二存储单元集合已连接到所述控制器。将所述多个盘区分布在所述第一存储单元集合和所述第二存储单元集合内包含的所有存储单元中。
文档编号G06F3/06GK1971499SQ200610139310
公开日2007年5月30日 申请日期2006年9月22日 优先权日2005年11月23日
发明者B·麦克纳特, J·S·海登二世 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1