一种数据的备份方法及装置转让专利

申请号 : CN201410608315.4

文献号 : CN104407933B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 陆丞李文达

申请人 : 华为技术有限公司

摘要 :

本发明的实施例提供一种数据的备份方法及装置,涉及数据存储领域,解决了现有技术中由于COW处理所引起的I/O的性能下降的问题,并提高了数据写入速度。该方案包括:接收写操作指令,所述写操作指令中包含第一待写入数据以及所述第一待写入数据的逻辑地址;将所述第一待写入数据写入高速缓存;在将所述第一待写入数据写入高速缓存时,从所述第一待写入数据的逻辑地址处获取第一待备份数据,以便将所述第一待备份数据写入用于保存快照的存储空间中,其中;从所述高速缓存中读取所述第一待写入数据,并将所述第一待写入数据写入所述第一待写入数据的逻辑地址对应的存储空间中。

权利要求 :

1.一种数据的备份方法,其特征在于,所述方法由存储设备执行,包括以下步骤:步骤a:接收写操作指令,所述写操作指令中包含第一待写入数据以及所述第一待写入数据的逻辑地址;

步骤b:将所述第一待写入数据写入所述存储设备的高速缓存;

步骤c:从所述第一待写入数据的逻辑地址处获取第一待备份数据,将所述第一待备份数据写入用于保存快照的存储空间中,其中,所述第一待备份数据为已存储在所述第一待写入数据的逻辑地址处的数据;

步骤d:从所述高速缓存中读取所述第一待写入数据,并将所述第一待写入数据写入所述第一待写入数据的逻辑地址对应的存储空间中;

其中,步骤b和步骤c是并行处理的。

2.根据权利要求1所述的方法,其特征在于,所述从所述第一待写入数据的逻辑地址处获取第一待备份数据,将所述第一待备份数据写入用于保存快照的存储空间中,包括:获取所述第一待备份数据的写时复制COW信息,所述COW信息用于指示所述第一待备份数据是否需要进行COW操作;

若所述第一待备份数据需要进行所述COW操作,则确定所述第一待备份数据在所述用于保存快照的存储空间中的存储地址;

从所述第一待写入数据的逻辑地址处获取所述第一待备份数据,并根据所述存储地址将所述第一待备份数据写入所述用于保存快照的存储空间中。

3.一种数据的备份方法,其特征在于,所述方法由存储设备执行,包括以下步骤:步骤a:接收写操作指令,所述写操作指令中包含第一待写入数据以及所述第一待写入数据的逻辑地址;

步骤b:将所述第一待写入数据写入所述存储设备的高速缓存;

步骤c:确定高速缓存中包括的第二待写入数据,所述第二待写入数据的逻辑地址与所述第一待写入数据的逻辑地址连续;

步骤d:从所述第一待写入数据的逻辑地址处获取第一待备份数据,从所述第二待写入数据的逻辑地址处获取第二待备份数据,将所述第一待备份数据和所述第二待备份数据写入用于保存快照的存储空间中,其中,所述第一待备份数据为已存储在所述第一待写入数据的逻辑地址处的数据,所述第二待备份数据为已存储在所述第二待写入数据的逻辑地址处的数据;

步骤e:从所述高速缓存中读取所述第一待写入数据和所述第二待写入数据,并将所述第一待写入数据和所述第二待写入数据分别写入所述第一待写入数据的逻辑地址和所述第二待写入数据的逻辑地址对应的存储空间中;

其中,步骤b和步骤c、步骤d是并行处理的。

4.根据权利要求3所述的方法,其特征在于,所述从所述第一待写入数据的逻辑地址处获取第一待备份数据,从所述第二待写入数据的逻辑地址处获取第二待备份数据,将所述第一待备份数据和所述第二待备份数据写入用于保存快照的存储空间中,包括:分别获取所述第一待备份数据和所述第二待备份数据的写时复制COW信息,所述COW信息用于指示所述第一待备份数据和所述第二待备份数据是否需要进行COW操作;

若所述第一待备份数据和所述第二待备份数据需要进行所述COW操作,则确定所述第一待备份数据和所述第二待备份数据在所述用于保存快照的存储空间中的存储地址;

从所述第一待写入数据的逻辑地址处获取所述第一待备份数据,从所述第二待写入数据的逻辑地址处获取所述第二待备份数据,并根据所述存储地址将所述第一待备份数据和所述第二待备份数据写入所述用于保存快照的存储空间中。

5.一种存储设备,其特征在于,包括:

接收单元,用于接收写操作指令,所述写操作指令中包含第一待写入数据以及所述第一待写入数据的逻辑地址;

缓存单元,用于将所述接收单元中的第一待写入数据写入所述存储设备的高速缓存;

