CN114265551A - 存储集群中的数据处理方法、存储集群、存储节点及设备 - Google Patents

存储集群中的数据处理方法、存储集群、存储节点及设备 Download PDF

Info

Publication number
CN114265551A
CN114265551A CN202111463112.7A CN202111463112A CN114265551A CN 114265551 A CN114265551 A CN 114265551A CN 202111463112 A CN202111463112 A CN 202111463112A CN 114265551 A CN114265551 A CN 114265551A
Authority
CN
China
Prior art keywords
data
storage
node
storage node
stored
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202111463112.7A
Other languages
English (en)
Other versions
CN114265551B (zh
Inventor
李舒
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba China Co Ltd
Original Assignee
Alibaba China Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba China Co Ltd filed Critical Alibaba China Co Ltd
Priority to CN202111463112.7A priority Critical patent/CN114265551B/zh
Publication of CN114265551A publication Critical patent/CN114265551A/zh
Application granted granted Critical
Publication of CN114265551B publication Critical patent/CN114265551B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请实施例提供一种存储集群中的数据处理方法、存储集群、存储节点及设备。本申请各实施例提供的技术方案,第一阶段以低延迟消除存储节点内的重复数据;为了保证存储集群的性能,第二阶段可采用非阻塞方式执行,核验存储集群中其他存储节点中是否存储有与第一数据重复的第二数据;在核验结果为存储集群中有存储时,第一存储节点再执行针对所述第一数据的去重操作,即在实现了重复数据删除的同时,对存储集群的性能影响不大,有助于提高存储集群的计算、存储和网络等基础设施的效率。

Description

存储集群中的数据处理方法、存储集群、存储节点及设备
技术领域
本申请涉及计算机技术领域,尤其涉及一种存储集群中的数据处理方法、存储集群、存储节点及设备。
背景技术
云存储技术为用户带来了便捷的存储服务,在云存储***中用户可以根据需求购买并利用存储资源。云服务提供商(Cloud Storage Provider,CSP)通常提供虚拟化环境,以将硬件差异与云用户使用的容量解耦。同时,随着CSP向外扩展的发展趋势,为满足日益增长的存储容量和数据可靠性要求,多采用分布式存储集群作为后端部署。存储容量和带宽消耗导致成本增长,当云用户创建大量的数据要逐时间存储时,这个问题变得更加关键。如何有效降低存储成本,对于CSP的发展具有重要意义。
存储集群中存储着大量的数据,其中一定存在大量的重复内容。重复存储相同的数据不仅会消耗存储资源,还会消耗计算资源和网络资源。
发明内容
本申请各实施例提供一种重复数据删除方案,以降低存储集群中的重复数据。
在本申请的一个实施例中,提供了一种数据处理方法,该方法适用于存储集群中的第一存储节点。具体的,所述方法包括:
确定所述第一存储节点是否已存储有与第一数据重复的第二数据;
确定结果为未存储时,执行对所述第一数据的存储操作;
申请核验所述存储集群中除所述第一存储节点外的存储节点是否存储有所述第二数据;
核验结果为有存储时,执行针对所述第一数据的去重操作。
在本申请的另一个实施例中,提供了一种数据处理方法,适用于存储集群中的第二存储节点。具体的,所述方法包括:
接收所述存储集群中的第一存储节点针对第一数据发送的确定结果,其中,所述确定结果是所述第一存储节点在确定自身节点上是否存储有与第一数据重复的第二数据后发送的;
所述确定结果为未存储时,申请核验所述存储集群中除所述第一存储节点外的存储节点是否存储有所述第二数据;
核验结果为有存储时,向所述第一存储节点反馈相应的响应信息;
其中,所述响应信息用以阻止所述第一存储节点将所述第一数据存储于自身节点上的操作,或用以触发第一存储节点删除已存储于所述第一存储节点的所述第一数据。
在本申请的又一个实施例中,提供了一种存储集群。该存储集群包括多个存储节点,所述多个存储节点通过网络连接;所述多个存储节点包括第一存储节点及第二存储节点;其中,
所述第一存储节点,用于确定所述第一存储节点是否已存储有与第一数据重复的第二数据;确定结果为未存储时,执行对所述第一数据的存储操作;
所述第二存储节点,用于在所述确定结果为未存储时,核验所述存储集群上除所述第一存储节点外的存储节点是否存储有所述第二数据,并向所述第一存储节点反馈核验结果;
所述第一存储节点,还用于在所述核验结果为有存储时,执行针对所述第一数据的去重操作。
在本申请的又一实施例中,提供了一种存储节点。该存储节点包括:
网卡,用于接收待存储的第一数据,确定所述存储节点是否存储有与所述第一数据重复的第二数据;
处理器,与所述网卡电连接,用于在确定结果为未存储时,执行对所述第一数据的存储操作;
所述网卡,还用于向存储集群中的一目标节点发送针对所述第一数据的核验请求,以由所述目标节点核验所述存储集群中除所述存储节点外的节点是否存储有所述第二数据;
所述处理器,还用于在所述网卡接收到的核验结果为有存储时,执行针对所述第一数据的去重操作。
在本申请的又一实施例中,提供了一种存储节点。该存储节点包括:
网卡,用于接收存储集群中的第一存储节点针对第一数据发送的确定结果,其中,所述确定结果是所述第一存储节点在确定自身节点上是否存储有与第一数据重复的第二数据后发送的;
处理器,与所述网卡电连接,用于在所述确定结果为未存储时,申请核验所述存储集群中除所述第一存储节点外的存储节点是否存储有所述第二数据;
所述网卡,还用于在核验结果为有存储时,向所述第一存储节点反馈相应的响应信息;
其中,所述响应信息用以阻止所述第一存储节点将所述第一数据存储于自身节点上的操作,或用以触发第一存储节点删除已存储于所述第一存储节点的所述第一数据。
在本申请的又一个实施例中,提供一种电子设备。该电子设备包括处理器及存储器;其中,所述存储器用于存储一条或多条计算机指令,所述一条或多条计算机指令被所述处理器执行时能够实现上述各数据处理方法实施例中的步骤。
本申请实施例还提供了一种存储有计算机程序的计算机可读存储介质,所述计算机程序被计算机执行时能够实现上述各数据处理方法实施例中的步骤。
本申请实施例还提供了一种计算机程序产品。该计算机程序产品包括计算机程序,当所述计算机程序被计算机执行时,致使所述计算机能够实现上述各数据处理方法中的步骤。
本申请实施例提供的技术方案设计了两阶段重复数据删除技术,当有要存储的第一数据时,第一阶段,存储节点确定自身节点上是否存储有与第一数据重复的第二数据;第二阶段,确定存储集群中其他存储节点上是否存储有与第一数据重复的第二数据。第一阶段可及时地阻止一定数量的重复数据的存储;在不影响存储集群的I/O(输入/输出)性能的情况下,第二阶段可采用异步方式进行核验,第二阶段核验过程中不会影响到存储节点存储第一数据的操作,而是在第二阶段核验结果为存储集群中的其他节点存储有与第一数据重复的第二数据时,存储节点再执行针对所述第一数据的去重操作。
可见,本申请实施例提供的技术方案,第一阶段以低延迟消除存储节点内的重复数据;为了保证存储集群的性能,第二阶段可采用非阻塞方式执行,核验存储集群中其他存储节点中是否存储有与第一数据重复的第二数据;在核验结果为存储集群中有存储时,第一存储节点再执行针对所述第一数据的去重操作,即在实现了重复数据删除的同时,对存储集群的性能影响不大,有助于提高存储集群的计算、存储和网络等基础设施的效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请一实施例提供的为云用户提供虚拟机的解决方案及其后端存储支持的原理图;
图2为本申请实施例提供的一种存储集群中的数据处理方法的流程示意图;
图3为本申请一实施例提供的存储集群的架构示意图;
图4为本申请一实施例提供的全量哈希表分散在多个主节点的示意图;
图5为本申请一实施例提供的存储集群中的数据处理方法的原理性示意图;
图6为本申请一实施例提供的网卡执行重复数据删除处理的原理性示意图;
图7为本申请另一实施例提供的存储集群中的数据处理方法的原理性示意图;
图8为本申请一实施例提供的数据处理装置的结构示意图;
图9为本申请另一实施例提供的数据处理装置的结构示意图;
图10为本申请一实施例提供的电子设备的结构示意图。
具体实施方式
在介绍本申请各实施例之前,先对本文中涉及到的名词进行简单的说明。
重复数据删除:一种消除重复数据的技术。重复数据删除技术能够从已经存储的数据中找到重复的数据,不存储重复的数据,只存储新数据。
另外,这里需要补充的是:重复数据和多副本策略之间的区别。重复数据和多副本策略的区别在于:重复数据是指在同一个***中出现的两个内容相同的数据,存储的两份相同的数据是等价的,而且两份相同数据之间没有容灾功能,可以只存储一份。而多副本冗余策略是在不同的存储节点上存储同一数据的另一个或两个副本,这几个副本之间能实现数据冗余。当一个副本出错时,利用其他副本可以及时恢复。因此,重复数据删除就是及时发现:在存储相同的、可以利用索引代替而不影响容灾策略的数据,此时只需要存储一份数据即可,这就大大提高了存储空间利用率。
虚拟机:计算机***的虚拟化/仿真,虚拟机以计算机架构为基础,提供物理计算机的功能。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
在本申请的说明书、权利要求书及上述附图中描述的一些流程中,包含了按照特定顺序出现的多个操作,这些操作可以不按照其在本文中出现的顺序来执行或并行执行。操作的序号如101、102等,仅仅是用于区分各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。此外,下文所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1示出了为云用户提供虚拟机的解决方案及其后端存储支持的原理图。如图1所示,管理程序(hypervisor)被施加在由资源(计算、存储、网络)组成的数据中心基础设施之上,并交付虚拟化环境以满足用户的需求。在管理程序(hypervisor)之上,虚拟机被分别隔离为独立单元,每个虚拟机安装有自己的操作***(Guest OS)和二进制文件/库文件(Bin/lib)。
除了各虚拟机上的应用APP(如图1中各独立虚拟机上的应用1、应用2、……应用n)创建的数据外,安装的操作***和二进制文件/库文件也会消耗存储资源。位于后端的存储集群不区分存储的数据类型(如操作***、库等)。因此,不同虚拟机的数据中存在大量的重复内容。重复存储相同的数据不仅会消耗存储资源,还会消耗计算资源和网络资源。对存储的内容进行重复数据删除处理,可节省存储集群的容量和带宽的同时,还能提高数据存储效率。对于超大规模的存储集群来说,重复数据删除尤为重要。
重复数据删除的目的是:在重复数据出现时只存储一份,其他的与某一数据重复的另一数据用简化方式代替数据存储,比如采用索引来代替数据存储,具体的如采用指向已存储的数据的指针代替重复的数据存储。下面各实施例将对本申请提供的重复数据删除技术的具体实现进行清楚、完整地描述。
本申请提供的技术方案可基于图1和图3所示的***架构下实现。如图1和图3所示,一种存储集群包括多个存储节点,所述多个存储节点通过网络连接(如通过图3中所示的以太网交换机接入网络);所述多个存储节点包括第一存储节点及第二存储节点。其中,所述第一存储节点,用于确定所述第一存储节点是否已存储有与第一数据重复的第二数据;确定结果为未存储时,执行对所述第一数据的存储操作。所述第二存储节点,用于在所述确定结果为未存储时,核验所述存储集群上除所述第一存储节点外的存储节点是否存储有所述第二数据,并向所述第一存储节点反馈核验结果。所述第一存储节点,还用于在所述核验结果为有存储时,执行针对所述第一数据的去重操作。
本实施例中的第一存储节点可以是图2中存储集群中的任意一个存储节点。更具体的,第一存储节点可以是集群中除分布式主节点外的剩余存储节点中的一个,第二存储节点可以是分布式主节点中的一个主节点。
即在一可实现的***架构中,存储集群为多主节点架构,所述多个存储节点还包括多个主节点,所述第二存储节点为一个主节点。如图4所示,所述存储集群中所有存储节点上存储的数据的标识值采用全量表的方式被记录;所述全量表划分为与主节点数量适配的多个子表;所述多个子表无交集;所述多个子表分散存储在不同的主节点上;一个子表对应一个表范围。具体实施时,数据的标识值可以是采用哈希算法计算得到的哈希值。另外,存储节点中存储的数据可以是全文件粒度的数据,也可以是数据块粒度的数据,等等,本实施例对此不做限定。本实施例中的分布式主节点是主节点的同时,也是一个存储节点,其上也具有存储节点的读写功能。
相应的,本实施例中所述第二存储节点在核验所述存储集群上除所述第一存储节点外的存储节点是否存储有所述第二数据时,具体用于:
获取所述第一数据的标识值;
查验所述标识值是否在第一子表对应的表范围内;其中,所述第二存储节点上存储有所述第一子表;
在所述第一子表对应的表范围内时,根据所述标识值及所述第一子表中的表项,核验是否存储有与所述第一数据重复的所述第二数据;
不在所述第一子表对应表范围内时,获取多个主节点存储的子表对应的表范围,将存储有所述标识值所在表范围对应子表的主节点,确定为所述目标节点;向所述目标节点发送针对所述第一数据的核验请求,等待所述目标节点核验是否存储有与所述第一数据重复的所述第二数据的核验结果。
本申请实施例提供的技术方案,第一阶段以低延迟消除存储节点内的重复数据;为了保证存储集群的性能,第二阶段可采用非阻塞方式执行,核验存储集群中其他存储节点中是否存储有与第一数据重复的第二数据;在核验结果为存储集群中有存储时,第一存储节点再执行针对所述第一数据的去重操作,即在实现了重复数据删除的同时,对存储集群的性能影响不大,有助于提高存储集群的计算、存储和网络等基础设施的效率。
本实施例中各节点具备的功能及各功能的具体实现,将在如下方法实施例中进行细致描述。
如图2所述的一方法实施例,该存储集群中的数据处理方法的执行主体可以是如图1和图3所示存储集群中的一个存储节点。下文中为了方便叙述,将这执行本实施例提供的所述方法存储节点称为第一存储节点。具体的,如图2所示,所述数据处理方法包括:
101、确定所述第一存储节点是否已存储有与第一数据重复的第二数据;
102、确定结果为未存储时,执行对所述第一数据的存储操作;
103、申请核验所述存储集群中除所述第一存储节点外的存储节点是否存储有所述第二数据;
104、核验结果为有存储时,执行针对所述第一数据的去重操作。
上述101步骤即重复数据发现的过程。存入存储集群的数据可以是文件、也可以是文件被切分成多个数据块中的一个数据块等等。具体实施时,可采用固定大小对文件进行划分得到多个大小相同的数据块,也可采用可变大小对文件进行划分得到多个大小不同的数据块。其中,可变分块的切分过程中考虑到每个块中的内容,以内容为基准划分每个块的边界,这就造成每个块大小不一致。
在重复数据发现过程中,若以全文件粒度,则对整个文件计算哈希值(hash),然后将计算出的哈希值与第一存储节点上已存储数据的哈希值进行比较。如果通过比较得出第一存储节点上已存储数据的哈希值中有与所述文件的哈希值相同的值,则说明第一存储节点上已存储有与该文件内容重复的文件。如果通过比较得出第一存储节点上已存储数据的哈希值中没有与所述文件的哈希值相同的值,则该文件为新文件,可存储。
在重复数据发现过程中,若以数据块粒度,则对需存储的数据块中的内容计算哈希值;然后查找第一存储节点已存储数据块的哈希值。如果第一存储节点的已存储数据块的哈希值中有与待存储的数据块的哈希值相同的值,则说明该待存储的数据块为重复数据块。如果第一存储节点的已存储数据的哈希值中没有与所述文件的哈希值相同的值,则该待存储的数据块为新数据,可存储。
相较于文件级的数据,块级数据的重复数据删除技术更有优势,其可以在不同的文件或应用中消除冗余数据块。比如,如果一个文件只做了相当小的一点儿修改,块级重复数据删除技术则将只保存发生变化的数据块。通过这种方式,块级重复数据删除可以提供更好的压缩比率,特别是在巨大数据量的情况下,如数据库或全备份之后。
可见,数据的粒度越小,发现重复数据的概率就会越高,但同时需要消耗的计算资源和存储资源也就相应的增多了。因此需要按照环境的需要,综合考虑数据粒度。
在实际应用中,所述第一存储节点中已存储的数据的哈希值可存储在第一存储节点的内存(如图3所示)中;或者是将索引表存储在第一存储节点的内存中,索引表中包含有已存储数据的哈希值对应的索引编码。这样在有待存储的第一数据时,可先利用哈希(Hash)算法,计算所述第一数据的哈希值;然后查找内存中存储的哈希值表或索引表。若哈希值表中包含有与第一数据的哈希值相同的值(如所述第二数据的哈希值),则确定所述第一数据为重复数据,不进行存储;若哈希值表中没有与第一数据的哈希值相同的值,则确定所述第一数据为新数据,可存储。
其中,哈希算法可包括MD5和SHA-X系列算法。MD5算法的全称为Message-DigestAlgorithm 5(信息摘要算法),它是一种成熟的Hash摘要算法,数据块的内容通过Hash摘要技术被转换成128位的加密信息摘要。如果两个不同的数据块通过MD5算法进行运算,得到两个128位的摘要信息也是不同的。SHA(Secure Hash algorithm)安全散列算法,主要有SHA-1、SHA-256、SHA-512等。具体实施时,可随着存储规模的增加,可随机选择相应的算法,以降低数据的冲突率。
上述102中,在确定第一数据不是重复数据后,可执行对所述第一数据的存储操作。如图3所示的一存储节点的硬件结构原理性示意图。本实施例中的第一存储节点的硬件结构也可如图3所示,第一存储节点上设有分层存储驱动器,其中分层存储驱动器包括日志驱动器和转储驱动器。第一存储节点在存储数据(如第一数据)时,可将待存储的数据同时写入日志驱动器和转储驱动器。通常情况下,日志驱动器(journal drive)会以比转储驱动器(dump drive)更短的延迟完成写操作。当转储驱动器和日志驱动器中至少一个完成写操作,且无误时,就认为写操作已经完成。在完成对所述第一数据的存储操作(即完成第一数据的写操作)后,将所述第一数据的哈希值存储到内存中,或是为所述第一数据的哈希值创建一索引编码,将索引编码添加到内存的索引表中。
若确定第一数据为重复数据,则所述第一数据不进行存储;进一步的可存储指向第二数据的指针来代替所述第一数据。
上述步骤101和102可以理解为:单个存储节点查重阶段。那么到步骤103就为存储集群的全局查重的核验阶段,即核验存储集群中除第一存储节点外的其他节点是否存储有与第一数据重复的第二数据。步骤104就是在核验结果为第一数据为重复数据时做的补救动作。
在存储集群重复数据删除过程中,处于对***整体性能开销的考虑,跨存储节点的全局去重会严重降低***存储性能,所以现有技术中一般都是采用只对单存储节点内部数据进行数据去重。而本申请实施例中之所以采用上述步骤,步骤101和102因为单个存储节点查重阶段,其对整个***的影响较小,可及时处理。就是考虑到全局去重对***整体性能开销大,所以采用步骤103的核验和步骤104的补救措施,这样步骤103和104就可以采用非阻塞方式执行,即其可延后执行,比如在网络空闲、数据处理量不大的时候执行。
可见,本实施例提供的技术方案在实现了重复数据删除的同时,还对存储集群的性能影响不大,有助于提高存储集群的计算、存储和网络等基础设施的效率。
在一种可实现的技术方案中,所述存储集群中包含有第二存储节点。如图4所示的实例,存储集群中包含有分布式主节点(Distributed master nodes)。其中,分布式主节点可包括多个主节点。本实施例中的第二存储节点可以是图4中所示的分布式主节点中的一个主节点。具体的,上述实施例中步骤103“申请核验所述存储集群中除所述第一存储节点外的存储节点是否存储有所述第二数据”可采用如下步骤实现:
1031、获取所述第一数据的标识值;
1032、基于所述标识值,向所述第二存储节点发送核验请求,以由所述第二存储节点核验所述存储集群中除所述第一存储节点外的存储节点是否存储有所述第二数据;
1033、接收所述第二存储节点反馈的针对所述第一数据的核验结果。
上述1031中,第一数据的标识值具有唯一性,可以是上文提及的采用哈希算法计算得到的哈希值。
上述1032中,所述核验请求中可携带有所述第一数据的标识值。该核验请求可以在第一存储节点确定第一数据为非重复数据(即所述确定结果为未存储)时,发送给第二存储节点。另一种可实现方案是,不管确定结果是什么,均向第二存储节点发送所述核验请求。这样的话,所述核验请求中除携带有第一数据的标识值外,还可携带有所述确定结果。接收到该核验请求的第二存储节点,可在确定结果为未存储时,执行核验所述存储集群中除所述第一存储节点外的存储节点是否存储有所述第二数据的操作;可在确定结果为已存储时,利用所述第一数据的标识值,将第一数据注册为重复数据。
例如,图5所示的方案,表A为注册表,将第一数据对应的元数据(如第一数据对应客户端节点元数据)及第一数据的哈希值添加到表A中,即完成注册。注册完成后,便于后续重复数据发现阶段时使用。
这里的第二存储节点可以是存储集群中的主节点。存储集群中可包含有一个主节点,也可包含有多个主节点。比如图4中所示的架构示意图,存储集群为多主节点架构。与使用独立服务器作为存储集群的主节点不同,分布式主节点(Distributed master nodes)就在集群中的存储节点上操作,并不是一个独立的、只做管理的主节点。例如,在一种可实现的技术方案中,存储集群上存储的所有数据对应哈希值可组成一个全量哈希表。实施时可根据哈希值的范围,将全量哈希表划分为多个子表。多个子表分散到多个主节点中,如图4所示。其中,为了保证可靠性,主节点均具有冗余,比如备节点。备节点上备份有主节点上的数据、子表等,以在主节点故障或不可用时替代主节点对外提供相应的服务。
第一存储节点确定自身节点上未存储与所述第一数据重复的第二数据时,第二存储节点(如图4中的分布式主节点中的一个主节点)接收到第一存储节点发送的核验请求后,在核验所述存储集群中除所述第一存储节点外的存储节点是否存储有所述第二数据时,可具体包括:查验所述第一数据的哈希值(即标识值)是否在自身节点上存储的第一子表对应的表范围内;如第一数据的哈希值在第一子表对应的表范围时,根据标识值及所述第一子表中的表项,核验是否存储有与所述第一数据重复的第二数据。若所述第一子表(如图5中所示的表B)中包含有与所述第一数据的哈希值相同的值,则说明第二存储节点上存储有与所述第一数据重复的第二数据;否则,说明存储集群中除所述第一存储节点外的存储节点未存储与所述第一数据重复的第二数据。如第一数据的哈希值不在第一子表对应的表范围时,第二存储节点需根据所述第一数据的哈希值,确定存储集群中的一目标节点(即多主节点中存储有所述第一数据的哈希值所在表范围对应子表的主节点),然后由目标节点核验存储集群中除所述第一存储节点外的存储节点是否存储有与所述第一数据重复的第二数据。
这里需要补充的是:所述第二存储节点需存储有各子表分散在相应主节点的索引信息,这样便可在确定目标节点时,通过索引信息确定目标节点,以向目标节点发送携带有所述第一数据的标识值(如哈希值)的核验请求。
第一存储节点在存储第一数据时,可采用多副本容灾策略,即第一数据分别存储在三个不同的存储节点上,这样就保证了在一个存储节点出错时,利用另外两个存储节点中存储的副本来满足需求(如客户端侧的数据读取需求或其他数据处理需求),实现了数据容灾功能。多副本容灾策略虽然简单易行,但需要耗大量的存储空间。为此,本实施例中可采用纠删码策略,来减少存储空间的使用率。比如,5个数据块,三副本容灾的情况下,需要15个数据块来保证数据的冗余。而纠删码策略(如采用CRS编码)同样能保证在5个数据块的两个数据块出错时能够同时恢复的效果,例如只需要5+2个数据块来保证数据的冗余,大大提高了存储空间的利用率。即本实施例中步骤102中“执行对所述第一数据的存储操作”可包括:
1021、所述确定结果为未存储时,对所述第一数据进行预处理;
1022、将预处理后的所述第一数据作为待编码数据,添入待编码集;
1023、所述待编码集中数据的数量满足预设要求时,对所述待编码集中的多个数据进行纠删码编码,得到多个纠删码块;其中,所述待编码集中的多个数据以及所述多个纠删码块构成纠删码带;
1024、将所述纠删码带中的一部分存储于所述第一存储节点,剩余的部分发送至所述存储集群中除所述第一存储节点外的一个或多个存储节点进行存储。
上述1021中,对第一数据进行的预处理可包括:压缩处理、加密处理等等。本实施例中对压缩、加密的具体处理过程不作限定,可参见相关文献。
上述1022中,纠删码策略中,是需要多个数据一起进行编码的,比如5个数据(可以是数据块)。因此,本实施例中增加了将与处理后的第一数据作为待编码数据添入待编码集的步骤。该添加步骤实质上就积累的过程,比如积累到5个需存储的数据后,采用纠删码策略对5个数据(可以是数据块)进行编码。
上述1023的过程即纠删码编码过程,本实施例对于纠删码的编码原理及具体的编码过程不作具体限定,可参见相关文献。纠删码策略的基本思想是:通过纠删码算法对k个原始数据块进行数据编码得到m个纠删码块,并将这k+m个数据块存入到不同的存储节点中去,完成容灾机制的建立。这样当k+m块的元素中任意的不多余m块元素出错时(包括数据和冗余出错)时,均可以通过对应的重构算法恢复出原来的k块数据。
为了便于描述,在本实施例的待编码集中的多个数据(如上述k个原始数据)以及所述多个纠删码块(如上述的m个纠删码块)构成纠删码带(Stripe)。纠删码带中的一个原始数据(或原始数据块)或一个纠删码块可称为一数据元(strip)。图2中示出的跨多个存储节点虚框即表征一个纠删码带,图2中使用EC带表征一个纠删码带。
在步骤1024中,纠删码带中的一部分数据元可存储于第一存储节点,剩余数据元可存储在存储集群中除所述第一存储节点外的一个或多个存储节点上。又或者,纠删码带中的一个数据元存储于第一存储节点,剩余数据元分散在存储集群中除第一存储节点外的其他存储节点上存储。
这里需要补充的是:被发送到除第一存储节点外的其他存储节点的数据元可以跳过本地重复数据删除模块。换句话来说,存储集群中的存储节点上均配置有重复数据删除模块,重复数据删除模块可以是安装在存储节点上的应用程序,用以实现本实施例中提供的各步骤。而EC带中被发往存储于其他存储节点上的数据元,是容灾用的,不属于重复数据删除的对象。因此,接收到EC带中的一个数据元的存储节点,是不启用重复数据删除模块的,即不进行查重,直接将接收到的EC带中的一个数据元直接存储于本地。
具体的,如图2所示,各EC带可由存储集群中分布式主节点来管理。比如,主节点中管理有EC带中各数据元分别存储在哪个存储节点的相关信息。这样可在数据恢复时基于管理的信息在存储集群中获取到属于同一EC带的指定数量个数据元恢复出原始数据。
为了提高存储空间和网络带宽的利用率,云存储环境下纠删编码和重复数据删除技术的应用具有很好的现实意义。在存储***中,纠删码技术主要是通过利用纠删算法将原始的数据进行编码得到冗余数据,并将原始数据和冗余数据一并存储起来,以达到容错的目的。重复数据删除技术是为减少存储集群中不是容灾用的重复数据,以释放被重复数据占用的空间,提高存储集群中的存储空间利用率。
基于上述采用纠删码策略执行对第一数据的存储操作后,本实施例104“在核验结果为所述存储集群中有存储与第一数据重复的第二数据时,执行针对所述第一数据的去重操作”可包括:
1041、对所述第一数据的存储操作未完成时,阻止所述存储操作。
这里阻止所述存储操作后,需视阻止时机来定,是否需要对于本地已存储的数据进行去重操作。
比如,在上述步骤1024之前,被阻止时,可将添入待编码集中的第一数据删除,再进行积累。
1042、对所述第一数据的存储操作已完成时,删除已存储于所述第一存储节点的所述第一数据。
实质上还存在一种情况,纠删码带中存储在本地的一部分,如不含有第一数据,可不进行去重操作;若含有第一数据,则可删除已存储的第一数据,并使用指向第二数据的指针代替所述第一数据进行存储。
由于重复数据删除技术只保存了发生变化的数据,使用指针保存重复的数据,这就降低了数据存储容量,使用户不用再像以前一样需要购置大量的磁盘,从而将用户备份***的总成本降到最低。而更少的磁盘也使得存储集群的规模小,电力及制冷需求小,同时还降低了存储集群的复杂性。
本实施例提供的技术方案,第一阶段以低延迟消除存储节点内的重复数据,为了保证存储集群的性能,第二阶段可采用非阻塞方式执行,校准存储集群中其他存储节点中是否存储有与第一数据重复的第二数据;在核验结果为存储集群中有存储时,第一存储节点再执行针对所述第一数据的去重操作。可见,本申请实施例提供的技术方案,在实现了重复数据删除的目标的同时,对存储集群的性能影响不大,有助于提高存储集群的计算、存储和网络等基础设施的效率。
图7示出了本申请另一实施例提供的一种存储集群中的数据处理方法的流程示意图。如图7所示,本实施例提供的所述方法适用于存储集群中的第二存储节点。该第二存储节点可以是上文中提及的主节点,更具体的可以是分布式主节点中的一个主节点。具体的,所述方法包括:
201、接收所述存储集群中的第一存储节点针对第一数据发送的确定结果,其中,所述确定结果是所述第一存储节点在确定自身节点上是否存储有与第一数据重复的第二数据后发送的;
202、所述确定结果为未存储时,核验所述存储集群中除所述第一存储节点外的存储节点是否存储有所述第二数据;
203、核验结果为有存储时,向所述第一存储节点反馈相应的响应信息;
其中,所述响应信息用以阻止所述第一存储节点将所述第一数据存储于自身节点上的操作,或用以触发第一存储节点删除已存储于所述第一存储节点的所述第一数据。
在一可实现的技术方案中,上述步骤202“核验所述存储集群中除所述第一存储节点外的存储节点是否存储有所述第二数据”可采用如下步骤实现:
2021、获取所述第一数据的标识值;
2022、查验所述标识值是否在第一子表对应的表范围内;其中,所述第二存储节点上存储有所述第一子表;
2023、在所述第一子表对应的表范围内时,根据所述标识值及所述第一子表中的表项,核验是否存储有与所述第一数据重复的所述第二数据;
2024、不在所述第一子表对应表范围内时,根据所述标识值,确定所述存储集群中的一目标节点,向所述目标节点发送针对所述第一数据的核验请求,等待所述目标节点核验是否存储有与所述第一数据重复的所述第二数据的核验结果。
更具体的,如所述存储集群中包含有多个主节点,所述第二存储节点为一个主节点;所述存储集群中所有存储节点上存储的数据的标识值采用全量表的方式被记录;所述全量表划分为与主节点数量适配的多个子表;所述多个子表无交集;所述多个子表分散存储在不同的主节点上;一个子表对应一个表范围。相应的,上述步骤2024中“根据所述标识值,确定所述存储集群中的一目标节点”可包括:
S31、获取多个主节点存储的子表对应的表范围;
S32、将存储有所述标识值所在表范围对应子表的主节点,确定为所述目标节点。
进一步的,本实施例提供的所述方法还可包括如下步骤:
204、所述确定结果为有存储时,利用所述第一数据的标识值,将所述第一数据注册为重复数据。
这里需要说明的是:在具体实施时,所述第一数据的标识值可具体为该第一数据的哈希值,第一数据可以是整个文件、也可以是从整个文件中切分出的一个数据块,本实施例对此不做具体限定。另外,有关本实施例中各步骤更详尽的说明可参见上文中的相应内容,此处不作赘述。
上述各实施例中提及的各存储节点执行重复数据删除的功能是通过网卡(network interface card NIC)实现。如图3所示的一种存储节点的原理性结构示意图。具体的,如图3所以,所述存储节点包括:网卡(NIC)及处理器(CPU)。其中,网卡用于接收待存储的第一数据,确定所述存储节点是否存储有与所述第一数据重复的第二数据。处理器与所述网卡电连接,用于在确定结果为未存储时,执行对所述第一数据的存储操作。所述网卡,还用于向存储集群中的一目标节点发送针对所述第一数据的核验请求,以由所述目标节点核验所述存储集群中除所述存储节点外的节点是否存储有所述第二数据;所述处理器,还用于在所述网卡接收到的核验结果为有存储时,执行针对所述第一数据的去重操作。
如图6所示,本实施例中的所述网卡可以是在现有网卡的基础为其配置一卸载计算模块,由所述卸载计算模块执行重复数据删除处理过程。如图6所示,为实现本各实施例提供的技术方案具有重复数据删除处理功能而定制的网卡。存储节点上的网卡在接收到待存储的第一数据后,由该卸载计算模块计算该第一数据的哈希值,然后检查自身所在存储节点的内存中存储的哈希表中是否包含有与该哈希值相同的值;再哈希表中查找不出与所述第一数据的哈希值相同的值时,对第一数据进行压缩、加密等处理后,再将其添加至待编码集中以与其他待存储的数据一同进行纠删码编码(即EC编码),编码完后得到的纠删码带中的一部分存储于本地,剩余部分分散到存储集群的其他存储节点存储。而存储纠删码带中数据的存储节点是不会对其进行重复数据检查、删除等处理的,因为纠删码带中的数据是用来容灾用的,不能被作为重复数据。
进一步的,本实施例中的存储节点如若为上文中提及的第二存储节点的话,所述网卡还用于接收存储集群中的第一存储节点针对第三数据发送的确定结果,其中,所述确定结果是所述第一存储节点在确定自身节点上是否存储有与第三数据重复的第四数据后发送的;所述处理器还用于在所述确定结果为未存储时,核验所述存储集群中除所述第一存储节点外的存储节点是否存储有所述第四数据;所述网卡,还用于在核验结果为有存储时,向所述第一存储节点反馈相应的响应信息。其中,所述响应信息用以阻止所述第一存储节点将所述第三数据存储于自身节点上的操作,或用以触发第一存储节点删除已存储于所述第一存储节点的所述第三数据。
本申请另一实施例提供的一存储节点。该存储节点可以是上文中提及的第二存储节点。同样的,所述存储节点包括网卡和处理器。其中,网卡,用于接收存储集群中的第一存储节点针对第一数据发送的确定结果,其中,所述确定结果是所述第一存储节点在确定自身节点上是否存储有与第一数据重复的第二数据后发送的。处理器,与所述网卡电连接,用于在所述确定结果为未存储时,申请核验所述存储集群中除所述第一存储节点外的存储节点是否存储有所述第二数据。所述网卡,还用于在核验结果为有存储时,向所述第一存储节点反馈相应的响应信息。其中,所述响应信息用以阻止所述第一存储节点将所述第一数据存储于自身节点上的操作,或用以触发第一存储节点删除已存储于所述第一存储节点的所述第一数据。
本实施例中的网卡除具有上述功能外,也可具有如图6所示的功能,具体内容可参见上文中的描述。
参见图3所示,存储节点除网卡、处理器外,还包括内存等。其中图3中的分层存储驱动器的具体形态可以是软件、程序、引擎等。在处理器执行数据存储操作时,可调用分层存储驱动器来实现存储操作。图3中的网卡可以是支持硬件队列的NIC,网卡将接收的数据分配给多个接收队列,接收队列与CPU相关联。NIC根据哈希值(hash)和间接表(PM)将接收的数据分配给CPU。
这里需要说明的是:本实施例中仅说明各存储节点的部分功能,有关各功能的更具体的实现方式可参见上文中的相应内容;另外,本实施例中各存储节点还可实现在本实施例中未提及的,上文中有提及的功能,具体参见上文中的内容,此处不作赘述。
本申请还提供一种数据处理装置。如图8所示,该数据处理装置包括:确定模块41、存储模块42、申请模块43及去重模块44。其中,所述确定模块41用于确定所述第一存储节点是否已存储有与第一数据重复的第二数据。所述存储模块42用于在所述确定模块的确定结果为未存储时,执行对所述第一数据的存储操作。所述申请模块43用于申请核验所述存储集群中除所述第一存储节点外的存储节点是否存储有所述第二数据。所述去重模块44用于在核验结果为有存储时,执行针对所述第一数据的去重操作。
进一步的,所述去重模块44用于对所述第一数据的存储操作未完成时,阻止所述存储操作;对所述第一数据的存储操作已完成时,删除已存储于所述第一存储节点的所述第一数据。
进一步的,所述存储集群中包含有第二存储节点;相应的,所述申请模块43在申请核验所述存储集群中除所述第一存储节点外的存储节点是否存储有所述第二数据时,具体用于:
获取所述第一数据的标识值;
基于所述标识值,向所述第二存储节点发送核验请求,以由所述第二存储节点核验所述存储集群中除所述第一存储节点外的存储节点是否存储有所述第二数据;
接收所述第二存储节点反馈的针对所述第一数据的核验结果。
进一步的,所述存储模块42在执行对所述第一数据的存储操作时,具体用于:所述确定结果为未存储时,对所述第一数据进行预处理;将预处理后的所述第一数据作为待编码数据,添入待编码集;所述待编码集中数据的数量满足预设要求时,对所述待编码集中的多个数据进行纠删码编码,得到多个纠删码块;其中,所述待编码集中的多个数据以及所述多个纠删码块构成纠删码带;将所述纠删码带中的一部分存储于所述第一存储节点,剩余的部分发送至所述存储集群中除所述第一存储节点外的一个或多个存储节点进行存储。
进一步的,所述存储集群中包含有第二存储节点。相应的,本实施例所述的数据处理装置还可包括发送模块。其中,所述发送模块用于将所述第一数据的标识值及所述确定结果发送至所述第二存储节点,以在所述确定结果为所述第一存储节点存储有所述第二数据时,由所述第二存储节点利用所述标识值将所述第一数据注册为重复数据。
这里需要说明的是:上述实施例提供的数据处理装置可实现上述各方法实施例中描述的技术方案,上述各模块或单元具体实现的原理可参见上述各方法实施例中的相应内容,此处不再赘述。
如图9所示,本申请另一实施例提供一种数据处理装置。该数据处理装置包括:接收模块51、核验模块52及反馈模块53。其中,接收模块51用于接收所述存储集群中的第一存储节点针对第一数据发送的确定结果,其中,所述确定结果是所述第一存储节点在确定自身节点上是否存储有与第一数据重复的第二数据后发送的。核验模块52用于在所述确定结果为未存储时,核验所述存储集群中除所述第一存储节点外的存储节点是否存储有所述第二数据。所述反馈模块53用于在核验结果为有存储时,向所述第一存储节点反馈相应的响应信息。所述响应信息用以阻止所述第一存储节点将所述第一数据存储于自身节点上的操作,或用以触发第一存储节点删除已存储于所述第一存储节点的所述第一数据。
进一步的,所述核验模块52在核验所述存储集群中除所述第一存储节点外的存储节点是否存储有所述第二数据时,具体用于:
获取所述第一数据的标识值;
查验所述标识值是否在第一子表对应的表范围内;其中,所述第二存储节点上存储有所述第一子表;
在所述第一子表对应的表范围内时,根据所述标识值及所述第一子表中的表项,核验是否存储有与所述第一数据重复的所述第二数据;
不在所述第一子表对应表范围内时,根据所述标识值,确定所述存储集群中的一目标节点,向所述目标节点发送针对所述第一数据的核验请求,等待所述目标节点核验是否存储有与所述第一数据重复的所述第二数据的核验结果。
进一步的,所述存储集群中包含有多个主节点,所述第二存储节点为一个主节点;所述存储集群中所有存储节点上存储的数据的标识值采用全量表的方式被记录;所述全量表划分为与主节点数量适配的多个子表;所述多个子表无交集;所述多个子表分散存储在不同的主节点上;一个子表对应一个表范围。相应的,所述核验模块52在根据所述标识值,确定所述存储集群中的一目标节点时,具体用于:
获取多个主节点存储的子表对应的表范围;将存储有所述标识值所在表范围对应子表的主节点,确定为所述目标节点。
进一步的,本实施例提供的数据处理装置还可包括注册模块。该注册模块用于在所述确定结果为有存储时,利用所述第一数据的标识值,将所述第一数据注册为重复数据。
这里需要说明的是:上述实施例提供的数据处理装置可实现上述各方法实施例中描述的技术方案,上述各模块或单元具体实现的原理可参见上述各方法实施例中的相应内容,此处不再赘述。
图10示出了本申请一实施例提供一个电子设备的结构示意图。如图10所示,所述电子设备包括:存储器61以及处理器62。存储器61可被配置为存储其它各种数据以支持在电子设备上的操作。这些数据的示例包括用于在电子设备上操作的任何应用程序或方法的指令。存储器61可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
所述存储器61,用于存储一条或多条计算机指令;
所述处理器62,与所述存储器61耦合,用于执行所述存储器61中存储的一条或多条计算机指令,以实现上述各实施例提供的数据处理方法中的步骤。
进一步,如图10所示,电子设备还包括:通信组件63、电源组件65及显示器66等其它组件。图10中仅示意性给出部分组件,并不意味着电子设备只包括图10所示组件。
相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,所述计算机程序被计算机执行时能够实现上述各实施例提供的存储集群中的数据处理方法中的步骤或功能。
本申请实施例还提供一种计算机程序产品,包括计算机程序,当所述计算机程序被处理器执行时,致使所述处理器能够实现上述各实施例提供的存储集群中的数据处理方法中的步骤或功能。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (14)

1.一种存储集群中的数据处理方法,其特征在于,适用于存储集群中的第一存储节点,所述方法包括:
确定所述第一存储节点是否已存储有与第一数据重复的第二数据;
确定结果为未存储时,执行对所述第一数据的存储操作;
申请核验所述存储集群中除所述第一存储节点外的存储节点是否存储有所述第二数据;
核验结果为有存储时,执行针对所述第一数据的去重操作。
2.根据权利要求1所述的方法,其特征在于,执行针对所述第一数据的去重操作,包括:
对所述第一数据的存储操作未完成时,阻止所述存储操作;
对所述第一数据的存储操作已完成时,删除已存储于所述第一存储节点的所述第一数据。
3.根据权利要求1所述的方法,其特征在于,所述存储集群中包含有第二存储节点;以及
申请核验所述存储集群中除所述第一存储节点外的存储节点是否存储有所述第二数据,包括:
获取所述第一数据的标识值;
基于所述标识值,向所述第二存储节点发送核验请求,以由所述第二存储节点核验所述存储集群中除所述第一存储节点外的存储节点是否存储有所述第二数据;
接收所述第二存储节点反馈的针对所述第一数据的核验结果。
4.根据权利要求1至3中任一项所述的方法,其特征在于,执行对所述第一数据的存储操作,包括:
所述确定结果为未存储时,对所述第一数据进行预处理;
将预处理后的所述第一数据作为待编码数据,添入待编码集;
所述待编码集中数据的数量满足预设要求时,对所述待编码集中的多个数据进行纠删码编码,得到多个纠删码块;其中,所述待编码集中的多个数据以及所述多个纠删码块构成纠删码带;
将所述纠删码带中的一部分存储于所述第一存储节点,剩余的部分发送至所述存储集群中除所述第一存储节点外的一个或多个存储节点进行存储。
5.根据权利要求1或2所述的方法,其特征在于,所述存储集群中包含有第二存储节点;以及
所述方法还包括:
将所述第一数据的标识值及所述确定结果发送至所述第二存储节点,以在所述确定结果为所述第一存储节点存储有所述第二数据时,由所述第二存储节点利用所述标识值将所述第一数据注册为重复数据。
6.一种存储集群中的数据处理方法,其特征在于,适用于存储集群中的第二存储节点,所述方法包括:
接收所述存储集群中的第一存储节点针对第一数据发送的确定结果,其中,所述确定结果是所述第一存储节点在确定自身节点上是否存储有与第一数据重复的第二数据后发送的;
所述确定结果为未存储时,核验所述存储集群中除所述第一存储节点外的存储节点是否存储有所述第二数据;
核验结果为有存储时,向所述第一存储节点反馈相应的响应信息;
其中,所述响应信息用以阻止所述第一存储节点将所述第一数据存储于自身节点上的操作,或用以触发第一存储节点删除已存储于所述第一存储节点的所述第一数据。
7.根据权利要求6所述的方法,其特征在于,核验所述存储集群中除所述第一存储节点外的存储节点是否存储有所述第二数据,包括:
获取所述第一数据的标识值;
查验所述标识值是否在第一子表对应的表范围内;其中,所述第二存储节点上存储有所述第一子表;
在所述第一子表对应的表范围内时,根据所述标识值及所述第一子表中的表项,核验是否存储有与所述第一数据重复的所述第二数据;
不在所述第一子表对应表范围内时,根据所述标识值,确定所述存储集群中的一目标节点,向所述目标节点发送针对所述第一数据的核验请求,等待所述目标节点核验是否存储有与所述第一数据重复的所述第二数据的核验结果。
8.根据权利要求7所述的方法,其特征在于,所述存储集群中包含有多个主节点,所述第二存储节点为一个主节点;所述存储集群中所有存储节点上存储的数据的标识值采用全量表的方式被记录;所述全量表划分为与主节点数量适配的多个子表;所述多个子表无交集;所述多个子表分散存储在不同的主节点上;一个子表对应一个表范围;以及
根据所述标识值,确定所述存储集群中的一目标节点,包括:
获取多个主节点存储的子表对应的表范围;
将存储有所述标识值所在表范围对应子表的主节点,确定为所述目标节点。
9.根据权利要求6至8中任一项所述的方法,其特征在于,还包括:
所述确定结果为有存储时,利用所述第一数据的标识值,将所述第一数据注册为重复数据。
10.一种存储集群,其特征在于,包括多个存储节点,所述多个存储节点通过网络连接;所述多个存储节点包括第一存储节点及第二存储节点;其中,
所述第一存储节点,用于确定所述第一存储节点是否已存储有与第一数据重复的第二数据;确定结果为未存储时,执行对所述第一数据的存储操作;
所述第二存储节点,用于在所述确定结果为未存储时,核验所述存储集群上除所述第一存储节点外的存储节点是否存储有所述第二数据,并向所述第一存储节点反馈核验结果;
所述第一存储节点,还用于在所述核验结果为有存储时,执行针对所述第一数据的去重操作。
11.根据权利要求10所述的存储集群,其特征在于,所述多个存储节点还包括多个主节点,所述第二存储节点为一个主节点;
所述存储集群中所有存储节点上存储的数据的标识值采用全量表的方式被记录;所述全量表划分为与主节点数量适配的多个子表;所述多个子表无交集;所述多个子表分散存储在不同的主节点上;一个子表对应一个表范围;
所述第二存储节点在核验所述存储集群上除所述第一存储节点外的存储节点是否存储有所述第二数据时,具体用于:
获取所述第一数据的标识值;
查验所述标识值是否在第一子表对应的表范围内;其中,所述第二存储节点上存储有所述第一子表;
在所述第一子表对应的表范围内时,根据所述标识值及所述第一子表中的表项,核验是否存储有与所述第一数据重复的所述第二数据;
不在所述第一子表对应表范围内时,获取多个主节点存储的子表对应的表范围,将存储有所述标识值所在表范围对应子表的主节点,确定为目标节点;向所述目标节点发送针对所述第一数据的核验请求,等待所述目标节点核验是否存储有与所述第一数据重复的所述第二数据的核验结果。
12.一种存储节点,其特征在于,包括:
网卡,用于接收待存储的第一数据,确定所述存储节点是否存储有与所述第一数据重复的第二数据;
处理器,与所述网卡电连接,用于在确定结果为未存储时,执行对所述第一数据的存储操作;
所述网卡,还用于向存储集群中的一目标节点发送针对所述第一数据的核验请求,以由所述目标节点核验所述存储集群中除所述存储节点外的节点是否存储有所述第二数据;
所述处理器,还用于在所述网卡接收到的核验结果为有存储时,执行针对所述第一数据的去重操作。
13.一种存储节点,其特征在于,包括:
网卡,用于接收存储集群中的第一存储节点针对第一数据发送的确定结果,其中,所述确定结果是所述第一存储节点在确定自身节点上是否存储有与第一数据重复的第二数据后发送的;
处理器,与所述网卡电连接,用于在所述确定结果为未存储时,核验所述存储集群中除所述第一存储节点外的存储节点是否存储有所述第二数据;
所述网卡,还用于在核验结果为有存储时,向所述第一存储节点反馈相应的响应信息;
其中,所述响应信息用以阻止所述第一存储节点将所述第一数据存储于自身节点上的操作,或用以触发第一存储节点删除已存储于所述第一存储节点的所述第一数据。
14.一种电子设备,其特征在于,包括处理器及存储器;其中,所述存储器用于存储一条或多条计算机指令,所述一条或多条计算机指令被所述处理器执行时能够实现上述权利要求1至5中任一项所述数据处理方法中的步骤,或权利要求6至9中任一项所述的数据处理方法中的步骤。
CN202111463112.7A 2021-12-02 2021-12-02 存储集群中的数据处理方法、存储集群、存储节点及设备 Active CN114265551B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111463112.7A CN114265551B (zh) 2021-12-02 2021-12-02 存储集群中的数据处理方法、存储集群、存储节点及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111463112.7A CN114265551B (zh) 2021-12-02 2021-12-02 存储集群中的数据处理方法、存储集群、存储节点及设备

Publications (2)

Publication Number Publication Date
CN114265551A true CN114265551A (zh) 2022-04-01
CN114265551B CN114265551B (zh) 2023-10-20

Family

ID=80826079

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111463112.7A Active CN114265551B (zh) 2021-12-02 2021-12-02 存储集群中的数据处理方法、存储集群、存储节点及设备

Country Status (1)

Country Link
CN (1) CN114265551B (zh)

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8190835B1 (en) * 2007-12-31 2012-05-29 Emc Corporation Global de-duplication in shared architectures
US20130018854A1 (en) * 2009-10-26 2013-01-17 Netapp, Inc. Use of similarity hash to route data for improved deduplication in a storage server cluster
CN103873506A (zh) * 2012-12-12 2014-06-18 鸿富锦精密工业(深圳)有限公司 存储集群中的数据块去重***及方法
US8930648B1 (en) * 2012-05-23 2015-01-06 Netapp, Inc. Distributed deduplication using global chunk data structure and epochs
US20160259590A1 (en) * 2014-03-27 2016-09-08 Hitachi, Ltd. Storage system and method for deduplicating data
US9727273B1 (en) * 2016-02-18 2017-08-08 Veritas Technologies Llc Scalable clusterwide de-duplication
CN107209714A (zh) * 2015-03-16 2017-09-26 株式会社日立制作所 分布式存储***及分布式存储***的控制方法
CN108268216A (zh) * 2018-01-05 2018-07-10 新华三技术有限公司 数据处理方法、装置及服务器
EP3460683A1 (en) * 2012-12-12 2019-03-27 Huawei Technologies Co., Ltd. Data processing method and apparatus in cluster system
CN111522502A (zh) * 2019-02-01 2020-08-11 阿里巴巴集团控股有限公司 数据去重方法、装置、电子设备及计算机可读存储介质
US20210072912A1 (en) * 2019-01-29 2021-03-11 Dell Products L.P. Method and system for inline deduplication using erasure coding

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8190835B1 (en) * 2007-12-31 2012-05-29 Emc Corporation Global de-duplication in shared architectures
US20130018854A1 (en) * 2009-10-26 2013-01-17 Netapp, Inc. Use of similarity hash to route data for improved deduplication in a storage server cluster
US8930648B1 (en) * 2012-05-23 2015-01-06 Netapp, Inc. Distributed deduplication using global chunk data structure and epochs
CN103873506A (zh) * 2012-12-12 2014-06-18 鸿富锦精密工业(深圳)有限公司 存储集群中的数据块去重***及方法
EP3460683A1 (en) * 2012-12-12 2019-03-27 Huawei Technologies Co., Ltd. Data processing method and apparatus in cluster system
US20160259590A1 (en) * 2014-03-27 2016-09-08 Hitachi, Ltd. Storage system and method for deduplicating data
CN107209714A (zh) * 2015-03-16 2017-09-26 株式会社日立制作所 分布式存储***及分布式存储***的控制方法
US9727273B1 (en) * 2016-02-18 2017-08-08 Veritas Technologies Llc Scalable clusterwide de-duplication
CN108268216A (zh) * 2018-01-05 2018-07-10 新华三技术有限公司 数据处理方法、装置及服务器
US20210072912A1 (en) * 2019-01-29 2021-03-11 Dell Products L.P. Method and system for inline deduplication using erasure coding
CN111522502A (zh) * 2019-02-01 2020-08-11 阿里巴巴集团控股有限公司 数据去重方法、装置、电子设备及计算机可读存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
宋雨;易璐;王凤霞;: "基于云存储的重复数据删除架构的研究与设计", 计算机***应用, no. 01, pages 208 - 211 *

Also Published As

Publication number Publication date
CN114265551B (zh) 2023-10-20

Similar Documents

Publication Publication Date Title
US11093324B2 (en) Dynamic data verification and recovery in a storage system
US11327799B2 (en) Dynamic allocation of worker nodes for distributed replication
US11010240B2 (en) Tracking status and restarting distributed replication
US20210019067A1 (en) Data deduplication across storage systems
US11074129B2 (en) Erasure coded data shards containing multiple data objects
US9298386B2 (en) System and method for improved placement of blocks in a deduplication-erasure code environment
US20190243547A1 (en) Distributed object replication architecture
US20190245918A1 (en) Distributed replication of an object
US8972779B2 (en) Method of calculating parity in asymetric clustering file system
CN108733311B (zh) 用于管理存储***的方法和设备
WO2015100627A1 (zh) 一种分布式文件存储***中的数据处理方法及设备
US11934280B2 (en) Use of cluster-level redundancy within a cluster of a distributed storage management system to address node-level errors
US11855868B2 (en) Reducing the impact of network latency during a restore operation
CN114265551B (zh) 存储集群中的数据处理方法、存储集群、存储节点及设备
US11640339B2 (en) Creating a backup data set
Xu et al. TEA: A traffic-efficient erasure-coded archival scheme for in-memory stores
EP4191936A1 (en) Method and apparatus for storing blockchain transaction data and distributed storage system using the same
KR102599116B1 (ko) 데이터 중복 제거 방법 및 데이터 중복 제거를 수행하는 스토리지 장치
CN117312326A (zh) 基于云原生数据库的数据存储方法及相关设备
CN116661681A (zh) 一种镜像存储方法和计算设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant