CN100561416C - 再平衡条带盘数据的方法和系统 - Google Patents

再平衡条带盘数据的方法和系统 Download PDF

Info

Publication number
CN100561416C
CN100561416C CNB2006101393107A CN200610139310A CN100561416C CN 100561416 C CN100561416 C CN 100561416C CN B2006101393107 A CNB2006101393107 A CN B2006101393107A CN 200610139310 A CN200610139310 A CN 200610139310A CN 100561416 C CN100561416 C CN 100561416C
Authority
CN
China
Prior art keywords
storage unit
panel
group
sum
raid
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CNB2006101393107A
Other languages
English (en)
Other versions
CN1971499A (zh
Inventor
B·麦克纳特
J·S·海登二世
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1971499A publication Critical patent/CN1971499A/zh
Application granted granted Critical
Publication of CN100561416C publication Critical patent/CN100561416C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/1096Parity calculation or recalculation after configuration or reconfiguration of the system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2206/00Indexing scheme related to dedicated interfaces for computers
    • G06F2206/10Indexing scheme related to storage interfaces for computers, indexing schema related to group G06F3/06
    • G06F2206/1012Load balancing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种方法、系统和制品,其中在连接到控制器的第一存储单元集合中存储多个盘区。确定第二存储单元集合已连接到所述控制器。将所述多个盘区分布在所述第一存储单元集合和所述第二存储单元集合内包含的所有存储单元中。

Description

再平衡条带盘数据的方法和系统
技术领域
本发明涉及用于再平衡条带盘数据的方法、系统和制品。
背景技术
在连接到多个硬盘的计算机中,数据条带化(也称为盘条带化)是将数据体划分为条带并在多个硬盘上分散所述条带的过程。
某些系统可以在独立磁盘冗余阵列(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的盘区组织成2X3=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中示出或指出的数据结构和组件被描述为具有特定类型的信息。在备选实施例中,可以不同地构造所述数据结构和组件,并且与图中示出或指出的数据结构和组件相比,可以具有更少的、更多的或不同的字段或不同的功能。因此,出于说明和描述目的提供了以上实施例的描述。其并非旨在是穷举的或将所述实施例限于已披露的精确形式。根据上述教导,可以做出许多修改和变型。

Claims (10)

1.一种再平衡条带盘数据的方法,所述方法包括:
将多个盘区存储在连接到控制器的第一存储单元集合中;
确定第二存储单元集合已连接到所述控制器;以及
将所述多个盘区分布在所述第一存储单元集合和所述第二存储单元集合内包含的所有存储单元中,其中在将所述多个盘区分布到所有所述存储单元中时,任何盘区的移动都不超过一次。
2.如权利要求1中所述的方法,其中所述存储单元是RAID阵列,其中所述多个盘区均匀分布在所述第一RAID阵列集合和所述第二RAID阵列集合内包含的所有RAID阵列中,并且其中以最少的移动次数将所述多个盘区分布到所有所述RAID阵列中,并且其中所述多个盘区跨越卷。
3.如权利要求1中所述的方法,其中所述第一存储单元集合包括多个现有的RAID阵列,其中所述第二存储单元集合包括新近添加的空RAID阵列,并且其中所述现有的和所述新近添加的RAID阵列共同构成了RAID阵列的总数,所述方法还包括:
通过将所述现有的RAID阵列数乘以所述RAID阵列的总数来确定结果;
通过将所述多个盘区的数量除以所述结果来确定商;
生成数量与所述商相等的组,其中将数量与所述结果相等的盘区分配给每个组;以及
通过在所述总数的RAID阵列中均匀地重新分布分配给组的盘区来处理所述组。
4.如权利要求1中所述的方法,其中所述多个盘区是第一多个盘区,其中所述第一和所述第二存储单元集合共同构成了存储单元的总数,所述方法还包括:
将第二多个盘区存储在所述第二存储单元集合中,其中所述第一和所述第二多个盘区构成了盘区的总数;
通过将所述存储单元的总数平方来确定结果;
通过将所述盘区的总数除以所述结果来确定商;
生成数量与所述商相等的组,其中将数量与所述结果相等的盘区分配给每个组,并且其中每个组包括来自所述第一和所述第二存储单元集合的选定盘区;以及
通过在所述总数的存储单元中均匀地重新分布分配给组的盘区来处理所述组。
5.如权利要求1中所述的方法,其中所述第一和所述第二存储单元集合共同构成了存储单元的总数,其中所述方法还包括:
确定所述第一存储单元集合中的存储单元数与所述存储单元的总数的最小公倍数;
生成存储单元组,其中将从所述多个盘区选择的数量为所述最小公倍数的盘区分配给每个组;
通过在所述总数的存储单元中均匀地重新分布组的已分配盘区来处理所述组,其中所述重新分布基于执行最少数量的从所述第一到所述第二存储单元集合的复制操作。
6.一种连接到第一存储单元集合并且能够连接到一组第二存储单元集合的系统,所述系统包括:
将多个盘区存储在所述第一存储单元集合中的装置;
确定所述第二存储单元集合已连接到所述系统的装置;以及
将所述多个盘区分布在所述第一存储单元集合和所述第二存储单元集合内包含的所有存储单元中的装置,其中在将所述多个盘区分布到所有所述存储单元中时,任何盘区的移动都不超过一次。
7.如权利要求6中所述的系统,其中所述存储单元是RAID阵列,其中所述多个盘区均匀分布在所述第一RAID阵列集合和所述第二RAID阵列集合内包含的所有RAID阵列中,其中在将所述多个盘区分布到所有所述RAID阵列中时,任何盘区的移动都不超过一次,并且其中以最少的移动次数将所述多个盘区分布到所有所述RAID阵列中,并且其中所述多个盘区跨越卷。
8.如权利要求6中所述的系统,其中所述第一存储单元集合包括多个现有的RAID阵列,其中所述第二存储单元集合包括新近添加的空RAID阵列,其中所述现有的和所述新近添加的RAID阵列共同构成了RAID阵列的总数,并且其中还包括:
通过将所述现有的RAID阵列数乘以所述RAID阵列的总数来确定结果的装置;
通过将所述多个盘区的数量除以所述结果来确定商的装置;
生成数量与所述商相等的组,其中将数量与所述结果相等的盘区分配给每个组的装置;以及
通过在所述总数的RAID阵列中均匀地重新分布分配给组的盘区来处理所述组的装置。
9.如权利要求6中所述的系统,其中所述多个盘区是第一多个盘区,其中所述第一和所述第二存储单元集合共同构成了存储单元的总数,并且其中还包括:
将第二多个盘区存储在所述第二存储单元集合中的装置,其中所述第一和所述第二多个盘区构成了盘区的总数;
通过将所述存储单元的总数平方来确定结果的装置;
通过将所述盘区的总数除以所述结果来确定商的装置;
生成数量与所述商相等的组的装置,其中将数量与所述结果相等的盘区分配给每个组,并且其中每个组包括来自所述第一和所述第二存储单元集合的选定盘区;以及
通过在所述总数的存储单元中均匀地重新分布分配给组的盘区来处理所述组的装置。
10.如权利要求6中所述的系统,其中所述第一和所述第二存储单元集合共同构成了存储单元的总数,并且其中还包括:
确定所述第一存储单元集合中的存储单元数与所述存储单元的总数的最小公倍数的装置;
生成存储单元组的装置,其中将从所述多个盘区选择的数量为所述最小公倍数的盘区分配给每个组;
通过在所述总数的存储单元中均匀地重新分布组的已分配盘区来处理所述组的装置,其中所述重新分布基于执行最少数量的从所述第一到所述第二存储单元集合的复制操作。
CNB2006101393107A 2005-11-23 2006-09-22 再平衡条带盘数据的方法和系统 Active CN100561416C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/286,482 2005-11-23
US11/286,482 US7404036B2 (en) 2005-11-23 2005-11-23 Rebalancing of striped disk data

Publications (2)

Publication Number Publication Date
CN1971499A CN1971499A (zh) 2007-05-30
CN100561416C true CN100561416C (zh) 2009-11-18

Family

ID=38054810

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2006101393107A Active CN100561416C (zh) 2005-11-23 2006-09-22 再平衡条带盘数据的方法和系统

Country Status (4)

Country Link
US (3) US7404036B2 (zh)
JP (1) JP4856515B2 (zh)
CN (1) CN100561416C (zh)
TW (1) TWI408549B (zh)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7841533B2 (en) 2003-11-13 2010-11-30 Metrologic Instruments, Inc. Method of capturing and processing digital images of an object within the field of view (FOV) of a hand-supportable digitial image capture and processing system
US7404036B2 (en) * 2005-11-23 2008-07-22 International Business Machines Corporation Rebalancing of striped disk data
JP5379956B2 (ja) * 2007-03-19 2013-12-25 株式会社日立製作所 ストレージ装置及び記憶領域配置方法
JP5332364B2 (ja) * 2007-10-16 2013-11-06 富士通株式会社 分散ストレージ管理プログラム、分散ストレージ管理装置、および分散ストレージ管理方法
WO2010047710A1 (en) * 2008-10-23 2010-04-29 Hewlett-Packard Development Company, L.P. Direct attached storage system and method for implementing multiple simultaneous storage schemes
CN102511030B (zh) * 2009-04-23 2015-05-20 株式会社日立制作所 计算机系统及其控制方法
JP5781925B2 (ja) 2009-04-23 2015-09-24 株式会社日立製作所 計算機システム及びその制御方法
US8230189B1 (en) * 2010-03-17 2012-07-24 Symantec Corporation Systems and methods for off-host backups of striped volumes
US8527677B1 (en) * 2010-06-25 2013-09-03 Altera Corporation Serial communications links with bonded first-in-first-out buffer circuitry
US8307014B2 (en) 2010-08-25 2012-11-06 International Business Machines Corporation Database rebalancing in hybrid storage environment
WO2012090239A1 (en) * 2010-12-27 2012-07-05 Hitachi, Ltd. Storage system and management method of control information therein
US8972676B2 (en) * 2011-01-28 2015-03-03 International Business Machines Corporation Assigning device adaptors and background tasks to use to copy source extents to target extents in a copy relationship
US9015411B2 (en) * 2011-12-02 2015-04-21 Compellent Technologies System and method for unbalanced raid management
JP6056769B2 (ja) 2011-12-19 2017-01-11 富士通株式会社 ストレージシステム、データリバランシングプログラム及びデータリバランシング方法
KR101734160B1 (ko) * 2016-04-28 2017-05-11 주식회사 디에이아이오 작업부하 편중을 완화하는 저장 장치
JP6253752B1 (ja) * 2016-11-29 2017-12-27 株式会社東芝 階層化ストレージシステム
US10678643B1 (en) * 2017-04-26 2020-06-09 EMC IP Holding Company LLC Splitting a group of physical data storage drives into partnership groups to limit the risk of data loss during drive rebuilds in a mapped RAID (redundant array of independent disks) data storage system
US10324662B2 (en) * 2017-08-28 2019-06-18 International Business Machines Corporation Rebalancing of the first extents of logical volumes among a plurality of ranks
CN109725830B (zh) * 2017-10-27 2022-02-08 伊姆西Ip控股有限责任公司 管理独立磁盘冗余阵列的方法、设备和存储介质
US10628061B2 (en) 2018-04-27 2020-04-21 Veritas Technologies Llc Systems and methods for rebalancing striped information across multiple storage devices
CN110737402B (zh) * 2018-07-20 2023-12-08 伊姆西Ip控股有限责任公司 管理存储系统的方法、设备和计算机存储介质
US10496316B1 (en) * 2018-10-31 2019-12-03 EMC IP Holding Company LLC Forming storage containers from extents having different widths within a group of storage devices
CN111858188A (zh) * 2019-04-29 2020-10-30 伊姆西Ip控股有限责任公司 存储管理的方法、设备和计算机程序产品
US11023147B2 (en) * 2019-10-10 2021-06-01 EMC IP Holding Company LLC Mapping storage extents into resiliency groups
CN112748862A (zh) * 2019-10-31 2021-05-04 伊姆西Ip控股有限责任公司 用于管理盘的方法、电子设备和计算机程序产品
CN112748864B (zh) * 2019-10-31 2024-04-19 伊姆西Ip控股有限责任公司 分配存储盘的方法、电子设备和计算机程序产品
CN115220646A (zh) * 2021-04-21 2022-10-21 伊姆西Ip控股有限责任公司 用于管理存储系统的方法、设备和计算机程序产品

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5502836A (en) * 1991-11-21 1996-03-26 Ast Research, Inc. Method for disk restriping during system operation
US5809224A (en) * 1995-10-13 1998-09-15 Compaq Computer Corporation On-line disk array reconfiguration
US5758118A (en) * 1995-12-08 1998-05-26 International Business Machines Corporation Methods and data storage devices for RAID expansion by on-line addition of new DASDs
JP3170455B2 (ja) * 1996-05-27 2001-05-28 インターナショナル・ビジネス・マシーンズ・コーポレ−ション データ記憶システムにおけるデータの再配置方法、そのシステムに記憶されたデータのアクセス方法及びデータ記憶システム
JP3748631B2 (ja) * 1996-08-19 2006-02-22 株式会社エクシング ディスクアレイにおける論理記憶領域統合方法およびディスクアレイ装置
US6061761A (en) * 1997-10-06 2000-05-09 Emc Corporation Method for exchanging logical volumes in a disk array storage device in response to statistical analyses and preliminary testing
US5933834A (en) * 1997-10-16 1999-08-03 International Business Machines Incorporated System and method for re-striping a set of objects onto an exploded array of storage units in a computer system
US6405284B1 (en) * 1998-10-23 2002-06-11 Oracle Corporation Distributing data across multiple data storage devices in a data storage system
JP2000242434A (ja) * 1998-12-22 2000-09-08 Hitachi Ltd 記憶装置システム
US6425052B1 (en) * 1999-10-28 2002-07-23 Sun Microsystems, Inc. Load balancing configuration for storage arrays employing mirroring and striping
US6629202B1 (en) * 1999-11-29 2003-09-30 Microsoft Corporation Volume stacking model
US6651154B1 (en) * 2000-07-11 2003-11-18 International Business Machines Corporation Method, system, and program for expanding the storage space in an array of storage units
US6862692B2 (en) * 2001-01-29 2005-03-01 Adaptec, Inc. Dynamic redistribution of parity groups
US20020124137A1 (en) * 2001-01-29 2002-09-05 Ulrich Thomas R. Enhancing disk array performance via variable parity based load balancing
US20020161846A1 (en) * 2001-01-29 2002-10-31 Ulrich Thomas R. Data path controller architecture
US6871263B2 (en) * 2001-08-28 2005-03-22 Sedna Patent Services, Llc Method and apparatus for striping data onto a plurality of disk drives
JP2003216348A (ja) * 2001-11-14 2003-07-31 Hitachi Ltd 記憶装置の管理方法および管理装置
WO2003077111A1 (fr) * 2002-03-13 2003-09-18 Fujitsu Limited Controleur pour dispositif raid
US7159150B2 (en) * 2002-12-31 2007-01-02 International Business Machines Corporation Distributed storage system capable of restoring data in case of a storage failure
JP4215606B2 (ja) * 2003-09-24 2009-01-28 日本電気株式会社 ディスクアレイ装置および記憶容量拡張方法ならびにプログラム
US7366837B2 (en) * 2003-11-24 2008-04-29 Network Appliance, Inc. Data placement technique for striping data containers across volumes of a storage system cluster
TWI256612B (en) * 2003-12-25 2006-06-11 Yung-Chau Chr RAID system with fail over and load balance
US7617370B2 (en) * 2005-04-29 2009-11-10 Netapp, Inc. Data allocation within a storage system architecture
US7404036B2 (en) * 2005-11-23 2008-07-22 International Business Machines Corporation Rebalancing of striped disk data
US20070143541A1 (en) * 2005-12-19 2007-06-21 Lsi Logic Corporation Methods and structure for improved migration of raid logical volumes

Also Published As

Publication number Publication date
JP4856515B2 (ja) 2012-01-18
TW200805135A (en) 2008-01-16
US7404036B2 (en) 2008-07-22
TWI408549B (zh) 2013-09-11
JP2007149068A (ja) 2007-06-14
CN1971499A (zh) 2007-05-30
US7818501B2 (en) 2010-10-19
US20080244178A1 (en) 2008-10-02
US20080235449A1 (en) 2008-09-25
US20070118689A1 (en) 2007-05-24

Similar Documents

Publication Publication Date Title
CN100561416C (zh) 再平衡条带盘数据的方法和系统
CN104903842B (zh) 用于在非易失性存储器中的异步裸芯操作的方法和系统
CN101454745B (zh) 用于raid管理、重新分配以及重新分段的系统和方法
CN100371874C (zh) 具有可重新配置的数据通路的盘阵列控制器及方法
CN104094254B (zh) 用于非平衡raid管理的系统和方法
Boysen et al. Sequencing of picking orders in mobile rack warehouses
CN100380307C (zh) 在存储系统中配置卷的方法和系统
CN105573660A (zh) 用于改善分簇磁盘阵列的性能的方法和装置
CN101971168A (zh) 动态量化和提高分布式数据存储系统的可靠性
CN101587425A (zh) 一种增加独立磁盘冗余阵列冗余性的方法及装置
CN101604337A (zh) 一种哈希表项存储、查找装置及方法
CN103562886B (zh) 在多盘主机中隔离虚拟机i/o的方法和系统
CN106031827A (zh) 基于redis的游戏服务器数据存储、读取方法及系统
CN107729536A (zh) 一种数据存储方法和装置
JP6500505B2 (ja) 制御装置、制御方法、および制御プログラム
CN110058789A (zh) 用于管理存储系统的方法、存储系统以及计算机程序产品
KR20100004605A (ko) 네트워크 시스템 상에서의 작업 노드 선택방법 및 그시스템
CN113296702B (zh) 一种磁盘阵列扩容方法、装置、设备及存储介质
CN102043589B (zh) 磁盘阵列的扩容方法和系统
CN101174196A (zh) 变更运作中的磁盘阵列的等级的方法
Zhou et al. MDTUpdate: A multi-block double tree update technique in heterogeneous erasure-coded clusters
CN103838518B (zh) 存储介质库中存储介质的高效移动的方法和装置
US9741025B2 (en) Point of sale data systems and methods
CN105224261A (zh) 一种块虚拟化阵列的实现方法及装置
US20180121119A1 (en) Combination storage and processing device

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: HUAWEI TECHNOLOGY CO., LTD.

Free format text: FORMER OWNER: INTERNATIONAL BUSINESS MACHINES CORPORATION

Effective date: 20130305

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; TO: 518129 SHENZHEN, GUANGDONG PROVINCE

TR01 Transfer of patent right

Effective date of registration: 20130305

Address after: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee after: Huawei Technologies Co., Ltd.

Address before: American New York

Patentee before: International Business Machines Corp.