本发明涉及存储技术领域,特别是涉及一种基于全闪存储的数据重删方法、装置和系统。
背景技术:
在存储领域,海量数据查询和存储需要占用超大的资源,严重影响了数据存储的性能。在这些数据中,存在大量重复数据,为了降低存储数据占用的资源,提高数据存储性能,这种重复数据完全可以只保存一份在存储介质中,在不影响数据一致性的前提下,减少盘上数据存放量。
在存储系统中,会存在多个节点对相同的主机io数据处理的情况,每个节点在存储主机io数据时所使用的逻辑地址不同。现有技术中,为了避免数据的重复存储,只保存一份数据在存储介质中,保存的该份数据有其对应的逻辑地址和物理地址。但是对于不同的节点而言,其访问该数据的逻辑地址不同,按照现有的存储方式会导致部分节点无法正常访问io数据。
可见,如何在保证数据正常访问的前提下,降低存储数据占用的资源,是本领域技术人员需要解决的问题。
技术实现要素:
本发明实施例的目的是提供一种基于全闪存储的数据重删方法、装置和系统,可以在保证数据正常访问的前提下,降低存储数据占用的资源。
为解决上述技术问题,本发明实施例提供一种基于全闪存储的数据重删方法,适用于节点,所述方法包括:
接收主机下发的io数据,并对所述io数据设置指纹值;
判断hp元数据库中是否存在与所述指纹值相同的数据;其中,所述hp元数据库中记录有各节点所存储的io数据的指纹值和物理地址的对应关系;
若是,则保存所述io数据相对应的lp元数据;其中,所述lp元数据记录了所述io数据的逻辑地址和物理地址的对应关系;
若否,则将所述io数据的指纹值和物理地址的对应关系存储至所述hp元数据库,并保存所述io数据以及lp元数据,以供元数据处理器对各节点存储的io数据进行查重处理,若存在重复的io数据,元数据处理器则保留最新写入的目标io数据,并向节点下发物理地址修改指令,以便于节点根据所述物理地址修改指令修改相应lp元数据的物理地址。
可选地,所述根据所述物理地址修改指令修改相应lp元数据的物理地址包括:
接收元数据处理器下发的物理地址修改指令;其中,所述物理地址修改指令中携带有所述目标io数据的指纹值以及最新写入的目标io数据的物理地址;
根据所述目标io数据的指纹值,查询相对应的目标lp元数据;
将所述目标lp元数据中记录的物理地址修改为所述最新写入的目标io数据的物理地址。
可选地,在所述将所述目标lp元数据中记录的物理地址修改为所述最新写入的目标io数据的物理地址之后还包括:
接收主机下发的数据获取指令;其中,所述数据获取指令中携带有待查询逻辑地址;
查询保存的lp元数据,确定出与所述待查询逻辑地址相对应的待查询物理地址;
从所述待查询物理地址对应的存储介质中读取目标数据,并将所述目标数据反馈给所述主机。
可选地,所述对所述io数据设置指纹值包括:
计算所述io数据的哈希值作为指纹值。本发明实施例还提供了一种基于全闪存储的数据重删装置,适用于节点,所述装置包括设置单元、判断单元、第一保存单元和第二保存单元;
所述设置单元,用于接收主机下发的io数据,并对所述io数据设置指纹值;
所述判断单元,用于判断hp元数据库中是否存在与所述指纹值相同的数据;若是,则触发所述第一保存单元;若否,则触发所述第二保存单元;其中,所述hp元数据库中记录有各节点所存储的io数据的指纹值和物理地址的对应关系;
所述第一保存单元,用于保存所述io数据相对应的lp元数据;其中,所述lp元数据记录了所述io数据的逻辑地址和物理地址的对应关系;
所述第二保存单元,用于将所述io数据的指纹值和物理地址的对应关系存储至所述hp元数据库,并保存所述io数据以及lp元数据,以供元数据处理器对各节点存储的io数据进行查重处理,若存在重复的io数据,元数据处理器则保留最新写入的目标io数据,并向节点下发物理地址修改指令,以便于节点根据所述物理地址修改指令修改相应lp元数据的物理地址。
可选地,还包括接收单元、查询单元和修改单元;
所述接收单元,用于接收元数据处理器下发的物理地址修改指令;其中,所述物理地址修改指令中携带有所述目标io数据的指纹值以及最新写入的目标io数据的物理地址;
所述查询单元,用于根据所述目标io数据的指纹值,查询相对应的目标lp元数据;
所述修改单元,用于将所述目标lp元数据中记录的物理地址修改为所述最新写入的目标io数据的物理地址。
可选地,还包括确定单元和读取单元;
所述接收单元还用于接收主机下发的数据获取指令;其中,所述数据获取指令中携带有待查询逻辑地址;
所述确定单元,用于查询保存的lp元数据,确定出与所述待查询逻辑地址相对应的待查询物理地址;
所述读取单元,用于从所述待查询物理地址对应的存储介质中读取目标数据,并将所述目标数据反馈给所述主机。
可选地,所述设置单元具体用于计算所述io数据的哈希值作为指纹值。
本发明实施例还提供了一种基于全闪存储的数据重删方法,适用于元数据处理器,所述方法包括:
判断是否存在指纹值相同并且物理地址不相同的目标io数据;
若是,则依据各目标io数据的写入时间,保留最新写入的目标io数据;并向接收所述目标io数据的节点下发物理地址修改指令;其中,所述物理地址修改指令中携带有所述目标io数据的指纹值以及最新写入的目标io数据的物理地址。
本发明实施例还提供了一种基于全闪存储的数据重删装置,适用于元数据处理器,所述装置包括判断单元和调整单元;
所述判断单元,用于判断是否存在指纹值相同并且物理地址不相同的目标io数据;若是,则触发所述调整单元;
所述调整单元,用于依据各目标io数据的写入时间,保留最新写入的目标io数据;并向接收所述目标io数据的节点下发物理地址修改指令;其中,所述物理地址修改指令中携带有所述目标io数据的指纹值以及最新写入的目标io数据的物理地址。
本发明实施例还提供了一种基于全闪存储的数据重删系统,包括至少两个节点以及元数据处理器;
各所述节点,分别用于接收主机下发的io数据,并计算所述io数据的指纹值;判断hp元数据库中是否存在与所述指纹值相同的数据;其中,所述hp元数据库中记录有各节点所存储的io数据的指纹值和物理地址的对应关系;若是,则保存所述io数据相对应的lp元数据;其中,所述lp元数据记录了所述io数据的逻辑地址和物理地址的对应关系;若否,则将所述io数据的指纹值和物理地址的对应关系存储至所述hp元数据库,并保存所述io数据以及lp元数据,以供元数据处理器对各节点存储的io数据进行查重处理,若存在重复的io数据,元数据处理器则保留最新写入的目标io数据,并向节点下发物理地址修改指令,以便于节点根据所述物理地址修改指令修改相应lp元数据的物理地址;
所述元数据处理器,用于判断是否存在指纹值相同并且物理地址不相同的目标io数据;若是,则依据各目标io数据的写入时间,保留最新写入的目标io数据;向接收所述目标io数据的节点下发物理地址修改指令;其中,所述物理地址修改指令中携带有所述目标io数据的指纹值以及最新写入的目标io数据的物理地址。
由上述技术方案可以看出,接收主机下发的io数据,并对io数据设置指纹值;指纹值可以看作io数据的唯一标识。不同节点对相同的io数据进行处理时,io数据对应的存储位置可能不同,但是相同的io数据的指纹值是相同的。hp元数据库中记录有各节点所存储的io数据的指纹值和物理地址的对应关系,为了避免io数据的重复存储,可以判断hp元数据库中是否存在与当前的指纹值相同的数据。当hp元数据库中存在与当前的指纹值相同的数据时,则说明节点当前处理的io数据已经被存储了,此时只保存io数据相对应的lp元数据即可;其中,lp元数据记录了该io数据的逻辑地址和物理地址的对应关系。当hp元数据库中不存在与当前的指纹值相同的数据时,则说明节点当前处理的io数据未被存储,此时可以将该io数据的指纹值和物理地址的对应关系存储至hp元数据库,并保存所述io数据以及lp元数据,以供元数据处理器对各节点存储的io数据进行查重处理。通过构建节点共用的hp元数据库,可以便于节点及时获知是否存在重复的io数据,避免了相同数据的重复存储。并且通过记录io数据相对应的lp元数据,可以保证每个节点根据逻辑地址获取到相应的io数据。该技术方案在保证数据正常访问的前提下,降低了存储数据占用的资源。
附图说明
为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种基于全闪存储的数据重删方法的流程图;
图2为本发明实施例提供的一种基于全闪存储的数据重删方法的信令流程图;
图3为本发明实施例提供的一种适用于节点的基于全闪存储的数据重删装置的结构示意图;
图4为本发明实施例提供的一种适用于元数据处理器的基于全闪存储的数据重删装置的结构示意图;
图5为本发明实施例提供的一种基于全闪存储的数据重删系统的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。
接下来,详细介绍本发明实施例所提供的一种基于全闪存储的数据重删方法。图1为本发明实施例提供的一种基于全闪存储的数据重删方法的流程图,适用于节点,方法包括:
s101:接收主机下发的io数据,并对io数据设置指纹值。
指纹值指的是io数据的唯一标识。在本发明实施例中,可以采用数字和节点名称组合的方式作为io数据的指纹值。每个节点有其对应的节点名称,每个节点对其接收到的各个io数据可以设置不同的数字进行区分。通过数字和节点名称组合的方式可以作为io数据的指纹值。除此之外,也可以计算io数据的哈希值作为指纹值。
s102:判断hp元数据库中是否存在与指纹值相同的数据。
在本发明实施例中,可以建立节点共用的hp元数据库,在该hp元数据库中记录有各节点所存储的io数据的指纹值和物理地址的对应关系。h代表指纹值,p代表物理地址。所有节点都可以通过查询hp元数据库,获知已经存储的io数据。
当hp元数据库中存在与指纹值相同的数据时,则说明节点当前接收到的io数据已经被存储了,为了避免io数据的重复存储,此时可以执行s103。
当hp元数据库中不存在与指纹值相同的数据时,则说明节点当前接收到的io数据未被存储,此时可以执行io数据的存储工作,即执行s104。
s103:保存io数据相对应的lp元数据。
其中,lp元数据记录了io数据的逻辑地址和物理地址的对应关系。
io数据的逻辑地址是节点自定义的地址信息,属于用户可见的地址信息,即用户可以根据逻辑地址获取io数据。
io数据的物理地址指的是io数据具体的存储位置。
当hp元数据库中存在与指纹值相同的数据时,此时可以将该指纹值相对应的物理地址作为lp元数据的物理地址。
举例说明,假设io数据的指纹值为h1,该io数据的逻辑地址为l1。在hp元数据库中存在hip1,则说明已经存储了该io数据,此时可以将p1作为lp元数据的物理地址,即该io数据对应的lp元数据为l1p1。
通过保存io数据相对应的lp元数据,可以保证用户根据自定义的逻辑地址查询到该io数据。
s104:将io数据的指纹值和物理地址的对应关系存储至hp元数据库,并保存io数据以及lp元数据,以供元数据处理器对各节点存储的io数据进行查重处理,若存在重复的io数据,元数据处理器则保留最新写入的目标io数据,并向节点下发物理地址修改指令,以便于节点根据物理地址修改指令修改相应lp元数据的物理地址。
当hp元数据库中不存在与指纹值相同的数据时,此时需要将当前接收的io数据进行存储。为了便于io数据的查重,需要将io数据的指纹值和物理地址的对应关系存储至hp元数据库。并且为了保证用户根据自定义的逻辑地址查询到该io数据,需要保存该io数据所对应的lp元数据。举例说明,假设io数据的指纹值为h1,该io数据的逻辑地址为l1。当hp元数据库中不存在指纹值为h1的数据时,需要保存该io数据,该io数据的存储位置为p1,此时该io数据对应的hp元数据为h1p1,将h1p1记录到hp元数据库中。并保存该io数据对应的元数据即l1p1。
按照上述s101至s104的步骤,每个节点可以实现对数据的查重,避免了io数据的重复存储。但是在实际应用中,可能会存在多个节点同时对相同的io数据进行存储的情况发生,节点在查询hp元数据库时并不存在与指纹值相同的数据,从而导致多个节点同时存储了io数据及其对应的hp元数据和lp元数据,造成数据的重复存储,在本发明实施例中可以通过元数据处理器对该种情况下的重复数据进行查重处理,具体实现方式可以参见图2所示的方法介绍,在此不再赘述。
由上述技术方案可以看出,接收主机下发的io数据,并对io数据设置指纹值;指纹值可以看作io数据的唯一标识。不同节点对相同的io数据进行处理时,io数据对应的存储位置可能不同,但是相同的io数据的指纹值是相同的。hp元数据库中记录有各节点所存储的io数据的指纹值和物理地址的对应关系,为了避免io数据的重复存储,可以判断hp元数据库中是否存在与当前的指纹值相同的数据。当hp元数据库中存在与当前的指纹值相同的数据时,则说明节点当前处理的io数据已经被存储了,此时只保存io数据相对应的lp元数据即可;其中,lp元数据记录了该io数据的逻辑地址和物理地址的对应关系。当hp元数据库中不存在与当前的指纹值相同的数据时,则说明节点当前处理的io数据未被存储,此时可以将该io数据的指纹值和物理地址的对应关系存储至hp元数据库,并保存所述io数据以及lp元数据,以供元数据处理器对各节点存储的io数据进行查重处理。通过构建节点共用的hp元数据库,可以便于节点及时获知是否存在重复的io数据,避免了相同数据的重复存储。并且通过记录io数据相对应的lp元数据,可以保证每个节点根据逻辑地址获取到相应的io数据。该技术方案在保证数据正常访问的前提下,降低了存储数据占用的资源。
对于多个节点同时对相同的io数据处理时,各节点在查询hp元数据库时并不存在与指纹值相同的数据,但是各节点在存储io数据以及hp元数据和lp元数据时往往存在时间上的差异,在本发明实施例中,元数据处理器可以采用覆盖写入的原则,删除重复的数据。
如图2所示为本发明实施例提供的一种基于全闪存储的数据重删方法的信令流程图,方法包括:
s201:元数据处理器判断是否存在指纹值相同并且物理地址不相同的目标io数据。
以相同的io数据为例,不同的节点存储io数据的物理地址往往不同,但是相同的io数据的指纹值相同,因此,在本发明实施例中,元数据处理器可以通过查询hp元数据库,判断是否存在指纹值相同并且物理地址不相同的io数据。为了便于和其它io数据区分,可以将指纹值相同并且物理地址不相同的io数据称作目标io数据。
当存在指纹值相同并且物理地址不相同的目标io数据时,则说明目标io数据出现了重复存储,此时需要对重复的数据执行删除操作,即执行s202。
s202:元数据处理器依据各目标io数据的写入时间,保留最新写入的目标io数据;并向接收目标io数据的节点下发物理地址修改指令。
不同节点在存储目标io数据的hp元数据时会存在一定的时间差,对于相同的io数据而言,可以将最新写入的hp元数据覆盖之前写入的hp元数据。
对于相同的io数据,不同节点存储该io数据的物理地址往往不同,当hp元数据被覆盖写入之后,由于只保留了一个物理地址存储io数据,为了保证其它节点可以根据逻辑地址查询到io数据,需要对其它节点记录的lp元数据中的物理地址进行修改。
元数据处理器可以向接收目标io数据的节点下发物理地址修改指令。
其中,物理地址修改指令中携带有目标io数据的指纹值以及最新写入的目标io数据的物理地址。
在实际应用中,元数据处理器向接收目标io数据的节点下发物理地址修改指令时,可以向所有接收到目标io数据的节点下发物理地址修改指令;也可以将所有接收到目标io数据的节点中除最新写入的hp元数据所对应的节点之外的其它节点下发物理地址修改指令。
s203:节点接收元数据处理器下发的物理地址修改指令。
s204:节点根据目标io数据的指纹值,查询相对应的目标lp元数据,并将目标lp元数据中记录的物理地址修改为最新写入的目标io数据的物理地址。
每个节点有其维护的lp元数据库,在该lp元数据库中记录有各io数据的逻辑地址和物理地址的对应关系。
节点接收到物理地址修改指令后,可以根据物理地址修改指令中携带的指纹值,获取到与该指纹值相对应的lp元数据,从而将该lp元数据中的物理地址修改为物理地址修改指令中携带的物理地址。
以双控节点为例,包括节点1和节点2,节点1和节点2同时对相同的io数据进行处理,该io数据的指纹值记为h1。节点1存储该io数据的物理地址为p1,hp元数据为h1p1;节点1为该io数据自定义的逻辑地址为l1,lp元数据为l1p1。节点2存储该io数据的物理地址为p2,hp元数据为h1p2;节点2为该io数据自定义的逻辑地址为l2,lp元数据为l2p2。假设h1p1的写入时间比h1p2的写入时间早,根据覆盖原则,先写入的h1p1被h1p2覆盖,此时io数据存储的物理地址为p2。对于节点2而言,io数据存储的物理地址未发生变化无需对节点2记录的lp元数据进行修改。对于节点1而言,其记录的lp元数据的物理地址仍为p1,为了保证节点1依据逻辑地址可以顺利获取到io数据,此时需要将节点1记录的l1p1修改为l1p2。
由上述技术方案可以看出,元数据处理器判断是否存在指纹值相同并且物理地址不相同的目标io数据。当存在指纹值相同并且物理地址不相同的目标io数据时,则说明存储有重复的io数据,此时元数据处理器可以依据各目标io数据的写入时间,保留最新写入的目标io数据;并向接收目标io数据的节点下发物理地址修改指令;物理地址修改指令中携带有目标io数据的指纹值以及最新写入的目标io数据的物理地址。节点接收到元数据处理器下发的物理地址修改指令时,根据物理地址修改指令中携带的指纹值,查询相对应的目标lp元数据;将目标lp元数据中记录的物理地址修改为最新写入的目标io数据的物理地址。元数据处理器通过依据hp元数据实现了对io数据的查重处理,避免了io数据的重复存储。该操作在不影响数据安全的同时,做到了免锁操作。并且节点通过修改lp元数据,保证了io数据的顺利读取。
当主机需要从节点读取io数据时,可以根据自定义的逻辑地址获取io数据。在实际应用中,主机可以向节点下发数据获取指令的方式获取所需的io数据。当节点接收到主机下发的携带有待查询逻辑地址的数据获取指令时,可以查询保存的lp元数据,确定出与待查询逻辑地址相对应的待查询物理地址;从待查询物理地址对应的存储介质中读取目标数据,并将目标数据反馈给主机。
在存储io数据时,针对于每个io数据设置了其对应的hp元数据和lp元数据,在后续读取io数据时,依据存储的hp元数据和lp元数据便可以快速的查询到所需的数据。
图3为本发明实施例提供的一种基于全闪存储的数据重删装置的结构示意图,适用于节点,装置包括设置单元31、判断单元32、第一保存单元33和第二保存单元34;
设置单元31,用于接收主机下发的io数据,并对io数据设置指纹值;
判断单元32,用于判断hp元数据库中是否存在与指纹值相同的数据;若是,则触发第一保存单元33;若否,则触发第二保存单元34;其中,hp元数据库中记录有各节点所存储的io数据的指纹值和物理地址的对应关系;
第一保存单元33,用于保存io数据相对应的lp元数据;其中,lp元数据记录了io数据的逻辑地址和物理地址的对应关系;
第二保存单元34,用于将io数据的指纹值和物理地址的对应关系存储至hp元数据库,并保存io数据以及lp元数据,以供元数据处理器对各节点存储的io数据进行查重处理,若存在重复的io数据,元数据处理器则保留最新写入的目标io数据,并向节点下发物理地址修改指令,以便于节点根据物理地址修改指令修改相应lp元数据的物理地址。
可选地,还包括接收单元、查询单元和修改单元;
接收单元,用于接收元数据处理器下发的物理地址修改指令;其中,物理地址修改指令中携带有目标io数据的指纹值以及最新写入的目标io数据的物理地址;
查询单元,用于根据目标io数据的指纹值,查询相对应的目标lp元数据;
修改单元,用于将目标lp元数据中记录的物理地址修改为最新写入的目标io数据的物理地址。
可选地,还包括确定单元和读取单元;
接收单元还用于接收主机下发的数据获取指令;其中,数据获取指令中携带有待查询逻辑地址;
确定单元,用于查询保存的lp元数据,确定出与待查询逻辑地址相对应的待查询物理地址;
读取单元,用于从待查询物理地址对应的存储介质中读取目标数据,并将目标数据反馈给主机。
可选地,设置单元具体用于计算io数据的哈希值作为指纹值。
图3所对应实施例中特征的说明可以参见图1和图2所对应实施例的相关说明,这里不再一一赘述。
由上述技术方案可以看出,接收主机下发的io数据,并对io数据设置指纹值;指纹值可以看作io数据的唯一标识。不同节点对相同的io数据进行处理时,io数据对应的存储位置可能不同,但是相同的io数据的指纹值是相同的。hp元数据库中记录有各节点所存储的io数据的指纹值和物理地址的对应关系,为了避免io数据的重复存储,可以判断hp元数据库中是否存在与当前的指纹值相同的数据。当hp元数据库中存在与当前的指纹值相同的数据时,则说明节点当前处理的io数据已经被存储了,此时只保存io数据相对应的lp元数据即可;其中,lp元数据记录了该io数据的逻辑地址和物理地址的对应关系。当hp元数据库中不存在与当前的指纹值相同的数据时,则说明节点当前处理的io数据未被存储,此时可以将该io数据的指纹值和物理地址的对应关系存储至hp元数据库,并保存所述io数据以及lp元数据,以供元数据处理器对各节点存储的io数据进行查重处理。通过构建节点共用的hp元数据库,可以便于节点及时获知是否存在重复的io数据,避免了相同数据的重复存储。并且通过记录io数据相对应的lp元数据,可以保证每个节点根据逻辑地址获取到相应的io数据。该技术方案在保证数据正常访问的前提下,降低了存储数据占用的资源。
图4为本发明实施例提供的一种基于全闪存储的数据重删装置的结构示意图,适用于元数据处理器,装置包括判断单元41和调整单元42;
判断单元41,用于判断是否存在指纹值相同并且物理地址不相同的目标io数据;若是,则触发调整单元42;
调整单元42,用于依据各目标io数据的写入时间,保留最新写入的目标io数据;并向接收目标io数据的节点下发物理地址修改指令;其中,物理地址修改指令中携带有目标io数据的指纹值以及最新写入的目标io数据的物理地址。
图4所对应实施例中特征的说明可以参见图2所对应实施例的相关说明,这里不再一一赘述。
由上述技术方案可以看出,元数据处理器判断是否存在指纹值相同并且物理地址不相同的目标io数据。当存在指纹值相同并且物理地址不相同的目标io数据时,则说明存储有重复的io数据,此时元数据处理器可以依据各目标io数据的写入时间,保留最新写入的目标io数据;并向接收目标io数据的节点下发物理地址修改指令;物理地址修改指令中携带有目标io数据的指纹值以及最新写入的目标io数据的物理地址。节点接收到元数据处理器下发的物理地址修改指令时,根据物理地址修改指令中携带的指纹值,查询相对应的目标lp元数据;将目标lp元数据中记录的物理地址修改为最新写入的目标io数据的物理地址。元数据处理器通过依据hp元数据实现了对io数据的查重处理,避免了io数据的重复存储。该操作在不影响数据安全的同时,做到了免锁操作。并且节点通过修改lp元数据,保证了io数据的顺利读取。
图5为本发明实施例提供的一种基于全闪存储的数据重删系统50的结构示意图,包括至少两个节点51以及元数据处理器52;
各节点51,分别用于接收主机下发的io数据,并对io数据设置指纹值;判断hp元数据库中是否存在与指纹值相同的数据;其中,hp元数据库中记录有各节点所存储的io数据的指纹值和物理地址的对应关系;若是,则保存io数据相对应的lp元数据;其中,lp元数据记录了io数据的逻辑地址和物理地址的对应关系;若否,则将io数据的指纹值和物理地址的对应关系存储至hp元数据库,并保存io数据以及lp元数据,以供元数据处理器对各节点存储的io数据进行查重处理,若存在重复的io数据,元数据处理器则保留最新写入的目标io数据,并向节点下发物理地址修改指令,以便于节点根据物理地址修改指令修改相应lp元数据的物理地址;
元数据处理器52,用于判断是否存在指纹值相同并且物理地址不相同的目标io数据;若是,则依据各目标io数据的写入时间,保留最新写入的目标io数据;向接收目标io数据的节点下发物理地址修改指令;其中,物理地址修改指令中携带有目标io数据的指纹值以及最新写入的目标io数据的物理地址。
需要说明的是,图5是以两个节点为例的示意图,本发明实施例提供的技术方案所适用的节点个数并不限于两个。
以上对本发明实施例所提供的一种基于全闪存储的数据重删方法、装置和系统进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。