一致性组快照管理的方法及装置转让专利

申请号 : CN201611255555.6

文献号 : CN106648993B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 龚飞

申请人 : 杭州宏杉科技股份有限公司

摘要 :

本申请提供一种一致性组快照管理的方法及装置,所述方法应用于存储设备,所述方法包括:接收携带有快照创建时间戳的快照一致性组时间点的创建指令;查找所述存储区中时间戳等于或者大于所述快照创建时间戳,且时间戳与所述快照创建时间戳的差值最小的目标写拷贝管理区;在所述时间点管理区中创建对应于所述快照创建时间戳的快照记录;其中,所述快照记录包括所述快照创建时间戳,以及查找到的所述目标写拷贝管理区在所述存储区中的位置信息。由于创建快照一致性组时间点与一致性组中各成员的数据拷贝的时刻不再具有关联性,使得在创建快照一致性组时间点,各成员无需挂起前端流量,因此可以有效降低一致性组成员对业务流量的时延。

权利要求 :

1.一种一致性组快照管理的方法,其特征在于,所述方法应用于存储设备;所述存储设备包括预配置的对应于所述一致性组中至少一个目标LUN成员的快照LUN;所述快照LUN的存储区包括时间点管理区以及若干个写拷贝管理区;所述写拷贝管理区记录了对应于所述目标LUN成员的快照拷贝时刻的时间戳,以及对应于该快照拷贝时刻的快照拷贝数据的存储地址;

所述时间点管理区包括若干条快照记录,每条快照记录包含所述快照创建时间戳,以及与该时间戳对应的写拷贝管理区的位置信息;

所述方法包括:

接收快照一致性组时间点的创建指令;其中,所述创建指令中携带对应于所述目标LUN成员的快照创建时间戳;

查找所述存储区中时间戳等于或者大于所述快照创建时间戳,且时间戳与所述快照创建时间戳的差值最小的目标写拷贝管理区;

在所述时间点管理区中创建对应于所述快照创建时间戳的快照记录;其中,所述快照记录包括所述快照创建时间戳,以及查找到的所述目标写拷贝管理区在所述存储区中的位置信息。

2.根据权利要求1所述的方法,其特征在于,所述快照LUN的存储区还包括写拷贝数据区;

所述方法还包括:

接收所述目标LUN成员在数据发生变化时,上报的快照拷贝时刻、数据发生变化前的原始数据的存储地址以及该原始数据;

将所述原始数据存储至为所述原始数据分配的写拷贝数据区;

将所述快照拷贝时刻对应的时间戳、所述原始数据的存储地址、以及为所述原始数据分配的所述写拷贝数据区的存储地址,存储至为所述快照拷贝时刻分配的写拷贝管理区。

3.根据权利要求1所述的方法,其特征在于,所述方法还包括:

接收应用服务器发送的针对所述一致性组的快照查询指令;所述查询指令携带查询时间戳;

在所述时间点管理区中查找与所述查询时间戳对应的快照记录;

基于查找到的所述快照记录中记录的写拷贝管理区在所述存储区中的位置信息,访问对应的写拷贝管理区,并基于该写拷贝管理区中记录的所述写拷贝数据区的存储地址,从所述写拷贝数据区中读取对应的原始数据;

将读取到的所述原始数据上报至所述应用服务器,以由所述应用服务器基于所述一致性组的各LUN成员上报的原始数据进行汇总,恢复所述一致性组在对应于所述查询时间戳的原始数据。

4.根据权利要求1所述的方法,其特征在于,所述方法还包括:

通过NTP服务器,针对所述目标LUN成员,与所述一致性组中的其他LUN成员进行时钟同步。

5.根据权利要求1所述的方法,其特征在于,所述一致性组的各LUN成员被配置在同一存储设备;或者,分布于不同的存储设备。

6.一种一致性组快照管理的装置,其特征在于,所述装置应用于存储设备;所述存储设备包括预配置的对应于所述一致性组中至少一个目标LUN成员的快照LUN;所述快照LUN的存储区包括时间点管理区以及若干个写拷贝管理区;所述写拷贝管理区记录了对应于所述目标LUN成员的快照拷贝时刻的时间戳,以及对应于该快照拷贝时刻的快照拷贝数据的存储地址;

所述时间点管理区包括若干条快照记录,每条快照记录包含所述快照创建时间戳,以及与该时间戳对应的写拷贝管理区的位置信息;

