存储子系统的自动精简配置池上的卷复制管理方法

文档序号:6373418阅读:305来源:国知局
专利名称:存储子系统的自动精简配置池上的卷复制管理方法
技术领域
本发明通常涉及计算机存储系统,并且更为具体地,涉及计算机存储系统中的自动精简配置(thin-provisioning)和复制功能。
背景技术
存储虚拟技术被广泛使用。一个示例是自动精简配置。例如,参见美国专利N0.6,823,442。虚拟技术可以改进存储可用性和效率。可用性的改进通过隐藏内部配置(磁盘配置、数据位置等)实现。效率的改进通过共享存储资源(磁盘工作负荷、处理器工作负荷、内部总线工作负荷、容量等)实现。卷复制技术也被广泛使用,例如包括备份、在线&批处理(针对DWH (数据仓库)等)。复制方法的示例是整卷复制和写时复制快照。例如,参见美国专利N0.7,716,435。图1示出了整卷复制的示例。当在使用自动精简配置技术的情况下执行整卷复制时,存储管理员不得不制作主卷(PVOL)的自动精简配置池以及副卷(SVOL)的自动精简配置池。如果独立冗余磁盘阵列(RAID)组(RG)有故障,则PVOL也有故障。存储管理员可以利用SVOL恢复。问题在于这不足以得到更高的性能。例如,如果被复制的逻辑卷仅仅用于备份,则仅仅在执行备份/恢复时使用RG#6-8。PV0L#2可以使用RG#6-8。由于需要两个或更多个池,所以不容易维护。图2示出了组合PVOL和SVOL的自动精简配置池的示例。在所示示例中,如果RG#3故障,则PV0L#1和SV0L#1都故障。结果是,由于一个RAID组故障造成PVOL和SVOL都有故障,所以难以在存储子系统中组合主逻辑卷和副逻辑卷的自动精简配置池。在美国专利N0.6,823,442和7,716,435中没有考虑该问题。

