《用于存储装置组的分配策略.pdf》由会员分享,可在线阅读,更多相关《用于存储装置组的分配策略.pdf(33页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 102929787 A (43)申请公布日 2013.02.13 CN 102929787 A *CN102929787A* (21)申请号 201210335535.5 (22)申请日 2012.09.12 13/230,505 2011.09.12 US G06F 12/02(2006.01) (71)申请人 微软公司 地址 美国华盛顿州 (72)发明人 D. 摩斯 K. 梅拉 E. 帕莱奥罗古 (74)专利代理机构 中国专利代理(香港)有限公 司 72001 代理人 李舒 汪扬 (54) 发明名称 用于存储装置组的分配策略 (57) 摘要 存储装置组可按照分配策。
2、略 (例如, 从具有最 大可用容量的存储装置分配容量或使得跨存储装 置分配的容量分布最大化)分配容量给空间 (例 如, 逻辑卷) 。 然而, 这样的分配策略可能是低效的 (例如, 限制了存储装置组满足随后的具有约束的 请求的能力, 所述约束诸如是跨几个存储装置的 容量的最小分布) 。 这里给出的技术通过以下方式 来实现有效分配, 即 : 首先使用循环技术在具有 充足可用容量的存储装置上分配容量, 并且如果 这样的存储装置不满足容量请求, 则在具有有限 可用容量的存储装置上分配容量。 另外, 这里给出 的技术易于通过容量预留实行精简预配, 其中存 储装置保留未分配的存储用于特定的空间, 其在 未。
3、预留的容量被耗尽的情况下可以作为预留被利 用。 (30)优先权数据 (51)Int.Cl. 权利要求书 2 页 说明书 20 页 附图 10 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书 2 页 说明书 20 页 附图 10 页 1/2 页 2 1. 一种用于在存储装置组 (102) 上分配容量给空间 (108) 的方法 (600) , 该存储装置 组包括对于具有处理器 (812) 的设备 (810) 是可访问的至少两个存储装置 (104) , 所述方法 (600) 包括 : 在处理器 (812) 上执行 (604) 指令 (806) , 所述指令被配置成在接收到。
4、对于分配容量给 空间 (108) 的请求后 : 在存储装置 (104) 间, 识别 (606) 包括具有高于可用容量最小阈值的可用容量的存储 装置 (104) 的宽裕的存储装置子组 (404) ; 在所述宽裕的存储装置子组 (404) 的存储装置 (104) 上分配 (608) 容量给空间 (108) ; 以及 如果 (610) 所述宽裕的存储装置子组 (404) 不满足所述请求 : 则在剩余的存储装置 (104) 间, 识别 (612) 包括具有低于可用容量最小阈值的可用容 量的存储装置 (104) 的有限的存储装置子组 (408) ; 以及 在所述有限的存储装置子组 (408) 的存储装置。
5、 (104) 上分配 (614) 容量给空间 (108) 。 2. 权利要求 1 的方法, 在存储装置子组的存储装置上分配容量包括 : 按照循环选择, 识别存储装置子组的存储装置的序列 ; 对于各个存储装置和按照所述序列 : 在存储装置上分配盘区, 以及 把盘区与空间相关联, 直至与空间相关联的盘区的总容量满足所述请求为止。 3. 权利要求 2 的方法 : 存储装置子组的存储装置具有存储装置次序 ; 以及 循环选择包括 : 对于跟随在第一请求后面的第二请求 : 识别在其上为第一请求分配容量的上一个存储装置 ; 识别按照存储装置次序跟随在该上一个存储装置后面的下一个存储装置 ; 以及 按照存储装。
6、置次序并且从下一个存储装置开始在存储装置上分配容量。 4. 权利要求 1 的方法, 在存储装置子组的存储装置上分配容量包括 : 在存储装置子组的存储装置间, 识别按可用容量降序排序存储装置的序列 ; 以及 按照所述序列在存储装置上分配容量。 5. 权利要求 1 的方法, 在存储装置子组的存储装置上分配容量包括 : 在存储装置子组的存储装置间, 识别按访问速率升序排序存储装置的序列 ; 以及 按照所述序列在存储装置上分配容量。 6. 权利要求 1 的方法, 所述请求规定从存储装置分布约束集中选择的存储装置分布约 束, 所述存储装置分布约束集包括 : 不同的存储装置的数量 ; 对于具有存储装置类型。
7、的存储装置, 不同的存储装置类型的数量 ; 以及 对于处在不同位置处的存储装置, 存储装置的不同位置的数量。 7. 权利要求 1 的方法 : 各个空间用预配的容量被创建 ; 各个空间被绑定到分别具有盘区容量的盘区 ; 权 利 要 求 书 CN 102929787 A 2 2/2 页 3 所述请求包括对于访问在未绑定到盘区的空间中的位置的请求 ; 以及 在存储装置上分配容量给空间包括 : 将在存储装置上分配的盘区绑定到包括该位置的、 该空间的逻辑地址范围。 8. 权利要求 1 的方法 : 在访问前, 存储装置包括被分配给空间且未绑定到该空间的逻辑地址范围的、 至少一 个未绑定的盘区 ; 以及 绑。
8、定盘区包括 : 将未绑定的盘区绑定到包括位置的、 该空间的逻辑地址范围。 9. 权利要求 1 的方法, 指令被配置成 : 按照存储装置组的存储装置的可用容量, 调节可 用容量最小阈值。 10. 权利要求 1 的方法 : 存储装置组包括至少一个不可用的存储装置 ; 以及 所述指令被配置成从存储装置子组中排除该不可用的存储装置。 11. 一种计算机可读媒体, 包括在其上存储的指令, 所述指令响应于由计算设备的执行 而使得该计算设备执行按照权利要求 1 10 中任一项的方法。 权 利 要 求 书 CN 102929787 A 3 1/20 页 4 用于存储装置组的分配策略 背景技术 0001 在计算。
9、领域内, 许多情景牵涉到存储装置组, 存储装置组包括被配置成为了各种 进程存储数据集的一组存储装置。 存储装置的存储容量在计算机系统上可以显现为一组逻 辑卷, 存储装置的互操作比起独立地操作存储装置, 可以允许有更多的变化 ; 例如, 全部存 储容量可以被显现为单个逻辑卷, 而不管哪个存储装置包含特定的数据集, 或者可以生成 带有与存储装置的任意关系的一组逻辑卷, 用于某特定逻辑卷的容量在物理上是位于所述 存储装置上的。 存储装置的互操作还可以提供附加特征, 诸如自动的存储冗余, 其可以在存 储装置组的存储装置变为不可访问的情形下提供数据恢复和可用性 ; 通过自动的 “校验和 (checksu。
10、m)” 计算进行的检错和 / 或纠错, 这可以使得能从数据破坏中恢复, 或重构丢失的 数据 ; 以及通过多个存储装置对数据集的并行访问, 这比起通过单个存储装置的访问, 可以 提供更大的吞吐量给存储装置组。 0002 在这些情景的某些情景中, 对存储装置组的访问可以被提供为一组空间 (space) (分别代表例如逻辑卷、 存储日志、 或便于存储装置组的维护的元数据集) , 对于该组空间, 在存储装置上已物理地分配一组盘区 (extent)。例如, 每个存储装置的容量可以被分摊 到具有一致的或可变的大小的盘区, 并且当被请求用于空间的容量时, 可以在一个或多个 存储装置上物理地分配一个或多个盘区。
11、, 每个盘区可被绑定到用于所述空间的逻辑地址范 围。 对逻辑地址范围内的位置的访问可以通过引用已被物理地分配用于该空间并被绑定到 包括所述访问的位置的逻辑地址范围的盘区而被满足。 发明内容 0003 本概要被提供来以简化的形式介绍概念的选择, 这些概念还将在下面的详细说明 中进行描述。本概要既不打算确认所要求保护的主题的关键因素或必要特征, 也不打算被 使用来限制所要求保护的主题的范围。 0004 在牵涉到存储装置组的计算情景下, 对于容量的分配的请求 (例如, 对于各个空间 的盘区的分配) 可以通过选择一个或多个存储装置和物理地分配一个或多个区域而满足。 然而, 存储装置的具体选择可以在各实。
12、现之间变化。 例如, 存储控制器可以任意地选择用于 分配的存储装置 ; 可以简单地在具有最大可用容量的存储装置上分配适当大小的区域 ; 可 以利用最佳适配技术 ; 或可以选择在存储装置组的所有存储装置上分配相等大小。这些策 略可以呈现各自的优点 ; 例如, 最佳适配技术可以减少数据碎片, 而跨所有存储装置来分布 可以提高对于以分布式分配存储的数据集的访问速率。 0005 在更复杂的存储情景下, 数据集可以是按照某个约束的存储装置。例如, 用于包 括有价值的或高需求的数据的第一数据集的存储, 可以被请求带有跨存储装置的最大分布 (例如, 在几个存储装置上镜像数据以提供改进的冗余性 ; 或自动计算。
13、和存储对于数据集的 “校验和” , 其使得能检错和 / 或纠错) 。用于第二数据集的存储可以被带有连续数据块的约 束来请求, 以便例如通过使用存储装置的预读 (read-ahead) 和突发访问特征而改进对于数 据集的顺序访问。 相反, 用于第三数据集的存储可以不规定任何约束, 并且其可被存储在存 说 明 书 CN 102929787 A 4 2/20 页 5 储装置组的任何位置中。存储装置组还可以提供附加特征, 诸如延迟的容量分配 (例如, 对 于给空间预配 (provision) 容量的请求可能不能立即分配所有的盘区来满足该空间的容量 要求, 但可以简单地记录已预配的大小并基于刚好及时 (。
14、just-in-time) 的原则把盘区绑定 到该空间) 和精简 (thin) 预配 (例如, 可以用超过存储装置组的物理容量的预配容量来创建 空间, 以及在存储装置组的可用容量接近耗尽时, 存储装置组可以向管理员建议 : 提供附加 的存储装置来扩展存储装置组的物理容量) 。 0006 然而, 鉴于这些特征, 相对简单的分配策略可能在这些请求看来低效地分配了存 储装置组的容量, 以后可能必须重新组织存储装置组, 以便满足新数据集的约束。 作为第一 个例子, 某些存储策略可以导致各个存储装置的存储容量的不均匀分配 ; 例如, 比起其它存 储装置, 存储装置组的更大比例可能在某个特定的存储装置上分。
15、配, 由此以更大的速率消 耗它的容量, 并且在存储装置组接近容量时, 导致该存储装置的容量更早耗尽。 如果随后的 写请求指定数据集要在存储装置组的存储装置上被最大地分配, 则这种较早的耗尽可能造 成问题。 在这种情形下, 存储装置组可能有很多的存储容量来满足请求, 但可能不得不重新 安置来自耗尽的存储装置的某些数据, 以便满足分布约束。 作为第二个例子, 如果存储装置 给出不同的可用容量 (例如, 由于不同的物理容量或其它不均匀的容量分配) , 则跨存储装 置进行的均匀的容量分配可能先于具有较大可用容量的存储装置而耗尽具有较少可用容 量的存储装置。 作为第三个例子, 可能想要利用精简预配来使得。
16、空间扩大到预配的容量, 但 当存储装置组的容量耗尽时, 附加的容量变为对于所有的过度预配的 (overprovisioned) 空间都不可用。 然而, 某些空间可以具有比其它空间更高的优先级, 并且可能不希望允许过 度预配的、 但优先级较低的空间消耗容量到耗尽点, 由此造成对于过度预配的、 且优先级较 高的空间的容量的不可用性。如果存储装置组不提供任何用于避免这种结果的特征, 则唯 一可行的任选项可能是减小或避免存储装置组的精简预配, 以便保证容量在需要时是可用 的。 0007 这里给出的是用于配置存储装置组来满足分配容量的请求的技术, 其可以减小或 避免这些问题中的某些。 按照这些技术, 当。
17、接收到对于分配容量的请求时, 存储装置组可以 查验存储装置, 以便识别具有充足的可用容量的存储装置子组, 即, 具有高于可用容量最小 阈值的可用容量的存储装置, 并且可以首先在这个宽裕的 (spacious) 存储装置子组的存储 装置上分配容量。 如果这个分配是不足以满足分配请求的, 例如, 如果分配请求规定了在四 个存储装置上分配容量, 但只有两个存储装置具有充足的存储容量, 则存储装置组可以接 着识别具有小于可用容量最小阈值、 但仍具有可用容量的存储装置的子组 (即, 还没有耗尽 的那些存储装置) , 并且可以在这些存储装置上分配容量。这个技术可以提供相对简单的技 术来选择存储装置以分配容。
18、量, 而同时还保存其可用容量正变为很有限的存储装置上的容 量。 作为第二个例子, 在所选择的存储装置子组的存储装置中间, 可以利用各种策略来跨所 述子组的存储装置而分布容量的分配 (例如, 盘区的分配) , 诸如在存储装置上分布分配的 循环分配策略 ; 使得具有最大可用容量的存储装置的分配最大化的容量利用分配策略 ; 以 及访问率分配, 它把分配分布到呈现不太频繁的访问的存储装置, 这可以更均匀地分布访 问负荷和提高存储装置组的吞吐量。 0008 可以通过这些技术来利用的附加特征牵涉到容量预留 (reservation) 。对于特定 的空间, 可以在存储装置上预留规定量的容量 ; 虽然容量没有。
19、分配给该空间, 但各个存储装 说 明 书 CN 102929787 A 5 3/20 页 6 置可以为该空间留出一些可用容量, 并由此可以保留该预留的容量而不给其它容量请求。 例如, 如果存储装置包括 1000 个盘区 (例如, 对于具有 1TB 容量的存储装置是 1GB 的盘区) , 则空间可以通过导致在存储装置上 100 个盘区的预留的容量预留而被创建。因此, 存储装 置指示 : 仅仅 900 个盘区的容量可用于其它容量请求, 且尽管没有特定的盘区被分配给具 有该容量预留的空间, 但即便可用容量被耗尽, 100 个盘区仍保持为对于该空间是可用的。 容量预留的使用可以使得甚至在容量耗尽的情形。
20、下也能够预留容量给空间 ; 例如, 即使另 一个过度预配的且优先级低的空间 (不具有容量预留) 耗尽了存储装置组的可用容量 (和不 再可以请求容量的分配) , 容量仍旧可以对于为其已创建容量预留的、 过度预配的和高优先 级的空间保持为可用, 尽管这样的容量还没有以盘区的形式被分配。 0009 而且, 这些变例可被组合来给出甚至更有技巧 (adept) 的分配策略。例如, 在确定 特定存储装置的可用容量是充足的还是有限的同时 (例如, 存储装置的可用容量是高于还 是低于可用容量最小阈值) , 这些技术的实施例可以在这个决定中包括存储装置的容量预 留。例如, 具有 1000 个盘区的可用容量的存储。
21、装置可包括当前正在使用的 500 个盘区, 因 此, 鉴于 250 个盘区的可用容量最小阈值, 它可被看作为宽裕的, 但如果它包括总共 400 个 盘区的容量预留, 则它可以被看作为有限的容量。这里给出的技术的这些和其它变例可被 包括在以灵活的和有效的方式利用存储装置的容量的分配策略中。 0010 为了完成上述的和相关的目的, 以下的说明和附图阐述了某些说明性方面和实 现。这些仅仅指示了其中一个或多个方面可被利用的各种方式中的几种。当结合附图考虑 时, 本公开内容的其它方面、 优点和新颖的特征将从以下的详细说明变得明显。 附图说明 0011 图 1 是表征存储装置组的各个存储装置的容量分配的示。
22、范性情景的例图。 0012 图 2 是表征在存储装置组的存储装置上容量的低效分配的示范性情景的例图。 0013 图 3 是表征在存储装置组的存储装置上容量的耗尽的示范性情景的例图。 0014 图 4 是表征按照这里给出的技术的、 在存储装置组的存储装置上容量的有效分配 的示范性情景的例图。 0015 图 5 是表征按照这里给出的技术的、 在具有用于某些过度预配的空间的容量预留 的存储装置组的存储装置上容量的耗尽的示范性情景的例图。 0016 图 6 是例示按照这里给出的技术的、 在存储装置组上分配容量给空间的第一示范 性方法的流程图。 0017 图 7 是例示按照这里给出的技术的、 在存储装置。
23、组上分配容量给空间的第二示范 性方法的流程图。 0018 图 8 是包括被配置来体现这里阐述的预配中的一个或多个的处理器可执行指令 的示范性计算机可读介质的例图。 0019 图 9 是表征存储装置组的存储装置上容量的某些替换分配的示范性情景的例图, 其替换地利用这里给出的分配策略的变例。 0020 图 10 例示其中可以实施这里阐述的预配中的一个或多个的示范性计算环境。 具体实施方式 说 明 书 CN 102929787 A 6 4/20 页 7 0021 现在参照附图描述所要求保护的主题, 其中同样的参考标号被使用来在各处指同 样的单元。在以下的描述中, 为了说明起见, 阐述了许多具体的细节。
24、, 以便提供对于所要求 保护的主题的透彻的理解。 然而, 明显的是, 所要求保护的主题可以不用这些具体的细节而 被实践。在其它实例中, 结构和装置以框图的形式被显示, 以便易于描述所要求保护的主 题。 0022 A. 引言 在计算领域内, 许多情景牵涉到包括一组存储装置的存储装置组, 这样的存储装置诸 如是硬盘驱动机、 固态存储装置、 磁带备份档案库存储器、 和易失性或非易失性存储器电 路。 存储装置可以是同种或异种的类型 ; 可以呈现类似的或变化的特性, 诸如容量、 易失性 ; 可以通过硬件或软件 (例如, 被插入在廉价磁盘冗余阵列 (RAID) 控制器中的一组硬盘驱动 机, 或与各种各样存。
25、储装置交互的软件进程) 紧密地或松散地聚集 ; 以及可以存在于相同的 位置、 在局部区域 (例如, 一组附接到网络的存储 (NAS) 装置) 、 和 / 或在广域 (例如, 通过互 联网访问的、 在地理上分布开的存储装置组) 中。 0023 存储装置组可被配置成为了在一个或多个装置上执行的各种进程来满足对于分 配存储容量的请求。在许多这样的情景下, 存储装置组显现一个或多个逻辑卷, 每个逻辑 卷可以以特定的方式被格式化 (例如, 按照文件系统被格式化的文件存储库或按照数据库 存储系统被格式化的数据库) 。在早先的存储装置组中, 每个逻辑卷限于一个特定的存储装 置 ; 然而, 在当代的存储装置组。
26、中, 两个或更多存储装置可以作为用于单个逻辑卷的容量池 而互操作。例如, 两个或更多存储装置可以把某些或所有的物理容量汇聚 (pool) 成单个逻 辑卷。 因此, 存储装置组可以展现一组逻辑卷, 其具有与存储装置组的存储装置的物理容量 的任意关系 ; 例如, 逻辑卷可以无缝地聚集来自几个存储装置的容量, 而且可以把在特定的 逻辑位置处表示的数据存储在参与所述池的存储装置的被分配容量内的任何物理位置。 0024 存储装置组可以以各种方式满足对于分配容量的请求。在早先的存储装置组中, 对于创建逻辑卷的请求是通过在存储装置上分配物理容量块 (例如, 在分区内的大的、 连续 的空间块) 而被满足的。然。
27、而, 当代的存储装置组可以提供很大量的容量 (例如, 全部拍字 节 (petabytes) 的存储) , 以及可以被分配到很大数量的逻辑卷中 (例如, 用于很大数量虚拟 机的操作环境的各逻辑卷) 。而且, 这样的请求可以在不同的时间被发起, 它们可以牵涉到 对于扩充、 减小或重新安置容量的请求。 为了支持这种类型的动态环境, 可能希望配置存储 装置组来以更灵活的方式分配容量。作为一个这样的例子, 存储装置组可被组织为一组空 间, 代表各种数据存储区域 (例如, 逻辑卷 ; 校验和区域 ; 存储日志, 其中可以记录到另一个 空间的改变 ; 或维护区域, 其存储关于其它空间的元数据) , 以及被组。
28、织为一组盘区, 包括可 以与空间相关联的小的物理分配。 存储装置可以通过分配一个或多个盘区和将每个盘区绑 定到空间的逻辑地址范围而满足对于创建用于空间的容量的请求。 对于访问空间内的某个 位置的请求然后通过识别被绑定到包括该位置的逻辑地址范围的盘区和在对应的偏移处 访问该盘区而被满足。应当意识到, 虽然本公开内容在空间和盘区分配模型的上下文中给 出概念, 但本技术可应用于使用许多组织模型的存储装置。 0025 另外, 存储装置组可以提供提高存储装置组的性能和 / 或可靠性的许多特征。作 为第一个例子, 存储装置组可被配置成以冗余方式把一个或多个数据集存储在相同的或不 同的存储装置上 ; 例如,。
29、 在 RAID 1 阵列中, 逻辑卷被在几个存储装置上等同地复制。这种 说 明 书 CN 102929787 A 7 5/20 页 8 复制可以提高逻辑卷的可靠性 ; 例如, 如果存储装置变为有讹误的、 不可访问的、 或不可用 的, 则没有数据被丢失, 且数据在其它存储装置上仍然是可访问的。另外, 复制可以通过组 合多个存储装置的输入 / 输出容量而提高被复制的数据集的访问速率。作为第二个例子, 存储装置组可被配置成计算和存储对于所存储的数据集的校验和。例如, 在 RAID 4 阵列 中, 某存储容量没有被分配给用户数据, 而是来存储用于在阵列其它部分中的用户数据的 校验和 ; 例如, 对于被。
30、写入四个顺序的逻辑地址的每组四个字, 存储装置组可以自动计算校 验和, 并把校验和存储在校验和区域中。 这个校验和可被使用来验证数据的完整性 ; 识别四 字组中错误的位置 (例如, 非故意地改变的比特, 或从物理介质不正确地读出的比特) , 以及 任选地纠正错误 ; 和 / 或重构变为不可访问的或失去的数据 (例如, 所述四个字可跨四个存 储装置被分布, 以及可以把校验和写入到第五存储装置, 以及如果任何存储装置变为有讹 误的、 未能响应或被去除, 则被存储在存储装置上的数据可以通过使用被存储在存储装置 组的其它存储装置上的对应字及校验和而被重构) 。 0026 存储装置组的附加变例牵涉到容量。
31、的预配的去耦 (例如, 创建具有预配的大小的 空间) 和容量的分配, 即, 用于特定用途的物理媒体的部分的选择、 预留和初始化。作为例 子, 在存储被组织为绑定到空间的盘区的上下文中, 不是在空间创建后即分配整个容量用 于空间这可能需要一段时间 (特别是对于牵涉到很大数量盘区的大的空间) , 而是存储 装置组可以延迟将盘区绑定到所述空间。 存储装置组可以初始地创建具有预配的容量但只 有几个绑定的盘区或没有绑定的盘区的空间。在接收到对于访问空间的位置的请求后, 存 储装置组可以确定是否有任何盘区绑定到包括该位置的逻辑地址范围, 如果没有的话, 则 可以立即在存储装置上分配盘区, 并且把该盘区绑定。
32、到包括该位置的逻辑地址范围。这个 刚好及时的分配因此可以加速空间的创建和大小调节。 而且, 在这样的情景下, 存储装置组 可以被 “精简预配” , 即, 通过创建合起来具有比存储装置组的可用容量大的预配容量的空 间来进行。 在空间被访问时, 存储装置组可以从存储装置的可用容量分配盘区给该空间 ; 以 及在可用容量接近耗尽时, 存储装置组可以向管理员建议 : 把一个或多个存储装置加到存 储装置组, 以便提供附加容量来满足该过度预配的空间。这样的技术在以下场合可以是有 利的, 例如, 在大的存储装置组包括用数据递增地填充和 / 或保持部分未用的很大数量的 空间的场合, 诸如具有拍字节容量、 存储用。
33、于很大数量虚拟机的逻辑卷的存储阵列 ; 在这样 的情景下, 不是对于整个预配的容量来获取和分配容量装置 (其保持部分未用) , 和/或初始 地创建具有很少的预配容量的空间以及重复地扩充该空间和分配盘区以便提供附加容量, 而是管理员可以简单地过度预配空间、 可以监视存储装置组的可用容量、 以及添加存储装 置, 以便避免容量耗尽。 0027 图1给出表征存储装置104的存储装置组102的示范性情景100的例图, 每个存储 装置具有被识别为一组物理地址的可用容量。在这个示范性情景 100 中, 存储装置 104 的 容量可以以一组盘区 106 被分配, 在这里被例示为消耗 0x0100 个字的固定地。
34、址块。各个盘 区 106 被分配给空间 108, 其可以代表例如逻辑卷、 校验和区域、 存储日志、 或用以存储用于 存储装置 104 的元数据的维护区域。请求可以被接收来创建有特定的预配容量 110 的空间 108, 以及存储装置组 102 可以存储代表空间 108 的信息 (例如, 在配置区域中) 。存储装置 组 102 在接收请求后分配容量的方式方面可以是多样化的。例如, 存储装置组 102 可以立 即分配盘区 106, 以满足空间 108 的全部的预配的容量 (例如, 在本示范性情景下, 盘区 106 说 明 书 CN 102929787 A 8 6/20 页 9 被全部分配用于空间 1。
35、, 2 和 5 的预配的容量 110) 。替换地, 存储装置组 102 可以分配少于 全部的盘区 106, 但可以等待分配其余的盘区 106, 直至当分配给空间 108 的盘区 106 被 完全利用时接收到写请求为止, 且随后可以分配一个或多个盘区 106 给空间 108, 以满足写 请求。 例如, 对于空间3和4, 空间108的预配的容量110超过被分配给空间108的盘区106 的数量, 但存储装置组 102 随后可以在刚好及时的基础上分配附加盘区 106。而且, 在一些 情景下, 一个或多个空间 108 可被过度预配, 使得空间 108 的预配的容量 110 超过在存储装 置 104 上物。
36、理地可用的盘区 106 的数量。这个超额预配可能仅仅在以下时间才造成问题, 即 : 存储装置组102的可用容量耗尽, 使得具有比分配的容量更多的预配容量110的过度预 配的空间 108 请求附加盘区 106, 但存储装置 104 没有容量剩余来分配附加的盘区 106。然 而, 存储装置组102的管理员可以通过监视存储装置组102的可用容量而避免这种困境, 以 及当可用容量接近耗尽时, 通过添加存储装置 104 而扩充存储装置组 102 的可用容量。以 这种方式, 用于各个逻辑卷的空间 108 的过度预配可以使得存储装置组 102 的管理员能够 创建具有不受存储装置组 102 的当前物理容量限制。
37、的最大逻辑容量的空间 108, 以及补充 存储装置组 102 的可用容量, 以满足存储装置组 102 的使用。 0028 因此, 在这些和其它情景下, 存储装置组 102 可被配置成响应于各种请求来分配 容量 (例如, 组织存储装置 104 的物理容量, 以便提供用于空间 108 的逻辑容量或逻辑卷的 其它表现形式 (manifestation) ) 。 因此, 在许多情景下, 所分配的容量的物理位置可能是不 重要的 ; 例如, 在RAID 4阵列的存储装置104上, 数据集的物理位置可被任意分配在任何存 储装置 104 上的任何地方。然而, 在某些这样的情景下, 选择物理位置来满足对于分配容。
38、量 的请求的方式可以具有实际的后果。作为第一个例子, 在一些 RAID 方案中, 各个数据集被 跨存储装置 104 分布, 每个容量请求是通过在每个存储装置 104 上分配所请求的容量的一 部分而得到满足的。作为第二个例子, 在牵涉到高度动态的数据的情景中 (例如, 频繁地创 建、 删除和 / 或调整数据集的大小) , 数据集的压紧 (compaction) 可以随着存储装置组 102 接近耗尽而恶化 ; 例如, 遍及存储装置组 102, 可用容量可以被物理分段为小的部分。因此, 即使存储装置组 102 的总的可用容量对于规定大数据块的容量请求是足够的, 存储装置组 102 也可能无法定位连续。
39、的空闲容量块来满足请求, 并且可能不得不以分段的方式分配容 量和 / 或重新安排其它数据以便压紧所使用的容量, 和聚集可用容量以便满足容量分配请 求。 0029 正如在图 1 的示范性情景 100 中进一步例示的, 某些空间 108 可以规定约束 112, 该约束影响盘区 106 的布置以满足对于分配空间 108 的容量的请求。例如, 对于第一空间 108的约束112可以规定 : 空间108按照RAID 1方案进行配置, 其中数据集自动在两个或更 多存储装置 104 上被镜像 ; 以及为其分配的盘区 106 要跨越两个存储装置 104。因此, 盘区 1008的池114可以跨第一存储装置 104。
40、和第二存储装置 104分配 (以及可以在每个存储装 置 104 的相同物理位置处被有利地选择) , 由此使得能并行访问空间 108 的盘区 106。作为 第二个例子, 第二空间108可包括约束112, 其规定盘区106的连续块的分配, 例如用于主要 以流动的方式被访问的数据集。作为第三个例子, 第五空间 108 可以按照 RAID 4 方案被格 式化, 并因此可包括约束 112 : 被分配用于这个空间 108 的容量的盘区 106 要被跨四个存储 装置 104 分布 (例如, 包括用于用户数据的三个区域与校验和区域) , 以及存储装置组 102 可 以分配跨越全部四个存储装置 104 的盘区 。
41、106 的池114。以这种方式, 存储装置组 102 可以 说 明 书 CN 102929787 A 9 7/20 页 10 提供用于对各个空间 108 分配具体类型的容量和特征的任选项, 以及可以以满足空间 108 的约束 112 的方式在存储装置 104 上分配盘区 106。 0030 鉴于这些考虑, 可以意识到, 虽然许多情景可以令人满意地利用任意策略来响应 于请求去分配容量, 但某些分配策略比起其它分配策略可以更有效地分配存储。作为第 一个示范性分配策略, 所请求的容量可以在具有最大量的可用容量的存储装置 104 上被分 配。这个例子可以鉴于存储装置 104 的改变的可用容量而把连续的。
42、存储请求分布在该存储 装置 104 上, 因此减少在其它存储装置 104 还包含很大容量时在一个存储装置 104 上的容 量耗尽。然而, 这种分配策略通过在一个存储装置 104 上分配容量而满足每个容量请求, 并 可能因此而与汇集的存储或 RAID 阵列的某些特征不兼容。作为第二个示范性分配策略, 每 个存储请求可以通过跨所有可用的存储装置 104 来相等地分配所请求的容量而被满足。如 果这种技术被使用来满足对于具有相同容量的一组存储装置 104 的所有容量请求, 则这个 策略可以以近似均匀的方式消耗所有存储装置 104 的容量。然而, 这个分配策略可能与具 有变化的可用容量的存储装置 104。
43、 的存储装置组 102 不兼容, 所述存储装置组诸如是表征 具有不同物理容量的存储装置 104 的存储装置组 102, 或是在某些分配请求是通过使用不 同的分配策略 (例如, 分配来自一个存储装置的容量块) 而被满足的场合 ; 在这些情景下, 跨 所有存储装置 104 的容量分配的均匀分布会先于具有较大可用容量的那些存储装置而耗 尽具有较少可用容量的那些存储装置。 0031 可能由规定关于所选择的存储装置 104 的一个或多个约束的容量请求引起另外 的复杂情况。例如, 第一容量请求可以规定 : 容量要跨特定数量的存储装置 104 被分布和 / 或镜像, 以便提高吞吐量或可靠性 ; 第二容量请求。
44、可以规定 : 容量要被分配为一个存储装 置 104 的连续块 (例如, 为了促进来自一个存储装置 104 的容量的数据集有效流动, 特别是 利用存储装置 104 的预读和突发特征) ; 以及第三容量请求可以规定无约束, 并因此可以从 任何存储装置 104 的可用容量进行分配。因此, 分配策略可被设计成以导致具有更大多样 性的可用容量的方式选择容量, 以便提供满足带有可变约束的随后的容量请求的能力。例 如, 分配策略可被设计成压紧所分配的容量和聚集可用容量 (例如, 使用分配的最佳适配选 择) , 和 / 或跨所有的存储装置 104 来分布可用容量, 使得容量在所有的存储装置 104 上可 用,。
45、 以便满足规定多个存储装置 104 的约束的随后的请求。 0032 鉴于这些考虑, 可以意识到, 用于选择具体的存储装置 104 和物理位置来满足容 量请求的分配策略的设计可以很大地影响存储装置组 102 的性能。相反, 可以意识到, 较差 设计的分配策略可能以限制约束 112 的方式选择分配, 所述约束是可能通过响应于随后的 容量请求由存储装置 104 的剩余可用容量被满足的。也就是, 即使存储装置组 102 的可用 容量足以满足容量请求的大小, 也可能很难分配满足所述请求的约束 112 的容量。存储装 置组 102 因此可能必须重新安置某些数据, 以便安排可用容量来满足所述请求的约束 11。
46、2, 这可能延迟请求的完成 (可能在延长的时间段内阻塞请求进程或线程) 。事实上, 在某些情 景下, 尽管物理容量的可用量足够, 也可能不能满足请求, 因为其它进程可能正在活动地利 用存储装置组102的其它数据集, 和/或可能不能重新安置其它数据集而不 (临时或甚至永 久地) 违反与其相关联的约束 112。因此, 由于较差设计的分配策略而导致的问题可能对于 存储装置组 102 具有重大的影响。 0033 图 2 给出描绘低效分配策略的结果的示范性情景 200 的例图。在这个示范性情 说 明 书 CN 102929787 A 10 8/20 页 11 景 200 中, 可以提供四个存储装置 10。
47、4(初始为空) 的存储装置组 102。在第一时间点 202, 响应于用于第一空间 108 的第一容量请求, 可以分配两个盘区 106。而且, 盘区 106 可以在 同一个存储装置 104 上被一起分配, 例如, 按照由请求和 / 或空间 108 规定的、 指示连续盘 区 106 的分配的约束 112。在第二时间点 204, 第二请求可以请求用于第二空间 108 的四个 盘区 106 的分配, 以及存储装置组 102 可以通过在每个存储装置 104 上分配一个盘区 106 而分布分配。这个分布可以由对于第二空间 108 所规定的约束 112 指示, 或按照存储装置 104 的分配策略进行 (例如。
48、, 严格的循环分配策略, 其寻求最大化每个数据集跨几个存储装 置 104 的分布) 。虽然由这种分布带来的提高的性能和 / 或可靠性可以是有利的, 但分布也 可能会限制可用容量用于将来的请求。例如, 在第三时间点 206, 存储装置组 102 可能接收 对于分配两个盘区106给第三空间108的请求 (且可以不规定约束114) , 但是分配策略可以 通过在第一和第二存储装置 104 上分配盘区 106 而满足请求。这个分配可能耗尽第三存储 装置104的容量, 即使存储装置组102的物理容量只利用了50%。 如果随后的对于容量的请 求规定了约束 114, 其指示跨所有的四个存储装置 104 分布,。
49、 则存储装置组 102 在不把一个 或多个盘区 106 从第一存储装置 104 重新安置到另一个存储装置 104 的情况下不能满足这 个请求。另外, 第一存储装置 104 的过载增加了接收到对于访问第一存储装置 104 的竞争 请求的概率, 这导致第一存储装置104的延迟的响应和性能, 而同时其它存储装置104仍保 持为空闲的。作为再一个例子, 第一存储装置 104 的增加的使用可以缩短所述第一存储装 置 104 的寿命, 而同时其它存储装置 104 仍保持为空闲的。因此, 这些和其它问题可以是从 低效的分配策略的设计引发的。 0034 在存储装置组 102 内可以引发的另一个问题牵涉到在包括已被过度预配的空间 108 的存储装置组 102 中可用容量的耗尽。具体地, 各种各样的空间 108(每个具有特定 的用途) 可以被过度预配, 且为了避免容量耗尽而被管理员监视。然而, 在许多这样的情景 下, 容量仍保持为对于所有的过度预配的空间 108 是可用的, 直至达到容量耗尽为止, 在这 一点, 容量变为对于所有的过度预配的空间 108 是不可用的。这个结果可能是不希望的, 例 如, 如果空间 108 具有不同的优先级, 那么过度预配的、 较高。