备份单元,用于在将所述接收单元中的第一待写入数据写入高速缓存时,从所述接收单元中的第一待写入数据的逻辑地址处获取第一待备份数据,将所述第一待备份数据写入用于保存快照的存储空间中,其中,所述第一待备份数据为已存储在所述第一待写入数据的逻辑地址处的数据;

覆盖单元,用于从所述缓存单元中的高速缓存中读取所述第一待写入数据,并将所述第一待写入数据写入所述第一待写入数据的逻辑地址对应的存储空间中。

6.根据权利要求5所述的存储设备,其特征在于,

所述备份单元,具体还用于获取所述第一待备份数据的写时复制COW信息,所述COW信息用于指示所述第一待备份数据是否需要进行COW操作;若所述第一待备份数据需要进行所述COW操作,则确定所述第一待备份数据在所述用于保存快照的存储空间中的存储地址;

从所述第一待写入数据的逻辑地址处获取所述第一待备份数据,并根据所述存储地址将所述第一待备份数据写入所述用于保存快照的存储空间中。

7.一种存储设备,其特征在于,包括:

接收单元,用于接收写操作指令,所述写操作指令中包含第一待写入数据以及所述第一待写入数据的逻辑地址;

缓存单元,用于将所述接收单元中的第一待写入数据写入所述存储设备的高速缓存;

确定单元,用于确定所述高速缓存中包括的第二待写入数据,所述第二待写入数据的逻辑地址与所述第一待写入数据的逻辑地址连续;

备份单元,用于在将所述接收单元中的第一待写入数据写入高速缓存时,从所述接收单元中的第一待写入数据的逻辑地址处获取第一待备份数据,从所述确定单元中的第二待写入数据的逻辑地址处获取第二待备份数据,将所述第一待备份数据和所述第二待备份数据写入用于保存快照的存储空间中,其中,所述第一待备份数据为已存储在所述第一待写入数据的逻辑地址处的数据,所述第二待备份数据为已存储在所述第二待写入数据的逻辑地址处的数据;

覆盖单元,用于从所述缓存单元中的高速缓存中读取所述第一待写入数据和所述第二待写入数据,并将所述第一待写入数据和所述第二待写入数据分别写入所述第一待写入数据的逻辑地址和所述第二待写入数据的逻辑地址对应的存储空间中。

8.根据权利要求7所述的存储设备,其特征在于,

所述备份单元,具体还用于分别获取所述第一待备份数据和所述第二待备份数据的写时复制COW信息,所述COW信息用于指示所述第一待备份数据和所述第二待备份数据是否需要进行COW操作;若所述第一待备份数据和所述第二待备份数据需要进行所述COW操作,则确定所述第一待备份数据和所述第二待备份数据在所述用于保存快照的存储空间中的存储地址;从所述第一待写入数据的逻辑地址处获取所述第一待备份数据,从所述第二待写入数据的逻辑地址处获取所述第二待备份数据,并根据所述存储地址将所述第一待备份数据和所述第二待备份数据写入所述用于保存快照的存储空间中。

说明书 :

一种数据的备份方法及装置

技术领域

[0001] 本发明涉及数据存储领域,尤其涉及一种数据的备份方法及装置。

背景技术

[0002] 快照(Snapshot)是指:关于指定数据集合的一个完全可用的拷贝,该拷贝包括相应数据在某个快照时间点(即拷贝开始的时间点)的映像,该映像可称为快照数据。
[0003] 快照技术的作用主要是能够进行在线数据备份与恢复。当存储设备发生应用故障或者文件损坏时,可以根据快照数据将当前文件恢复至某个可用的快照时间点的状态。另外,快照数据为用户提供了另外一个数据访问通道,当原数据进行在线应用处理时,用户可以访问快照数据,因此,快照技术在数据存储领域得到广泛应用。
[0004] 现有技术中使用的写时复制(COW,Copy-On-Write)操作是实现数据快照的主要方式,所谓写时复制,即在需要将新数据写入磁盘时,首先将新数据待写入的存储位置的旧数据读取出来,写入到用于保存快照的存储空间(即快照位置),然后再将新数据写入存储设备。
[0005] 具体的,在上述写时复制处理中,高速缓存调用I/O接口读取卷(volume)中上一个快照时间点的旧数据,并将上一个快照时间点的旧数据进行备份写入快照位置,进而高速缓存再将该新数据写入磁盘,该过程共进行了两个写操作和一个读操作,以完成新数据的写入和上一时刻快照时间点的旧数据的备份。
[0006] 可以看出,在某个已存有数据的存储位置上写入新数据时,必须等到旧数据的COW操作完成之后,才能在该存储位置上写入新数据,这样一来,与不用进行快照的数据的写操作相比,I/O的读写性能降低,且延长了数据写入的时间。

发明内容

[0007] 本发明的实施例提供一种数据的备份方法及装置,解决了现有技术中由于COW处理所引起的I/O读写性能下降的问题,并提高了数据写入速度。
[0008] 为达到上述目的,本发明的实施例采用如下技术方案:
[0009] 第一方面,本发明的实施例提供一种数据的备份方法,包括:
[0010] 接收写操作指令,所述写操作指令中包含第一待写入数据以及所述第一待写入数据的逻辑地址;
[0011] 将所述第一待写入数据写入高速缓存;
[0012] 在将所述第一待写入数据写入高速缓存时,从所述第一待写入数据的逻辑地址处获取第一待备份数据,以便将所述第一待备份数据写入用于保存快照的存储空间中,其中,所述第一待备份数据为已存储在所述第一待写入数据的逻辑地址处的数据;
[0013] 从所述高速缓存中读取所述第一待写入数据,并将所述第一待写入数据写入所述第一待写入数据的逻辑地址对应的存储空间中。
[0014] 结合第一方面,在第一方面的第一种可能的实现方式中,所述方法还包括:
[0015] 确定所述高速缓存中包括的第二待写入数据,所述第二待写入数据的逻辑地址与所述第一待写入数据的逻辑地址连续;
[0016] 在其中,所述从所述第一待写入数据的逻辑地址处获取第一待备份数据,以便将所述第一待备份数据写入用于保存快照的存储空间中,具体包括:
[0017] 的根据所述第二待写入数据的逻辑地址获取第二待备份数据,所述第二待备份数据为已存储在所述第二待写入数据的逻辑地址处的数据;
[0018] 将所述第一待备份数据和所述第二待备份数据写入所述用于保存快照的存储空间。
[0019] 结合第一方面,在第一方面的第二种可能的实现方式中,所述从所述第一待写入数据的逻辑地址处获取第一待备份数据,以便将所述第一待备份数据写入用于保存快照的存储空间中,包括:
[0020] 获取所述第一待备份数据的写时复制COW信息,所述COW信息用于指示所述第一待备份数据是否需要进行COW操作;
[0021] 若所述第一待备份数据需要进行所述COW操作,则确定所述第一待备份数据在所述用于保存快照的存储空间中的存储地址;
[0022] 从所述第一待写入数据的逻辑地址处获取该位置处的第一待备份数据,并根据所述存储地址将所述第一待备份数据写入所述用于保存快照的存储空间中。
[0023] 第二方面,本发明的实施例提供一种存储设备,包括:
[0024] 接收单元,用于接收写操作指令,所述写操作指令中包含第一待写入数据以及所述第一待写入数据的逻辑地址;
[0025] 缓存单元,用于将所述接收单元中的第一待写入数据写入高速缓存;
[0026] 备份单元,用于在将所述接收单元中的第一待写入数据写入高速缓存时,从所述接收单元中的第一待写入数据的逻辑地址处获取第一待备份数据,以便将所述第一待备份数据写入用于保存快照的存储空间中,其中,所述第一待备份数据为已存储在所述第一待写入数据的逻辑地址处的数据;
[0027] 覆盖单元,用于从所述缓存单元中的高速缓存中读取所述第一待写入数据,并将所述第一待写入数据写入所述第一待写入数据的逻辑地址对应的存储空间中。
[0028] 结合第二方面,在第二方面的第一种可能的实现方式中,所述存储设备还包括确定单元,其中,
[0029] 所述确定单元,用于确定所述高速缓存中包括的第二待写入数据,所述第二待写入数据的逻辑地址与所述第一待写入数据的逻辑地址连续;
[0030] 所述备份单元,具体用于根据所述确定单元中的第二待写入数据的逻辑地址获取第二待备份数据,所述第二待备份数据为已存储在所述第二待写入数据的逻辑地址处的数据;将所述第一待备份数据和所述第二待备份数据写入所述用于保存快照的存储空间。
[0031] 结合第二方面,在第二方面的第二种可能的实现方式中,
[0032] 所述备份单元,具体还用于获取所述第一待备份数据的写时复制COW信息,所述COW信息用于指示所述第一待备份数据是否需要进行COW操作;若所述第一待备份数据需要进行所述COW操作,则确定所述第一待备份数据在所述用于保存快照的存储空间中的存储地址;从所述第一待写入数据的逻辑地址处获取该位置处的第一待备份数据,并根据所述存储地址将所述第一待备份数据写入所述用于保存快照的存储空间中。
[0033] 本发明的实施例提供一种数据的备份方法及装置,存储设备在接收到第一待写入数据后,并行的触发将第一待写入数据存储至高速缓存的操作以及对第一待备份数据的COW操作,其中,所述第一待写入数据与所述第一待备份数据的逻辑地址相同(即二者的存储位置相同),这样一来,存储设备可以直接将所述高速缓存中的第一待写入数据刷新至所述磁盘中,以使得第一待写入数据替代已经存储在第一待写入数据的逻辑地址处的第一待备份数据,同时完成了第一待备份数据的COW操作,避免了现有技术中将第一待写入数据先写入cache中,等待需要将cache写入磁盘时再多次调用I/O接口进行第一待备份数据的COW的串行操作引起的I/O的性能下降且延迟了数据写入的速度的问题,同时,由于并行的触发将第一待写入数据存储至高速缓存的操作以及对第一待备份数据的COW的操作,提高了cache的利用率,缓解了cache下层的压力,提高了数据写入速度。

