用于改善性能的raid卷和驱动器组之间松耦合的制作方法

文档序号:6594783阅读:188来源:国知局
专利名称:用于改善性能的raid卷和驱动器组之间松耦合的制作方法
用于改善性能的RAID卷和驱动器组之间松耦合
背景技术
驱动器组可以是用来存储卷数据的相关驱动器的集合。驱动器组可被指定为定义 了数据结构和冗余模型的RAID等级。RAID卷可以是目标为数据I/O的主机可访问逻辑单 元。驱动器组可包含多个卷。所述驱动器组内的所有卷使用相同的物理驱动器集和以相同 RAID等级运行。驱动器组的驱动器可包括不同容量。所述卷组的可用容量可以是基于所述组中最 小驱动器的RAID因数容量,除了为存储阵列配置数据保留的区域。驱动器组的可用容量可 以是所述可用容量减去任意已定义卷的容量。可用的驱动器组容量可被用来创建附加卷或 扩展已有卷的容量。RAID卷可在所述驱动器组中的每一个驱动器上占用区域。RAID卷的区域都可以 具有自所述驱动器的开端的逻辑块地址(LBAs)中相同偏移量以及逻辑块地址(LBAs)中相 同长度。每一个可以是给定卷的部分的这样区域可被称为片段。卷的片段的集合可被称为 卷幅度。驱动器组也可具有一个或几个可用的幅度,每一个组成所述驱动器上未使用容量 的区域,具有相同偏移量和长度。在一个驱动器组内的物理驱动器的数量可被称为驱动器组的宽度。所述宽度影响 了在所述驱动器组内RAID卷的性能和可访问性。所述驱动器组越宽,更多的物理主轴可被 并行展开并且这提升了特定主机I/O轮廓的性能。但是,所述驱动器组越宽,其物理驱动器 之一会发生故障的风险可能越高。段大小可以是在控制器将数据写给驱动器组的下一个驱动器之前写给单个驱动 器的数据量。条带可以是段的集合,一个在所述驱动器组的每一个驱动器上,所有都具有从 它们的驱动器开端的相同偏移量。因此,也可将卷视为条带的集合。图1和图2描述了由n+1个驱动器组成的驱动器组。卷B可构成n+1个片段,B_0, Β-1···Β-η。每一个片段包含多个段。例如,片段B-O可包含段-B(V段-B(V··段-B0k。条带 跨越这些驱动器,例如,段-BO2、段112夂段-Bn2组成条带化。卷B可由k+Ι个条带构成。这样的RAID布局从某种意义上可以是算法的,其可以是一种简单的计算以确定 哪一个物理驱动器LBA在所述驱动器组的哪一个驱动器上,对应于特定的RAID卷的虚拟 LBA。当所述驱动器组的宽度定义了所述RAID卷的宽度时,所述RAID卷也可被认为是与所 述驱动器组紧耦合。驱动器组中的一个物理驱动器可能完全发生故障,因此其上的数据会不再是能被 访问的。如果所述驱动器组可包括具有冗余的RAID等级(S卩,非RAID 0驱动器组),在所述 剩余驱动器上仍具有足够的数据留下使得所述主机可依旧访问所述数据。但是,除了 RAID 6和一些特定的RAID 1/10情况,所述驱动器组可不再包括冗余直到所述故障驱动器被替 换以及所述数据被重建。对于RAID 1/10,此重建可构成将所有数据从镜像驱动器备份到替换的驱动器。对 于RAID 5,此重建可构成从所述驱动器组中残留驱动器读出每一个条带(即,驱动器组宽 度-1段),使用奇偶校验来计算所述丢失的段,以及将恢复段写入所述替换的驱动器中。
相同方式可被用于在RAID 6 P+Q驱动器组中的单个驱动器故障,除了由于冗余信 息从驱动器组宽度-2段处可能对所述丢失段进行计算时。在所述故障驱动器被替换以及完成所述重建之前,第二驱动器故障将引起在所述 驱动器组中的数据的完全丢失,除了所述驱动器组被配置成容忍多个驱动器故障(例如, RAID 6)。存储阵列可提供在所述存储阵列中的未使用物理驱动器池作为热备份。当一个物 理驱动器在具有冗余RAID等级(即,非RAID 0)的驱动器组中发生故障时,所述存储阵列 可自动从所述热备份驱动器池处分配一个替换驱动器并在所述热备份驱动器上执行所述 丢失数据的重建。一旦所述故障驱动器被替换,所述热备份驱动器的内容会被简单地复制给所述替 换驱动器,被称为回写的过程。当回写完成时,所述热备份可被返回给所述热备份池。所有指向经历所述重建的驱动器的写入形成了对所述过程的性能瓶颈。因此,在 受影响的驱动器组中对任意RAID卷进行驱动器重建的过程中可能存在明显的性能衰退。另外,在物理驱动器大小保持增长时,单个驱动器的重建时间显著增加。SATA驱动 器当前可能具有超过ITB的容量以及所有这些数据将必须被重建和被写入单个热备份/替 换驱动器中。这延长了主机将在受影响驱动器组中经历RAID卷的性能衰退,其在驱动器组 可能没有冗余(例如,对于RAID 5驱动器组)处也延长了时间。

发明内容
本发明描述了一种用于在廉价磁盘冗余阵列(RAID)内分配卷片段的系统和方法。一种在廉价磁盘冗余阵列(RAID)内分配卷片段的方法,可包括(a)将第一逻辑 卷的一个或多个卷片段与一驱动器组中的第一驱动器集关联;以及(b)将第二逻辑卷的一 个或多个卷片段与在所述驱动器组中的第二驱动器集关联,其中所述驱动器组中的所述第 一驱动器集包括至少一个不是所述驱动器组中所述第二驱动器集的成员的驱动器。一种在廉价磁盘冗余阵列(RAID)内分配卷片段的系统,可包括(a)将第一逻辑 卷的一个或多个卷片段与在一驱动器组中的第一驱动器集关联的构件;以及(b)将第二逻 辑卷的一个或多个卷片段与在所述驱动器组中的第二驱动器集关联的构件,其中所述驱动 器组中的所述第一驱动器集包括至少一个不是所述驱动器组中所述第二驱动器集的成员 的驱动器。应当可以理解,不管是上述概括的描述还是后面详细的描述都仅仅是示例性和说 明性的,并不会是对所请求发明的必要限制。包括并组成说明书一部分的附图揭示了本发 明的实施例,并和说明书一起用来解释本发明的原理。


通过参考附图,本发明的众多优点可以被本领域的技术人员更好地理解图1示出了 RAID的高等级系统图。图2示出了 RAID的高等级系统图。图3示出了允许卷片段分配给RAID的高等级系统图。
图4示出了 RAID的高等级系统图。图5示出了 RAID的高等级系统图。图6示出了 RAID的高等级系统图。图7示出了高等级操作流程图。图8示出了高等级操作流程图。图9示出了高等级操作流程图。图10示出了高等级操作流程图。图11示出了高等级操作流程图。图12示出了高等级操作流程图。图13示出了高等级操作流程图。图14示出了高等级操作流程图。
具体实施例方式在下面具体描述中,可以参考所附图,其组成了此处的一部分。在所述附图中,相 同的符号通常识别为相同的组件,除非上下文另有规定。在具体实施方式
、附图和权利要求 中所述的说明性实施例不是限制性的。可采用其它实施例,以及进行不同的变化,而不脱离 此处所公开主题的精神和范围。参照图3,示出了包括计算装置301、RAID控制器302以及RAID 303的大容量存 储系统300的图示表达。RAID控制器302可包括卷管理电路/软件,其中RAID控制器302 能够处理计算装置301的读/写请求,所述请求访问RAID 303上配置的各种逻辑卷。所述 RAID 303可包括具有η个驱动器的驱动器组。可将所述RAID 303的RAID卷片段与所述驱动器组进行松耦合,相对于先前所述 的1:1耦合。下面会在实例中对其进行说明参照图4,三个RAID卷(例如,卷A,B和C)可被放置在6个驱动器的驱动器组上。 每一个RAID卷可包括三个卷片段(例如,分别地,卷片段A-0、A-I和A-2,卷片段B_0、B-I 和B-2以及卷片段C-O、C-I和C-2)。每一个RAID卷可具有一个相关的RAID卷宽度。RAID卷宽度可被定义为在一个 RAID卷中片段的数量,不考虑在驱动器组中驱动器的数量。其可以是以下情况宽度(RAID卷)彡宽度(驱动器组)例如,如图3所示,所述RAID 303可具有的驱动器组宽度为6 (例如,驱动器0到 6)以及卷宽度为3。RAID 303可以是算法布局。除了传统的驱动器组的相关性,RAID卷可以与每一个 其上可包括一片段的物理驱动器相关。例如,如图3所示,RAID卷A可与驱动器0、驱动器 1和驱动器2相关,而卷B可与驱动器2、驱动器3和驱动器4相关。每一个片段也可与从其各自物理驱动器的开端处的自身偏移量相关。RAID卷中的 各种不同片段在所述RAID卷大小的增长中可具有从它们相应物理驱动器的开端处的不同 偏移量。例如,如图3所示,卷片段B-0、卷片段B-I和卷片段B-2具有给定的卷片段大小, 例如1Mb,可在驱动器3、4和2中分别具有0、0和1Mb的偏移量。进一步地,在同一驱动器组内的各个卷可具有不同的片段大小。例如,卷A可包括大小为1Mb的卷片段,而卷B可包括大小为2Mb的卷片段。这样,卷片段C-I可具有1Mb的 偏移量,而卷片段C-2可具有2Mb的偏移量。从此偏移量信息,对应于特定RAID卷虚拟LBA的特定物理驱动器上的物理LBA可 被计算出来。这样的片段分布可允许用户使用可支持变化的少于或等于所述驱动器组宽度的 RAID卷宽度的给定RAID等级来定义较宽的组。RAID卷宽度和驱动器组宽度之间的差异越 大,在所述驱动器组上的RAID卷片段的分布会越佳。当创建了 -RAID卷时,可分布这些片段使得每一个物理驱动器可包括与所述驱动 器组中任意其它驱动器不同的片段组合。更正式地,在驱动器上的每一个片段可与其重建 集(旧)关联,所述重建集可以是包含在所述RAID卷中剩余片段的驱动器的集合。如果在 一驱动器中的片段的所有重建集不相交,所述目标驱动器中的每一个片段可与所述驱动器 上其它片段独立地被重建(即,驱动器重建可以并行方式处理)。如果在一个驱动器组中每一个驱动器上的所有片段具有不相交的重建集,所述驱 动器组可被认为是关于重建的完全不相交。这意味着无论哪一个驱动器发生故障,其所有 片段会由不相关驱动器集进行重建。再次参照图4,展现了一种理想的片段分布。在这样的分布中,没有物理驱动器可 包括作为所述驱动器组中的任意其它驱动器的相同片段组合。在这样的配置中如果驱动器 发生故障,将被读出以重建所述片段的驱动器数量将远大于所述RAID卷宽度。例如,如果2 个驱动器发生故障,驱动器0和驱动器1会包括用来重建片段A-2的片段(即片段A-O和 A-1),以及驱动器3和驱动器4会包括用来重建片段B-2的片段(即片段B-O和B-1)。这 样,在执行所述重建时,可从4个而不是2个驱动器中读出所述存储阵列。这样的配置可通过保持在驱动器2上的片段A-2和B-2的各自重建集(旧)进行 定义 RS (A-2) = {驱动器 0,驱动器 1}RS (B-2) = {驱动器 3,驱动器 4}在另一实施例中,先前所示的专用热备份方式的使用会被修改。例如,当在驱动 器组中的一个驱动器发生故障时,其片段可被重新分布在所述驱动器组的剩余驱动器范围 内,而不是被提供给单个专用的热备份。这可用于避免与来自多个卷的片段需要在同一热 备份上被重建的专用热备份相关的瓶颈。使用本发明,所述片段在可能时可在分离的驱动 器上被重建。进一步地,这样的重新分布确保了来自同一 RAID卷的两个片段不在同一物理 驱动器上结束。驱动器组可被认为具有的热备份覆盖率为1,当所述驱动器组中可存在充足的可 用容量使得在所述驱动器组中的任意驱动器可发生故障并使得所述驱动器组中仍会存在 充足幅度以保存所述故障驱动器的片段时。换句话说,如果具有最高可使用容量的驱动器 发生故障,所述系统仍将能够基于所述驱动器组中的剩余驱动器来重建所述驱动器的片 段,(即,所述驱动器组中的驱动器上具有充足可用幅度以保存在故障驱动器上的所有片 段)。而且,将保持一个足够保存在所述驱动器组中最大片段(不管所述片段会在哪一个驱 动器上)的可用幅度大小。驱动器组可被认为具有的热备份覆盖率为n,当所述驱动器组中的η个驱动器发生故障且在所述驱动器组中仍存在必要容量使得在所述驱动器组中可用幅度内可重新构 建所述故障驱动器中的所有片段时。注意这不一定意味着η个驱动器会同时发生故障而没 有数据丢失。例如,如果一个RAID 5驱动器组包括为2的热备份覆盖率,但最多2个负载 的驱动器包括来自相同RAID卷的片段以及2个驱动器都发生故障,使得RAID卷会不再能 被访问,无论所述驱动器组具有多大的可用容量。用户可为一驱动器组定义所需的热备份覆盖率,S卩,1,2···η。当可创建卷时,所述 存储阵列会分布片段使得所述分布会尽可能地接近理想,但是在此限制下,已配置的热备 份覆盖率会被保持。如果所述RAID卷的创建会减少所述热备份覆盖率,会警告并要求所述 用户清楚地认识所述RAID卷创建行为带来的附加后果。另外,当来自执行所述重建的负载会被分布在更多驱动器范围内,而不是采用传 统方式以使得可以并行方式来执行重建时,RAID卷进行重建的性能衰退将显著减少。驱动器重建可被认为是并行的,如果其所有片段的重建可发生在所述驱动器组中 不同驱动器上。驱动器重建可被认为是完全并行的,如果其可以是并行且无任何驱动器上 的片段将被以与所述驱动器的片段的重建集内驱动器相重叠的方式进行重建。这意味着如 果一个驱动器发生故障,每一个片段会以在读和写方面都独立于所述驱动器上所有其它片 段的方式被重建。例如,参照图5,展现了一种完全并行分布的实例。在驱动器2发生故障的情况中, 片段A-2可在驱动器5上根据片段A-O和A-2 (分别位于驱动器0和驱动器1上)来重建, 驱动器5不参与任意其它正在进行的片段重建。相同地,片段B-2可在驱动器6上根据片 段B-O和B-I (分别位于驱动器3和驱动器4上)来重建。以这样的配置,所给驱动器仅仅 被用于读操作或写操作。参照图6,展现了一种部分并行分布的实例。在驱动器2发生故障的情况中,片段 A-2可在驱动器5上根据片段A-O和A-I (分别位于驱动器0和驱动器1上)来重建,驱动 器5不参与任意其它正在进行的片段重建。相同地,片段B-2可在驱动器1上根据片段B-O 和B-I (分别位于驱动器3和驱动器4上)来重建。但是,驱动器1也被读出以重建片段 A-2,因此在所述分布中的重建仅仅是部分并行。在RAID卷宽度和驱动器组宽度之间的差别越大,可采用允许完全并行驱动重建 的配置的可能性越大。额外的驱动器会被添加给驱动器组以增加容量和宽度,因此重建可 尽可能快地进行。无论何时一驱动器被添加给驱动器组,所述存储阵列可从现有驱动器中选出片段 并将它们移送给新驱动器,以更接近于在保持用户限定热备份覆盖率同时展现完全并行特 性的理想片段分布。注意也有可能限定RAID卷,以使其布局降低到最初紧耦合RAID布局。例如,如果 RAID 5驱动器组可包括3个未使用的ITB驱动器以及用户将RAID卷的宽度定义为3和容 量=3xlTB-3x为配置数据保留的容量。在这样情况中,所述存储阵列可为每一个ITB的驱 动器分配一个卷片段,且任意重建会完全类似传统布局的方式进行。因此,为了完全利用本 发明特征的优点,用户应定义一个卷宽度使得每一个片段会小到能与来自其它卷的其它片 段共享驱动器。图7描述了一种展现与RAID内分配卷片段相关的示范操作的操作流程700。在图7和随后附图中包括了各种操作流程的实例,可参照图3-6的上述实例和/或其它实例和语 境来提供讨论和说明。但是,应当理解,所述操作流程可被执行于多个其它环境和语境,和/ 或在图3-6的修改版本中。同样,虽然以所示顺序来展现所述各种操作流程,应当理解,所 述各种操作可被执行于其它而不是那些所示的顺序,或可被同时地执行。在开始的操作后,所述操作710描述了将第一逻辑卷的一个或多个卷片段与驱动 器组内的第一驱动器集相关。例如,如图3-6所示,RAID控制器302可使得所述RAID 303 将一个或多个卷片段(例如,卷片段A-0、A-1和A-2)与第一驱动器集(例如,分别地,驱动 器0、驱动器1和驱动器2、相关。操作720描述了将第二逻辑卷的一个或多个卷片段与所述驱动器组内的第二驱 动器集相关。例如,如图3-6所示,所述RAID控制器302可使得所述RAID 303将一个或多 个卷片段(例如,卷片段B-0、B-1和B-2)与第二驱动器集(例如,分别地,驱动器3、驱动 器4和驱动器幻相关。所述第一驱动器集(例如,与卷B相关的驱动器0、驱动器1和驱动器2、可包括至 少一个驱动器(例如,驱动器0),其不是所述驱动器组内的第二驱动器集的成员(例如,与 卷B相关的驱动器3、驱动器4和驱动器2)。图8描述了图7的示范性操作流程700的替换实施例。图8描述了其中所述相关 操作710可包括至少一个附加操作的示范性实施例。附加操作可包括操作802、操作804和 /或操作806。操作802描述了将所述第一驱动器集上的存储空间分配给第一逻辑卷。例如,如 图3-6所示,所述RAID控制器302可使得所述RAID 303分配第一驱动器集(例如,驱动器 0、驱动器1和驱动器幻上的存储空间以存储与给定逻辑卷(例如,卷A)相关的数据。所 述RAID控制器302可将各种存储器地址指定为给定卷的成员地址。操作804描述了将卷片段大小指定给所述第一逻辑卷的一个或多个卷片段。例 如,如图3-6所示,所述RAID控制器302可使得所述RAID 303将卷片段(例如,卷片段B-2) 指定为一存储器大小(例如,1Mb)。在特定卷中的一个或多个卷片段的卷片段大小可具有 相同大小(例如,1Mb)。所有卷(例如,卷A、卷B和卷C)的卷片段大小可具有相同大小(例 如,1Mb)。可替换地,在同一驱动器组中的不同卷可具有不同大小的片段(例如,卷A可具有 大小为1MB的卷片段,而卷B可具有大小为2MB的卷片段)。所述RAID控制器302可保持 每一个卷的元数据,跟踪它们各自片段、大小和每一个片段离所述驱动器开端处的偏移量 (以区段/逻辑块)。操作806描述了将物理驱动器偏移量指定给所述第一逻辑卷的一个或多个卷片 段。例如,如图3-6所示,所述RAID控制器302可使得所述RAID 303为卷片段指定物理驱 动器偏移量。所述偏移量可定义卷片段的第一地址距离驱动器物理开端的偏移。所述偏移 量可包括多个卷片段大小增量,卷片段的第一地址通过所述大小增量来偏移物理驱动器的 开端。例如,如图3所示,卷片段B-2可具有关于驱动器2开端的1Mb偏移量。所述给定逻辑卷的第一卷片段(例如,卷片段B-O可具有为0的物理驱动器偏移 量)的物理驱动器偏移量可不同于所述逻辑卷的第二卷片段(例如,卷片段B-2可具有为 1的物理驱动器偏移量)的物理驱动器偏移量。
图9描述了图7的示范性操作流程700的替换实施例。图9描述了其中所述操作 流程700可包括至少一个附加操作的示范性实施例。附加操作可包括操作910。操作910描述了将第一逻辑卷的一个或多个卷片段重建给所述驱动器组内第二 驱动器集的一个或多个驱动器。例如,如图3-6所示,当包括一个或多个卷(例如,卷B)的 卷片段的驱动器(例如,驱动器幻发生故障时,所述RAID控制器302可使得所述RAID 303 将一个或多个卷片段(例如,卷片段B-2)重建给不包括所述目标卷的另一片段的驱动器 (例如,仅仅包含卷A片段的驱动器1)。图10描述了图7的示范性操作流程700的替换实施例。图10描述了其中所述操 作流程700可包括至少一个附加操作的示范性实施例。附加操作可包括操作1010。操作1010描述了将第一逻辑卷的一个或多个卷片段重建给不被包括在所述第一 驱动器集或所述第二驱动器集中的一个或多个驱动器。例如,如图3-6所示,当包括一个或 多个卷(例如,卷A和卷B)的卷片段的驱动器(例如,驱动器2)发生故障时,所述RAID控 制器302可使得所述RAID 303将所述故障驱动器的一个或多个卷片段(例如,卷片段A-2 和卷片段B-幻重建给不包括所述故障驱动器的卷的另一片段的驱动器(例如,一个或多个 卷片段A-2和卷片段B-2可被重建给仅仅包含卷C片段的驱动器5)。图11描述了图7的示范性操作流程700的替换实施例。图11描述了其中所述操 作流程700可包括至少一个附加操作的示范性实施例。附加操作可包括操作1110。操作1110描述了定义一个热备份覆盖率值。例如,如图3-6所示,所述RAID控制 器302可接收来自所述计算装置301的输入(例如,用户输入)或可包括用来自动定义热 备份覆盖率值的内部电路系统。驱动器组可被认为具有热备份覆盖率为n,当所述驱动器组 中的η个驱动器发生故障且在所述驱动器组中仍存在必要容量使得在所述驱动器组中可 用幅度内可重新构建所述故障驱动器中的所有片段时。例如,如图3-6所示,所述RAID 303 可具有为1的热备份覆盖率,当为具有最高使用的容量的驱动器(例如,驱动器0、驱动器 2和驱动器3)存在必要驱动器空间以用来重建给剩余驱动器时(例如,驱动器1、驱动器4 或驱动器5必须具有必要存储空间以提供驱动器0、驱动器2和驱动器3的重建)。进一步 地,足够保存在所述驱动器组中最大片段的可用幅度大小可被保持(例如,如果卷片段A-O 大于卷片段C-1,会需要与卷片段A至少相同大小的可用幅度)。驱动器组可被认为具有热 备份覆盖率为n,当所述驱动器组中的η个驱动器发生故障且在所述驱动器组中仍存在必 要容量使得在所述驱动器组中可用幅度内可重新构建所述故障驱动器中的所有片段时。图12描述了一种展现与RAID内分配卷片段相关的示范操作的操作流程1200。在 图12和随后附图中包括了各种操作流程的实例,可参照图3-6的上述实例和/或其它实例 和语境来提供讨论和说明。但是,应当理解,所述操作流程可被执行于多个其它环境和语 境,和/或在图3-6的修改版本中。同样,虽然以所示顺序来展现所述各种操作流程,应当 理解,所述各种操作可被执行于其它而不是那些所示的顺序,或可被同时地执行。在开始的操作后,所述操作1210描述了为第一逻辑卷的第一卷片段定义一重建 集。例如,如图3-6所示,所述RAID控制器302可使得所述RAID 303为第一逻辑卷的第一 卷片段定义一重建集。重建集可包括包含在上述RAID卷中剩余片段的驱动的集合。例如, 卷片段A-2的重建集可以是驱动器0和驱动器1。操作1220描述了根据所述第一逻辑卷的卷片段的重建集将第二逻辑卷的一卷片段指定给驱动器组中的一驱动器。例如,如图3-6所示,所述RAID控制器302可使得所述 RAID 303将第一逻辑卷的一个或多个卷片段(例如,卷片段A-0、A-1和A-2)指定给一个 或多个驱动器(例如,分别地,驱动器0、驱动器1和驱动器幻。所述RAID控制器302可使 得所述RAID 303将第二逻辑卷的一个或多个卷片段(例如,卷片段B-0、B-I和B-幻指定 给一个或多个驱动器使得所述第一逻辑卷和所述第二卷的卷片段的重叠最少。图13描述了图12的示范性操作流程1200的替换实施例。图13描述了其中所述 定义的操作1210可包括至少一个附加操作的示范性实施例。附加操作可包括操作1302。操作1302描述了定义在所述驱动器组中的包括与所述第一逻辑卷的第一卷片段 不同的所述第一逻辑卷的一个或多个卷片段的驱动器集。例如,如图3-6所示,所述RAID 控制器302可使得所述RAID 303为第一逻辑卷的第一卷片段定义一重建集。重建集可包 括包含了上述RAID卷中剩余片段的驱动器集。例如,卷片段A-2的重建集可以是驱动器0 和驱动器1。进一步地,在一驱动器组中的两个或多个卷的卷片段的重建集可以是不相交的 (例如,在所述驱动器组中的所有驱动器包括最多一个来自特定卷的卷片段)。图14描述了图12的示范性操作流程1200的替换实施例。图12描述了其中所述 操作流程100可包括至少一个附加操作的示范性实施例。附加操作可包括操作1410、操作 1412和/或操作1414。操作1410描述了根据所述第一逻辑卷的卷片段的重建集来重建所述第一逻辑卷 的卷片段。例如,如图3-6所示,在包括一个或多个卷(例如,卷B)的卷片段的驱动器(例 如,驱动器幻发生故障时,所述RAID控制器302可使得所述RAID 303将一个或多个卷片 段(例如,卷片段B-2)重建给不包括所述目标卷的另一片段的驱动器(例如,给一个未被 包括在其重建集中的驱动器)。操作1412描述了将所述第一逻辑卷的一个或多个卷片段重建给所述驱动器组中 第二驱动器集的一个或多个驱动器。例如,如图3-6所示,在包括一个或多个卷(例如,卷 B)的卷片段的驱动器(例如,驱动器幻发生故障时,所述RAID控制器302可使得所述RAID 303将一个或多个卷片段(例如,卷片段B-2)重建给不包括所述目标卷的另一片段的驱动 器(例如,仅仅包含卷A片段的驱动器1)。操作1414描述了将所述第一逻辑卷的一个或多个卷片段重建给未被包括在所述 第一驱动器集或所述第二驱动器集中的一个或多个驱动器。例如,如图3-6所示,在包括 一个或多个卷(例如,卷A和卷B)的卷片段的驱动器(例如,驱动器幻发生故障时,所述 RAID控制器302可使得所述RAID 303将所述故障驱动器的一个或多个卷片段(例如,卷片 段A-2和卷片段B-幻重建给不包括所述故障驱动器的卷的另一片段的驱动器(例如,将一 个或多个卷片段A-2和卷片段B-2重建给仅仅包含卷C片段的驱动器5)。图15描述了图12的示范性操作流程1200的替换实施例。图12描述了其中所述 操作流程100可包括至少一个附加操作的示范性实施例。附加操作可包括操作1510。操作1510描述了定义一热备份覆盖率值。例如,如图3-6所示,所述RAID控制器 302可接收来自所述计算装置301的一输入(例如,用户输入)或可包括用来自动定义热备 份覆盖率值的内部电路系统。当驱动器组中的η个驱动器发生故障且在所述驱动器组中仍 存在必要容量使得在所述驱动器组中可用幅度内可重新构建所述故障驱动器中的所有片段时,驱动器组可被认为具有热备份覆盖率为η。例如,如图3-6所示,当为具有最高可使用 容量的驱动器(例如,驱动器0、驱动器2和驱动器3)存在必要驱动器空间以用来重建给剩 余驱动器时(例如,驱动器1、驱动器4或驱动器5必须具有必要存储空间以提供驱动器0、 驱动器2和驱动器3的重建),所述RAID303可具有为1的热备份覆盖率。进一步地,足够 保存在所述驱动器组中最大片段的可用幅度大小可被保持(例如,如果卷片段A-O大于卷 片段C-I,则需要与卷片段A至少相同大小的可用幅度)。当驱动器组中的η个驱动器发生 故障且在所述驱动器组中仍存在必要容量使得在所述驱动器组中可用幅度内可重新构建 所述故障驱动器中的所有片段时,驱动器组可被认为具有热备份覆盖率为η。应当相信,通过前述将理解本公开和许多其伴随的优点。同样应当相信,显而易 见,其组成的形式、结构和布置可以进行不同的变化而不脱离本公开的范围和精神或不牺 牲所有其物质优点。这里以前所述的形式只是示例说明,下列权利要求的目的是包含和包 括此类变化。上述具体描述可包括通过使用方框图、流程图和/或示例提出所述装置和/或过 程的不同实施例。在这样方框图、流程图和/或示例的范围内包含一个或多个功能和/或 操作,应当理解,本领域技术人员可实施在这样方框图、流程图和/或示例的内的每一个功 能和/或操作,独立地和/或共同地,使用宽范围的硬件、软件、固件或实际上它们的任意组 合。在一实施例中,此处所述主题的几个部分可通过专用集成电路(ASICs)、现场可编程门 阵列(FPGAs)、数字信号处理器(DSPs)或其它集成形式来进行实施。但是,本领域技术人员 将认识到,此处公开的实施例的某些方面,整体地或部分地、可等效地以集成电路来实施, 类似于在一个或多个计算机上运行的一个或多个计算机程序(例如,在一个或多个计算机 系统上运行的一个或多个程序)、在一个或多个处理处理器上运行的一个或多个程序(例 如,在一个或多个微处理器上运行的一个或多个程序)、固件或实际上它们的任意组合,以 及上述设计电路和/或为软件和或固件写代码很好地处于根据本发明的本领域技术人员 的技能内。另外,本领域技术人员将领会到,此处所述主题的结构会能够被分布为各种形式 的程序产品,以及其被此处所述主题的示范性实施例所采用而不考虑用来实际执行所述分 布的信号承载媒体的特定类型。信号承载媒体的示例包括,但可不限于可记录类型的媒 体,例如软盘、硬盘、光盘(⑶)、数字视频光盘(DVD)、数字磁带、计算机存储器等;和传输类 型的媒体,例如数字和/或模拟通信媒体(例如,光缆、波导、有线通信链路、无线通信链路 (例如,发送器、接收器、发送逻辑、接收逻辑等)等)。本领域技术人员将认识到,所述技术的状态可包括被处理到在系统各个方面的硬 件、软件和/或固件实施中保留较少区别处的位置;所述硬件、软件和/或固件的使用一般 (但不总是,其中在特定语境中,在硬件和软件之间的选择会变得有意义)可以是一种展现 成本效率平衡的设计选择。本领域技术人员将领会到,存在各种工具可被用来影响到这里 所述的过程和/或系统和/或其它技术(例如,硬件、软件和/或固件),以及优选工具将随 语境而变化,所述语境中所述过程和/或系统和/或其它技术会被展现。例如,如果实施者 确定速度和精确度会是最重要的,实施者会选择大体上为硬件和/或固件的工具;或者,如 果灵活性会是最重要的,实施者会选择大体上为软件的实施方案;或许,仍可选择地,实施 者会选择硬件、软件和/或固件的一些组合。因此,存在几种可能的工具可被用来影响到这里所述的过程和/或系统和/或其它技术,没有一个会在本质上优于其它,其中任意将被使 用工具的选择可以基于其中所述工具将被展现的语境以及实施者所关注的具体对象(例 如,速度、灵活性或可预测性),其中的任意一个可发生变化。本领域技术人员将认识到,所 述实现方案的视觉方面将一般地采用视觉主导的硬件、软件和或固件。
权利要求
1.一种在廉价磁盘冗余阵列(RAID)内分配卷片段的方法,所述方法包括将一第一逻辑卷的一个或多个卷片段与一驱动器组中的一第一驱动器集关联;将一第二逻辑卷的一个或多个卷片段与所述驱动器组中的一第二驱动器集关联,其中,所述驱动器组中的所述第一驱动器集包括至少一个不是所述驱动器组中的所述 第二驱动器集的一成员的驱动器。
2.如权利要求1所述的方法,其中将第一逻辑卷的一个或多个卷片段与驱动器组中的 第一驱动器集关联进一步包括将所述第一驱动器集上的存储空间分配给所述第一逻辑卷。
3.如权利要求2所述的方法,其中将所述第一驱动器集上的存储空间分配给所述第一 逻辑卷进一步包括将一卷片段大小指定给所述第一逻辑卷的所述一个或多个卷片段;和将一物理驱动器偏移量指定给所述第一逻辑卷的所述一个或多个卷片段。
4.如权利要求3所述的方法,其中所述第一逻辑卷的所述一个或多个卷片段的第一卷 片段的物理驱动器偏移量不同于所述第一逻辑卷的所述一个或多个卷片段的第二卷片段 的物理驱动器偏移量。
5.如权利要求1所述的方法,进一步包括将所述第一逻辑卷的一个或多个卷片段重建给所述驱动器组中所述第二驱动器集的 一个或多个驱动器。
6.如权利要求1所述的方法,进一步包括将所述第一逻辑卷的一个或多个卷片段重建给一个或多个未被包括在所述第一驱动 器集或所述第二驱动器集中的驱动器。
7.如权利要求1所述的方法,进一步包括定义一热备份覆盖率值。
8.一种在廉价磁盘冗余阵列(RAID)内分配卷片段的系统,其包括用于将一第一逻辑卷的一个或多个卷片段与在一驱动器组中的一第一驱动器集关联 的构件;用于将一第二逻辑卷的一个或多个卷片段与在所述驱动器组中的一第二驱动器集关 联的构件,其中,所述驱动器组中的所述第一驱动器集包括至少一个不是所述驱动器组中的所述 第二驱动器集的一成员的驱动器。
9.一种在廉价磁盘冗余阵列(RAID)内分配卷片段的方法,所述方法包括为一第一逻辑卷的一第一卷片段定义一重建集;根据所述第一逻辑卷的所述卷片段的所述重建集将一第二逻辑卷的一卷片段指定给 一驱动器组内的一驱动器。
10.如权利要求9所述的方法,其中为第一逻辑卷的第一卷片段定义重建集包括定义所述驱动器组内的一驱动器集,该驱动器集包括不同于所述第一逻辑卷的所述第 一卷片段的所述第一逻辑卷的一个或多个卷片段。
11.如权利要求9所述的方法,其中所述第一逻辑卷的所述第一卷片段的所述重建集 与所述第二逻辑卷的一个或多个卷片段的一重建集不相交。
12.如权利要求9所述的方法,进一步包括根据所述第一逻辑卷的所述卷片段的所述重建集重建所述第一逻辑卷的一卷片段。
13.如权利要求12所述的方法,其中所述根据所述第一逻辑卷的所述卷片段的所述重 建集重建所述第一逻辑卷的卷片段进一步包括将所述第一逻辑卷的一个或多个卷片段重建给所述驱动器组内的所述第二驱动器集 的一个或多个驱动器。
14.如权利要求12所述的方法,其中所述根据所述第一逻辑卷的所述卷片段的所述重 建集重建所述第一逻辑卷的卷片段进一步包括将所述第一逻辑卷的一个或多个卷片段重建给一个或多个未被包括在所述第一驱动 器集或所述第二驱动器集中的驱动器。
15.如权利要求9所述的方法,进一步包括 定义一热备份覆盖率值。
16.一种廉价磁盘冗余阵列(RAID),其包括分布在一驱动器组的一第一驱动器集内的一第一逻辑卷的一个或多个卷片段; 分布在所述驱动器组的一第二驱动器集内的一第二逻辑卷的一个或多个卷片段; 其中所述第一驱动器集包括一个或多个未被包括在所述第二驱动器集中的磁盘。
全文摘要
本公开描述了一种在廉价磁盘冗余阵列(RAID)内分配卷片段的系统和方法。所述在廉价磁盘冗余阵列(RAID)内分配卷片段的系统和方法可包括(a)将第一逻辑卷的一个或多个卷片段与在驱动器组中的第一驱动器集关联;以及(b)将第二逻辑卷的一个或多个卷片段与在所述驱动器组中的第二驱动器集关联,其中所述驱动器组中的第一驱动器集包括至少一个不是所述驱动器组中第二驱动器集的成员的驱动器。
文档编号G06F12/00GK102150137SQ200980136022
公开日2011年8月10日 申请日期2009年3月31日 优先权日2008年10月31日
发明者马丁·杰斯 申请人:Lsi公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1