所述装置包括:

接收单元,用于接收快照一致性组时间点的创建指令;其中,所述创建指令中携带对应于所述目标LUN成员的快照创建时间戳;

查找单元,用于查找所述存储区中时间戳等于或者大于所述快照创建时间戳,且时间戳与所述快照创建时间戳的差值最小的目标写拷贝管理区;

创建单元,用于在所述时间点管理区中创建对应于所述快照创建时间戳的快照记录;

其中,所述快照记录包括所述快照创建时间戳,以及查找到的所述目标写拷贝管理区在所述存储区中的位置信息。

7.根据权利要求6所述的装置,其特征在于,所述快照LUN的存储区还包括写拷贝数据区;

所述装置还包括:

存储单元,用于接收所述目标LUN成员在数据发生变化时,上报的快照拷贝时刻、数据发生变化前的原始数据的存储地址以及该原始数据;将所述原始数据存储至为所述原始数据分配的写拷贝数据区;将所述快照拷贝时刻对应的时间戳、所述原始数据的存储地址、以及为所述原始数据分配的所述写拷贝数据区的存储地址,存储至为所述快照拷贝时刻分配的写拷贝管理区。

8.根据权利要求6所述的装置,其特征在于,所述装置还包括:

上报单元,用于接收应用服务器发送的针对所述一致性组的快照查询指令;所述查询指令携带查询时间戳;在所述时间点管理区中查找与所述查询时间戳对应的快照记录;基于查找到的所述快照记录中记录的写拷贝管理区在所述存储区中的位置信息,访问对应的写拷贝管理区,并基于该写拷贝管理区中记录的所述写拷贝数据区的存储地址,从所述写拷贝数据区中读取对应的原始数据;将读取到的所述原始数据上报至所述应用服务器,以由所述应用服务器基于所述一致性组的各LUN成员上报的原始数据进行汇总,恢复所述一致性组在对应于所述查询时间戳的原始数据。

9.根据权利要求6所述的装置,其特征在于,所述装置还包括:

同步单元,用于通过NTP服务器,针对所述目标LUN成员,与所述一致性组中的其他LUN成员进行时钟同步。

10.根据权利要求6所述的装置,其特征在于,所述一致性组的各LUN成员被配置在同一存储设备;或者,分布于不同的存储设备。

说明书 :

一致性组快照管理的方法及装置

技术领域

[0001] 本申请涉及计算机通信领域,尤其涉及一致性组快照管理的方法及装置。

背景技术

[0002] 为了提升上层应用(如数据库服务)的性能,通常会使用具有业务关联的若干个存储LUN资源作为一致性组,来进行数据存储。通常,为了满足一致性组的数据保护的需求,可以进行组快照、组复制等相关操作。而在这种组快照相关操作中,创建一致性组的快照时间点是该技术的基础。
[0003] 然而,在相关的创建快照一致性组时间点的方法中,在创建快照一致性组时间点时,为了保证该一致性组中的各个成员的数据在同一状态,各个成员不再接收流量,直到该一致性组的快照时间点创建结束后,各个成员才能恢复流量接收,从而大大增加了业务流量的时延。

发明内容

[0004] 有鉴于此,本申请提供一种一致性组快照管理的方法及装置,用以在创建快照一致性组时间点时,降低一致性组成员对业务流量的时延。
[0005] 具体地,本申请是通过如下技术方案实现的:
[0006] 根据本申请第一方面,提供一种一致性组快照管理的方法,所述方法应用于存储设备;所述存储设备包括预配置的对应于所述一致性组中至少一个目标LUN成员的快照LUN;所述快照LUN的存储区包括时间点管理区以及若干个写拷贝管理区;所述写拷贝管理区记录了对应于所述目标LUN成员的快照拷贝时刻的时间戳,以及对应于该快照拷贝时刻的快照拷贝数据的存储地址;
[0007] 所述方法包括:
[0008] 接收快照一致性组时间点的创建指令;其中,所述创建指令中携带对应于所述目标LUN成员的快照创建时间戳;
[0009] 查找所述存储区中时间戳等于或者大于所述快照创建时间戳,且时间戳与所述快照创建时间戳的差值最小的目标写拷贝管理区;
[0010] 在所述时间点管理区中创建对应于所述快照创建时间戳的快照记录;其中,所述快照记录包括所述快照创建时间戳,以及查找到的所述目标写拷贝管理区在所述存储区中的位置信息。
[0011] 根据本申请第二方面,提供一种一致性组快照管理的装置,所述装置应用于存储设备;所述存储设备包括预配置的对应于所述一致性组中至少一个目标LUN成员的快照LUN;所述快照LUN的存储区包括时间点管理区以及若干个写拷贝管理区;所述写拷贝管理区记录了对应于所述目标LUN成员的快照拷贝时刻的时间戳,以及对应于该快照拷贝时刻的快照拷贝数据的存储地址;
[0012] 所述装置包括:
[0013] 接收单元,用于接收快照一致性组时间点的创建指令;其中,所述创建指令中携带对应于所述目标LUN成员的快照创建时间戳;
[0014] 查找单元,用于查找所述存储区中时间戳等于或者大于所述快照创建时间戳,且时间戳与所述快照创建时间戳的差值最小的目标写拷贝管理区;
[0015] 创建单元,用于在所述时间点管理区中创建对应于所述快照创建时间戳的快照记录;其中,所述快照记录包括所述快照创建时间戳,以及查找到的所述目标写拷贝管理区在所述存储区中的位置信息。
[0016] 本申请提出一种一致性组快照管理的方法,存储设备在接收携带有快照创建时戳的快照一致性组时间点的创建指令后,可以在本地的快照LUN的存储区中查找时间戳等于或者大于该快照创建时间戳,且时间戳与该快照创建时间戳的差值最小的写拷贝管理区,该写拷贝管理区记录有与快照拷贝的时间戳。存储设备可以基于所述快照创建时间戳,以及查找到的所述写拷贝管理区在所述存储区中的位置信息,在所述时间点管理区中为所述目标LUN成员新建对应于所述快照创建时间戳的快照记录。
[0017] 一方面,由于各LUN成员不再基于快照一致性组时间点来进行第一次数据变化的数据拷贝(首写拷贝),而是根据各自的数据变化的时刻,分别对变化前的原始数据进行快照拷贝(写拷贝),使得创建快照一致性组时间点与数据拷贝的时刻不再具有关联性;
[0018] 另一方面,由于写拷贝管理区中记录了LUN成员的快照拷贝的时刻的时间戳。因此,在创建快照一致性组时间点时,存储设备只需将快照创建时间戳添加至该时间点管理区中,并可以基于写拷贝管理区的时间戳确定出该快照创建时间戳对应的写拷贝管理区即可完成创建;
[0019] 综上所述,在本申请提出的方案中,在创建快照一致性组时间点时,各个LUN成员的数据不需要保持在同一平面,进而各LUN成员在创建快照一致性组时间点时不需要再停止前端业务流量的接收,因此可以有效地降低一致性组成员对业务流量的时延。

附图说明

[0020] 图1是本申请一示例性实施例示出的一种一致性组快照管理的组网架构图;
[0021] 图2是本申请示出的一种相关技术中的快照LUN的存储区的示意图;
[0022] 图3是本申请一示例性实施例示出的一致性组快照管理的方法的流程图;
[0023] 图4是本申请一示例性实施例示出的快照LUN的存储区的示意图;
[0024] 图5是本申请一示例性实施例示出的创建快照一致性组时间点的示意图;
[0025] 图6是本申请一示例性实施例示出的一致性组快照管理的装置所在设备的硬件结构图;
[0026] 图7是本申请一示例性实施例示出的一致性组快照管理的装置的框图。

具体实施方式