发明内容
本发明的示例实施例在存储子系统中提供集成的主逻辑卷的自动精简配置池和副逻辑卷的自动精简配置池。根据本发明的一个方面,一种存储系统包括:处理器;存储器;以及存储控制器,该存储控制器用于响应于写入请求而从第一池中分配存储区,并且对从第一池中的不同指定RAID组中分配用于多个相关数据的存储区进行控制,所述用于多个相关数据的存储区要从第一池中分配。在一些实施例中,多个相关数据包括多个文件。多个相关数据包括存储在第一卷中的数据以及存储在第二卷中的数据,以及第一卷和第二卷是成对的。多个相关数据包括存储在第一卷中的数据以及存储在第二卷中的数据,以及存储在第二卷中的数据是对存储在第一卷中的数据的写时复制。多个相关数据包括存储在第一卷中的数据以及存储在与同一第一卷对应的多个第二卷中的数据,存储在多个第二卷中的数据包括第一卷中的数据的被复制页,并且被复制页在多个第二卷之间共享。多个相关数据包括存储在第一卷中的数据以及存储在与同一第一卷对应的多个第二卷中的数据,存储在多个第二卷中的数据包括第一卷中的数据的多个被复制页,并且该多个被复制页不在多个第二卷之间共享。多个相关数据包括存储在多个卷中的数据,并且存储控制器基于多个卷的属性分配相关数据。在特定实施例中,多个相关数据包括存储在主卷中的数据以及存储在一个或多个对应副卷中的数据。存储控制器包括:命令接收模块,用于确定存储系统是否已经接收到任何卷复制配置命令;以及磁盘I/O执行模块,用于如果存储系统没有接收到卷复制配置命令,则确定存储系统是否已经接收到任何读取1/0,如果已经接收到,则查阅页管理表,并且从该页管理表的对应RAID组中读取页,其中针对每个主卷,页管理表包括虚拟卷编号、逻辑块地址、RAID组编号以及页编号,以及针对每个副卷,页管理表包括虚拟卷编号、逻辑块地址、RAID组编号和页编号;确定存储系统是否已经接收到任何写入1/0,以及如果已经接收到,则查阅卷复制管理表和页管理表,并且通过确定页管理表中是否存在写入I/O页的对应项,决定是否更新写入I/O页,以及如果不存在,则从卷复制管理表中的主卷的对应RAID组中选择一个RAID组并且更新页管理表,并且随后不管页管理表中是否已经存在对应项,都将页写入到所选择的RAID组中,其中针对每个主卷,卷复制管理表包括主卷编号、主卷的RAID组编号,以及对应的一个或多个副卷的副卷编号以及该对应的一个或多个副卷的RAID组编号。在一些实施例中,存储控制器包括卷复制控制模块,用于如果存储系统已经接收到卷复制配置命令,则确定卷复制控制输入是否是直接选择的RAID组、RAID组比例或I/O性能。如果卷复制控制输入是直接选择的RAID组,则卷复制控制模块提供对卷复制管理表中的所选RAID组的RAID组编号的更新。如果卷复制控制输入是RAID组比例,则卷复制控制模块根据所选比例,执行RAID组分配。如果卷复制控制输入是I/O性能,则卷复制控制模块根据所选I/O性能,执行RAID组分配。针对主卷,卷复制控制输入还包括主卷编号、RAID组编号、RAID组比例以及I/O性能,以及针对一个或多个对应副卷中的每一个,卷复制控制输入还包括副卷编号、RAID组编号、RAID组比例、I/O性能以及关于副卷是否能够与主卷共孕RAID组的指不。在特定实施例中,卷复制控制模块被配置为:确定对用于存储相关数据的主卷和一个或多个副卷的RAID组的更新是否是从先前设置改变而来的,以及如果是,则在背景任务中重新平衡所分配的页;以及确定对用于存储相关数据的主卷和一个或多个副卷的RAID组的更新是否是从先前设置中减少而来的,以及如果是,则将所分配的页移到其它RAID组,并且更新页管理表。在特定实施例中,由卷复制控制模块根据所选比例执行RAID组分配包括:针对卷复制控制输入中的主卷,以所选比例分配RAID组,其中从RAID组被作为主卷最后分配的下一卷开始RAID组编号;以及针对卷复制控制输入中的副卷,从对应主卷的相同RAID组中,以所选比例分配RAID组,其中从具有相同的对应主卷的副卷被最后分配的下一卷开始RAID组编号;以及确定副卷的比例是否大于剩余的未被分配的RAID组的剩余比例,以及如果大于,则指示在分配RAID组时出现错误,以及如果不大于,则以所选比例从被分配给对应主卷的不同RAID组中分配RAID组,其中从具有相同的对应主卷的副卷被最后分配的下一卷开始RAID组编号。在特定实施例中,由卷复制控制模块根据所选I/O性能执行RAID组分配包括:针对卷复制控制输入中的主卷,从非全容量RAID组开始分配RAID组,直到RAID组的总I/O性能超过所选I/o性能,其中从RAID组被作为主卷最后分配的下一卷开始RAID组编号;以及针对卷复制控制输入中的每个副卷,如果该副卷能够与主卷共享RAID组,则以所选I/O性能从对应主卷的相同RAID组中分配RAID组,其中从具有相同的对应主卷的副卷被最后分配的下一卷开始RAID组编号;以及确定剩余未被分配的RAID组的总I/O性能是否小于所选I/O性能,以及如果小于,则指示在分配RAID组时出现错误,以及如果不小于,则以所选I/O性能从被分配给对应主卷的不同RAID组中分配RAID组,其中从具有相同的对应主卷的副卷被最后分配的下一卷开始RAID组编号。在一些实施例中,多个相关数据包括存储在主卷中的数据以及存储在一个或多个对应副卷中的数据,其中存储在一个或多个副卷中的数据是对存储在主卷中的数据的写时复制,其中存储控制器包括:命令接收模块,被配置为确定存储系统是否已经接收到任何卷复制配置命令;以及磁盘I/o执行模块,用于如果存储系统没有接收到卷复制配置命令,则确定存储系统是否已经接收到任何读取1/0,如果已经接收到,则查阅页管理表,并且从该页管理表的对应RAID组中读取页,其中针对每个主卷,页管理表包括虚拟卷编号、逻辑块地址、RAID组编号以及页编号,以及针对每个副卷,页管理表包括虚拟卷编号、逻辑块地址、主卷变换或RAID组编号、以及与主卷编号或RAID组编号对应的主卷逻辑块地址或页编号;确定存储系统是否已经接收到任何写入1/0,以及如果已经接收到,则查阅卷复制管理表和页管理表,并且通过确定页管理表中是否存在写入I/O页的对应项,决定是否更新写入I/O页,以及如果存在,则将当前页复制到从对应副卷的RAID组中选出的一个RAID组中,并且更新对应副卷的页管理表,以及如果不存在,则从卷复制管理表中的主卷的对应RAID组中选择一个RAID组并且更新页管理表,并且随后不管页管理表中是否已经存在对应项,都将页写入到所选择的RAID组中,其中针对每个主卷,卷复制管理表包括主卷编号、主卷的RAID组编号、对应的一个或多个副卷的副卷编号以及该对应的一个或多个副卷的RAID组编号。在特定实施例中,存储控制器包括卷复制控制模块,用于如果存储系统已经接收到卷复制配置命令,则确定卷复制控制输入是否是直接选择的RAID组、RAID组比例或I/O性能。如果卷复制控制输入是直接选择的RAID组,则卷复制控制模块提供对卷复制管理表中的所选RAID组的RAID组编号的更新。如果卷复制控制输入是RAID组比例,则卷复制控制模块根据所选比例,执行RAID组分配。如果卷复制控制输入是I/O性能,则卷复制控制模块根据所选I/O性能,执行RAID组分配。针对主卷,卷复制控制输入还包括主卷编号、RAID组编号、RAID组比以及I/O性能,以及针对一个或多个对应副卷中的每个,卷复制控制输入还包括副卷编号、RAID组编号、RAID组比、I/O性能以及关于副卷是否能够与主卷共享RAID组的指示。在一些实施例中,卷复制控制模块被配置为:确定对用于存储相关数据的主卷和一个或多个副卷的RAID组的更新是否是从先前设置改变而来的,以及如果是,则在背景任务中重新平衡所分配的页;以及确定对用于存储相关数据的主卷和一个或多个副卷的RAID组的更新是否是从先前设置中减少而来的,以及如果是,则将所分配的页移到其它RAID组,并且更新页管理表。在特定实施例中,由卷复制控制模块根据所选比例执行RAID组分配包括:针对卷复制控制输入中的主卷,以所选比例分配RAID组,其中从RAID组被作为主卷最后分配的下一卷开始RAID组编号;以及针对卷复制控制输入中的每个副卷,从对应主卷的相同RAID组中,以所选比例分配RAID组,其中从具有相同的对应主卷的副卷被最后分配的下一卷开始RAID组编号;以及确定副卷的比例是否大于剩余的未被分配的RAID组的剩余比例,以及如果大于,则指示在分配RAID组时出现错误,以及如果不大于,则以所选比例从被分配给对应主卷的不同RAID组中分配RAID组,其中从具有相同的对应主卷的副卷被最后分配的下一卷开始RAID组编号。由卷复制控制模块根据所选I/O性能执行RAID组分配包括:针对卷复制控制输入中的主卷,从非全容量RAID组开始分配RAID组,直到RAID组的总I/O性能超过所选I/O性能,其中从RAID组被作为主卷最后分配的下一卷开始RAID组编号;以及针对卷复制控制输入中的每个副卷,如果该副卷能够与主卷共享RAID组,则以所选I/O性能从对应主卷的相同RAID组中分配RAID组,其中从具有相同的对应主卷的副卷被最后分配的下一卷开始RAID组编号;以及确定剩余未被分配的RAID组的总I/O性能是否小于所选I/O性能,以及如果小于,则指示在分配RAID组时出现错误,以及如果不小于,则以所选I/O性能从被分配给对应主卷的不同RAID组中分配RAID组,其中从具有相同的对应主卷的副卷被最后分配的下一卷开始RAID组编号。在一些实施例中,多个相关数据包括存储在主卷和多个对应副卷中的数据。存储控制分配相关数据,以使得与同一主卷对应的多个副卷可以具有多个在副卷之间不共享的被复制页。存储控制器包括:命令接收模块,被配置为确定存储系统是否已经接收到任何卷复制配置命令;以及磁盘I/o执行模块,用于如果存储系统没有接收到卷复制配置命令,则确定存储系统是否已经接收到任何读取1/0,如果已经接收到,则查阅页管理表,并且从该页管理表的对应RAID组中读取页,其中针对每个主卷,页管理表包括虚拟卷编号、逻辑块地址、RAID组编号以及页编号,以及针对每个副卷,页管理表包括虚拟卷编号、逻辑块地址、主卷变换或RAID组编号、以及与主卷编号或RAID组编号对应的主卷逻辑块地址或页编号;确定存储系统是否已经接收到任何写入1/0,以及如果已经接收到,则查阅卷复制管理表和页管理表,并且通过确定页管理表中是否存在写入I/O页的对应项,决定是否更新写入I/O页,以及如果存在,则将当前页复制到从多个对应副卷的RAID组中选出的一个RAID组中,并且更新对应副卷的页管理表,以及如果不存在,则从卷复制管理表中的主卷的对应RAID组中选择一个RAID组并且更新页管理表,并且随后不管页管理表中是否已经存在对应表项,都将页写入到所选择的RAID组中,其中针对每个主卷,卷复制管理表包括主卷编号、主卷的RAID组编号,对应副卷的副卷编号以及该对应副卷的RAID组编号。在特定实施例中,存储控制器包括卷复制控制模块,用于如果存储系统已经接收到卷复制配置命令,则确定卷复制控制输入是否是直接选择的RAID组、RAID组比例或I/O性能。如果卷复制控制输入是直接选择的RAID组,则卷复制控制模块提供对卷复制管理表中的所选RAID组的RAID组编号的更新。如果卷复制控制输入是RAID组比,则卷复制控制模块根据所选比例,执行RAID组分配。如果卷复制控制输入是I/O性能,则卷复制控制模块根据所选I/O性能,执行RAID组分配。针对主卷,卷复制控制输入还包括主卷编号、RAID组编号、RAID组比例以及I/O性能,以及针对对应副卷中的每一个,卷复制控制输入还包括副卷编号、RAID组编号、RAID组比例、I/O性能以及关于副卷是否能够与主卷共享RAID组的指示。在一些实施例中,卷复制控制模块被配置为:确定对用于存储相关数据的主卷和副卷的RAID组的更新是否是从先前设置改变而来的,以及如果是,则在背景任务中重新平衡所分配的页;以及确定对用于存储相关数据的主卷和副卷的RAID组的更新是否是从先前设置中减少而来的,以及如果是,则将所分配的页移到其它RAID组,并且更新页管理表;以及确定每个所述副卷的RAID组是否被并入,以及如果是,则确定被并入的副卷是否也具有被复制页,以及如果不具有,则将先前页移到从新RAID组中选出的一个RAID组,并且更新所述页管理表中的RAID组编号和页编号项,以及如果具有,则将所述页管理表中的RAID组编号和页编号项更新为所述被并入的副卷的RAID组编号和页编号;以及确定从其它副卷是否引用了所述先前页是否引用自其它副卷,以及如果是,则删除所述先前页。在特定实施例中,由卷复制控制模块根据所选比例执行RAID组分配包括:针对卷复制控制输入中的主卷,以所选比例分配RAID组,其中从RAID组被作为主卷最后分配的下一卷开始RAID组编号;以及针对卷复制控制输入中的每个副卷,从对应主卷的相同RAID组中,以所选比例分配RAID组,其中从具有相同的对应主卷的副卷被最后分配的下一卷开始RAID组编号;以及确定副卷的比例是否大于剩余的未被分配的RAID组的剩余比例,以及如果大于,则指示在分配RAID组时出现错误,以及如果不大于,则以所选比例从与被分配给对应主卷的RAID组不同的RAID组中分配RAID组,其中从具有相同的对应主卷的副卷被最后分配的下一卷开始RAID组编号。由卷复制控制模块根据所选I/O性能执行RAID组分配包括:针对卷复制控制输入中的主卷,从非全容量RAID组开始分配RAID组,直到RAID组的总I/O性能超过所选I/O性能,其中从RAID组被作为主卷最后分配的下一卷开始RAID组编号;以及针对卷复制控制输入中的每个副卷,如果该副卷能够与主卷共享RAID组,则以所选I/O性能从对应主卷的相同RAID组中分配RAID组,其中从具有相同的对应主卷的副卷被最后分配的下一卷开始RAID组编号;以及确定剩余未被分配的RAID组的总I/O性能是否小于所选I/O性能,以及如果小于,则指示在分配RAID组时出现错误,以及如果不小于,则以所选I/O性能从与被分配给对应主卷的RAID组不同的RAID组中分配RAID组,其中从具有相同的对应主卷的副卷被最后分配的下一卷开始RAID组编号。根据本发明的另一方面,存储系统包括:处理器;存储器;以及存储控制器,该存储控制器用于响应于写入请求而从第一池中分配存储区,以及对于从第一池的不同RAID组中分配用于多个相关数据的存储区进行控制,所述用于多个相关数据的存储区要从第一池中分配。鉴于下述具体实施例的详细描述,本发明的这些和其它特征和优点对于本领域普通技术人员而言将变得显而易见。