附图说明

[0034] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0035] 图1为现有技术中带有快照的数据的写操作的刷盘操作流程图;
[0036] 图2为本发明实施例提供的一种数据的备份方法的示意图一;
[0037] 图3为本发明实施例提供的数据的写操作的刷盘操作流程图一;
[0038] 图4为本发明实施例提供的一种数据的备份方法的示意图二;
[0039] 图5为本发明实施例提供的数据的写操作的刷盘操作流程图二;
[0040] 图6为本发明的实施例提供的一种存储设备的硬件示意图;
[0041] 图7为本发明的实施例提供的一种存储设备的结构示意图一;
[0042] 图8为本发明的实施例提供的一种存储设备的结构示意图二。

具体实施方式

[0043] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
[0044] 对于一些重要数据,为了防止数据的丢失,通常使用快照技术对数据进行备份。而实现快照的主要方式就是进行写时复制(COW,Copy-On-Write)操作,具体的,在第一次写入新数据时,首先调用I/O接口将上一快照时间点的旧数据读取出来,写到另一位置(即快照位置)上生成快照数据,最后再将新数据写入存储设备中。
[0045] 从上述COW的操作过程中可以看出,在第一次写入新数据时需要完成一个读操作(读取原位置的旧数据),两个写操作(将旧数据写入快照位置,将新数据写入原位置),如果某个卷上多以写操作为主,那么,对该卷在某个时间点创建快照后,每一次新写入的数据都会做一次COW。所以对于频繁创建快照的卷来说,卷的写操作的性能会下降非常严重。
[0046] 以现有技术中对带有快照的数据的写操作为例,磁盘的刷盘操作流程如图1所示,存储设备中的高速缓存接收需要存入磁盘的新数据A,当高速缓存的容量满足阈值后需要向磁盘(disk)内写入高速缓存中的新数据时,生成刷盘请求并向高速缓存下层进行转发,卷此时会拦截该刷盘请求并触发新数据A的COW操作,即调用I/O接口读取Volume中新数据A指示的位置的旧数据A1,并将旧数据A1写入快照位置生成快照数据,再下发刷盘请求至磁盘以使得存储设备将新数据A写入磁盘对应的位置。
[0047] 可以看出,磁盘的刷盘操作必须等待旧数据A1的COW操作完成后才能进行,与不需要快照的数据的写操作相比,I/O的性能下降了2/3,且延长了数据写入的时间。另外,在磁盘的刷盘操作前,高速缓存以及高速缓存的下层的磁盘比较空闲,而在磁盘的刷盘请求生成后,高速缓存以及高速缓存的下层既要处理I/O业务还要处理COW操作,使得高速缓存以及下层的磁盘压力骤增,降低了高速缓存和整个存储设备的利用率和性能。
[0048] 基于上述问题,本发明实施例所提供的一种数据的备份方法及装置,可以有效解决现有技术中由于COW处理所引起的I/O读写性能下降的问题并提高了数据写入速度。
[0049] 实施例一
[0050] 本发明的实施例提供一种数据的备份方法,如图2所示,包括:
[0051] 101、存储设备接收写操作指令,该写操作指令中包含第一待写入数据以及第一待写入数据的逻辑地址。
[0052] 102a、存储设备将第一待写入数据写入高速缓存中。
[0053] 102b、存储设备从第一待写入数据的逻辑地址处获取第一待备份数据,以便将第一待备份数据写入用于保存快照的存储空间中,其中,第一待备份数据为已存储在第一待写入数据的逻辑地址处的数据。
[0054] 103、从高速缓存中读取第一待写入数据,并将第一待写入数据写入第一待写入数据的逻辑地址对应的存储空间中。
[0055] 在步骤101中,存储设备接收第一待写入数据的写操作指令,该写操作指令中包括第一待写入数据以及第一待写入数据的逻辑地址。
[0056] 其中,第一待写入数据的逻辑地址可以为第一待写入数据的LBA(Logical Block Address,逻辑区块地址),LBA是描述存储设备上数据所在区块的通用机制,LBA可以指某个数据区块的地址或是某个地址所指向的数据区块。
[0057] 在步骤102a中,当存储设备接收到第一待写入数据的写操作指令之后,将第一待写入数据写入高速缓存中,等待高速缓存中的数据到达一定阈值时,存储设备将高速缓存中的数据写入磁盘中,完成数据的更新写操作。
[0058] 需要说明的是,当存储设备接收到第一待写入数据的写操作指令之后,并行地执行步骤102a和102b,以使得存储设备在将第一待写入数据存储至高速缓存的同时,对第一待备份数据进行COW的操作,其中,第一待备份数据与第一待写入数据的逻辑地址相同。
[0059] 在步骤102b中,当存储设备执接收到第一待写入数据的写操作指令之后,从该写操作指令中的第一待写入数据的逻辑地址处获取第一待备份数据,以便将第一待备份数据写入用于保存快照的存储空间中。
[0060] 其中,第一待备份数据为已存储在第一待写入数据的逻辑地址处的数据,即第一待备份数据与第一待写入数据的逻辑地址为同一个逻辑地址,因此,为了防止存储设备将该逻辑地址位置的已存储的第一待备份数据替换为第一待写入数据时,造成第一待备份数据的丢失,需要对第一待备份数据进行COW处理。
[0061] 具体的,存储设备可以获取到第一待备份数据的COW信息,该COW信息用于指示该第一待备份数据是否需要进行COW操作;若第一待备份数据需要进行COW操作,存储设备则确定第一待备份数据在用于保存快照的存储空间中的存储地址(即快照位置),这样,存储设备就可以从步骤101中获取的第一待写入数据的逻辑地址处,获取该位置处的第一待备份数据,并根据该快照位置将第一待备份数据写入用于保存快照的存储空间中,完成第一待备份数据的COW操作,及时地对第一待备份数据进行了备份。
[0062] 同时,由于存储设备并行的触发第一待写入数据存储至高速缓存的操作以及第一待备份数据的COW的操作,因此,本发明提供的数据备份方法在提高高速缓存利用率的同时,可以避免现有技术中将第一待写入数据先写入cache中,等待需要将cache写入磁盘时又多次调用I/O接口进行第一待备份数据的COW的串行操作所引起的I/O的性能下降且延迟了数据写入的速度的问题。
[0063] 在步骤103中,存储设备在将第一待写入数据存储至高速缓存,并且对第一待备份数据进行COW的操作之后,从高速缓存中读取第一待写入数据,并将第一待写入数据写入第一待写入数据的逻辑地址对应的存储空间中,完成第一待写入数据的写入操作。
[0064] 具体的,当高速缓存的存储空间小于阈值时,存储设备生成刷盘请求向高速缓存下层进行转发,此时存储设备无需对第一待备份数据进行COW处理,可以直接将高速缓存中的数据刷新至磁盘中,以使得第一待写入数据被写入原来第一待备份数据的逻辑地址的位置。
[0065] 示例性的,若待写入高速缓存的第一待写入数据为A1,与A1的LBA相同的第一待备份数据为A,图3给出了步骤101至104所示的数据备份方法的交互示意图。如图3所示,步骤2a将A1写入高速缓存,以及步骤2b执行数据A的COW操作可以同时执行,其中执行数据A的COW操作又可以分为步骤3a读取LBA为0的第一待备份数据为A以及步骤3b将写入A的快照位置以形成快照数据。这样一来,当高速缓存的存储空间小于阈值时,存储设备可以直接执行步骤4将高速缓存中的A1刷新至磁盘中,以使得第一待备份数据A1被第一待写入数据A覆盖,避免了现有技术中准备将第一待写入数据先写入cache中,需要等待cache多次调用I/O接口进行第一待备份数据的COW的串行操作引起的I/O的性能下降且延迟了数据写入的速度的问题。
[0066] 本发明的实施例提供一种数据的备份方法,存储设备在接收到第一待写入数据后,并行的触发将第一待写入数据存储至高速缓存的操作以及对第一待备份数据的COW操作,其中,所述第一待写入数据与所述第一待备份数据的逻辑地址相同(即二者的存储位置相同),这样一来,存储设备可以直接将所述高速缓存中的第一待写入数据刷新至所述磁盘中,以使得第一待写入数据替代已经存储在第一待写入数据的逻辑地址处的第一待备份数据,同时完成了第一待备份数据的COW操作,避免了现有技术中将第一待写入数据先写入cache中,等待需要将cache写入磁盘时再多次调用I/O接口进行第一待备份数据的COW的串行操作引起的I/O的性能下降且延迟了数据写入的速度的问题,同时,由于并行的触发将第一待写入数据存储至高速缓存的操作以及对第一待备份数据的COW的操作,提高了cache的利用率,缓解了cache下层的压力,提高了数据写入速度。
[0067] 实施例二
[0068] 本发明的实施例提供一种数据的备份方法,如图4所示,包括:
[0069] 201、存储设备接收写操作指令,该写操作指令中包含第一待写入数据以及第一待写入数据的逻辑地址。
[0070] 202、若高速缓存中包括有第二待写入数据,存储设备则根据第二待写入数据的逻辑地址获取第二待备份数据,并从第一待写入数据的逻辑地址处获取第一待备份数据,其中,该第二待写入数据的逻辑地址与第一待写入数据的逻辑地址连续,该第二待备份数据为已存储在第二待写入数据的逻辑地址处的数据。
[0071] 203a、存储设备对第一待备份数据和第二待备份数据进行备份。
[0072] 203b、存储设备将第一待写入数据和第二待写入数据写入高速缓存。
[0073] 204、若高速缓存的存储空间小于阈值,存储设备则将高速缓存中的数据刷新至磁盘中,以使得第一待写入数据和第二待写入数据写入磁盘中。
[0074] 具体的,在步骤201中,存储设备中可以接收第一待写入数据的写操作指令,该写操作指令中包括第一待写入数据以及第一待写入数据的逻辑地址,其中,该第一待写入数据的逻辑地址可以为第一待写入数据的LBA。
[0075] 在步骤202中,若高速缓存中还包括有与第一待写入数据的逻辑地址连续的第二待写入数据,存储设备则根据第二待写入数据的逻辑地址获取第二待备份数据,并从第一待写入数据的逻辑地址处获取第一待备份数据,此时,存储设备可以将该第一待备份数据和该第二待备份数据划分为一个快照组,以便对一个快照组中的所有待备份数据统一进行COW的操作,减少I/O的操作次数,提高数据写入的速度。
[0076] 示例性的,上述的快照组可以根据各个待备份数据的LBA进行划分,将LBA连续的若干个待备份数据为一个快照组。
[0077] 示例性的,若第一待备份数据为B1(LBA为0)、第二待备份数据为B2(LBA为8)和第三待备份数据为B3(LBA为24),设B1、B2和B3都是8个比特的字节。那么,存储设备获取到B1、B2和B3后,按照B1、B2和B3的LBA连续性进行的分组,将B1和B2分为第一快照组,将B3单独分为第二快照组。
[0078] 在步骤203a中,存储设备对第一待备份数据和第二待备份数据进行备份,即对一个快照组中的待备份数据统一进行COW操作,减少I/O的操作次数,提高数据写入的速度。
[0079] 具体的,存储设备可以获取到第一待备份数据的COW信息和第二待备份数据的COW信息,该COW信息用于分别指示该第一待备份数据和该第二待备份数据是否需要进行COW操作;若该第一待备份数据和该第二待备份数据都需要进行COW操作,存储设备则分别确定该第一待备份数据和该第二待备份数据在用于保存快照的存储空间中的存储地址(即快照位置),这样,存储设备可以分别根据该第一待备份数据和该第二待备份数据的快照位置,将该第一待备份数据和该第二待备份数据一起写入用于保存快照的存储空间中,至此,存储设备便一次性完成了对第一待备份数据和第二待备份数据的COW操作。
[0080] 仍然以上述步骤202中B1和B2分为第一快照组,将B3单独分为第二快照组为例,存储设备分别对第一快照组(B1和B2)和第二快照组(B3)进行COW操作。这样一来,由传统的存储设备分别对B1、B2和B3进行三次COW操作减少至两次,避免了COW操作的频繁执行,提高了数据的写入速度。
[0081] 需要说明的是,若高速缓存中还包括有与第一待写入数据的逻辑地址连续的第二待写入数据,那么,存储设备可以并行地执行步骤203a和203b,以使得存储设备在将第一待写入数据和第二待写入数据存储至高速缓存的同时,对第一待备份数据和第二待备份数据进行COW的操作,其中,第一待备份数据与第一待写入数据的逻辑地址相同,第二待备份数据与第二待写入数据的逻辑地址相同。
[0082] 在步骤203b中,当存储设备确定了第一待写入数据和第二待写入数据之后,分别将第一待写入数据和第二待写入数据写入高速缓存中,等待高速缓存中的数据到达一定阈值时,存储设备将高速缓存中的数据写入磁盘中,完成数据的更新写操作。
[0083] 在步骤204中,若高速缓存的存储空间小于阈值,存储设备则将高速缓存中的数据刷新至磁盘中,以使得第一待写入数据被写入原来第一待备份数据的逻辑地址的位置,第二待写入数据被写入原来第二待备份数据的逻辑地址的位置。
[0084] 示例性的,若待写入高速缓存的待写入数据分别为A1、A2、A3和A4,那么,与上述4个待写入数据的LBA相同的4个待备份数据分别为B1、B2、B3和B4,图5给出了步骤201至205所示的数据备份方法的交互示意图。如图5所示,步骤2将待写入数据A1、A2、A3和A4按照LBA的顺序进行分组,由于A1、A2、A3和A4LBA连续,因此可以将A1、A2、A3和A4分为一个快照组,步骤3a将A1、A2、A3和A4写入高速缓存以及步骤3b执行B1、B2、B3和B4的COW操作可以同时执行。这样一来,待备份数据B1、B2、B3和B4的COW操作可以一次性完成,并一次性生成第一待备份数据B1、B2、B3和B4的快照数据,大大提高了数据的备份速度,进一步地,当高速缓存的存储空间小于阈值时,存储设备可以直接执行步骤4,即将高速缓存中的A1、A2、A3和A4刷新至磁盘中,以使得待备份数据B1、B2、B3和B4被待写入数据A1、A2、A3和A4覆盖,避免了现有技术中先将被待写入数据写入cache中,等待需要将cache写入磁盘时又多次调用I/O接口进行待备份数据的COW的串行操作,进而导致I/O的性能下降且延迟了数据写入的速度的问题。
[0085] 本发明的实施例提供一种数据的备份方法,存储设备在接收到第一待写入数据后,并行的触发将第一待写入数据存储至高速缓存的操作以及对第一待备份数据的COW操作,其中,所述第一待写入数据与所述第一待备份数据的逻辑地址相同(即二者的存储位置相同),这样一来,存储设备可以直接将所述高速缓存中的第一待写入数据刷新至所述磁盘中,以使得第一待写入数据替代已经存储在第一待写入数据的逻辑地址处的第一待备份数据,同时完成了第一待备份数据的COW操作,避免了现有技术中将第一待写入数据先写入cache中,等待需要将cache写入磁盘时再多次调用I/O接口进行第一待备份数据的COW的串行操作引起的I/O的性能下降且延迟了数据写入的速度的问题,同时,由于并行的触发将第一待写入数据存储至高速缓存的操作以及对第一待备份数据的COW的操作,提高了cache的利用率,缓解了cache下层的压力,提高了数据写入速度。
[0086] 实施例三
[0087] 如图6所示,为本发明的实施例提供一种存储设备的硬件示意图。
[0088] 所述存储设备,是用于储存信息的设备,通常是将信息数字化后再以利用电、磁或光学等方式的媒体加以存储,例如各式可移动存储设备
[0089] 如图6所示,所述存储设备包括处理器01、收发器02、高速缓存03、磁盘04以及总线05。
[0090] 其中,处理器01、收发器02、高速缓存03以及磁盘04通过总线05连接。
[0091] 处理器01,是所述存储设备的控制中心,处理器01通过对收发器02接收到的数据进行处理,并调用高速缓存03或者磁盘04中的数据或程序,执行所述存储设备的各项功能。
[0092] 收发器02,可用于收发信息或数据,收发器02接收终端发送的信息后,给处理器01处理;另外,收发器02可以通过无线通信与网络和其他设备通信。
[0093] 高速缓存03(cache),是存在于主存储器与CPU之间的一级存储器,由静态存储芯片(SRAM)组成,容量比较小但速度比主存高得多,接近于CPU的速度。主存储器存取速度一直比CPU操作速度慢得多,使CPU的高速处理能力不能充分发挥,整个计算机系统的工作效率受到影响。高速缓存03的容量一般只有主存储器的几百分之一,但它的存取速度能与CPU相匹配,因此,为了提高计算机的工作效率,CPU可以先将数据写入高速缓存03中,在定期的将高速缓存03中的数据刷新至磁盘04内以提高数据的处理速度。
[0094] 磁盘04,是计算机硬件的一个重要部件,其作用是存放指令和数据,相较于高速缓存03,磁盘04的存储容量大大提高,具有容量大且存储数据的稳定性较高,但磁盘04的读写速度远远不如高速缓存03的读写速度。
[0095] 在本发明的实施例提供的一种数据的备份方法中,高速缓存03通过收发器02接收写操作指令,所述写操作指令中包含第一待写入数据以及所述第一待写入数据的逻辑地址;处理器01将所述第一待写入数据写入高速缓存03,同时,在处理器01将所述第一待写入数据写入高速缓存时,处理器01从所述第一待写入数据的逻辑地址处获取第一待备份数据,以便将所述第一待备份数据写入用于保存快照的存储空间中,其中,所述第一待备份数据为已存储在所述第一待写入数据的逻辑地址处的数据;处理器01通过收发器01从所述高速缓存03中读取所述第一待写入数据,并将所述第一待写入数据写入磁盘04中所述第一待写入数据的逻辑地址对应的存储空间中。
[0096] 进一步地,处理器01还可以确定所述高速缓存03中包括的第二待写入数据,所述第二待写入数据的逻辑地址与所述第一待写入数据的逻辑地址连续,此时,处理器01从所述第一待写入数据的逻辑地址处获取第一待备份数据,以便将所述第一待备份数据写入用于保存快照的存储空间中,具体可以包括:处理器01根据所述第二待写入数据的逻辑地址通过收发器02获取第二待备份数据,所述第二待备份数据为已存储在所述第二待写入数据的逻辑地址处的数据;处理器01将所述第一待备份数据和所述第二待备份数据写入所述用于保存快照的存储空间。
[0097] 进一步地,处理器01从所述第一待写入数据的逻辑地址处获取第一待备份数据,以便将所述第一待备份数据写入用于保存快照的存储空间中,具体可以包括:处理器01获取所述第一待备份数据的写时复制COW信息,所述COW信息用于指示所述第一待备份数据是否需要进行COW操作;若所述第一待备份数据需要进行所述COW操作,处理器01则确定所述第一待备份数据在所述用于保存快照的存储空间中的存储地址;处理器01从所述第一待写入数据的逻辑地址处获取该位置处的第一待备份数据,并根据所述存储地址调用收发器02将所述第一待备份数据写入所述用于保存快照的存储空间中。
[0098] 本发明的实施例提供一种存储设备,存储设备在接收到第一待写入数据后,并行的触发将第一待写入数据存储至高速缓存的操作以及对第一待备份数据的COW操作,其中,所述第一待写入数据与所述第一待备份数据的逻辑地址相同(即二者的存储位置相同),这样一来,存储设备可以直接将所述高速缓存中的第一待写入数据刷新至所述磁盘中,以使得第一待写入数据替代已经存储在第一待写入数据的逻辑地址处的第一待备份数据,同时完成了第一待备份数据的COW操作,避免了现有技术中将第一待写入数据先写入cache中,等待需要将cache写入磁盘时再多次调用I/O接口进行第一待备份数据的COW的串行操作引起的I/O的性能下降且延迟了数据写入的速度的问题,同时,由于并行的触发将第一待写入数据存储至高速缓存的操作以及对第一待备份数据的COW的操作,提高了cache的利用率,缓解了cache下层的压力,提高了数据写入速度。
[0099] 实施例四
[0100] 本发明的实施例提供一种存储设备,如图7所示,包括:
[0101] 接收单元11,用于接收写操作指令,所述写操作指令中包含第一待写入数据以及所述第一待写入数据的逻辑地址;
[0102] 缓存单元12,用于将所述接收单元11中的第一待写入数据写入高速缓存;
[0103] 备份单元13,用于在将所述接收单元11中的第一待写入数据写入高速缓存时,从所述接收单元11中的第一待写入数据的逻辑地址处获取第一待备份数据,以便将所述第一待备份数据写入用于保存快照的存储空间中,其中,所述第一待备份数据为已存储在所述第一待写入数据的逻辑地址处的数据;
[0104] 覆盖单元14,用于从所述缓存单元12中的高速缓存中读取所述第一待写入数据,并将所述第一待写入数据写入所述第一待写入数据的逻辑地址对应的存储空间中。
[0105] 进一步地,如图8所示,所述存储设备还包括确定单元15,其中,
[0106] 所述确定单元15,用于确定所述高速缓存中包括的第二待写入数据,所述第二待写入数据的逻辑地址与所述第一待写入数据的逻辑地址连续;
[0107] 所述备份单元13,具体用于根据所述确定单元15中的第二待写入数据的逻辑地址获取第二待备份数据,所述第二待备份数据为已存储在所述第二待写入数据的逻辑地址处的数据;将所述第一待备份数据和所述第二待备份数据写入所述用于保存快照的存储空间。
[0108] 本发明的实施例提供一种存储设备,存储设备在接收到第一待写入数据后,并行的触发将第一待写入数据存储至高速缓存的操作以及对第一待备份数据的COW操作,其中,所述第一待写入数据与所述第一待备份数据的逻辑地址相同(即二者的存储位置相同),这样一来,存储设备可以直接将所述高速缓存中的第一待写入数据刷新至所述磁盘中,以使得第一待写入数据替代已经存储在第一待写入数据的逻辑地址处的第一待备份数据,同时完成了第一待备份数据的COW操作,避免了现有技术中将第一待写入数据先写入cache中,等待需要将cache写入磁盘时再多次调用I/O接口进行第一待备份数据的COW的串行操作引起的I/O的性能下降且延迟了数据写入的速度的问题,同时,由于并行的触发将第一待写入数据存储至高速缓存的操作以及对第一待备份数据的COW的操作,提高了cache的利用率,缓解了cache下层的压力,提高了数据写入速度。
[0109] 所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0110] 在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0111] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0112] 另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0113] 所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0114] 以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。