[0027] 这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
[0028] 在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
[0029] 应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
[0030] 为了提升上层应用(如数据库服务)的性能,通常会使用具有业务关联的若干个存储LUN资源作为一致性组,来进行数据存储。通常,为了满足一致性组的数据保护的需求,可以进行组快照、组复制等相关操作。而在这种组快照相关操作中,创建一致性组的快照时间点是该技术的基础。
[0031] 参见图1,图1是本申请一示例性实施例示出的一种一致性组快照的组网架构图;在该组网架构中包括应用服务器,若干个包含一致性组的LUN成员的存储设备以及包含快照LUN的存储设备。
[0032] 在相关的一致性组快照管理的方法中,一致性组中的LUN成员可以接收管理员下发的或者基于管理员设置的策略下发的快照一致性组时间点的创建指令,然后由创建动作的发起者通知该一致性组的各个LUN成员。
[0033] 针对上述一致性组中的一个LUN成员,在该LUN成员接收到该快照创建指令后,可以停止本地的LUN数据流量的接收,然后创建该LUN成员快照一致性组时间点。
[0034] 在创建快照一致性组时间点时,该LUN成员可以将快照创建指令中携带的快照创建时间戳发送至与该LUN成员对应的快照LUN的存储设备。具有该快照LUN的存储设备可以在该快照LUN中创建对应于该创建时间戳的时间点管理区,并可以为该时间点管理区分配预定容量的首写拷贝管理区和首写拷贝数据区(如图2所示)。
[0035] 其中,该时间点管理区可以包括该创建时戳与分配的首写拷贝管理区的位置信息,该首写拷贝管理区中可以记录了与之对应的首写拷贝数据区的原始地址、首写拷贝数据区地址以及数据长度。
[0036] 在完成上述一致性快照时间点后,该LUN成员可以恢复本地的LUN数据流量的接收。然后,当在上述创建时间戳时刻之后的任一时刻,该LUN成员的数据发生第一次变化(首写拷贝),则可以将数据变化前的原始数据拷贝到与该LUN成员对应的快照LUN的存储区中的首写拷贝数据区中。
[0037] 该一致性组中的其他成员可以依据上述方法来创建一致性组的快照时间点。
[0038] 然而,在相关的一致性组快照管理的方法中,由于在创建一致性组的快照时间点时,为了使得一致性组中的各LUN成员的数据在同一数据平面,所以该一致性组中的各个成员需要停止数据流量的接收,直到该一致性组中的各个成员的一致性组快照时间创建完成后,各个成员才恢复数据流量的接收。
[0039] 一方面,LUN成员在停止前端数据流量接收时,可导致业务IO时延增加,并且随着成员个数的增加,时延急剧增加,从而对时延敏感型业务造成较大的影响。
[0040] 另一方面,当一致性成员组分布在多个控制器上,由于各控制器之间的交互存在一定的时延,导致需要额外的技术保证各个成员处于同一数据平面,从而使得在增加前端时延的同时也进一步增加了复杂度。
[0041] 本申请提出一种一致性组快照管理的方法,存储设备在接收到对应于所述一致性组的并携带有快照创建时戳的快照创建指令后,可以在本地的快照LUN的存储区中查找时间戳等于或者大于该快照创建时间戳,且时间戳与该快照创建时间戳的差值最小的写拷贝管理区,该写拷贝管理区记录有与快照拷贝的时间戳。存储设备可以基于所述快照创建时间戳,以及查找到的所述写拷贝管理区在所述存储区中的位置信息,在所述时间点管理区中为所述目标LUN成员新建对应于所述快照创建时间戳的快照记录。
[0042] 一方面,由于各LUN成员不再基于一致性组时间点来进行第一次数据变化的数据拷贝(首写拷贝),而是根据各自的数据变化的时刻,分别对变化前的原始数据进行快照拷贝(写拷贝),使得创建快照一致性组时间点与数据拷贝的时刻不再具有关联性;
[0043] 另一方面,由于写拷贝管理区中记录了LUN成员的快照拷贝的时刻的时间戳。因此,在创建快照一致性组时间点时,存储设备只需将快照创建时间戳添加至该时间点管理区中,并可以基于写拷贝管理区的时间戳确定出该创建时间戳对应的写拷贝管理区即可完成创建;
[0044] 综上所述,在本申请提出的方案中,在创建快照一致性组时间点时,各个LUN成员的数据不需要保持在同一平面,进而各LUN成员在创建一致性快照组的时间点时不需要再停止前端业务流量的接收,因此可以有效地降低一致性组成员对业务流量的时延。
[0045] 参见图1,图1本申请一示例性实施例示出的一种一致性组快照的组网架构图。在该组网架构中包括应用服务器,若干个包含一致性组的LUN成员的存储设备以及包含快照LUN的存储设备。
[0046] 其中,所述应用服务器,可以向一致性组成员下发相应的指令信息以及业务信息等。例如,可以下发一致性组的快照查询指令等。
[0047] 上述一致性组的LUN成员可以分布在一台存储设备上,也可以分布在多台存储设备上。每个LUN成员对应有用于储存该LUN成员在快照时间点的原始数据的快照LUN。
[0048] 上述快照LUN和与该快照LUN成员可以在同一台存储设备上,也可以在不同的存储设备上。一致性快照组各LUN成员对应的各快照LUN可以在同一台存储设备上,也可以在不同的存储设备上。在这里,不对其做具体地限定。
[0049] 参见图3,图3是本申请一示例性实施例示出的一致性组快照管理的流程图;该方法应用于存储设备,所述方法具体包括如下所述的步骤:
[0050] 步骤301:接收快照一致性组时间点的创建指令;其中,所述创建指令中携带对应于所述目标LUN成员的快照创建时间戳;
[0051] 步骤302:查找所述存储区中时间戳等于或者大于所述快照创建时间戳,且时间戳与所述快照创建时间戳的差值最小的目标写拷贝管理区;
[0052] 步骤303:在所述时间点管理区中创建对应于所述快照创建时间戳的快照记录;其中,所述快照记录包括所述快照创建时间戳,以及查找到的所述目标写拷贝管理区在所述存储区中的位置信息。
[0053] 其中,上述一致性组,是指存在业务关联的一组LUN资源的集合,该一致性组中的一个LUN成员可以被称为LUN成员,该一致性组的LUN成员可以分布在一台存储设备上,也可以分布在多台存储设备上。
[0054] 上述快照,用于记录LUN资源在快照时间点的数据的技术。
[0055] 上述快照记录,通常包括快照创建时间戳,以及与该快照创建时间戳对应的写拷贝管理区所在存储区中的位置信息以及其对应关系。在上述时间点管理区中包含有若干个条快照记录。
[0056] 为了更好介绍本申请实施例提出的一致性组快照管理的方法,下面对所述目标LUN成员的快照LUN的存储区进行详细地说明。其他LUN成员对应的快照LUN的存储区的形式与该详细介绍的存储区相同。
[0057] 参见图4,图4是本申请一示例性实施例示出的快照LUN的存储区的示意图。
[0058] 在本申请实施例示出的快照LUN的存储区可以包括时间点管理区、若干个写拷贝管理区以及与每个写拷贝管理区对应的若干个写拷贝数据区。
[0059] 其中,上述时间点管理区中包含了若干条快照记录。每条快照记录包含针对上述一致性组的快照创建时间戳,以及与该时间戳对应的写拷贝管理区的位置信息。如表1所示,表1是一条快照记录格式。
[0060]快照创建时间戳 写拷贝管理区起始位置 写拷贝管理区结束位置
[0061] 表1
[0062] 该写拷贝管理区的位置信息是指在该写拷贝管理区在该存储区中的位置,可以包括写拷贝管理区的起始位置和该写拷贝管理区的结束位置,通常可以以分区ID和偏移量进行表征,当然也可以以其他形式进行表征,在这里不对写拷贝管理区的表征方式进行具体地限定。
[0063] 上述写拷贝管理区,可以包括拷贝出的原始数据的存储地址、写拷贝数据区的存储地址,原始数据长度以及快照拷贝时间戳。如表2所示,表2是写拷贝管理区格式的示意。
[0064]
[0065] 表2
[0066] 上述原始数据的存储地址,是指该原始数据在目标LUN成员存储区中的原始地址;
[0067] 上述写拷贝数据区的存储地址,是指拷贝出的原始数据在本地快照LUN存储区中的地址。
[0068] 上述快照拷贝时间戳,是这数据快照拷贝的时刻的时间戳。在相关的技术的快照LUN存储区的写拷贝管理区中并没有该快照拷贝时间戳。该快照拷贝时间戳是应用于开发人员扩展首写拷贝功能而产生的。
[0069] 与相关技术不同的是,在本申请中,开发人员对首写拷贝技术做了扩展,由拷贝一致性组时间点之后的数据的第一变化的原始数据,改变为只要LUN成员数据发生变化(不仅限于第一次),则拷贝数据变化前的原始数据,并将原始数据拷贝到与该LUN成员对应的快照LUN的写拷贝数据区中,并在与该写拷贝数据区对应的写拷贝管理区里记录该快照拷贝的时刻的时间戳。
[0070] 上述写拷贝数据区,是指用于储存发生快照拷贝后拷贝出的原始数据,该写拷贝数据区的存储地址可以记录在与之对应的写拷贝管理区中。
[0071] 从上述快照LUN的存储区的结构可以看出,每个一致性组的快照时间点的时间戳与写拷贝管理区和写拷贝数据区具有对应关系。
[0072] 下面从一致性组的LUN成员快照拷贝、创建快照一致性组时间点以及查询一致性组成员数据这三个方面,对本申请进行详细地说明。
[0073] 在这里,需要说明的是,在介绍本方案时,以一致性组中的一个目标LUN成员及其对应的快照LUN进行说明,对于一致性组中的其他LUN成员及其对应快照LUN与之相同,在这里不再赘述。
[0074] 1)一致性组的LUN成员快照拷贝
[0075] 在本申请实施例中,各LUN成员不再基于快照一致性组时间点来进行第一次数据变化的数据拷贝(首写拷贝),而是根据各自的数据变化的时刻,分别对变化前的原始数据进行快照拷贝(写拷贝),使得创建一致性快照组时间点与数据拷贝的时刻不再具有关联性。使得在创建快照一致性组时间点时,各个LUN成员的数据不需要保持在同一平面,进而各LUN成员在创建一致性快照组的时间点时不需要再停止前端业务流量的接收,因此可以有效地降低一致性组成员对业务流量的时延。
[0076] 在本申请实施例中,一致性组中的目标LUN成员在其数据变化时,则可以将数据变化前的原始数据拷贝至与该目标LUN成员对应的快照LUN中。
[0077] 以该目标LUN成员的一次数据变化为例,当该目标LUN成员的数据发生变化时,该目标LUN成员可以对数据变化前的原始数据进行快照拷贝,然后将该快照拷贝的原始数据、快照拷贝时刻以及数据发生变换前原始数据的存储地址(即该原始数据在该目标LUN成员存储区的存储地址),发送至与该目标LUN成员对应的快照LUN的存储设备。
[0078] 该存储设备在接收到该目标LUN成员上报的快照拷贝时刻、原始数据后以及该原始数据的存储地址,可以根据原始数据的大小,在本地的快照LUN的存储区中为该原始数据分配与该原始数据大小适配的写拷贝数据区。
[0079] 存储设备可以基于该快照拷贝时刻对应的时间戳,该原始数据所在的写拷贝数据区的存储地址以及原始数据的存储地址,存储至为所述快照拷贝时刻分配的写拷贝管理区。
[0080] 需要说明的是,在相关的快照拷贝技术中,目标LUN成员在将其首次数据变化前的数据拷贝至与之对应的快照LUN时,快照LUN的存储设备会为该数据分配预定容量的首写拷贝数据区,换句话来说,每个首写拷贝数据区的容量大小是固定的,从而造成管理区空间浪费的情况。而在本申请中,快照LUN的存储设备可以基于原始数据的大小,为该原始数据分配适配该原始数据的写拷贝数据区和写拷贝管理区,做到按需分配、按需使用,极大程度上的避免了空间地浪费。
[0081] 该目标LUN成员可以基于上述快照拷贝的方式,依次将针对该目标LUN成员的每一次数据变化都拷贝至与该目标LUN成员对应的快照LUN中。
[0082] 例如,假设该目标LUN成员在T0、T1、T2和T5时刻数据都发生变化,则该目标LUN成员对应的快照LUN的存储区可以如图5中LUN成员1的快照LUN1存储区所示。
[0083] 2)创建快照一致性组时间点
[0084] 在本申请实施例中,写拷贝管理区中记录了LUN成员的快照拷贝的时刻的时间戳。因此,在创建快照一致性组时间点时,存储设备只需将快照创建时间戳添加至该时间点管理区中,并可以基于写拷贝管理区的时间戳确定出该创建时间戳对应的写拷贝管理区在该存储区中的位置即可完成创建。
[0085] 在实现时,快照LUN的存储设备可以接收快照一致性组时间点的创建指令,其中,该快照创建指令中携带对应于该目标LUN成员的快照创建时间戳。
[0086] 该存储设备可以在本地的快照LUN的存储区中查找该存储区中时间戳等于或者大于所述快照创建时间戳,且时间戳与所述快照创建时间戳的差值最小的目标写拷贝管理区,并可以在存储区的时间点管理区中创建对应于所述快照创建时间戳的快照记录,即将查找的该目标写拷贝管理区在该存储区中的位置信息与该创建时间戳作为快照记录,添加至上述时间点管理区中。
[0087] 例如,参见图5,图5是本申请一示例性实施例示出的创建快照一致性组时间点的示意图。假设在T3时刻创建快照一致性组时间点,则上述快照创建时间戳的时刻为T3。
[0088] 存储设备在接收到对应于一致性组的快照创建指令,可以在本地的快照LUN中存储区中查找时间戳等于或者大于所述快照创建时间戳,且时间戳与所述快照创建时间戳的差值最小的目标写拷贝管理区。
[0089] 对于图5中的一致性组的LUN成员1的快照LUN1存储区来说,查找到的写拷贝管理为时间戳为T5时刻的写拷贝管理区,此时可以将时间戳为T5时刻的写拷贝管理区的位置信息与该快照创建时间戳T3对应保存,生成针对T3时刻的快照记录,并将该快照记录添加至本地的时间点管理区。
[0090] 对于图5中的其他LUN成员2的快照LUN2存储区来说,查找到的写拷贝管理区为时间戳为T3时刻的写拷贝管理区,此时可以将时间戳为T3时刻的写拷贝管理区的位置信息与快照创建时戳T3对应保存,生成T3时刻的快照记录,并将该快照记录添加至本地的时间点管理区中(即快照LUN1的时间点管理区)。
[0091] 在本申请实施例中,如果在本地的快照LUN的存储区中未查找该存储区中时间戳等于或者大于所述快照创建时间戳,且时间戳与所述快照创建时间戳的差值最小的目标写拷贝管理区,则可以等待,直至出现在该快照创建时间戳之后创建的第一个写拷贝管理区,并将该写拷贝管理区的在所述存储区中的位置信息与该创建时间戳对应保存,生成快照记录。
[0092] 3)查询一致性组成员数据
[0093] 在本申请实施例中,快照LUN的存储设备在接收到针对一致性组的快照查询指令后,可以基于该快照查询指令中携带的查询时间戳,在快照LUN的存储区中查找与该查询时间戳对应的快照记录。
[0094] 快照LUN的存储设备可以基于查找到的快照记录中记录的写拷贝管理区在所述存储区中的位置信息,访问对应的写拷贝管理区,并基于该写拷贝管理区中记录的写拷贝数据区的存储地址,从该写拷贝数据区中读取对应的原始数据。
[0095] 快照LUN的存储设备可以将查找到的原始数据上报至应用服务器,以由该应用服务器基于该一致性组的各LUN成员上报的原始数据进行汇总,恢复该一致性组在对应于所述查询时间戳的原始数据。
[0096] 仍以图5示出的一致性组的LUN成员1的快照LUN1存储区的示意图为例,假设,查询时间戳为上述创建的T3时刻。
[0097] 对于图5中的LUN成员1的快照LUN1存储区来说,该快照LUN1的存储设备可以基于查询时间戳T3,在时间点管理区中找到T3时间戳对应的快照记录。
[0098] 然后基于该快照记录中记录的写拷贝管理区在该存储区中的位置信息(在本例中为时间戳为T5的写拷贝管理区),访问对应的写拷贝管理区,并可以基于该写拷贝管理区记录的写拷贝数据区的存储地址,从所述写拷贝数据区中读取对应的原始数据。
[0099] 在本申请实施例中,上述一致性组的LUN成员可以分布在一台存储设备,也可以分布在不同的存储设备,如果一致性组的LUN成员跨不同的控制器或者存储设备时,该目标LUN成员可以通过NTP服务器,与该一致性成员组中的其他LUN成员进行时钟同步。
[0100] 本申请提出一种一致性组快照管理的方法,存储设备在接收到对应于所述一致性组的并携带有快照创建时戳的快照创建指令后,可以在本地的快照LUN的存储区中查找时间戳等于或者大于该快照创建时间戳,且时间戳与该快照创建时间戳的差值最小的写拷贝管理区,该写拷贝管理区记录有与快照拷贝的时间戳。存储设备可以基于所述快照创建时间戳,以及查找到的所述写拷贝管理区在所述存储区中的位置信息,在所述时间点管理区中为所述目标LUN成员新建对应于所述快照创建时间戳的快照记录。
[0101] 一方面,由于各LUN成员不再基于一致性组时间点来进行第一次数据变化的数据拷贝(首写拷贝),而是根据各自的数据变化的时刻,分别对变化前的原始数据进行快照拷贝(写拷贝),使得创建快照一致性组时间点与数据拷贝的时刻不再具有关联性;
[0102] 另一方面,由于写拷贝管理区中记录了LUN成员的快照拷贝的时刻的时间戳。因此,在创建快照一致性组时间点时,存储设备只需将快照创建时间戳添加至该时间点管理区中,并可以基于写拷贝管理区的时间戳确定出该创建时间戳对应的写拷贝管理区即可完成创建;
[0103] 综上所述,在本申请提出的方案中,在创建快照一致性组时间点时,各个LUN成员的数据不需要保持在同一平面,进而各LUN成员在创建一致性快照组的时间点时不需要再停止前端业务流量的接收,因此可以有效地降低一致性组成员对业务流量的时延。
[0104] 此外,快照LUN的存储设备可以基于原始数据的大小,为该原始数据分配适配该原始数据的写拷贝数据区和写拷贝管理区,做到按需分配、按需使用,极大程度上的避免了空间地浪费。
[0105] 与前述一致性组快照管理的方法的实施例相对应,本申请还提供了一致性组快照管理的装置的实施例。
[0106] 本申请一致性组快照管理的装置的实施例可以应用在存储设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在存储设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图6所示,为本申请一致性组快照管理的装置所在存储设备的一种硬件结构图,除了图6所示的处理器、内存、网络出接口、以及非易失性存储器之外,实施例中装置所在的存储设备通常根据该存储设备的实际功能,还可以包括其他硬件,对此不再赘述。
[0107] 请参考图7,图7是本申请一示例性实施例示出的一致性组快照管理的装置的框图。所述装置应用于存储设备;所述存储设备包括预配置的对应于所述一致性组中至少一个目标LUN成员的快照LUN;所述快照LUN的存储区包括时间点管理区以及若干个写拷贝管理区;所述写拷贝管理区记录了对应于所述目标LUN成员的快照拷贝时刻的时间戳,以及对应于该快照拷贝时刻的快照拷贝数据的存储地址;
[0108] 所述装置包括:
[0109] 接收单元710,用于接收快照一致性组时间点的创建指令;其中,所述创建指令中携带对应于所述目标LUN成员的快照创建时间戳;
[0110] 查找单元720,用于查找所述存储区中时间戳等于或者大于所述快照创建时间戳,且时间戳与所述快照创建时间戳的差值最小的目标写拷贝管理区;
[0111] 创建单元730,用于在所述时间点管理区中创建对应于所述快照创建时间戳的快照记录;其中,所述快照记录包括所述快照创建时间戳,以及查找到的所述目标写拷贝管理区在所述存储区中的位置信息。
[0112] 在一种可选的实施方式中,所述快照LUN的存储区还包括写拷贝数据区;
[0113] 所述装置还包括:
[0114] 存储单元740,用于接收所述目标LUN成员在数据发生变化时,上报的快照拷贝时刻、数据发生变化前的原始数据的存储地址以及该原始数据;将所述原始数据存储至为所述原始数据分配的写拷贝数据区;将所述快照拷贝时刻对应的时间戳、所述原始数据的存储地址、以及为所述原始数据分配的所述写拷贝数据区的存储地址,存储至为所述快照拷贝时刻分配的写拷贝管理区。
[0115] 在另一种可选的实现方式中,所述装置还包括:
[0116] 上报单元750,用于接收应用服务器发送的针对所述一致性组的快照查询指令;所述查询指令携带查询时间戳;在所述时间点管理区中查找与所述查询时间戳对应的快照记录;基于查找到的所述快照记录中记录的写拷贝管理区在所述存储区中的位置信息,访问对应的写拷贝管理区,并基于该写拷贝管理区中记录的所述写拷贝数据区的存储地址,从所述写拷贝数据区中读取对应的原始数据;将读取到的所述原始数据上报至所述应用服务器,以由所述应用服务器基于所述一致性组的各LUN成员上报的原始数据进行汇总,恢复所述一致性组在对应于所述查询时间戳的原始数据。
[0117] 在另一种可选的实现方式中,所述装置还包括:
[0118] 同步单元760,用于通过NTP服务器,针对所述目标LUN成员,与所述一致性成员组中的其他LUN成员进行时钟同步。
[0119] 在另一种可选的实现方式中,所述一致性组的各LUN成员被配置在同一存储设备;或者,分布于不同的存储设备。
[0120] 上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
[0121] 对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0122] 以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。