图1示出了整卷复制的示例。图2示出了将针对PVOL和SVOL的自动精简配置池进行组合的示例。图3示出了根据第一实施例的针对PVOL和SVOL的自动精简配置池以及用于管理整卷复制的卷复制管理表的示例。图4示出了针对PVOL和SVOL的自动精简配置池以及被改变的卷复制管理表的示例。图5例示了可以应用本发明的方法和装置的系统的配置和功能的示例。
图6示出了 RAID组管理表的示例。图7示出了自动精简配置池管理表的示例。图8示出了逻辑卷管理表的示例。图9示出了根据第一实施例的卷复制管理表的示例。图10示出了根据第一实施例的页管理表的示例。图11示出了自动精简配置池管理服务器的配置的示例。图12示出了集成存储池卷复制管理器的配置的示例。图13示出了例示根据第一实施例的命令接收的主过程的流程图的示例。图14示出了例示图13中的卷复制配置处理的流程图的示例。图15示出了例示图14中的根据所选比例进行RG分配的流程图的示例。图16示出了例示图14中的根据所选I/O性能进行RG分配的流程图的示例。图17示出了根据第二实施例的针对PVOL和SVOL的自动精简配置池以及用于管理写时复制快照的卷复制管理表的示例。图18示出了根据第二实施例的卷复制管理表的示例。图19示出了根据第二实施例的页管理表的示例。图20示出了例示根据第二实施例的命令接收的主过程的流程图的示例。图21示出了根据第三实施例的针对PVOL和SVOL的自动精简配置池以及用于管理写时复制快照的卷复制管理表的示例。图22示出了根据第三实施例的卷复制管理表的示例。图23示出了根据第三实施例的页管理表的示例。图24示出了例示根据第三实施例的命令接收的主过程的流程图的示例。图25示出了例示图24中的卷复制配置处理的流程图的示例。
具体实施例方式在本发明的下述详细描述中,参照构成本公开内容的一部分的附图,在附图中,以例示而不是限制性的方式,示出可以实践本发明的示例实施例。在附图中,在整个若干示图中,相似的参考标记描述基本相似的组件。此外,应该注意,尽管详细描述如下所述以及如附图中所示提供了各种示例实施例,但是本发明不限于本文中描述和例示的实施例,而可以扩展到其它实施例,如本领域技术人员已知或者将变为已知。说明书中对“一个实施例”、“本实施例”或“这些实施例”的引用意味着结合实施例描述的特定特征、结构或特性包括在本发明的至少一个实施例中,并且这些短语在说明书的各个地方的出现不必都指代同一实施例。另外,在下面的详细描述中,阐述了许多具体细节,以便提供对本发明的全面理解。然而,本领域普通技术人员将明白的是,实践本发明不必需要所有这些具体细节。在其它场合,公知结构、材料、电路。过程和接口没有详细描述,和/或可以以方框图的形式例示,从而不对本发明产生不必要的混淆。此外,针对算法和计算机内的操作的符号表示,如下呈现了详细描述的一部分。这些算法描述和符号表示是本领域技术人员在数据处理领域中使用的含义,从而将它们的创新性的本质最有效地传递给本领域的其它技术人员。算法是导致期望的末端状态或结果的一系列限定步骤。在本发明中,所执行的步骤要求可触及物理量的用于实现可触及结果的物理操作。通常,但不是必须的,这些量采用能够存储、传送、组合、比较以及以其它方式操纵的电信号、磁信号或指令的形式。将这些信号称为比特、值、元素、符号、字符、能级(term)、数字、指令等,有时已经证明是方便的,主要是通用用法的原因。然而,应该铭记的是,所有这些以及类似术语要与合适的物理量相关联,并且仅仅是应用于这些量的便利标签。除非以其它方式特别声明,如根据下面的讨论显而易见的,在整个描述中,使用比如“处理”、“计算”、“运算”、“确定”、“显示”等的术语的讨论可以包括计算机系统或其它信息处理设备的动作和过程,该计算机系统或其它信息处理设备操作并将被表示为计算机系统的寄存器和存储器内的物理(电子)量的数据变换为被类似地表示为计算机系统的存储器或寄存器或其它信息存储、传输或显示设备内的物理量的数据。本发明还涉及用于执行本文中的操作的装置。该装置可以针对所需目的特定构造,或者它可以包括由一个或多个计算机程序选择性激活或重新配置的一个或多个通用计算机。这些计算机程序可以存储在计算机可读存储介质中,比如但不限于光盘、磁盘、只读存储器、随机存取存储、固态设备和驱动器,或者任何其它类型的适于存储电子信息的介质。本文中呈现的算法和显示器不是固有地涉及任何特定计算机或其它装置。各种通用系统可以与根据本文中的教导的程序和模块一起使用,或者构造更为专用的装置来执行期望的方法步骤被证明是便利的。另外,本发明不参照任何特定编程语言描述。将明白的是,可以使用各种编程语言来实现如本文中所述的本发明的教导。编程语言的指令可以由一个或多个处理设备执行,比如中央处理单元(CPU )、处理器或控制器。如将在下面更为详细的描述,本发明的示例实施例提供用于存储子系统中的针对主逻辑卷和副逻辑卷的集成自动精简配置池的装置、方法和计算机程序。第一实施例图3示出了根据第一实施例的针对PVOL和SVOL的自动精简配置池以及用于管理整卷复制的卷复制管理表的示例。卷复制管理表管理RAID组,每个逻辑卷能够将页写入到该RAID组。因此,SVOL的写入页被写入到与PVOL的RAID组不同的RAID组中。图4示出了针对PVOL和SVOL的自动精简配置池以及被改变的卷复制管理表的示例。如果逻辑卷的RAID组减少,则对应RG的页被移到其它RG。如果逻辑卷的RAID组没有减少,则在背景任务中重新平衡当前RG的页。例如,PV0L#1要求更好的性能,并且因此PV0L#1 的 RG 从 RG#l-5 变到 RG#1_6。同时,SV0L#1 的 RG 应该从 RG#6_8 变到 RG#7_8,以防止并发故障(concurrent failure)。RG#6的页被移到RG#7和#8。结果是,这改善了存储子系统的管理性和I/O性能。图5例示了可以应用本发明的方法和装置的系统的配置和功能的示例。池管理服务器501具有用于从用户接收输入的GUI (图形用户界面)。外部存储子系统的逻辑单元(LU)503被设置。前端存储子系统500包括具有CPU511的存储控制器510、存储器512、网络接口卡(NIC)513、光纤通道接口(FCI/F)514以及SCSI I/F515。存储器包括高速缓存区521和各种模块和表格。命令接收模块531执行命令接收的主处理(参见图13的流程图)。经由NIC513从池管理服务器501发送输入命令。磁盘I/O执行模块532和卷复制控制模块533由命令接收模块531调用。磁盘I/O执行模块532执行图13的流程图中的步骤1304-1311。磁盘I/O执行模块532被配置为经由 SCSI I/F515 对 SSD516、15Krpm HDD517、10KrpmHDD518 和 7Krpm HDD519 进行读取 /写入。磁盘I/o执行模块532管理页管理表540。卷复制控制模块533执行卷复制配置处理(参见图14的流程图)。卷复制控制模块533管理RG信息,由此每个逻辑卷可以利用池管理服务器501中的输入信息进行读取/写入。卷复制控制模块533管理RAID组管理表536、自动精简配置池管理表537、逻辑卷管理表538以及卷复制管理表539。页分配控制模块534和分配RG计算模块535由卷复制控制模块533调用。页分配控制模块534执行卷复制配置处理(参见图14的流程图(1406-1410))。当卷复制管理表539被更新时,页分配控制模块534被调用。如果必要,则程序将页移到其它RG。分配RG计算模块535根据所选比例执行RG分配(参见图15的流程图)以及根据所选I/O性能执行RG分配(参见图16的流程图)。程序计算RG信息,其中每个逻辑卷可以利用池管理服务器501中的输入策略(RG比例、I/O性能),进行读取/写入。RAID组管理表536 管理RAID组信息(参见图6)。自动精简配置池管理表537管理自动精简配置池信息(参见图7)。逻辑卷管理表538管理逻辑卷信息(参见图8)。卷复制管理表539管理卷复制信息(参见图9)。页管理表540管理页分配信息(参见图10)。图6示出了 RAID组管理表536的示例。该表具有下述列:RAID组编号(#) 601、容量602、属性603、内部/外部604、RAID级605、磁盘#或者WWN/LUN606、随机I/O性能(IOPS) 607以及顺序I/O性能(MB/s) 608。属性列603存储RAID组的介质类型及连接类型。在磁盘#或WWN/LUN606中,如果该磁盘是内部磁盘,则它存储前端存储子系统500的磁盘ID,如果该磁盘是外部卷,则它存储可以在系统中识别的卷信息(例如,WffN (万维网名称)以及LUN (逻辑单元编号))。图7示出了自动精简配置池管理表537的示例。该表具有下述列:池#701、容量702、已使用容量703以及RAID组#704。图8示出了逻辑卷管理表538的示例。该表具有下述列:卷#801、属性802、池#803、容量804以及已使用容量805。图9示出了根据第一实施例的卷复制管理表539的示例。该表具有下述列:PVOL^ #90KPVOL RG#902、SV0L 卷 #903、SV0L RG#904 以及属性 905。PVOL RG# 列 902 列出了PVOL卷#列901的RG。写入页被分配给上述RG。SVOL RG#列904列出了 SVOL卷#列903的RG。写入页被分配给上述RG。属性列905是可选的,并且示例包括备份、数据仓库以及最新备份。在所示示例中,卷#1的RG与卷#2的RG不同。卷#3的RG与卷#4的RG不同,但是卷#5部分使用卷#3的RG (RG#5, 6)。卷#6的RG与卷#9 (最新备份)的RG不同,但是卷#7,8可以使用卷#6的RG。图10示出了根据第一实施例的页管理表540的示例。该表具有下述列:虚拟卷#1001、LBA1002、RAID 组 #1003 以及页 #1004。在所示示例中,PV0L#1 中的 LBA 是 0_99 的页被分配给RG#1的页10,而SV0L#1中的LBA是1000-1099的页被分配给RG#6的页110。图11示出了自动精简配置池管理服务器500的配置的示例。服务器500具有CPU1101、NIC1102、存储器1103、一个或多个输入设备1104以及显示器1105。存储器存储ISP RAID组控制1111 (参见图6,常规方法)、ISP自动精简配置池控制1112 (参见图7,常规方法)、ISP逻辑卷控制1113 (参见图8,常规方法)以及ISP卷复制控制1114,其从集成存储卷复制管理器⑶11122接收输入并且将卷复制配置命令发送给命令接收模块531 (参见图5)。
图12示出了集成存储池卷复制管理器1122的配置的示例。管理器1122提供用于用户的输入和输出接口。管理器1122具有卷复制面板1201 (参见图9和图13-16)。输入RG、比例和I/O性能中的如上选择的仅仅一列就足够。管理器1122还包括RAID组面板1202 (参见图6)、自动精简配置面板1203 (参见图7)以及逻辑卷面板1204 (参见图8)。图13示出了例示根据第一实施例的命令接收的主过程的流程图的示例(参见图3以及图5中的命令接收模块531)。当在卷复制面板1201中设置卷复制配置时,该过程从步骤1301开始。在步骤1302,程序确定存储子系统是否已经接收到任何卷复制配置命令。如果接收到,则在步骤1303,程序执行卷复制配置处理(参见图14)。在步骤1304,程序确定存储子系统是否已经接收到任何读取I/O。如果接收到,则在步骤1305,程序查阅页管理表540,并且在步骤1306,程序从页管理表540的对应RG中读取页。在步骤1307,程序确定存储子系统是否已经接收到任何写入I/O。如果接收到,则程序前行到步骤1308到1311。在步骤1308,程序查阅卷复制管理表539和页管理表540。在步骤1309,程序通过确定页管理表540中是否已经存在对应行,决定写入I/O页是否被更新。如果存在,则程序跳过步骤1310。如果不存在(步骤1310),则程序从卷复制管理表539的对应RG中选择一个RG (例如,循环),并且更新页管理表540。例如,PV0L#1使用RG#l-5。因此,第一页被分配给RG#1的页#10,以及下一页被分配给RG#2的页#20,等等(参见图10,循环情形)。在步骤1311,程序将页写入到对应RG。在步骤1312,程序确定存储子系统是否已经接收到关闭命令。如果已经接收到,则程序在步骤1313结束。如果没有,则程序返回到步骤1302。图14示出了例示卷复制配置处理的流程图的示例(参见图4,图5的卷复制控制模块以及图13的步骤1303)。在步骤1402,程序确定卷复制面板1201中的哪个信息是输入(直接选择的RG、RG比例或I/O性能)。如果输入是直接选择的RG,则在步骤1403,程序提供对卷复制管理表539的RG#列上的所选RG#的更新。也就是,利用卷复制面板1201上的信息,更新卷复制管理表 540。例如,PV0L#6:RG#l-5 ;SV0L#7:RG#l-3 ;SV0L#8:RG#4-5 ;以及SV0L#9:RG#6-8。如果输入是RG比例,则在步骤1404,程序根据所选比例执行RG分配。如果输入是I/O性能,则在步骤1405,程序根据所选I/O性能执行RG分配。在步骤1406,程序确定对PV0L/SV0L的更新是否是保持为先前设置未变,或者是仅仅通过更新卷复制管理表 540 增加 RG (例如,RG#l-3->RG#l-3 或者 RG#l-3->RG#l-4。其不是 RG#1_3->RG#2_4的上述情形)。如果是,则在步骤1407,在背景任务中重新平衡所分配的页。在步骤1408,程序确定对PV0L/SV0L的更新是否是通过更新卷复制管理表540来从先前设置中减少(例如,RG#l-3->RG#l-2或者RG#l-3->RG#2-4)。如果是,则程序前行到步骤1409和1410。在步骤1409,所分配的页被移到其它RG (例如,循环)。所移动的页可以分配给对应逻辑卷的任何RG (例如,通过使用循环法将所移动的页分配给RG,所移动的页被分配给增加的RG,等)。在步骤1410,更新页管理表540。程序在步骤1411结束。图15示出了例示根据所选比例进行RG分配的流程图的示例(参见图14的步骤1404)。在步骤1502,程序确定卷复制面板1201中的卷是否是PV0L。例如,在图12中示出的卷复制面板1201中,首先选择PV0L#6。在这种情况下,步骤1502的确定结果为是。如果是,则程序前行到步骤1503,并且随后前行到步骤1509。如果不是,则程序前行到步骤1504。在步骤1503,程序以所选比例分配RG。RG#从RG被作为PVOL最后分配的下一卷开始。例如,在图12中示出的卷复制面板1201中,PV0L#6的比例是62.5%。卷池#1的总量是8(RG#l-8)。结果是,因此分配8*0.625=5个RG (RG#l-5)。在步骤1504,程序确定在卷复制面板1201中是否选择SVOL的共享复选框(该卷的RG能够与PVOL的RG共享吗?)例如,在SV0L#7的复选框中,选择是,则在SV0L#9的复选框中,选择否。如果选择,则程序前行到步骤1505,并且随后前行到步骤1509。如果没有选择,则程序前行到步骤1506。在步骤1505,程序从对应PVOL的相同RG中,以所选比例分配RG。RG#从具有相同的对应PVOL的SVOL被最后分配的下一卷开始。例如,SV0L#7的RG被分配给PV0L#6的相同RG(RG#1_5)。卷池#1的总量是8 (RG#l-8)。结果是,因此分配8*0.375=3个RG (RG#1_3)。按照相同的方式,SV0L#8的RG被分配到RG#4-5 (因为RG#从作为下一编号的RG#4开始)。在步骤1506,程序确定SVOL的比例是否大于(剩余未被分配的RG的)剩余比例。例如,在图12,如果PV0L#6的比例是62.5%,以及SV0L#9的比例是50% (共享列中未多选),则在步骤1506中选择是。如果大于,则由于程序不能在步骤1507分配RG,程序指示错误,并且随后在步骤1511结束。如果小于,则程序前行到步骤1508,并且从对应PVOL的不同RG中,以所选比例分配RG。RG#从具有相同的对应PVOL的SVOL被最后分配的下一卷开始。例如,SV0L#9的RG被分配到PV0L#6的不同RG (RG#6_8)。卷池#1的总量是8 (RG#1_8)。结果是,因此分配8*0.375=3个RG (RG#6_8)。随后,程序前行到步骤1509。在步骤1509,程序确定它是否已经处理最后的卷。如果是,则程序在步骤1511结束。如果否,则程序在步骤1510进行到下一卷,并且返回到步骤1502。图16示出了例示根据所选I/O性能进行RG分配的流程图的示例(参见图14的步骤1405)。图16类似于图15。在步骤1602,程序确定卷复制面板1201中的卷是否是PV0L。如果是,则程序前行到步骤1603,并且随后前行到步骤1609。如果不是,则程序前行到步骤1604。在步骤1603,程序从非全容量RG开始分配RG,直到RG的总I/O性能超过所选I/O性能。RG#从RG被作为PVOL最后分配的下一卷开始。例如,在图12中示出的卷复制面板1201中,PV0L#6的I/O性能是3200MB/s。因为RG#1_5的总性能是3200MB/s,因此分配RG#l-5。在步骤1604,程序确定在卷复制面板1201中是否选择SVOL的共享复选框。如果选择,则程序前行到步骤1605,并且随后前行到步骤1609。如果没有选择,则程序前行到步骤1606。在步骤1605,按照与步骤1603相同的方式,程序从对应PVOL的相同RG中,以所选I/O性能分配RG。在步骤1606,程序确定剩余RG的总I/O性能是否小于所选I/O性能。例如,在图12,如果 PV0L#6 的 I/O 性能是 3200MB/s,并且 SV0L#9 的 I/O 性能是 1000MB/s,则 1000MB/s超过剩余RG的总I/O性能(RG#6-8,800MB/s)。因此,在步骤1606选择是。如果超过,则由于程序不能在步骤1607分配RG,程序指示错误,并且随后在步骤1611结束。如果未超过,则程序前行到步骤1608,并且按照与步骤1603相同的方式,从对应PVOL的不同RG中,以所选I/O性能分配RG。随后,程序前行到步骤1609。在步骤1609,程序确定它是否已经处理最后的卷。如果已经处理,则程序在步骤1611结束。如果没有,则程序在步骤1610进行到下一卷,并且返回到步骤1602。第二实施例第一实施例涉及整卷复制(例如,阴影图像),而第二实施例涉及写时复制快照。图17示出了根据第二实施例的针对PVOL和SVOL的自动精简配置池以及用于管理写时复制快照的卷复制管理表的示例。如上结合第一实施例所讨论的,卷复制管理表用于管理RAID组,由此每个逻辑卷可以写入页。当PVOL的页被更新时,该页被写入到SVOL的RG。此时,SVOL的被复制页被写入到与PVOL的RAID组不同的RAID组中。具有相同PVOL的SVOL中的被复制页被共享。图18示出了根据第二实施例的卷复制管理表539的示例。在写时复制快照的情况下,与同一 PVOL对应的SVOL被分配相同的RG。例如,SV0L#4-5被分配给RG#1_3,并且SV0L#7-9 被分配给 RG#6-8。该表具有下述列:PV0L 卷 #1801、PV0L RG#1802、SV0L 卷 #1803、SVOL RG#1804 以及属性 1805。图19示出根据第二实施例的页管理表540的示例。虚拟卷#1901和LBA1902列与图10中的第一实施例相同。SVOL的RAID组#1903可以是PV0L#或RAID组#,如同第一实施例中。图10的第一实施例中的页#列1004变为图19中的PVOL LBA/页#列1904。在写时复制快照的情况下,SVOL的页指向PVOL的对应页。例如,SV0L#2的LBA1000-1099仅仅指向 PV0L#1 的 LBA0-99,即,RG#1 的页 #10。SV0L#2 的 LBA1200-1299 被分配给 RG#8 的页 #130。图20示出了例示根据第二实施例的命令接收的主过程的流程图的示例(参见图17以及图5中的命令接收模块)。步骤2001-2009与图13中示出的第一实施例的步骤1301-1309相同。在步骤2010,程序将当前页复制到从对应SVOL的RG中选出的一个RG(例如,循环),并且更新SVOL的页管理表。例如,(2 (SV0L),1200-1299,PV0L#1,200-299)被更新为(2 (SV0L), 1200-1299, 8,130)。步骤 2011-2014 与图 13 中示出的步骤 1310-1313相同。第三实施例在第二实施例中,具有相同PVOL的SVOL的被复制页被共享。如果一个RG故障,则所有对应的SVOL都故障。此外,由于SVOL内的锁定是繁重的任务,所以读取SVOL可能缓慢。因此,一些SVOL被分配给其它SVOL的不同RG。在第三实施例中,具有相同PVOL的SVOL可以具有多个被复制页。图21示出了根据第三实施例的针对PVOL和SVOL的自动精简配置池以及用于管理写时复制快照的卷复制管理表的示例。当PVOL的页被更新时,将多个被复制页写入到SVOL的RG。当最新备份SVOL被分配到其它SVOL的不同RG时,可以将专用SVOL并入到其它SVOL的被复制页。图22示出了根据第三实施例的卷复制管理表539的示例。图22类似于图18,并且信息由图12中示出的⑶I输入。该表具有下述列:PV0L卷#2201、PVOL RG#2202、SVOL卷 #2203、SVOL RG#2204 以及属性 2205。图23不出了根据第三实施例的页管理表540的不例。图23类似于图19。该表具有下述列:虚拟卷 #2301、LBA2302、PV0L# 或 RAID 组 #2303 以及 PV0LLBA/ 页 # 列 2304。例如,PV0L#3 具有多个 SVOL (SV0L#4 和 SV0L#5)。当(3 (PVOL),200-299,7,30)被更新时,将当前页复制到RG#2和RG#5。随后,更新页管理表540:(4 (SV0L), 1200-1299, PVOL,200-299 ) ->(4(SVOL),1200-1200,2,13),(5(SVOL),2200-2299,PV0L, 200-299)->(5(SV0L),2200-2299, 5,230)。图24示出了例示根据第三实施例的命令接收的主过程的流程图的示例(参见图21和图5中的命令接收模块)。除了步骤2410与步骤2010不同之外,图24与图20相同。在步骤2410,将多个被复制页写入到SVOL的RG。图25示出了例示图24中的卷复制配置处理的流程图的示例(参见图21,图5中的卷复制控制模块,以及图24中的步骤2403)。步骤2502-2510与图14中示出的第一实施例的步骤1402-1410相同。在步骤2511,程序确定是否并入SVOL的RG。如果不并入,则程序在步骤2519结束。如果并入,则程序前行到步骤2512。例如,在图21中示出的卷复制管理表539 中,行(PV0L#l,RG#l-5, SV0L#2, RG#3-5)变为(PV0L#1,RG#1_5, SV0L#2,RG#6_8)。结果是,合并SV0L#1的RG和SV0L#2的RG。在步骤2512,程序确定被并入的SVOL是否也具有被复制页。如果不具有,则程序前行到步骤2513。如果具有,则程序前行到步骤2514。例如,程序假设 SV0L#4 被并入到 SV0L#5。由于 SV0L#5 的对应页(5,2100-2199,PV0L#1, 100-199)仅仅指向PVOL的页,所以SV0L#5不具有与SVOLM的(4,1100-1199, I, 120)对应的被复制页。另一方面,由于SV0L#5具有对应页(5,2200-2299, 5,230),所以SV0L#5具有与SV0L#4的(4,1200-1299, 2,230)对应的被复制页。在步骤2513,程序将先前页移到从新的RG中选出的一个RG (例如,循环),并且更新页管理表540的RG#列和页#列。在上述示例中,由于SV0L#5的对应页(5,2100-2199,PV0L#1, 100-199)仅仅指向 PVOL 的页,所以 SV0L#5 不具有与 SV0L#4 的(4,1100-1199, I, 120)对应的被复制页。程序将(4,1100-1199,I, 120)移到 RG#6 (因为页被分配到RG#5,所以利用循环来分配下一 RG,即,RG#6)。接着,例如,页管理表540中的(4,1100-1199,I, 120)被更新为(4,1100-1199,6,340)。在步骤 2514,程序将页管理表 540中的RG#列和页#列更新为被并入的SVOL的RG#列和页#列。在上述示例中,因为SV0L#5具有对应页(5,2200-2299,5,230),所以 SV0L#5 具有与 SV0L#4 的(4,1200-1299,2,130)对应的被复制页。在步骤2515,程序确定先前页是否是从其它SVOL引用的。如果不是,程序跳过步骤2516。如果是,程序在步骤2516删除该先前页。在上述示例中,由于SV0L#5的对应页(5,2100-2199,PV0L#1, 100-199)仅仅指向 PVOL 的页,所以 SV0L#5 不具有与 SV0L#4 的(4,1100-1199,I, 120)对应的被复制页。(4,1100-1199,I, 120)不是从其它SVOL引用的。因此,删除RG#1的页。在步骤2517,程序确定它是否已经处理最后的页。如果已经处理,程序在步骤2519结束。如果没有处理,则程序在步骤2518进行到下一页,并且返回到步骤2512。当然,图5中例示的系统配置仅仅是可以实现本发明的信息系统的示例,并且本发明不限于特定硬件配置。实现本发明的计算机和存储系统还可以具有已知的I/o设备(例如,CD和DVD驱动器、软盘驱动器、硬盘驱动器等),其可以存储和读取用于实现上述发明的模块、程序和数据结构。可以在这种计算机可读介质上对这些模块、程序和数据结构进行编码。例如,本发明的数据结构可以独立于驻存本发明中使用的程序的一个或多个计算机可读介质,存储在计算机可读介质上。上述系统的组件可以利用任何形式的数字数据通信介质(例如,通信网络)互连。通信网络的示例包括局域网、广域网(例如,互联网)、无线网络、存储区域网等。在描述中,为了说明而阐述了许多细节,以便提供对本发明的全面理解。然而,本领域技术人员将要明白的是,实践本发明不必需要所有这些具体细节。还要注意的是,本发明被描述为过程,该过程通常被描述为流程、流程图或方框图。尽管流程图可以将操作描述为顺序过程,但是上述操作中的许多操作可以并行或同时执行。另外,上述操作的顺序可以
重新布置。如本领域中公知的,上述操作可以利用硬件、软件或软件和硬件的某一组合执行。本发明的实施例的各个方面可以使用电路和逻辑设备(硬件)实现,而其它方面可以使用存储在机器可读介质上存储的指令(软件)实现,如果由处理器执行,则该指令将使得处理器执行用于进行本发明的实施例的方法。此外,本发明的一些实施例可以仅仅采用硬件执行,而其它实施例可以仅仅采用软件执行。此外,所述各个功能可以在单个单元中执行,或者可以按照多种方式在多个组件之间扩展。当利用软件执行时,上述方法可以由比如通用计算机的处理器,基于计算机可读介质上存储的指令执行。如果期望,则上述指令可以以压缩和/或加密的格式存储在介质上。根据前述,将显而易见的是,本发明提供用于存储子系统中的针对主逻辑卷和副逻辑卷的集成自动精简配置池的方法、装置和程序。另外,尽管在本说明书中已经例示和描述了具体实施例,但是本领域普通技术人员明白,目的在于实现相同目的的任何布置可以替代所公开的具体实施例。本公开意在涵盖本发明的任何以及所有修改或变化,并且要理解的是,下述权利要求中使用的术语不应该被解释为将本发明限制到说明书中公开的具体实施例。相反,本发明的范围完全由下述权利要求以及这些权利要求的等价物的全部范围确定,下述权利要求要根据已经建立的权利要求解读原则进行解释。
权利要求
1.一种存储系统,包括: 处理器; 存储器;以及 存储控制器,用于响应于写入请求而从第一池中分配存储区,并且对于从所述第一池中的指定RAID组中分配用于多个相关数据的存储区进行控制,所述用于多个相关数据的存储区要从所述第一池中分配。
2.如权利要求1所 述的存储系统, 其中,所述多个相关数据包括多个文件。
3.如权利要求1所述的存储系统, 其中,所述多个相关数据包括存储在第一卷中的数据以及存储在第二卷中的数据;以及 其中,所述第一卷和第二卷是成对的。
4.如权利要求1所述的存储系统, 其中,所述多个相关数据包括存储在第一卷中的数据以及存储在第二卷中的数据,以及 其中,存储在所述第二卷中的数据是对存储在所述第一卷中的数据的写时复制。
5.如权利要求1所述的存储系统, 其中,所述多个相关数据包括存储在第一卷中的数据以及存储在与同一第一卷对应的多个第二卷中的数据; 其中,存储在所述多个第二卷中的数据包括所述第一卷中的数据的被复制页;以及 其中,所述被复制页在所述多个第二卷之间共享。
6.如权利要求1所述的存储系统, 其中,所述多个相关数据包括存储在第一卷中的数据以及存储在与同一第一卷对应的多个第二卷中的数据; 其中,存储在所述多个第二卷中的数据包括所述第一卷中的数据的多个被复制页;以及 其中,所述多个被复制页不在所述多个第二卷之间共享。
7.如权利要求1所述的存储系统, 其中,所述多个相关数据包括存储在多个卷中的数据,以及 其中,所述存储控制器基于所述多个卷的属性分配相关数据。
8.如权利要求1所述的存储系统,其中,所述多个相关数据包括存储在主卷中的数据以及存储在一个或多个对应副卷中的数据,其中,所述存储控制器包括: 命令接收模块,用于确定所述存储系统是否已经接收到任何卷复制配置命令;以及 磁盘I/O执行模块,用于如果所述存储系统没有接收到卷复制配置命令,则: 确定所述存储系统是否已经接收到任何读取1/0,并且如果已经接收到,则查阅页管理表,并且从所述页管理表的对应RAID组中读取页,其中针对每个主卷,所述页管理表包括虚拟卷编号、逻辑块地址、RAID组编号以及页编号,并且针对每个副卷,所述页管理表包括虚拟卷编号、逻辑块地址、RAID组编号和页编号; 确定所述存储系统是否已经接收到任何写入1/0,并且如果已经接收到,则查阅卷复制管理表和所述页管理表,并且通过确定所述页管理表中是否存在写入I/o页的对应项,决定是否更新所述写入I/o页,以及如果不存在,则从所述卷复制管理表中的主卷的对应RAID组中选择一个RAID组并更新所述页管理表,并且随后不管所述页管理表中是否已经存在对应表项,都将页写入到所选择的RAID组中,其中针对每个主卷,所述卷复制管理表包括主卷编号、所述主卷的RAID组编号、对应的一个或多个副卷的副卷编号以及所述对应的一个或多个副卷的RAID组编号。
9.如权利要求8所述的存储系统,其中,所述存储控制器包括: 卷复制控制模块,用于如果所述存储系统已经接收到卷复制配置命令,则确定卷复制控制输入是否是直接选择的RAID组、RAID组比例或I/O性能, 其中,如果所述卷复制控制输入是直接选择的RAID组,则所述卷复制控制模块提供对所述卷复制管理表中的所选RAID组的RAID组编号的更新, 其中,如果所述卷复制控制输入是RAID组比例,则所述卷复制控制模块根据所选比例,执行RAID组分配, 其中,如果所述卷复制控制输入是I/O性能,则所述卷复制控制模块根据所选I/O性能,执行RAID组分配,以及 其中,针对主卷,所述卷复制控制输入还包括主卷编号、RAID组编号、RAID组比例以及I/O性能,以及针对所述一个或多个对应副卷中的每一个,所述卷复制控制输入还包括副卷编号、RAID组编号、RAID组比例、I/O性能以及关于所述副卷是否能够与所述主卷共享RAID组的指示。
10.如权利要求9所述的存储系统,其中,所述卷复制控制模块被配置为: 确定对用于存储所述相关数据的主卷和一个或多个副卷的RAID组的更新是否是从先前设置改变而来的,并且如果是,则在背景任务中重新平衡所分配的页;以及 确定对用于存储所述相关数据的主卷和一个或多个副卷的RAID组的更新是否是从先前设置中减少而来的,以及如果是,则将所分配的页移到其它RAID组,并且更新所述页管理表。
11.如权利要求9所述的存储系统,其中,由所述卷复制控制模块根据所选比例执行RAID组分配包括: 针对所述卷复制控制输入中的主卷,以所选比例分配RAID组,其中从RAID组被作为主卷最后分配的下一卷开始所述RAID组编号;以及 针对所述卷复制控制输入中的副卷, 如果所述副卷能够与所述主卷共享RAID组,则从所述对应主卷的相同RAID组中,以所选比例分配RAID组,其中从具有相同的对应主卷的副卷被最后分配的下一卷开始RAID组编号;以及 确定所述副卷的比例是否大于剩余的未被分配的RAID组的剩余比例,以及如果大于,则指示在分配RAID组时出现错误,以及如果不大于,则以所选比例从与被分配给所述对应主卷的RAID组不同的RAID组中分配RAID组,其中从具有相同的对应主卷的副卷被最后分配的下一卷开始所述RAID组编号。
12.如权利要求9所述的存储系统,其中,由所述卷复制控制模块根据所选I/O性能执行RAID组分配包括:针对卷复制控制输入中的主卷,从非全容量RAID组开始分配RAID组,直到RAID组的总I/O性能超过所选I/O性能,其中从RAID组被作为主卷最后分配的下一卷开始RAID组编号;以及 针对所述卷复制控制输入中的每个副卷, 如果所述副卷能够与所述主卷共享RAID组,则以所选I/O性能从所述对应主卷的相同RAID组中分配RAID组,其中从具有相同的对应主卷的副卷被最后分配的下一卷开始RAID组编号;以及 确定剩余未被分配的RAID组的总I/O性能是否小于所选I/O性能,以及如果小于,则指示在分配RAID组时出现错误,以及如果不小于,则以所选I/O性能从与被分配给对应主卷的RAID组不同的RAID组中分配RAID组,其中从具有相同的对应主卷的副卷被最后分配的下一卷开始RAID组编号。
13.如权利要求1所述的存储系统,其中,所述多个相关数据包括存储在主卷中的数据以及存储在一个或多个对应副卷中的数据,其中在所述一个或多个对应副卷中的数据是对存储在所述主卷中的数据的写时复制,其中所述存储控制器包括: 命令接收模块,用于确定所述存储系统是否已经接收到任何卷复制配置命令;以及 磁盘I/o执行模块,用于如果所述存储系统没有接收到卷复制配置命令,则: 确定所述存储系统是否已经接收到任何读取1/0,并且如果已经接收到,则查阅页管理表,并且从所述页管理表的对应RAID组中读取页,其中针对每个主卷,所述页管理表包括虚拟卷编号、逻辑块地址、RAID组编号以及页编号,并且针对每个副卷,所述页管理表包括虚拟卷编号、逻辑块地址、主卷编号或RAI D组编号、以及与所述主卷编号或RAID组编号对应的主卷逻辑块地址或页编号; 确定所述存储系统是否已经接收到任何写入1/0,并且如果已经接收到,则查阅卷复制管理表和所述页管理表,并且通过确定所述页管理表中是否存在写入I/O页的对应项,决定是否更新所述写入I/O页,以及如果存在对应项,则将当前页复制到从对应副卷的RAID组中选出的一个RAID组中,并且更新对应副卷的页管理表,以及如果不存在,则从所述卷复制管理表中的主卷的对应RAID组中选择一个RAID组并且更新所述页管理表,并且随后不管所述页管理表中是否已经存在对应项,都将页写入到所选择的RAID组中,其中针对每个主卷,所述卷复制管理表包括主卷编号、所述主卷的RAID组编号、对应的一个或多个副卷的副卷编号以及所述对应的一个或多个副卷的RAID组编号。
14.如权利要求13所述的存储系统,其中,所述存储控制器包括: 卷复制控制模块,用于如果所述存储系统已经接收到卷复制配置命令,则确定所述卷复制控制输入是否是直接选择的RAID组、RAID组比例或I/O性能, 其中,如果所述卷复制控制输入是直接选择的RAID组,则所述卷复制控制模块提供对所述卷复制管理表中的所选RAID组的RAID组编号的更新, 其中,如果所述卷复制控制输入是RAID组比例,则所述卷复制控制模块根据所选比例,执行RAID组分配, 其中,如果所述卷复制控制输入是I/O性能,则所述卷复制控制模块根据所选I/O性能,执行RAID组分配,以及 其中,针对所述主卷,所述卷复制控制输入还包括主卷编号、RAID组编号、RAID组比例以及I/O性能,以及针对一个或多个对应副卷中的每一个,所述卷复制控制输入还包括副卷编号、RAID组编号、RAID组比例、I/O性能以及关于所述副卷是否能够与所述主卷共享RAID组的指示。
15.如权利要求14所述的存储系统,其中,所述卷复制控制模块被配置为: 确定对用于存储所述相关数据的主卷和一个或多个副卷的RAID组的更新是否是从先前设置改变而来的,并且如果是,则在背景任务中重新平衡所分配的页;以及 确定对用于存储所述相关数据的主卷和一个或多个副卷的RAID组的更新是否是从先前设置中减少而来的,以及如果是,则将所分配的页移到其它RAID组,并且更新所述页管理表。
16.如权利要求14所述的存储系统,其中,由所述卷复制控制模块根据所选比例执行RAID组分配包括: 针对所述卷复制控制输入中的主卷,以所选比例分配RAID组,其中从RAID组被作为主卷最后分配的下一卷开始所述RAID组编号;以及 针对所述卷复制控制输入中的每个副卷, 如果所述副卷能够与所述主卷共享RAID组,则从所述对应主卷的相同RAID组中,以所选I/O性能分配RAID组,其中从具有相同的对应主卷的副卷被最后分配的下一卷开始RAID组编号;以及 确定所述副卷的比例是否大于剩余的未被分配的RAID组的剩余比例,以及如果大于,则指示在分配RAID组时出现错误,以及如果不大于,则以所选比例从与被分配给对应主卷的RAID组不同的RAID组中分配RAID组,其中从具有相同的对应主卷的副卷被最后分配的下一卷开始所述RAID组编号;以及 其中,由所述卷复制控制模块根据所选I/O性能执行RAID组分配包括:针对所述卷复制控制输入中的主卷,从非全容量RAID组开始分配RAID组,直到RAID组的总I/O性能超过所选I/O性能,其中从RAID组被作为所述主卷最后分配的下一卷开始所述RAID组编号;以及 针对所述卷复制控制输入中的每个副卷, 如果所述副卷能够与所述主卷共享RAID组,则以所选I/O性能从所述对应主卷的相同RAID组中分配RAID组,其中从具有相同的对应主卷的副卷被最后分配的下一卷开始所述RAID组编号;以及 确定剩余未被分配的RAID组的总I/O性能是否小于所选I/O性能,以及如果小于,则指示在分配RAID组时出现错误,以及如果不小于,则以所选I/O性能从与被分配给对应主卷的RAID组不同的RAID组中分配RAID组,其中从具有相同的对应主卷的副卷被最后分配的下一卷开始所述RAID组编号。
17.如权利要求1所述的存储系统,其中,所述多个相关数据包括存储在主卷和多个对应副卷中的数据,其中,所述存储控制器分配相关数据,以使得与同一主卷对应的多个副卷能够具有多个在所述副卷之间不共享的被复制页,其中,所述存储控制器包括: 命令接收模块,被配置为确定所述存储系统是否已经接收到任何卷复制配置命令;以及 磁盘I/O执行模块, 用于如果所述存储系统没有接收到卷复制配置命令,则:确定所述存储系统是否已经接收到任何读取1/0,并且如果已经接收到,则查阅页管理表,并且从所述页管理表的对应RAID组中读取页,其中针对每个主卷,所述页管理表包括虚拟卷编号、逻辑块地址、RAID组编号以及页编号,并且针对每个副卷,所述页管理表包括虚拟卷编号、逻辑块地址、主卷编号或RAID组编号、以及与所述主卷编号或RAID组编号对应的主卷逻辑块地址或页编号; 确定所述存储系统是否已经接收到任何写入1/0,并且如果已经接收到,则查阅卷复制管理表和所述页管理表,并且通过确定所述页管理表中是否存在写入I/O页的对应项,决定是否更新所述写入I/O页,以及如果存在,则将当前页复制到从多个对应副卷的RAID组中选出的一个RAID组中,并且更新所述对应副卷的页管理表,以及如果不存在,则从所述卷复制管理表中的主卷的对应RAID组中选择一个RAID组并且更新所述页管理表,并且随后不管所述页管理表中是否已经存在对应项,都将页写入到所选择的RAID组中,其中针对每个主卷,所述卷复制管理表包括主卷编号、所述主卷的RAID组编号、所述对应副卷的副卷编号以及所述对应副卷的RAID组编号。
18.如权利要求17所述的存储系统,其中,所述存储控制器包括: 卷复制控制模块,用于如果所述存储系统已经接收到卷复制配置命令,则确定所述卷复制控制输入是否是直接选择的RAID组、RAID组比例或I/O性能, 其中,如果所述卷复制控制输入是直接选择的RAID组,则所述卷复制控制模块提供对所述卷复制管理表中的所选RAID组的RAID组编号的更新, 其中,如果所述卷复制控制输入是RAID组比例,则所述卷复制控制模块根据所选比例,执行RAID组分配, 其中,如果所述卷复制控制输入是I/O性能,则所述卷复制控制模块根据所选I/O性能,执行RAID组分配,以及 其中,针对所述主卷,所述卷复制控制输入还包括主卷编号、RAID组编号、RAID组比例以及I/O性能,以及针对对应副卷中的每一个,所述卷复制控制输入还包括副卷编号、RAID组编号、RAID组比、I/O性能以及关于所述副卷是否能够与所述主卷共享RAID组的指示。
19.如权利要求18所述的存储系统,其中,所述卷复制控制模块被配置为: 确定对用于存储相关数据的主卷和副卷的RAID组的更新是否是从先前设置改变而来的,并且如果是,则在背景任务中重新平衡所分配的页; 确定对用于存储相关数据的主卷和副卷的RAID组的更新是否是从先前设置中减少而来的,以及如果是,则将所分配的页移到其它RAID组,并且更新所述页管理表;以及确定每个所述副卷的RAID组是否被并入,以及如果是,则: 确定被并入的副卷是否也具有被复制页,以及如果不具有,则将先前页移到从新RAID组中选出的一个RAID组,并且更新所述页管理表中的RAID组编号和页编号项,以及如果具有,则将所述页管理表中的RAID组编号和页编号项更新为所述被并入的副卷的RAID组编号和页编号;以及 确定从其它副卷是否引用了所述先前页,以及如果是,则删除所述先前页。
20.如权利要求18所述的存储系统,其中,由所述卷复制控制模块根据所选比例执行RAID组分配包括: 针对所述卷复制控制输入中的主卷,以所选比例分配RAID组,其中从RAID组被作为主卷最后分配的下一卷开始所述RAID组编号;以及针对所述卷复制控制输入中的每个副卷, 如果所述副卷能够与所述主卷共享RAID组,则从所述对应主卷的相同RAID组中,以所选I/O性能分配RAID组,其中从具有相同的对应主卷的副卷被最后分配的下一卷开始所述RAID组编号;以及 确定所述副卷的比例是否大于剩余的未被分配的RAID组的剩余比例,以及如果大于,则指示在分配RAID组时出现错误,以及如果不大于,则以所选比例从与被分配给所述对应主卷的RAID组不同的RAID组中分配RAID组,其中从具有相同的对应主卷的副卷被最后分配的下一卷开始所述RAID组编号;以及 由所述卷复制控制模块根据所选I/O性能执行RAID组分配包括: 针对所述卷复制控制输入中的主卷,从非全容量RAID组开始分配RAID组,直到RAID组的总I/O性能超过所选I/O性能,其中从RAID组被作为所述主卷最后分配的下一卷开始所述RAID组编号;以及针对所述卷复制控制输入中的每个副卷, 如果所述副卷能够与 所述主卷共享RAID组,则以所选I/O性能从所述对应主卷的相同RAID组中分配RAID组,其中从具有相同的对应主卷的副卷被最后分配的下一卷开始所述RAID组编号;以及 确定剩余未被分配的RAID组的总I/O性能是否小于所选I/O性能,以及如果小于,则指示在分配RAID组时出现错误,以及如果不小于,则以所选I/O性能从与被分配给对应主卷的RAID组不同的RAID组中分配RAID组,其中从具有相同的对应主卷的副卷被最后分配的下一卷开始所述RAID组编号。
21.一种存储系统,包括: 处理器; 存储器;以及 存储控制器,用于响应于写入请求而从第一池中分配存储区,并且对于从所述第一池的不同RAID组中分配用于多个相关数据的存储区进行控制,所述用于多个相关数据的存储区要从所述第一池中分配。
全文摘要
本发明提供一种存储子系统的自动精简配置池上的卷复制管理方法。本发明的示例实施例提供存储子系统中的针对主逻辑卷和副逻辑卷的集成自动精简配置池。存储子系统包括处理器;存储器;和存储控制器。在一个实施例中,该存储控制器被配置为响应于写入请求而从第一池中分配存储区,以及对从第一池中的不同指定的RAID组中分配用于多个相关数据的存储区进行控制,所述用于多个相关数据的存储区要从第一池中分配。在另一实施例中,该存储控制器被配置为响应于写入请求而从第一池中分配存储区,以及对于从第一池中的不同RAID组中分配用于多个相关数据的存储区进行控制,所述用于多个相关数据的存储区要从第一池中分配。
文档编号G06F3/06GK103150123SQ20121024762
公开日2013年6月12日 申请日期2012年7月17日 优先权日2011年11月18日
发明者樫山俊彦, 川口智大 申请人:株式会社日立制作所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1