数据的过滤方法、装置及数据读取系统的制作方法

文档序号:10577296阅读:350来源:国知局
数据的过滤方法、装置及数据读取系统的制作方法
【专利摘要】本申请公开了一种数据的过滤方法、装置及数据读取系统,用于提高存储资源的处理效率。所述数据的过滤方法包括:为源卷创建目标快照;将所述目标快照与基准快照进行差异比对,得到比对结果,所述比对结果用于记录差异数据;接收主机发送的位图查询命令,所述位图查询命令用于查询所述目标快照的有效数据的位图;根据所述差异数据生成有效数据的位图,所述有效数据的位图记录有所述目标快照的有效数据的位置;将所述有效数据的位图返回给所述主机。
【专利说明】
数据的过滤方法、装置及数据读取系统
技术领域
[0001]本申请涉及存储领域,特别涉及一种数据的过滤方法、装置及数据读取系统。
【背景技术】
[0002]逻辑单元号(Logical Unit Number,LUN)是在存储设备上可以被应用服务器识别的独立存储单元。一个LUN的空间来源于存储池,存储池的空间来源于组成硬盘域的若干块硬盘。站在应用服务器层面上,一个LUN可被视作类似一块可以使用的硬盘。Thick LUN(传统非精简LUN)和Thin LUN(精简LUN)分别是一种LUN的类型,支持虚拟资源分配,能够以较简便的方式进行创建、扩容和压缩操作。Thick LUN和Thin LUN均会产生无效数据空间,无效数据空间即LUN中值无效数据所占的逻辑空间,这一部分无效数据所占的逻辑空间没有分配对应的物理空间或者已经分配有对应的物理空间但值全部为零,读取无效数据空间时,通常会返回全零数据。如下是产生无效数据的两种具体情况:
[0003]UThick LUN没有被主机l/0(lnput/0utput,输入/输出)写入的已分配空间。对于Thick LUN,其创建时所有LUN对应的物理空间均已分配,一般来说,分配后的物理空间会全部立即填充为零,这一部分填充为零的物理空间即属于无效数据空间。如果读取这部分已分配但是没有被主机I/O覆盖的LUN空间,会为零数据。
[0004]2、Thin LUN的未分配空间。对于Thin LUN,创建时不会分配LUN大小对应的物理空间,而随着数据写入,再逐步按需增加分配物理空间。所以对于Thin LUN,有可能其部分逻辑空间没有分配物理空间。这一部分逻辑空间也属于无效数据空间。如果读取到这一部分空间,会返回全零数据。
[0005]现有的快照中无效数据过滤流程关键是通过零数据识别技术来过滤快照中的无效数据。零数据识别主要有如下三种方法:
[0006]方法一:逐字节检查:这种方法拿到待检查数据块之后,实时逐字节进行零数据检查。如果符合条件,则判断为零数据。
[0007]方法二:零数据标记:这种方法在每次写入数据时或者定期进行检查时,检查某数据块是否为全零,如果是,则将该数据块的标志位置为I,这样在判断对应数据块是否为全零数据时,直接查询对应标志位即可。
[0008]方法三:Thin LUN标记:这种方法是对于Thin LUN,获取其已分配空间的位图,从而得知剩余的未分配空间,即为全零数据空间。
[0009]对于比较常见的方法二和方法三中,均需要对数据进行标记,在过滤快照中的无效数据时通过查询标记识别对应的数据,然后将识别的数据中的无效数据过滤掉得到有效数据。因此,会额外增加系统资源的开销,影响存储资源的处理效率。

【发明内容】

