保证数据一致性的快照方法和存储设备的制作方法
【专利摘要】本发明实施例提供一种保证数据一致性的快照方法和存储设备,存储设备的存储控制器在对快照请求中包括的待进行快照的数据进行快照时,先将主机的缓存中的存储的待进行快照的数据先写入存储设备的高速缓存器,然后,分别对高速缓存器中的待进行快照的数据和存储设备的存储空间中的待进行快照的数据分别进行快照,最后,将高速缓存器中的待进行快照的数据的快照数据和存储空间中的待进行快照的数据的快照数据进行合并,得到该快照请求中的待进行快照的数据的快照数据。由于,将主机的缓存中的待进行快照的数据写入高速缓存器的速度比写入存储空间的快很多,从而缩短了快照形成时间,提高了应用系统的性能。
【专利说明】保证数据一致性的快照方法和存储设备
【技术领域】
[0001]本发明实施例涉及通信技术,尤其涉及一种保证数据一致性的快照方法和存储设备。
【背景技术】
[0002]快照(Snapshot)是关于指定数据集合的一个完全可用拷贝,该拷贝包括相应数据在某个时间点(拷贝开始的时间点)的映像。当前实现快照主要有两种方式:一种是写时复制(Copy On Write,简称COW),另一种是输入输出重定向(Input/Output Redirect,简称I/O Redirect)。当存储设备发生应用故障或者文件损坏时,使用快照技术可以进行数据恢复,将数据恢复到快照产生时间点的状态。
[0003]在恢复数据时要考虑数据一致性问题,数据一致性是指关联数据之间的逻辑关系是否正确和完整。问题可以理解为应用程序自己认为的数据状态与最终写入到硬盘中的数据状态是否一致。引起数据一致性问题的一个主要原因是位于数据I/O路径上的各种Cache或Buffer。Cache在提高系统处理性能的同时,也可能会“滞留”数据,当系统发生故障时,仍有部分数据“滞留”在Cache中,真正写到硬盘中的数据就会少于应用程序实际写出的数据,造成数据的不一致。当系统恢复时,直接从硬盘中读出的数据可能存在逻辑错误,导致应用无法启动。为了保证数据一致性,现有技术中,当存储设备上的存储控制器接收到客户端发送的快照请求时,存储控制器通知主机上的快照代理暂停需要进行快照的数据对应的应用的I/O操作,快照代理接收到通知后,暂停应用的I/O操作,并将主机的Cache中的数据写入(flush)到存储设备的硬盘,然后,快照代理指示存储控制器可以创建快照,存储控制器对存储设备的硬盘上的数据创建快照,并在快照创建成功后通知快照代理快照创建完毕,快照代理通知应用可以正常运行。
[0004]上述方法中,在创建快照时,通过暂停1操作,将主机的Cache中的数据写入存储设备的硬盘然后才进行快照,从而保证了数据的一致性。但是,现有技术中,在进行快照时,由于暂停了主机上的应用的I/o操作,会对主机上的应用的性能有一定影响,而将主机的Cache中的数据写入存储设备的硬盘的速度慢,使得快照形成时间过长,对应用系统的性能影响过大。
【发明内容】
[0005]本发明实施例提供一种保证数据一致性的快照方法和存储设备,以解决现有技术中在保证数据一致时快照形成时间过长的问题,降低了快照对应用系统的性能影响。
[0006]本发明第一方面提供一种保证数据一致性的快照方法,包括:
[0007]存储设备的存储控制器接收客户端发送的快照请求,所述快照请求中包括待进行快照的数据的地址信息;
[0008]所述存储控制器根据所述快照请求中的待进行快照的数据的地址信息对存储设备的存储空间中的待进行快照的数据进行快照,得到所述存储空间中的待进行快照的数据的快照数据;
[0009]所述存储控制器接收快照代理发送的脏数据的地址信息,根据所述脏数据的地址信息将所述脏数据写入所述存储设备的高速缓存器,并对所述脏数据进行快照,得到所述脏数据的快照数据,其中,所述高速缓存器的访问速率高于所述存储空间的访问速率,所述脏数据为主机的缓存中存储的待进行快照的数据;
[0010]所述存储控制器将所述存储空间中的待进行快照的数据的快照数据与所述脏数据的快照数据进行合并得到所述快照请求中的待进行快照的数据的快照数据。
[0011]结合本发明第一方面,在本发明第一方面的第一种可能的实现方式中,所述存储空间中的待进行快照的数据的快照时间与所述脏数据的快照时间相同。
[0012]结合本发明第一方面以及本发明第一方面的第一种可能的实现方式,在本发明第一方面的第二种可能的实现方式中,所述存储空间中的待进行快照的数据的快照数据包括所述存储空间中的待进行快照的数据和所述存储空间中待进行快照的数据的快照视图,所述脏数据的快照数据包括所述脏数据和所述脏数据的快照视图;
[0013]所述存储控制器将所述存储空间中的待进行快照的数据的快照数据与所述脏数据的快照数据进行合并得到所述待进行快照的数据的快照数据,包括:
[0014]所述存储控制器将所述存储空间中的待进行快照的数据与所述脏数据进行合并,并将所述存储空间中的待进行快照的数据的快照视图与所述脏数据的快照视图进行合并,得到所述快照请求中包括的待进行快照的数据的快照数据。
[0015]结合本发明第一方面以及本发明第一方面的第一种可能的实现方式,在本发明第一方面的第三种可能的实现方式中,在所述存储控制器得到所述存储空间中的待进行快照的数据的快照数据和所述脏数据的快照数据之后,还包括:
[0016]所述存储控制器向所述快照代理发送恢复请求,所述恢复通知用于通知所述快照代理恢复所述快照请求中的待进行快照的数据对应的应用的输入/输出I/o操作。
[0017]结合本发明第一方面,在本发明第一方面的第四种可能的实现方式中,所述高速缓存器为高速的快速外围部件互连标准PCIe卡。
[0018]本发明第二方面提供一种存储设备,包括存储控制器、存储空间和高速缓存器,其中,所述存储控制器包括:
[0019]接收模块,用于接收客户端发送的快照请求,所述快照请求中包括待进行快照的数据的地址信息;
[0020]快照模块,用于根据所述快照请求中的待进行快照的数据的地址信息对存储设备的存储空间中的待进行快照的数据进行快照,得到所述存储空间中的待进行快照的数据的快照数据;
[0021]所述接收模块,还用于接收快照代理发送的所述脏数据的地址信息,所述脏数据为主机的缓存中存储的待进行快照的数据;
[0022]所述快照模块,还用于根据所述脏数据的地址信息将所述脏数据写入所述存储设备的高速缓存器,并对所述脏数据进行快照,得到所述脏数据的快照数据,其中,所述高速缓存器的访问速率高于所述存储空间的访问速率;
[0023]合并模块,用于将所述存储空间中的待进行快照的数据的快照数据与所述脏数据的快照数据进行合并得到所述快照请求中的待进行快照的数据的快照数据。
[0024]结合本发明第二方面,在本发明第二方面的第一种可能的实现方式中,所述存储空间中的待进行快照的数据的快照时间与所述脏数据的快照时间相同。
[0025]结合本发明第二方面以及本发明第二方面的第一种可能的实现方式,在本发明第二方面的第二种可能的实现方式中,所述存储空间中的待进行快照的数据的快照数据包括所述存储空间中的待进行快照的数据和所述存储空间中待进行快照的数据的快照视图,所述脏数据的快照数据包括所述脏数据和所述脏数据的快照视图;
[0026]所述合并模块具体用于:将所述存储空间中的待进行快照的数据与所述脏数据进行合并,并将所述存储空间中的待进行快照的数据的快照视图与所述脏数据的快照视图进行合并,得到所述快照请求中包括的待进行快照的数据的快照数据。
[0027]结合本发明第二方面以及本发明第二方面的第一种可能的实现方式,在本发明第二方面的第三种可能的实现方式中,所述存储设备还包括:
[0028]发送模块,用于在所述快照模块得到所述存储空间中的待进行快照的数据的快照数据和所述脏数据的快照数据之后,向所述快照代理发送恢复请求,所述恢复通知用于通知所述快照代理恢复所述快照请求中的待进行快照的数据对应的应用的输入/输出I/o操作。
[0029]结合本发明第二方面,在本发明第二方面的第四种可能的实现方式中,所述高速缓存器为高速的快速外围部件互连标准PCIe卡。
[0030]本发明第三方面提供一种存储设备,包含存储控制器、存储空间、高速缓存器和系统总线。所述存储空间和所述高速缓存器通过所述系统总线与所述存储控制器连接并完成相互间的通信。所述存储空间,用于存储源数据和所述源数据的快照数据;所述高速缓存器23,用于在快照时暂时缓存主机的缓存中的脏数据。
[0031]本发明实施例的保证数据一致性的快照方法和存储设备,存储设备的存储控制器在对快照请求中包括的待进行快照的数据进行快照时,先将主机的缓存中的存储的待进行快照的数据先写入存储设备的高速缓存器,然后,分别对高速缓存器中的待进行快照的数据和存储设备的存储空间中的待进行快照的数据分别进行快照,最后,将高速缓存器中的待进行快照的数据的快照数据和存储空间中的待进行快照的数据的快照数据进行合并,得到该快照请求中的待进行快照的数据的快照数据。由于,将主机的缓存中的待进行快照的数据写入高速缓存器的速度比写入存储空间的快很多,从而缩短了快照形成时间,提高了应用系统的性能。
【专利附图】
【附图说明】
[0032]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0033]图1为本发明实施例所适用的存储系统的结构示意图;
[0034]图2为本发明实施例一提供的保证数据一致性的快照方法的流程图;
[0035]图3为本发明实施例二提供的一种存储设备的存储控制器的结构示意图;
[0036]图4为本发明实施例四提供的存储设备的结构示意图。
【具体实施方式】
[0037]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0038]图1为本发明实施例所适用的存储系统的结构示意图,如图1所示,该存储系统包括主机和存储设备,主机中可以包括多个应用和快照代理,快照代理用于和存储设备结合进行快照,存储设备中包括存储控制器、主存储空间、快照空间和高速缓存器,存储控制器用于控制数据的存储和实现数据的快照功能,主存储空间用来存储所有源卷的当前数据,快照空间是专为快照保留的存储空间,用于存储对源卷进行快照时产生的旧数据,主存储空间和快照空间的存储介质为硬盘、磁盘等,高速缓存器的存储速度高于存储空间的存储速度,高速缓存器用于在存储控制器进行快照时暂存缓存主机的缓存中的脏数据。图1所示的只是存储系统的一种结构示意图,当然,该存储系统中还可以包括多个主机和多个存储设备,多个主机组成了应用系统。
[0039]现有技术中,当存储设备上的存储控制器接收到客户端发送的快照请求时,存储控制器通知主机上的快照代理暂停I/o操作,快照代理接收到通知后,暂停I/O操作,并将主机的缓存(Cache)中的数据写入(flush)到存储设备的主存储空间,然后,快照代理指示存储控制器可以创建快照,存储控制器对主存储空间中的数据创建快照,得到的快照数据存储到快照空间中,并在快照创建成功后通知快照代理快照创建完毕,快照代理通知应用程序可以正常运行。上述方法中,在创建快照时,通过暂停1操作,将主机的Cache中的数据写入到存储设备的主存储空间后才进行快照,从而保证了数据的一致性。但是,现有技术中,由于将主机的Cache中的数据写入存储设备的主存储空间的速度慢,使得快照形成时间过长,对应用系统的性能影响过大。
[0040]为了解决上述现有技术的问题,本发明实施例一提供一种保证数据一致性的快照方法,图2为本发明实施例一提供的保证数据一致性的快照方法的流程图,如图2所示,本实施例的方法可以包括以下步骤:
[0041]步骤101、存储设备的存储控制器接收客户端发送的快照请求,该快照请求中包括待进行快照的数据的地址信息。
[0042]在快照时通常只对一个卷中的部分数据进行快照,而不是对所有数据进行快照,另外,不同数据进行快照的时间点也可能不同,如某些数据需要在晚上12点进行快照,另一些数据需要在晚上I点进行快照,因此,快照请求中需要包括待进行快照的数据的地址信息,以指示需要对哪些数据进行快照。
[0043]待进行快照数据的地址信息具体可以为待进行快照数据的逻辑单元号(LogicalUnit Number,简称LUN),LUN表示存储设备的存储空间的地址,存储空间被划分为多个LUN,主机上的每个应用程序的数据存储在存储空间上对应的LUN内,存储设备根据LUN区分不同数据的存储位置。
[0044]步骤102、存储控制器根据该快照请求中的待进行快照的数据的地址信息对存储设备的存储空间中的待进行快照的数据进行快照,得到该存储空间中的待进行快照的数据的快照数据。
[0045]存储控制器可以根据现有的任意一种快照技术对存储空间中的待进行快照的数据进行快照,目前常用的快照技术主要有两种技术:一种是COW技术,另一种是I/O重定向技术。以COW为例,存储控制器根据该快照请求中的待进行快照的数据的地址信息,将主存储空间中与该地址信息对应的数据拷贝到快照空间中,以下将主存储空间中与该地址信息对应的数据称为旧数据,然后,存储控制器生成该旧数据的快照视图,该快照视图具体包括待进行快照的数据的地址信息、该旧数据在快照空间中的存储地址以及快照时间之间的对应关系,该快照时间为快照请求中包含的快照时间。
[0046]步骤103、存储控制器接收快照代理发送的该脏数据的地址信息,根据该脏数据的地址信息将该脏数据写入存储设备的高速缓存器,并对该脏数据进行快照,得到该脏数据的快照数据,其中,该高速缓存器的访问速率高于该存储空间的访问速率,脏数据为主机的缓存中存储的待进行快照的数据。
[0047]当客户端需要进行快照时,客户端会同时向主机和存储设备发送快照请求,主机上的快照代理根据快照请求中包含的待进行快照的数据的地址信息确定待进行快照的数据对应的应用,然后暂停该应用的I/O操作。当待进行快照的数据地址信息为LUN时,快照代理根据LUN确定待进行快照的数据对应的应用,在存储设备的存储空间中为每个应用分配对应的LUN,各应用的所有数据都存储在自己对应的LUN中,因此,快照代理根据待进行快照的数据的LUN能够确定待进行快照的数据对应的应用。
[0048]现有的写入机制中,主机上的应用程序有数据要写的时候,并不是直接将数据写入存储设备的存储空间中,而是先将数据写入主机的缓存中,然后,存储设备定期将主机的缓存中的数据写入存储设备的存储空间。这种情况下,由于有些数据暂时保存在主机的缓存中,因此,应用认为的数据状态与存储设备的存储空间中的数据并不一致。在进行快照时为了保证数据的一致性,快照代理先停止待进行快照的数据对应的应用的I/o操作,然后,确定主机的缓存中需要写入高速缓存器的脏数据,该脏数据为该缓存中存储的待进行快照的数据,本实施例的方法中,并不是对主机的缓存中的所有数据进行快照,而是只对缓存中存储的待进行快照的数据进行快照。另外,该快照请求中包括所有待进行快照的数据并不是都存储在主机的缓存中,即快照请求中可能有一些待进行快照的数据已经被写入存储设备的存储空间了,不在主机的缓存中,因此,快照代理先要根据快照请求中包括的待进行快照的数据的地址信息,判断快照请求中包含的待进行快照的数据是否包含在主机的缓存中,若包含在主机的缓存中,则将包含在主机中的待进行快照的数据确定为脏数据。
[0049]快照代理在确定写入高速缓存器的脏数据后,将该脏数据的地址信息发送给存储控制器,存储控制器根据该脏数据的地址信息将该脏数据写入该高速缓存器。该高速缓存器可以为存储设备上新增加的存储器,或者,为存储设备上原有的存储器,若存储设备上没有可用的高速缓存器,那么需要增加一个高速缓存器,若存储设备上有可用的高速缓存器,那么可以直接使用。本实施例中,并不对高速缓存器进行限制,只要该高速缓存器的访问速率比存储空间的访问速率高就可以,具体地,该高速缓存器可以为一块高速的快速外围部件互连标准卡(high speed PCIe)。
[0050]本实施例中,先将主机的缓存中的脏数据写入高速缓存器,然后对写入高速缓存器的脏数据进行快照,得到脏数据的快照数据。由于高速缓存器的访问速率高于存储空间的访问速率,因此,存储设备将该脏数据写入高速缓存器所用的时间小于将该脏数据直接写入存储设备的存储空间的时间,因此,缩短了快照形成时间。另外,需要说明的是,本实施例中,步骤102和103在执行时并没有先后顺序,而且也可以并行进行,即对磁盘中的待进行快照的数据进行快照与对高速缓存器中的脏数据进行快照可以同时进行,这样,更进一步缩短了快照形成时间。
[0051]步骤104、存储控制器将该存储空间中的待进行快照的数据的快照数据与该脏数据的快照数据进行合并得到该快照请求中的待进行快照的数据的快照数据。
[0052]本实施例中,在对存储空间中的待进行快照的数据和高速缓存器中的脏数据快照成功之后,存储控制器还会通知快照代理恢复该快照请求中的待进行快照的数据对应的应用的I/o操作。之后,存储控制器将该存储空间中的待进行快照的数据的快照数据与该脏数据的快照数据进行合并得到该快照请求中的待进行快照的数据的快照数据。该存储空间中的待进行快照的数据的快照数据包括该存储空间中的待进行快照的数据和该存储空间中待进行快照的数据的快照视图,该脏数据的快照数据包括该脏数据和该脏数据的快照视图。因此,存储控制器在进行快照数据的合并时,要分别将数据和快照视图进行合并,即存储设备将该存储空间中的待进行快照的数据与该脏数据进行合并,并将该存储空间中的待进行快照的数据的快照视图与该脏数据的快照视图进行合并,得到该快照请求中包括的待进行快照的数据的快照数据。
[0053]具体地,在将该存储空间中的待进行快照的数据的快照视图与该脏数据进行合并时,存储控制器判断该存储空间中的待进行快照的数据与该脏数据中,相同地址中存储的数据是否相同,如果相同,说明该地址对应的存储空间中的数据与缓存中的数据一致,不需要进行数据合并。如果不相同,该地址对应的存储空间中的数据与缓存中的数据不一致,该地址对应的存储空间中的数据被修改了,需要进行数据合并,即将该地址对应的高速缓存器中的数据写入存储空间中该地址对应的存储空间中,在将数据合并后,也需要相应的合并快照视图。
[0054]通过将该存储空间中的待进行快照的数据的快照数据与该脏数据的快照数据进行合并,得到该快照请求中的待进行快照的数据的快照数据。合并得到的该快照请求中的待进行快照的数据的快照数据保存在存储设备的快照空间中。需要说明的是,本实施例中,存储控制器在进行快照合并时,通过快照时间保证合并的快照数据为同一份快照。即存储控制器在生成存储空间中待进行快照的数据的快照数据时要记录快照时间,存储控制器在生成脏数据的快照数据时也需要记录快照时间,本实施例中,该存储空间中的待进行快照的数据的快照时间与该脏数据的快照时间相同,均为快照请求中携带的快照时间,这样,存储设备在进行快照合并时,将快照时间相同的快照数据进行合并。
[0055]本实施例的方法,存储设备的存储控制器在对快照请求中包括的待进行快照的数据进行快照时,先将主机的缓存中的存储的待进行快照的数据先写入存储设备的高速缓存器,然后,分别对高速缓存器中的待进行快照的数据和存储设备的存储空间中的待进行快照的数据分别进行快照,最后,将高速缓存器中的待进行快照的数据的快照数据和存储空间中的待进行快照的数据的快照数据进行合并,得到该快照请求中的待进行快照的数据的快照数据。由于,将主机的缓存中的待进行快照的数据写入高速缓存器的速度比写入存储空间的快很多,从而缩短了快照形成时间,提高了应用系统的性能。
[0056]图3为本发明实施例二提供的一种存储设备的存储控制器的结构示意图,如图3所示,本实施例提供的存储控制器包括:接收模块11、快照模块12和合并模块13。
[0057]其中,接收模块11,用于接收客户端发送的快照请求,所述快照请求中包括待进行快照的数据的地址信息;
[0058]快照模块12,用于根据所述快照请求中的待进行快照的数据的地址信息对存储设备的存储空间中的待进行快照的数据进行快照,得到所述存储空间中的待进行快照的数据的快照数据;
[0059]所述接收模块11,还用于接收快照代理发送的所述脏数据的地址信息,所述脏数据为主机的缓存中存储的待进行快照的数据;
[0060]所述快照模块12,还用于根据所述脏数据的地址信息将所述脏数据写入所述存储设备的高速缓存器,并对所述脏数据进行快照,得到所述脏数据的快照数据,其中,所述高速缓存器的访问速率高于所述存储空间的访问速率;
[0061]合并模块13,用于将所述存储空间中的待进行快照的数据的快照数据与所述脏数据的快照数据进行合并得到所述快照请求中的待进行快照的数据的快照数据。
[0062]其中,所述存储空间中的待进行快照的数据的快照时间与所述脏数据的快照时间相同。
[0063]可选地,所述高速缓存器为高速的快速外围部件互连标准PCIe卡。
[0064]本实施例中,所述存储空间中的待进行快照的数据的快照数据包括所述存储空间中的待进行快照的数据和所述存储空间中待进行快照的数据的快照视图,所述脏数据的快照数据包括所述脏数据和所述脏数据的快照视图。则所述合并模块13具体用于:将所述存储空间中的待进行快照的数据与所述脏数据进行合并,并将所述存储空间中的待进行快照的数据的快照视图与所述脏数据的快照视图进行合并,得到所述快照请求中包括的待进行快照的数据的快照数据。所述存储控制器还包括:
[0065]可选地,所述存储控制器还包括:发送模块,用于在所述快照模块12得到所述存储空间中的待进行快照的数据的快照数据和所述脏数据的快照数据之后,向所述快照代理发送恢复请求,所述恢复通知用于通知所述快照代理恢复所述快照请求中的待进行快照的数据对应的应用的输入/输出I/O操作。
[0066]本实施例提供的存储设备的存储控制器,可用于执行实施例一提供的技术方案,其实现原理和技术效果类似,这里不再赘述。
[0067]本发明实施例三提供了一种存储设备,其结构示意图如附图1中所示,所述存储设备包括存储控制器、主存储空间、快照空间和高速缓存器。所述主存储空间用于存储源数据,所述快照空间用于存储所述源数据的快照数据,所述高速缓存器用于在快照时暂时缓存主机的缓存中的脏数据;所述存储控制器的结构在附图3以及相应的文字描述部份已经进行了详细的描述,在此不再赘述。所述存储控制器可用于执行附图2以及相应的文字描述的方法流程,在此不再另行说明。
[0068]图4为本发明实施例四提供的存储设备的结构示意图,如图4所示,本实施例提供的存储设备200包括:存储控制器21、存储空间22、高速缓存器23和系统总线24,所述存储空间22和所述高速缓存器23通过所述系统总线24与所述存储控制器21连接并完成相互间的通信。所述存储空间22,存储源数据和所述源数据的快照数据;所述高速缓存器23,用于在快照时暂时缓存主机的缓存中的脏数据,存储控制器21用于执行如下所述的方法:
[0069]接收客户端发送的快照请求,所述快照请求中包括待进行快照的数据的地址信息;
[0070]根据所述快照请求中的待进行快照的数据的地址信息对所述存储设备的存储空间22中的待进行快照的数据进行快照,得到所述存储空间22中的待进行快照的数据的快照数据;
[0071]接收快照代理发送的所述脏数据的地址信息,根据所述脏数据的地址信息将所述脏数据写入所述存储设备的高速缓存器23,并对所述脏数据进行快照,得到所述脏数据的快照数据,其中,所述高速缓存器23的访问速率高于所述存储空间22的访问速率,所述脏数据为主机的缓存中存储的待进行快照的数据;
[0072]将所述存储空间22中的待进行快照的数据的快照数据与所述脏数据的快照数据进行合并得到所述快照请求中的待进行快照的数据的快照数据。
[0073]其中,所述存储空间22中的待进行快照的数据的快照时间与所述脏数据的快照时间相同。
[0074]本实施例中,所述存储空间22中的待进行快照的数据的快照数据包括所述存储空间22中的待进行快照的数据和所述存储空间22中待进行快照的数据的快照视图,所述脏数据的快照数据包括所述脏数据和所述脏数据的快照视图。所述存储控制器21具体用于:将所述存储空间22中的待进行快照的数据与所述脏数据进行合并,并将所述存储空间22中的待进行快照的数据的快照视图与所述脏数据的快照视图进行合并,得到所述快照请求中包括的待进行快照的数据的快照数据。
[0075]可选地,在所述存储控制器21得到所述存储空间中的待进行快照的数据的快照数据和所述脏数据的快照数据之后,所述存储控制器21还用于:向所述快照代理发送恢复请求,所述恢复通知用于通知所述快照代理恢复所述快照请求中的待进行快照的数据对应的应用的输入/输出I/O操作。
[0076]可选地,所述高速缓存器为高速的快速外围部件互连标准PCIe卡。
[0077]本实施例提供的存储设备,可用于执行实施例一提供的技术方案,其实现原理和技术效果类似,这里不再赘述。
[0078]本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
[0079]最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
【权利要求】
1.一种保证数据一致性的快照方法,其特征在于,包括: 存储设备的存储控制器接收客户端发送的快照请求,所述快照请求中包括待进行快照的数据的地址信息; 所述存储控制器根据所述快照请求中的待进行快照的数据的地址信息对所述存储设备的存储空间中的待进行快照的数据进行快照,得到所述存储空间中的待进行快照的数据的快照数据; 所述存储控制器接收快照代理发送的脏数据的地址信息,根据所述脏数据的地址信息将所述脏数据写入所述存储设备的高速缓存器,并对所述脏数据进行快照,得到所述脏数据的快照数据,其中,所述高速缓存器的访问速率高于所述存储空间的访问速率,所述脏数据为主机的缓存中存储的待进行快照的数据; 所述存储控制器将所述存储空间中的待进行快照的数据的快照数据与所述脏数据的快照数据进行合并得到所述快照请求中的待进行快照的数据的快照数据。
2.根据权利要求1所述的方法,其特征在于,所述存储空间中的待进行快照的数据的快照时间与所述脏数据的快照时间相同。
3.根据权利要求1或2所述的方法,其特征在于,所述存储空间中的待进行快照的数据的快照数据包括所述存储空间中的待进行快照的数据和所述存储空间中待进行快照的数据的快照视图,所述脏数据的快照数据包括所述脏数据和所述脏数据的快照视图; 所述存储控制器将所述存储空间中的待进行快照的数据的快照数据与所述脏数据的快照数据进行合并得到所述待进行快照的数据的快照数据,包括: 所述存储控制器将所述存储空间中的待进行快照的数据与所述脏数据进行合并,并将所述存储空间中的待进行快照的数据的快照视图与所述脏数据的快照视图进行合并,得到所述快照请求中包括的待进行快照的数据的快照数据。
4.根据权利要求1或2所述的方法,其特征在于,在所述存储控制器得到所述存储空间中的待进行快照的数据的快照数据和所述脏数据的快照数据之后,所述方法还包括: 所述存储控制器向所述快照代理发送恢复请求,所述恢复通知用于通知所述快照代理恢复所述快照请求中的待进行快照的数据对应的应用的输入/输出I/O操作。
5.根据权利要求1所述的方法,其特征在于,所述高速缓存器为高速的快速外围部件互连标准PCIe卡。
6.—种存储设备,包括存储控制器、存储空间和高速缓存器,其特征在于,所述存储控制器包括: 接收模块,用于接收客户端发送的快照请求,所述快照请求中包括待进行快照的数据的地址信息; 快照模块,用于根据所述快照请求中的待进行快照的数据的地址信息对存储设备的存储空间中的待进行快照的数据进行快照,得到所述存储空间中的待进行快照的数据的快照数据; 所述接收模块,还用于接收快照代理发送的所述脏数据的地址信息,所述脏数据为主机的缓存中存储的待进行快照的数据; 所述快照模块,还用于根据所述脏数据的地址信息将所述脏数据写入所述存储设备的高速缓存器,并对所述脏数据进行快照,得到所述脏数据的快照数据,其中,所述高速缓存器的访问速率高于所述存储空间的访问速率; 合并模块,用于将所述存储空间中的待进行快照的数据的快照数据与所述脏数据的快照数据进行合并得到所述快照请求中的待进行快照的数据的快照数据。
7.根据权利要求6所述的存储设备,其特征在于,所述存储空间中的待进行快照的数据的快照时间与所述脏数据的快照时间相同。
8.根据权利要求6或7所述的存储设备,其特征在于,所述存储空间中的待进行快照的数据的快照数据包括所述存储空间中的待进行快照的数据和所述存储空间中待进行快照的数据的快照视图,所述脏数据的快照数据包括所述脏数据和所述脏数据的快照视图; 所述合并模块具体用于:将所述存储空间中的待进行快照的数据与所述脏数据进行合并,并将所述存储空间中的待进行快照的数据的快照视图与所述脏数据的快照视图进行合并,得到所述快照请求中包括的待进行快照的数据的快照数据。
9.根据权利要求6或7所述的存储设备,其特征在于,所述存储控制器还包括: 发送模块,用于在所述快照模块得到所述存储空间中的待进行快照的数据的快照数据和所述脏数据的快照数据之后,向所述快照代理发送恢复请求,所述恢复通知用于通知所述快照代理恢复所述快照请求中的待进行快照的数据对应的应用的输入/输出I/O操作。
10.根据权利要求6所述的存储设备,其特征在于,所述高速缓存器为高速的快速外围部件互连标准PCIe卡。
【文档编号】G06F17/30GK104484354SQ201410712111
【公开日】2015年4月1日 申请日期:2014年11月28日 优先权日:2014年11月28日
【发明者】李宇, 曾敬勇 申请人:华为技术有限公司