[0010]本申请提供了一种数据的过滤方法、装置及数据读取系统,用于提高存储资源的处理效率。
[0011]本申请第一方面,提供了一种数据的过滤方法,所述方法应用于存储设备,其中,所述存储设备包括源卷及所述源卷的基准快照,所述源卷用于为所述存储设备连接的主机提供数据存储,所述基准快照为所述源卷写入数据之前的快照,所述基准快照记录的为无效数据,所述方法包括:
[0012]为所述源卷创建目标快照;将所述目标快照与所述基准快照进行差异比对,得到比对结果,所述比对结果用于记录差异数据;接收主机发送的位图查询命令,所述位图查询命令用于查询所述目标快照的有效数据的位图;根据所述差异数据生成有效数据的位图,所述有效数据的位图记录有所述目标快照的有效数据的位置;将所述有效数据的位图返回给所述主机。由于该有效数据的位图记录有该目标快照的有效数据的位置,因此所述主机可以根据所述有效数据的位图读取所述目标快照中的有效数据。从而避免通过添加标记来识别并过滤快照中的无效数据,进而减少了系统资源的开销,提高了存储资源的处理效率。
[0013]结合本申请第一方面,在第一方面的第一种实现方式中,所述将所述目标快照与所述基准快照进行差异比对具体包括:
[0014]将所述目标快照中的数据块与所述基准快照中的数据块进行逐块比对;当所述目标快照中的第一数据块与所述基准快照中的第一数据块相同时,确定所述目标快照中的第一数据块对应的数据为无效数据;当所述目标快照中的第一数据块与所述基准快照中的第一数据块不相同时,确定所述目标快照中的第一数据块对应的数据为差异数据。该实现方式通过将两个快照数据读取出来并逐个数据块进行比较,从中获取快照的差异数据块的位置。该实现方式对现有流程影响较小,而且比较结果准确。
[0015]结合本申请第一方面,在第一方面的第二种实现方式中,所述将所述目标快照与所述基准快照进行差异比对具体包括:
[0016]通过块修改跟踪CBT所使用的版本号分别标记所述目标快照与所述基准快照中的数据块;当所述目标快照中的第一数据块对应的CBT版本号与所述基准快照中的第一数据块对应的CBT版本号相同时,确定所述目标快照中的第一数据块对应的数据为无效数据;当所述目标快照中的第一数据块对应的CBT版本号与所述基准快照中的第一数据块对应的CBT版本号不相同时,确定所述目标快照中的第一数据块对应的数据为差异数据。该实现方式查找的时间很短。因为差异已经记录在CBT中,只需要少量时间遍历CBT表格提取差异。
[0017]结合本申请第一方面,在第一方面的第三种实现方式中,所述将所述目标快照与所述基准快照进行差异比对具体包括:
[0018]查找所述目标快照的私有映射表,并读取所述私有映射表中的地址记录;根据所述地址记录在所述目标快照的数据块中查找所述地址记录对应的数据,确定所述地址记录对应的数据为差异数据;查找所述目标快照和所述基准快照的共享映射表,并读取所述共享映射表中的地址记录;根据所述地址记录在所述目标快照的数据块中查找所述地址记录对应的数据,确定所述地址记录对应的数据为差异数据。该实现方式耗时较少,因为只需要查询已有的映射表记录即可;同时不需要增加太多工作,因为先有快照已经有映射表机制。
[0019]结合本申请第一方面或第一方面的第一至第二任一种实现方式,在第一方面的第四种实现方式中,所述根据所述差异数据生成有效数据的位图具体包括:
[0020]根据所述位图查询命令确定所述目标快照中待查找数据的范围;根据所述差异数据确定所述待查找数据的范围所对应的差异数据块;根据所述差异数据块生成有效数据的位图。该实现方式中,差异数据块对应的数据即为有效数据。
[0021 ]本申请第二方面,提供了一种数据的过滤装置,所述装置包括源卷及所述源卷的基准快照,所述源卷用于为所述存储设备连接的主机提供数据存储,所述基准快照为所述源卷写入数据之前的快照,所述基准快照记录的为无效数据,所述装置包括:
[0022]快照管理模块,用于为所述源卷创建目标快照;
[0023]快照比对模块,用于将所述目标快照与所述基准快照进行差异比对,得到比对结果,所述比对结果用于记录差异数据;
[0024]所述快照管理模块,还用于接收主机发送的位图查询命令,所述位图查询命令用于查询所述目标快照的有效数据的位图;
[0025]所述快照比对模块,还用于根据所述差异数据生成有效数据的位图,并将所述有效数据的位图返回给所述主机;所述有效数据的位图记录有所述目标快照的有效数据的位置。
[0026]由于该有效数据的位图记录有该目标快照的有效数据的位置,因此所述主机可以根据所述有效数据的位图读取所述目标快照中的有效数据。从而避免通过添加标记来识别并过滤快照中的无效数据,进而减少了系统资源的开销,提高了存储资源的处理效率。
[0027]结合本申请第二方面,在本申请第二方面的第一种实现方式中,所述快照比对模块用于将所述目标快照与所述基准快照进行差异比对,具体包括:
[0028]所述快照比对模块用于,将所述目标快照中的数据块与所述基准快照中的数据块进行逐块比对;当所述目标快照中的第一数据块与所述基准快照中的第一数据块相同时,确定所述目标快照中的第一数据块对应的数据为无效数据;当所述目标快照中的第一数据块与所述基准快照中的第一数据块不相同时,确定所述目标快照中的第一数据块对应的数据为差异数据。该实现方式对现有流程影响较小,而且比较结果准确。
[0029]结合本申请第二方面,在本申请第二方面的第二种实现方式中,所述快照比对模块用于将所述目标快照与所述基准快照进行差异比对,具体包括:
[0030]所述快照比对模块用于,通过块修改跟踪CBT所使用的版本号分别标记所述目标快照与所述基准快照中的数据块;当所述目标快照中的第一数据块对应的CBT版本号与所述基准快照中的第一数据块对应的CBT版本号相同时,确定所述目标快照中的第一数据块对应的数据为无效数据;当所述目标快照中的第一数据块对应的CBT版本号与所述基准快照中的第一数据块对应的CBT版本号不相同时,确定所述目标快照中的第一数据块对应的数据为差异数据。该实现方式查找的时间很短。因为差异已经记录在CBT中,只需要少量时间遍历CBT表格提取差异。
[0031]结合本申请第二方面,在本申请第二方面的第三种实现方式中,所述快照比对模块用于将所述目标快照与所述基准快照进行差异比对,具体包括:
[0032]所述快照比对模块用于,查找所述目标快照的私有映射表,并读取所述私有映射表中的地址记录;根据所述地址记录在所述目标快照的数据块中查找所述地址记录对应的数据,确定所述地址记录对应的数据为差异数据;查找所述目标快照和所述基准快照的共享映射表,并读取所述共享映射表中的地址记录;根据所述地址记录在所述目标快照的数据块中查找所述地址记录对应的数据,确定所述地址记录对应的数据为差异数据。该实现方式耗时较少,因为只需要查询已有的映射表记录即可;同时不需要增加太多工作,因为先有快照已经有映射表机制。
[0033]结合本申请第二方面或第二方面的第一至第三任一种实现方式,在本申请第二方面的第四种实现方式中,所述快照比对模块用于根据所述差异数据生成有效数据的位图,具体包括:
[0034]所述快照比对模块,用于根据所述位图查询命令确定所述目标快照中待查找数据的范围;根据所述差异数据确定所述待查找数据的范围所对应的差异数据块;根据所述差异数据块生成有效数据的位图。该实现方式中,差异数据块对应的数据即为有效数据。
[0035]本申请第三方面,提供了一种存储设备,其中,所述存储设备包括源卷及所述源卷的基准快照,所述源卷用于为所述存储设备连接的主机提供数据存储,所述基准快照为所述源卷写入数据之前的快照,所述基准快照记录的为无效数据,所述存储设备包括控制器以及存储器,所述存储器用于存储指令,所述控制器用于执行所述指令以执行本申请第一方面及第一方面的任一中实现方式中提供的数据的过滤方法。
[0036]本申请第四方面,提供了一种数据读取系统,包括主机以及第三方面提供的存储设备;其中,所述主机和所述存储设备之间通过通信网络进行通信;所述主机用于接收所述存储设备发送的有效数据的位图,并根据所述有效数据的位图读取目标快照中的有效数据。
[0037]本申请第五方面提供了一种存储介质,该存储介质中存储了程序代码,该程序代码被存储设备运行时,执行第一方面或第一方面的任意一种实现方式提供的数据的过滤方法。该存储介质包括但不限于快闪存储器(英文:flash memory),硬盘(英文:hard diskdrive,缩写:HDD)或固态硬盘(英文:solid state drive,缩写:SSD)。
[0038]由于本申请提供的技术方案,在对存储设备创建的源卷写入数据之前,为所述源卷创建基准快照,该基准快照记录的为无效数据。然后利用快照比对的方法将目标快照与该基准快照进行差异比对,得到的比对结果中记录有差异数据。在接收到主机发送的位图查询命令后,根据比对结果中记录的差异数据生成有效数据的位图,并将所述有效数据的位图返回给所述主机。其中,该有效数据的位图记录有目标快照的有效数据的位置,因此所述主机可以根据所述有效数据的位图读取所述目标快照中的有效数据。从而避免通过添加标记来识别并过滤快照中的无效数据,进而减少了系统资源的开销,提高了存储资源的处理效率。
【附图说明】
[0039]图1为本申请所提供的COW快照结构的示意图;
[0040]图2为本申请所提供的数据读取系统的架构示意图;
[0041 ]图3为本申请所提供的存储设备的结构示意图;
[0042]图4为本申请所提供的数据的过滤方法的一个实施例流程示意图;
[0043]图5为本申请所提供的差异位图数据结构示意图;
[0044]图6为本申请所提供的CBT表的数据结构示意图;
[0045]图7为本申请所提供的CBT生成示意图;
[0046]图8为本申请所提供的快照结构示意图;
[0047]图9为本申请所提供的数据的过滤装置的一个实施例结构示意图;
[0048]图10为本申请所提供的数据的过滤装置的另一实施例结构示意图;
[0049]图11为本申请所提供的数据的过滤方法的另一实施例流程示意图。
【具体实施方式】
[0050]下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0051]应当理解,尽管在本申请实施例中可能采用术语第一、第二等来描述各个转发端口或模块,但转发端口或模块不应限于这些术语。这些术语仅用来将转发端口或模块彼此区分开。例如,在不脱离本申请实施例范围的情况下,第一数据块也可以被称为第二数据块,类似地,第二数据块也可以被称为第一数据块;同样的,第二数据块也可以被称为第三数据块等等,第一、第二、第三数据块之间不具有逻辑或时序上的依赖关系。
[0052]本申请实例采用快照比对技术,实现零数据识别。该方法的主要原理在于,对于无效数据,由于其从源卷创建之初到生成待传输快照时间点之间并没有发生变化,因此可以用快照比对技术,在源卷创建之初生成一个基准快照,然后将待传输快照与基准快照进行比较,所得的差异之外的数据即为无效数据。因此通过快照比对,可以有效进行无效数据过滤。
[0053]贯穿本说明书,快照通常也称为虚拟快照(virtualcopy)或时间点逻辑拷贝(point-1n-time logical copy)。快照是只对指定数据集合的一个逻辑的完全可用拷贝,该拷贝包含源数据在拷贝时间点的静态映像。快照支持生成源LUN在某个时间点上虚拟的一致性映像,在不中断正常业务的前提下,快速得到一份与源LUN/文件系统一致的数据副本。副本生成之后立即可用,并且对副本的读写操作不再影响源数据。备份是快照技术一个典型应用场景。备份场景下,会根据用户的备份策略周期性的生成快照,然后将快照传输到备份介质中。根据对新写入数据放置位置的不同处理机制,快照分为写前拷贝快照(英文:Copy On Write Snapshot,缩写:COW;或者英文:Copy On First Write Snapshot,缩写:C0FW)和写时重定向快照(英文:Redirect On Write Snapshot,缩写:ROW,或者英文:Redirect On First Write Snapshot,缩写:R0FW)。以COW快照为例,其一种可能的实现如图1所示,图1所示为timeO时刻点生成的快照。一个快照包括三部分数据空间,即源卷,COW空间,快照卷,此外还包括两部分映射表,即共享映射表和私有映射表。其中源卷也称为生产卷,存储用户的生产数据及其更新。COW空间存储所有快照保护的时间点的数据。快照卷存储对快照本身写入的更新。共享映射表存储COW空间数据和各个快照之间的映射。私有映射表存储快照卷中的数据和快照之间的映射。共享映射表和私有映射表中的每一列对应到每一个快照时间点。
[0054]刚生成快照时,因为还没有针对源卷或者快照卷的1/0写入,所以快照所有的指针都指向源卷对应的数据块,COW空间和快照卷为空,共享映射表和私有映射表也为空。
[0055]如果生成快照之后用户对源卷写入1/0,则源卷中将要被覆盖的数据块会被提前拷贝到COW空间,同时更改共享映射表,将该快照指向对应数据块的指针(原有默认指向源卷)修改到指向COW空间中。然后再将写入的1/0覆盖到源卷。
[0056]如果生成快照之后用户对快照写入1/0,则分为如下几种情况:1.写入I/O对应的数据块在源卷或COW空间中。则将该共享的数据块(可能来自于COW空间或者源卷)先拷贝到快照卷中,然后将写入的I/O覆盖到快照卷中,并将该快照指向对应数据块的地址修改到指向快照卷,存入私有映射表。2.写入I/O对应的数据块已经在快照卷中。则直接将写入I/O覆盖到快照卷中对应的位置。
[0057]对于一个卷(LUN或者文件系统),在很多场景下,需要将其数据整个拷贝到远端。比如备份场景下将其初始备份到另一台独立的备份介质上;比如在同步/异步远程复制场景下,当初次进行数据传输时,需要将主端卷数据初始同步整个传输到远端站点;比如在双活场景下,当初次进行数据同步时,需要将主端卷数据初始同步整个传输到远端双活站点;比如跨设备克隆,需要将卷整个拷贝到远端设备上。在这些场景下进行对应操作时,一般会首先对这个卷生成一个快照,这样就获得了这个卷的时间点拷贝,然后即可将这个时间点拷贝通过初始同步传输到指定的目的端。这个快照的数据会包括生成快照时用户已经写入的有效I/o部分,以及剩余的全零数据部分。由于执行该步骤时一般为LUN创建初期,所以很可能用户写入的I/O较少,导致快照中包含的零数据会相对很多,这些全零数据会占用大量带宽但对业务不会有任何实际意义。因此如果能识别快照中的全零数据并且不将其在传输之前过滤掉,则可以有效节省带宽,提升传输效率,同时还不影响业务正常进行。
[0058]由于快照的快速创建的特性和占用空间相对少的特点,在一些场景如周期性备份或者复制情况下,需要周期性的生成快照,并且将快照数据传输到目的端。对于每一个快照,其中包括在上一个快照生成时间点到当前快照生成时间点之间所有的差异数据,以及在这个时间段之间没有改变的数据。这一部分没有改变的数据,与上一个快照相同。因此,如果每次传输快照时能只传输其与上一次快照之间的差异数据,则能够在保证业务正常进行、不损失任何有效信息的前提下节省带宽并且提高传输效率。
[0059]比较并获得快照之间差异有多种办法,通常的两种办法包括快照逐块比对和跟踪差异记录表两种方式。快照比对的调用接口以及三种常见的获取快照之间差异的方法:快照逐块比对,块修改跟踪(英文:Changed Block Tracking,缩写:CBT)跟踪快照差异和快照映射表记录差异。
[0060]通过快照差异获取技术,可以提取两个指定时间点之间的数据差异,从而减少备份数据,提高备份效率,缩短备份窗口。该技术是实现增量备份或者复制中一个很重要的功會K。
[0061 ]本申请实施例所应用的系统架构
[0062]图2为本申请实施例所应用的数据读取系统的架构示意图,其中包括主机、存储设备,该存储设备包括控制器和存储介质。其中主机包括主机应用,这是可能下发读取快照命令的源端之一。控制器包括使用快照的特性,快照读取接口,快照差异提取模块以及数据管理模块。其中,使用快照的特性是指其他如复制等增值特性,这些特性可能下发读取快照命令,快照读取接口负责接收快照读取的命令并且下发给数据管理模块,数据管理模块负责读取存储介质中的快照数据,然后将其返回。快照差异提取模块用于将数据管理模块读取的快照数据在其返回给快照管理模块之前进行与事前准备好的基准快照进行比对,并返回其差异。存储介质包括快照数据。
[0063]图2中的存储设备可以通过图3中的存储设备200实现。存储设备200的组织结构示意图如图3所示,包括控制器202、存储器204、还可以包括总线208、通信接口 206。
[0064]其中,控制器202、存储器204和通信接口 206可以通过总线208实现彼此之间的通信连接,也可以通过无线传输等其他手段实现通信。
[0065]存储器204可以包括易失性存储器(英文volatile memory),例如随机存取存储器(英文:random-access memory,缩写:RAM);存储器也可以包括非易失性存储器(英文:non-volatile memory),例如只读存储器(英文:read_only memory,缩写:ROM),快闪存储器(英文:flash memory),硬盘(英文:hard disk drive,缩写:HDD)或固态硬盘(英文:solid state drive,缩写:SSD);存储器204还可以包括上述种类的存储器的组合。在通过软件来实现本申请提供的技术方案时,用于实现本申请图4提供的数据的过滤方法的程序代码保存在存储器204中,并由控制器202来执行。
[0066]存储设备200通过通信接口 206与主机通信。
[0067]本申请中的存储设备200包括源卷及所述源卷的基准快照,所述源卷用于为所述存储设备连接的主机提供数据存储,所述基准快照为所述源卷写入数据之前的快照,所述基准快照记录的为无效数据,本申请存储设备200中的控制器202用于为所述源卷创建目标快照,该目标快照为不同于上述基准快照的另一个快照,此处用目标仅为便于说明,而并非对快照的功能及用途加以限制。
[0068]该控制器202将所述目标快照与所述基准快照进行差异比对,得到比对结果,所述比对结果用于记录差异数据;该控制器202接收主机发送的位图查询命令,该位图查询命令可能来自于主机,还可能来自于存储系统,具体可能来自于主机端的应用,或者来自于存储系统内部的其他特性。该控制器202在接收到该位图查询命令后,根据所述差异数据生成有效数据的位图,并将所述有效数据位图返回给所述主机。由于该有效数据的位图记录有该目标快照的有效数据的位置,因此所述主机可以根据所述有效数据的位图读取所述目标快照中的有效数据。从而避免通过添加标记来识别并过滤快照中的无效数据,进而减少了系统资源的开销,提高了存储资源的处理效率。
[0069]可选的,该控制器202将所述目标快照与所述基准快照进行差异比对具体包括如下三种方式:
[0070]—、快照逐块比对方式,具体包括:
[0071 ]将所述目标快照中的数据块与所述基准快照中的数据块进行逐块比对;
[0072]当所述目标快照中的第一数据块与所述基准快照中的第一数据块相同时,确定所述目标快照中的第一数据块对应的数据为无效数据;当所述目标快照中的第一数据块与所述基准快照中的第一数据块不相同时,确定所述目标快照中的第一数据块对应的数据为差异数据。
[0073]二、CBT跟踪快照差异方式,具体包括:
[0074]通过块修改跟踪CBT所使用的版本号分别标记所述目标快照与所述基准快照中的数据块;
[0075]当所述目标快照中的第一数据块对应的CBT版本号与所述基准快照中的第一数据块对应的CBT版本号相同时,确定所述目标快照中的第一数据块对应的数据为无效数据;当所述目标快照中的第一数据块对应的CBT版本号与所述基准快照中的第一数据块对应的CBT版本号不相同时,确定所述目标快照中的第一数据块对应的数据为差异数据。
[0076]三、快照映射表记录差异方式,具体包括:
[0077]查找所述目标快照的私有映射表,并读取所述私有映射表中的地址记录;根据所述地址记录在所述目标快照的数据块中查找所述地址记录对应的数据,确定所述地址记录对应的数据为差异数据;
[0078]查找所述目标快照和所述基准快照的共享映射表,并读取所述共享映射表中的地址记录;根据所述地址记录在所述目标快照的数据块中查找所述地址记录对应的数据,确定所述地址记录对应的数据为差异数据。
[0079]可选的,该控制器202根据所述差异数据生成有效数据的位图具体包括:
[0080]根据所述位图查询命令确定所述目标快照中待查找数据的范围;
[0081 ]根据所述差异数据确定所述待查找数据的范围所对应的差异数据块;
[0082]根据所述差异数据块生成有效数据的位图。
[0083]可选的,该控制器202还用于接收所述主机发送的目标快照的有效数据读取命令;根据所述有效数据读取命令读取所述目标快照中的有效数据,并将所述有效数据返回给所述主机。
[0084]可选的,该控制器202还用于创建差异位图,所述差异位图用于存储所述比对结果O
[0085]本申请还提供了一种数据的过滤方法,应用于存储设备,其中,所述存储设备包括源卷及所述源卷的基准快照,所述源卷用于为所述存储设备连接的主机提供数据存储,所述基准快照为所述源卷写入数据之前的快照,所述基准快照记录的为无效数据。图2中的控制器以及图3中的存储设备200运行时执行该方法,其流程示意图如图4所示。
[0086]401、为源卷创建目标快照。
[0087]该目标快照为不同于上述基准快照的另一个快照,此处用目标仅为便于说明,而并非对快照的功能及用途加以限制。
[0088]402、将所述目标快照与所述基准快照进行差异比对,得到比对结果,所述比对结果用于记录差异数据。
[0089]将所述目标快照与所述基准快照进行差异比对的方法通常包括如下三种:快照逐块比对,CBT跟踪快照差异和快照映射表记录差异。这三种方法的快照比对调用方式可以用如下命令表示:
[0090]QuerySnapShotDiff<SnapshotIDl>,<SnapshotID2>,<chunkSize>
[0091 ] QuerySnapShotDiff为命令名,表示要查询两个快照之间的差异。Snap shot IDI和Snapshot ID2分别标识待比较的两个快照。chunkSize表示按照多大的粒度划分块,来对两个快照的对应数据块进行比较。
[0092]该命令返回值如下:
[0093]〈ChunkBitmap〉
[0094]ChunkBitmap为一个差异位图,其每一位的值表示对应位置数据块的比对结果是否为相同数据。差异位图的数据结构示例如图5所示。
[0095]可选的,在步骤403之前还执行了如下步骤:创建差异位图,所述差异位图用于存储所述比对结果。
[0096]图5所示的差异位图数据结构中,每个bit都表示两个被比较快照对应位置数据块的比较结果。不失一般性,可认为值为I表示对应位置数据块内容不同,为差异数据;值为O表示对应位置数据块内容相同,为相同数据。
[0097]对于上述三种比对方法,具体描述如下:
[0098]对于第一种比对方法,可选的,所述将所述目标快照与所述基准快照进行差异比对具体包括:
[0099]将所述目标快照中的数据块与所述基准快照中的数据块进行逐块比对;
[0100]当所述目标快照中的第一数据块与所述基准快照中的第一数据块相同时,确定所述目标快照中的第一数据块对应的数据为无效数据;当所述目标快照中的第一数据块与所述基准快照中的第一数据块不相同时,确定所述目标快照中的第一数据块对应的数据为差异数据。
[0101]具体的实现过程可参考如下:
[0102]1、创建差异位图。该步骤创建如图5所示差异位图,用于存储返回的快照差异比对结果。创建后进入步骤2。
[0103]2、判断是否两个快照最后一个数据块。判断当前待比较的位置是否是两个快照最后的数据块。如果是,则表示已经比较完毕,则进入步骤6;如果不是,则表示还有待比较数据块,则进入步骤3。其中,这两个快照对应上述的目标快照和基准快照。
[0104]3、逐字节或者逐比特比较两个数据块,判断比较结果,如果两个数据块相同,则进入步骤4,如果两个数据块不同,则进入步骤5。
[0105]4、记录差异位图中这个位置的比对结果为0,然后进入步骤2。表示对应数据块相同。
[0106]5、记录差异位图中这个位置的比对对结果为I,然后进入步骤2。这一结果表示对应数据块不同。
[0107]6、返回差异位图。进入步骤6表示两个快照已经比对完毕,因此将差异位图作为结果返回。
[0108]该方法通过将两个快照数据读取出来并逐个数据块进行比较,从中获取快照的差异数据块的位置。该方法对现有流程影响较小,而且比较结果准确。
[0109]对于第二种比对方法,可选的,所述将所述目标快照与所述基准快照进行差异比对具体包括:
[0110]通过块修改跟踪CBT所使用的版本号分别标记所述目标快照与所述基准快照中的数据块;
[0111]当所述目标快照中的第一数据块对应的CBT版本号与所述基准快照中的第一数据块对应的CBT版本号相同时,确定所述目标快照中的第一数据块对应的数据为无效数据;当所述目标快照中的第一数据块对应的CBT版本号与所述基准快照中的第一数据块对应的CBT版本号不相同时,确定所述目标快照中的第一数据块对应的数据为差异数据。
[0112]具体的实现过程可参考如下:
[0113]跟踪快照差异是指在快照每一次发生变化时跟踪记录变化,从而获得两个快照之间的差异,并且记录到跟踪表中。该差异记录的动作可以由存储系统完成,也可以由上层的应用(比如虚拟机平台软件)完成。其典型的方式是CBT,即更改数据块跟踪。该方式通过CBT表跟踪记录一个生产卷的数据块的变化情况,标记出生产卷自上次快照后发生变化的数据块位置。通过该方法,可以提取两个快照之间的差异。CBT表的数据结构如图6所示,图6所示的数据结构中,每一个int元素是一个版本号,由一个正整数值构成,其表示对应位置的数据块的版本号值。每次生成新的快照之后,如果对应数据块内发生变化,则版本号数值会增加到对应的快照序号。
[0114]详细使用说明参考图7,图7所示的CBT生成示意图中,每一列代表一个快照时间点。第一行“该时间点快照数据”指对应列的快照生成之后快照中包含的数据。第二行“截止到下一个快照时间之前的生产卷数据”表明生成快照之后到下一个快照时间点之前,生产卷由于被写入生产数据发生的改变。第三行“生产卷与快照之间的差异”是系统跟踪写入数据而生成的差异记录。表明由于被写入生产数据,当前生产卷与最近一个快照时间的差异。第四行“到下一个快照时间点之前的CBT记录”是系统根据跟踪记录的第三行差异而生成的CBT记录,该记录随着采集到的差异实时改变。第五行“用户查询到的当前CBT”是用户能查询到的针对当前卷的CBT记录。而第六行“当前时间点快照生成时的CBT表”是指生成当前时间点快照时,系统中可查询到的CBT记录表。生成快照时会拷贝一份对应时间点的CBT表。
[0115]CBT会实时将自上一个快照生成之后生产卷中改变的数据块计入CBT表中,CBT表格的版本号从O开始,每次有新的快照生成则加I。以图7为例,快照2保护的时间点快照为“八,8,0,0”,生成快照2之后,由于写入生产数据,所以生产卷变为11,8,(:,0”。即从快照2的时间点到快照3之前的时间点之间,其中一个数据块内容由A变成AI,另一个数据块的值由O变为C,第三个数据块的值由O变为D。快照2的CBT会截获写入的生产数据并实时记录这些变化,所以对应的快照2“到下一个快照时间点之前的CBT记录”中对应的CBT位置均变为快照2所对应的CBT版本号2;其他没有改变的数据块,其对应的版本号不发生变化。
[0116]如果要查阅当前快照与之前快照的CBT数据,则可以在生成快照时,保留下对应时间点的CBT表格,即图7中“当前时间点快照生成时的CBT表”一行。从中可以计算出该快照与过去任一时间点快照的数据差异。具体方法是找出CBT表中大于过去时间点快照版本号值的CBT记录,其表示对应的数据块在该过去时间点到当前时间点之间存在差异。以图7为例,如果要查找快照4和快照2之间的数据差异,则在“当前时间点快照生成时的CBT表”一行中,找到快照4一列对应的CBT表,从中可以看出,该CBT表中有I个“I”,I个“3”和2个“2”。快照2的版本号为1,而“3”>1,“2”>1,所以表明I个“3”和2个“2”对应的数据块均发生了变化。实际数据变化情况是由快照2的“Α,Β,0,0”变成了 “A2,B,C,D”,的确I个“3”和2个“2”对应的数据块发生了变化,与实际相符。
[0117]该方法查找的时间很短。因为差异已经记录在CBT中,只需要少量时间遍历CBT表格提取差异。
[0118]对于第三种比对方法,可选的,所述将所述目标快照与所述基准快照进行差异比对具体包括:
[0119]查找所述目标快照的私有映射表,并读取所述私有映射表中的地址记录;根据所述地址记录在所述目标快照的数据块中查找所述地址记录对应的数据,确定所述地址记录对应的数据为差异数据;
[0120]查找所述目标快照和所述基准快照的共享映射表,并读取所述共享映射表中的地址记录;根据所述地址记录在所述目标快照的数据块中查找所述地址记录对应的数据,确定所述地址记录对应的数据为差异数据。
[0121]具体的实现过程可参考如下:
[0122]对于大部分快照实现方式,其快照本身会使用数据结构记录与源卷的差异数据(如COW快照的共享和私有映射表),因此,通过对比两个快照在共享映射表中的内容,以及其各自的私有映射表中的映射项,就可以获得其快照之间的差异项。从而获取变化的数据块。以COW快照为例,其提取差异的算法流程如下:
[0123]1、创建差异位图表,并将其中所有位置O。这一步是进行差异位图表初始化。O表示两个快照间无差异。
[0124]2、查询两个快照各自的私有映射表,并依次取出其中的记录。这些记录都是对快照自身的修改,因此被看做两个快照之间的差异。如果两个快照各自的私有映射表中没有记录,或者COW实现中没有私有映射表,则直接进入步骤4。
[0125]3、根据步骤2的结果,差异位图表对应的位置置为I。
[0126]4、进入共享映射表中,查询大于等于较小快照时间点,小于较大快照时间点的记录。这些记录都表明了两个快照之间的差异。
[0127]5、根据步骤4中查询到的共享映射表中的更改,将差异位图表中对应位置置为I。
[0128]以图8为例说明如何从共享映射表中获取快照差异。
[0129]图8所示的快照结构示意图中,假设在timeO时刻,生成timeO快照,其包括timeO私有快照卷,timeO私有映射表,同时还包括COW空间,共享映射表,以及源卷。在time I时刻,在timeO快照之后,又生成timel快照。两个快照共享源卷,COW空间和共享映射表;两个快照各自有自己的私有卷和私有映射表。在time2时刻,在timeO和time I快照之后,又生成time2快照。三个快照共享源卷,COW空间和共享映射表;三个快照各自有自己的私有卷和私有映射表。
[0130]图8表示在生成3个快照之后,源卷,COW空间,共享映射表,三个快照的快照卷以及各自的私有映射表发生的变化。通过查找对应的共享映射表和私有映射表,可以找到快照之间的差异。根据前面所述提取差异的算法流程,现计算快照上图8中time2和快照timeO之间差异的过程如下:
[0131]首先查找time2快照中time2和timeO各自的私有映射表,找出其中的差异记录(如果timeO快照和time2快照都没有被写入,则不需要查询私有映射表)。从中得到timeO有一条记录“kO,G0”,表示对timeO快照有修改,这个即为两者的差异,因此将对应地址G3对应的差异位图位置为I。在此之后,查询共享映射表,查询到三条记录都大于等于timeO,且小于time2。分别是”hl,Gl”,“hi’,G1”和“hO,G0”。这三条记录表明Gl和GO对应的数据有修改,因此Gl和GO对应的差异位图位置为I。综上,得出time2快照和timeO快照之间的差异为” G0,G1,G3,,。
[0132]该方法耗时较少,因为只需要查询已有的映射表记录即可;同时不需要增加太多工作,因为先有快照已经有映射表机制。
[0133]403、接收主机发送的位图查询命令,所述位图查询命令用于查询所述目标快照的有效数据的位图。
[0134]该步骤中,主机的应用或者特性发送位图查询命令,该位图查询命令包括目标快照的ID和待查找数据的起止范围(如查询快照snapl从地址O到地址100的有效数据)。该存储设备接收到该位图查询命令后,根据对应的ID将其转换为内部可识别指令,以读取该位图查询命令。该位图查询命令的来源可能来自于主机端的应用,也可能来自于存储系统内部的其他特性。
[0135]404、根据所述差异数据生成有效数据的位图,所述有效数据的位图记录有所述目标快照的有效数据的位置。
[0136]可选的,所述根据所述差异数据生成有效数据的位图具体包括:
[0137]根据所述位图查询命令确定所述目标快照中待查找数据的范围;
[0138]根据所述比对结果中记录的差异数据确定所述待查找数据的范围所对应的差异数据块;
[0139]根据所述差异数据块生成有效数据的位图。
[0140]需要说明的是,该存储设备将该位图查询命令所规定范围内的差异数据块作为有效数据块。具体过程为,从该查询命令规定的起始地址(即步骤403中列举的地址O)到结束地址(即步骤403中列举的地址100)范围,根据步骤402得到的比对结果,基于该比对结果查找上述地址范围内数据块与该比对结果的对应关系。例如,如果查找到的数据块对应的数据为差异数据,则确定该数据块为差异数据块,则将有效数据的位图的对应位置为I,否则,则将有效数据的位图的对应位置为O。最后,生成的有效数据的位图中对应位为I的数据块即代表差异数据块,该差异数据块对应的数据即为有效数据。
[0141]405、将所述有效数据的位图返回给所述主机。
[0142]存储设备将所述有效数据的位图返回给所述主机,该主机在接收到该有效数据位图后,根据所述有效数据的位图读取所述目标快照中的有效数据。具体的,该主机在接收到该存储设备返回的有效数据的位图后,首先逐个查看有效数据位图的某一个数据位,如果该位为I,则表明为有效数据,下发有效数据读取命令给存储设备,将快照中的有效数据读出;如果该位为O,则表明为无效数据,则略过该数据位继续查找下一个数据位。
[0143]可选的,在读取有效数据的过程中,所述方法还包括:
[0144]接收所述主机发送的目标快照的有效数据读取命令;
[0145]根据所述有效数据读取命令读取所述目标快照中的有效数据,并将读取的所述有效数据返回给所述主机。
[0146]本申请实施例中,在对存储设备创建的源卷写入数据之前,为所述源卷创建基准快照,该基准快照记录的为无效数据。然后利用快照比对的方法将目标快照与该基准快照进行差异比对,得到的比对结果中记录有差异数据。在接收到主机发送的位图查询命令后,根据比对结果中记录的差异数据生成有效数据的位图,并将所述有效数据的位图返回给所述主机,该有效数据的位图记录有目标快照的有效数据的位置。从而避免通过添加标记来识别并过滤快照中的无效数据。进而减少了系统资源的开销,提高了存储资源的处理效率。同时,本申请也不需要定期或者每次写入数据时进行逐字节检查,减少写入步骤和系统资源开销,且对于Thin LUN和Thick LUN均适用。
[0147]本申请实施例还提供了数据的过滤装置600,该装置可以通过图3所示的存储设备200实现,还可以通过专用集成电路(英文:applicat1n_specific integratedcircuit,缩写:ASIC)实现,或可编程逻辑器件(英文-programmable logic device,缩写:PLD)实现。上述PLD可以是复杂可编程逻辑器件(英文:complex programmable logicdevice,缩写:CPLD),FPGA,通用阵列逻辑(英文:generic array logic,缩写:GAL)或其任意组合。该数据的过滤装置600用于实现图4所示的数据的过滤方法。通过软件实现图4所示的数据的过滤方法时,数据的过滤装置600也可以为软件模块。
[0148]数据的过滤装置600的组织结构示意图如图9所示,包括:快照管理模块602和快照比对模块604。快照管理模块602工作时,执行图4所示的数据的过滤方法中的步骤401、403,快照比对模块604工作时,执行图4所示的数据的读取方法中的步骤402、404、405。
[0149]本申请实施例提供的数据的过滤装置,能够在对存储设备创建的源卷写入数据之前,为所述源卷创建基准快照,该基准快照记录的为无效数据。然后利用快照比对的方法将目标快照与该基准快照进行差异比对,得到的比对结果中记录有差异数据。在接收到主机发送的位图查询命令后,根据比对结果中记录的差异数据生成有效数据的位图,并将所述有效数据的位图返回给所述主机,该有效数据的位图记录有目标快照的有效数据的位置。从而避免通过添加标记来识别并过滤快照中的无效数据。进而减少了系统资源的开销,提高了存储资源的处理效率。
[0150]可选的,如图10所示,所述数据的过滤装置600还包括数据管理模块606,数据管理模块606工作时,执行如下步骤:接收所述主机发送的目标快照的有效数据读取命令;根据所述有效数据读取命令读取所述目标快照中的有效数据,并将读取的所述有效数据返回给所述主机。
[0151]上述装置的相关描述可以对应参阅方法实施例部分的相关描述和效果进行理解,本处不做过多赘述。
[0152]基于图4的数据的过滤方法以及图10所示的数据的过滤装置结构,本申请提供了一个运用该方法的实例,如图11所示,图11为基于该数据的过滤方法的流程图,具体步骤如下:
[0153]1、发送卷创建命令。由主机中的应用或者特性发送创建卷的命令。该步骤为现有技术。
[0154]2、创建卷后立即创建一个基准快照。这个快照在创建卷的时候一并创建。而且因为该快照创建时卷为空,所以该快照为全零数据。快照管理模块接到创建卷的命令之后,先创建卷。然后在对快照或者源卷写入任何数据之前,立即创建一个基准快照。该快照对用户不可见。
[0155]3、返回卷创建命令。创建完卷和基准快照之后,返回创建卷命令结果。
[0156]4、发送快照创建命令。针对目标卷创建后续需要拷贝或者传输的时间点快照。
[0157]5、返回快照创建结果。快照管理模块收到命令后进行创建,然后将结果返回给命令发起。
[0158]6、确定目标快照,并将目标快照与基准快照进行差异比对。快照比对模块从创建的时间点快照中确定一个目标快照,将该目标快照与基准快照进行差异比对,将该比对结果存储到差异位图中。
[0159]7、发送位图查询命令,该步骤包括7.1?7.2。应用或者特性发送快照的位图查询命令。该命令会发送给快照管理模块,快照管理模块根据对应的ID将其转换为内部可识别指令,再传送到快照比对模块。命令可能来自于主机端的应用,也可能来自于存储系统内部的其他特性。
[0160]8、生成有效数据的位图。快照比对模块在接收到该位图查询命令之后,根据比对结果中记录的差异数据确定待查找数据的范围所对应的差异数据块,并根据该差异数据块生成有效数据的位图。
[0161]9、返回有效数据的位图,该步骤包括9.1?9.2。快照比对模块将生成的有效数据的位图返回给主机端/存储系统的应用/特性。
[0162]10、发送目标快照的有效数据读取命令,该步骤包括10.1?10.2。应用或特性根据返回的有效数据的位图逐个查看有效数据的位图的数据位,下发有效数据读取命令给数据管理模块,以读取目标快照中的有效数据。
[0163]11、返回读取的有效数据,该步骤包括11.1?11.2。数据管理模块读取有效数据之后将其返回。
[0164]运用本申请实施例提供的数据的读取方法,能够在对存储设备创建的源卷写入数据之前,为所述源卷创建基准快照,该基准快照记录的为无效数据。然后利用快照比对的方法将目标快照与该基准快照进行差异比对,得到的比对结果中记录有差异数据。在接收到主机发送的位图查询命令后,根据比对结果中记录的差异数据生成有效数据的位图,并将所述有效数据的位图返回给所述主机,该有效数据的位图记录有目标快照的有效数据的位置。从而避免通过添加标记来识别并过滤快照中的无效数据。进而减少了系统资源的开销,提高了存储资源的处理效率。
[0165]本申请还提供了一种数据读取系统,该系统的组织结构示意图如图2所示,该系统包括图3描述的所述存储设备200以及主机,所述主机与所述存储设备200之间通过通信网络进行通信;所述主机用于接收所述存储设备发送的有效数据的位图,并根据所述有效数据的位图读取目标快照中的有效数据。
[0166]所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0167]在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0168]另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0169]所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文= Read-OnlyMemory,简称:ROM)、随机存取存储器(英文:Random Access Memory,简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
[0170]以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
【主权项】
1.一种数据的过滤方法,应用于存储设备,其特征在于,所述存储设备包括源卷及所述源卷的基准快照,所述源卷用于为所述存储设备连接的主机提供数据存储,所述基准快照为所述源卷写入数据之前的快照,所述基准快照记录的为无效数据,所述方法包括: 为所述源卷创建目标快照; 将所述目标快照与所述基准快照进行差异比对,得到比对结果,所述比对结果用于记录差异数据; 接收主机发送的位图查询命令,所述位图查询命令用于查询所述目标快照的有效数据的位图; 根据所述差异数据生成有效数据的位图,所述有效数据的位图记录有所述目标快照的有效数据的位置; 将所述有效数据的位图返回给所述主机。2.根据权利要求1所述的方法,其特征在于,所述将所述目标快照与所述基准快照进行差异比对具体包括: 将所述目标快照中的数据块与所述基准快照中的数据块进行逐块比对; 当所述目标快照中的第一数据块与所述基准快照中的第一数据块相同时,确定所述目标快照中的第一数据块对应的数据为无效数据;当所述目标快照中的第一数据块与所述基准快照中的第一数据块不相同时,确定所述目标快照中的第一数据块对应的数据为差异数据。3.根据权利要求1所述的方法,其特征在于,所述将所述目标快照与所述基准快照进行差异比对具体包括: 通过块修改跟踪CBT所使用的版本号分别标记所述目标快照与所述基准快照中的数据块; 当所述目标快照中的第一数据块对应的CBT版本号与所述基准快照中的第一数据块对应的CBT版本号相同时,确定所述目标快照中的第一数据块对应的数据为无效数据;当所述目标快照中的第一数据块对应的CBT版本号与所述基准快照中的第一数据块对应的CBT版本号不相同时,确定所述目标快照中的第一数据块对应的数据为差异数据。4.根据权利要求1所述的方法,其特征在于,所述将所述目标快照与所述基准快照进行差异比对具体包括: 查找所述目标快照的私有映射表,并读取所述私有映射表中的地址记录;根据所述地址记录在所述目标快照的数据块中查找所述地址记录对应的数据,确定所述地址记录对应的数据为差异数据; 查找所述目标快照和所述基准快照的共享映射表,并读取所述共享映射表中的地址记录;根据所述地址记录在所述目标快照的数据块中查找所述地址记录对应的数据,确定所述地址记录对应的数据为差异数据。5.根据权利要求1至4任一项所述的方法,其特征在于,所述根据所述差异数据生成有效数据的位图具体包括: 根据所述位图查询命令确定所述目标快照中待查找数据的范围; 根据所述差异数据确定所述待查找数据的范围所对应的差异数据块; 根据所述差异数据块生成有效数据的位图。6.一种数据的过滤装置,其特征在于,所述装置包括源卷及所述源卷的基准快照,所述源卷用于为所述存储设备连接的主机提供数据存储,所述基准快照为所述源卷写入数据之前的快照,所述基准快照记录的为无效数据,所述装置包括: 快照管理模块,用于为所述源卷创建目标快照; 快照比对模块,用于将所述目标快照与所述基准快照进行差异比对,得到比对结果,所述比对结果用于记录差异数据; 所述快照管理模块,还用于接收主机发送的位图查询命令,所述位图查询命令用于查询所述目标快照的有效数据的位图; 所述快照比对模块,还用于根据所述差异数据生成有效数据的位图,并将所述有效数据的位图返回给所述主机;所述有效数据的位图记录有所述目标快照的有效数据的位置。7.根据权利要求6所述的装置,其特征在于,所述快照比对模块用于将所述目标快照与所述基准快照进行差异比对,具体包括: 所述快照比对模块用于,将所述目标快照中的数据块与所述基准快照中的数据块进行逐块比对; 当所述目标快照中的第一数据块与所述基准快照中的第一数据块相同时,确定所述目标快照中的第一数据块对应的数据为无效数据;当所述目标快照中的第一数据块与所述基准快照中的第一数据块不相同时,确定所述目标快照中的第一数据块对应的数据为差异数据。8.根据权利要求6所述的装置,其特征在于,所述快照比对模块用于将所述目标快照与所述基准快照进行差异比对,具体包括: 所述快照比对模块用于,通过块修改跟踪CBT所使用的版本号分别标记所述目标快照与所述基准快照中的数据块; 当所述目标快照中的第一数据块对应的CBT版本号与所述基准快照中的第一数据块对应的CBT版本号相同时,确定所述目标快照中的第一数据块对应的数据为无效数据;当所述目标快照中的第一数据块对应的CBT版本号与所述基准快照中的第一数据块对应的CBT版本号不相同时,确定所述目标快照中的第一数据块对应的数据为差异数据。9.根据权利要求6所述的装置,其特征在于,所述快照比对模块用于将所述目标快照与所述基准快照进行差异比对,具体包括: 所述快照比对模块用于,查找所述目标快照的私有映射表,并读取所述私有映射表中的地址记录;根据所述地址记录在所述目标快照的数据块中查找所述地址记录对应的数据,确定所述地址记录对应的数据为差异数据; 查找所述目标快照和所述基准快照的共享映射表,并读取所述共享映射表中的地址记录;根据所述地址记录在所述目标快照的数据块中查找所述地址记录对应的数据,确定所述地址记录对应的数据为差异数据。10.根据权利要求6至9任一项所述的装置,其特征在于,所述快照比对模块用于根据所述差异数据生成有效数据的位图,具体包括: 所述快照比对模块,用于根据所述位图查询命令确定所述目标快照中待查找数据的范围;根据所述差异数据确定所述待查找数据的范围所对应的差异数据块;根据所述差异数据块生成有效数据的位图。11.一种存储设备,其特征在于,所述存储设备包括源卷及所述源卷的基准快照,所述源卷用于为所述存储设备连接的主机提供数据存储,所述基准快照为所述源卷写入数据之前的快照,所述基准快照记录的为无效数据,所述存储设备包括控制器以及存储器,所述存储器用于存储指令,所述控制器用于执行所述指令,所述指令在被所述控制器执行时,使所述存储设备执行如权利要求1至5中任一项所述的方法。12.—种数据读取系统,其特征在于,包括主机以及如权利要求11所述的存储设备,所述主机和所述存储设备之间通过通信网络进行通信;所述主机用于接收所述存储设备发送的有效数据的位图,并根据所述有效数据的位图读取目标快照中的有效数据。
【文档编号】G06F12/06GK105938457SQ201610200260
【公开日】2016年9月14日
【申请日】2016年3月31日
【发明人】梁峰, 周江鲤, 曾强, 胡伟, 朱磊, 龙红梅
【申请人】华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1