CN117149487A - 确定数据丢失的方法、装置、设备及存储介质 - Google Patents

确定数据丢失的方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN117149487A
CN117149487A CN202311093044.9A CN202311093044A CN117149487A CN 117149487 A CN117149487 A CN 117149487A CN 202311093044 A CN202311093044 A CN 202311093044A CN 117149487 A CN117149487 A CN 117149487A
Authority
CN
China
Prior art keywords
storage device
data
target
modification record
members
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.)
Pending
Application number
CN202311093044.9A
Other languages
English (en)
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.)
Jinan Inspur Data Technology Co Ltd
Original Assignee
Jinan Inspur Data Technology 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 Jinan Inspur Data Technology Co Ltd filed Critical Jinan Inspur Data Technology Co Ltd
Priority to CN202311093044.9A priority Critical patent/CN117149487A/zh
Publication of CN117149487A publication Critical patent/CN117149487A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0787Storage of error reports, e.g. persistent data storage, storage using memory protection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及存储技术领域,公开了确定数据丢失的方法、装置、设备及存储介质。该方法包括:获取待处理的存储设备集合。根据存储设备集合,获取与存储设备集合对应的集合信息修改记录。从集合信息修改记录中,读取存储设备集合中存储设备成员的成员信息,存储设备集合包括多个存储设备成员,且多个存储设备成员中包括至少一个目标存储设备。分别从存储设备集合中除目标存储设备之外的至少一个存储设备成员上读取与自身对应的数据修改记录。根据集合信息修改记录,以及至少一个存储设备成员上读取的数据修改记录,确定是否存在丢失数据。本发明可以确定删除某个存储设备是否会导致数据丢失。

Description

确定数据丢失的方法、装置、设备及存储介质
技术领域
本发明涉及存储技术领域,具体涉及确定数据丢失的方法、装置、设备及存储介质。
背景技术
在存储技术领域,在数据量较大的情况下,可以通过分布式存储系统对数据进行存储。为了数据安全考虑,分布式存储系统会将同一个数据存储在同一存储设备集合中的不同存储设备中。但是,在写入数据时,可能会出现有部分存储设备处于工作状态,部分存储设备处于宕机状态。此时,数据只能被写入处于工作状态的存储设备中。处于宕机状态的存储设备可以在恢复工作状态后与其他已经写入数据且处于工作状态下的存储设备进行数据同步过程,使得最终存储的数据保持一致。在实际应用中,存储设备可能出现硬件损坏的情况,一直处于宕机状态,无法恢复到工作状态,此时,技术人员需要对其进踢盘操作,也即将该存储设备从存储集群中进行删除,不进行使用。
但是,相关技术无法确定对某存储设备进行删除是否会造成数据丢失。
发明内容
有鉴于此,本发明提供了一种确定数据丢失的方法、装置、设备及存储介质,以解决在删除某个存储设备确定是否会造成数据丢失的问题。
第一方面,本发明提供了一种确定数据丢失的方法,所述方法应用于存储集群中的任一存储节点,所述方法包括:
获取待处理的存储设备集合,其中,每一个所述存储设备集合均位于一个存储节点上;
根据所述存储设备集合,获取与所述存储设备集合对应的集合信息修改记录;
从所述集合信息修改记录中,读取所述存储设备集合中存储设备成员的成员信息,所述存储设备集合包括多个存储设备成员,且多个所述存储设备成员中包括至少一个目标存储设备;
分别从存储设备集合中除所述目标存储设备之外的至少一个存储设备成员上读取与自身对应的数据修改记录;
根据所述集合信息修改记录,以及至少一个所述存储设备成员上读取的数据修改记录,确定是否存在丢失数据。
这样,通过存储节点中记录的集合信息修改记录和除目标存储设备中记录的数据修改记录,可以确定其他存储设备上是否存储有目标存储设备上存储的数据,可以确定对目标存储设备进行删除是否会导致数据丢失。
在一种可选的实施方式中,所述根据所述集合信息修改记录,以及至少一个所述存储设备成员上读取的数据修改记录,确定是否存在丢失数据,包括:
将所述集合信息修改记录与至少一个所述存储设备成员上读取的数据修改记录进行比较,确定是否存在存储有最新写入数据的目标成员;
当所述存储设备集合为副本池类型,且确定存在所述目标成员时,则不存在所述丢失数据;或者,当所述存储设备集合为副本池类型,且确定不存在所述目标成员时,则存在所述丢失数据。
这样,通过对存储设备集合的集合信息修改记录和存储设备成员的数据修改记录进行比较,就可以确定出是否有成员存储了最新写入的数据。并且,根据存储设备集合类型的不同设置相应的条件,以判断是否存在丢失数据,可以使得判断结果更加准确。
在一种可选的实施方式中,当所述存储设备集合为纠删池类型时,所述方法还包括:
统计所述目标成员的数量,其中,不同目标成员中存储的最新写入的数据不同;
当所述目标成员的数量大于或者等于预设阈值时,确定不存在所述丢失数据;
或者,当所述目标成员的数量小于所述预设阈值时,确定存在所述丢失数据,其中,所述预设阈值大于2。
这样,根据存储设备集合类型的不同设置相应的条件,以判断是否存在丢失数据,可以使得判断结果更加准确。
在一种可选的实施方式中,所述集合信息修改记录和所述数据修改记录中均包括至少一条修改日志,且每一条所述修改日志均配置有相应的日志序列号,所述将所述集合信息修改记录与至少一个所述存储设备成员上读取的数据修改记录进行比较,确定是否存在存储有最新写入数据的目标成员,包括:
当从至少一个所述存储设备成员中的一个或多个存储设备成员读取的数据修改记录中的日志序列号中存在与所述集合信息修改记录中最新修改日志的日志序列号相一致的序列号时,确定一个或多个存储设备成员为所述目标成员。
这样,通过日志序列号进行比较,而非对集合修改信息和数据修改记录进行的所有内容进行比较,可以使得判断过程更加高效。
在一种可选的实施方式中,当根据所述集合信息修改记录,以及至少一个所述存储设备成员上读取的数据修改记录,确定存在丢失数据后,所述方法还包括:
将所述集合信息修改记录中的数据的标识信息与至少一个所述存储设备成员上读取的数据修改记录中的数据的标识信息进行对比,得到与所述丢失数据对应的标识信息。
这样,通过数据的标识信息进行比较,而非对集合修改信息和数据修改记录进行的所有内容进行比较,可以使得分析过程更加高效。
在一种可选的实施方式中,当根据所述集合信息修改记录,以及至少一个所述存储设备成员上读取的数据修改记录,确定不存在丢失数据后,所述方法还包括:
根据所述存储设备成员上读取的数据修改记录,以及所述目标成员上存储的数据,对所述存储设备集合中除所述目标成员外的其他存储设备成员进行数据同步。
这样,在判断出删除目标存储设备不会丢失数据后,可以将目标成员上存储的数据同步到其他存储设备成员上,可以使得存储设备集合中的所有成员存储的数据具有一致性。
在一种可选的实施方式中,所述根据所述存储设备成员上读取的数据修改记录、所述目标成员上存储的数据修改记录,以及所述目标成员上存储的数据,对所述存储设备集合中除所述目标成员外的其他存储设备成员进行数据同步,包括:
将所述目标成员的数据修改记录中的日志序列号与其他存储设备成员的数据修改记录中的日志序列号不一致的序列号,确定为目标序列号;
从所述目标成员的数据修改记录中读取与所述目标序列号对应数据的标识信息,确定为目标标识信息;
根据所述目标标识信息,从所述目标成员上读取目标数据,并将所述目标数据同步到所述其他存储设备成员上。
这样,通过目标成员和其他存储设备成员的日志序列号进行比较,可以较快确定出目标标识信息,进一步,可以提高数据同步的效率。
第二方面,本发明提供了一种确定数据丢失的装置,包括:
获取模块,用于:获取待处理的存储设备集合,其中,每一个所述存储设备集合均位于一个存储节点上;根据所述存储设备集合,获取与所述存储设备集合对应的集合信息修改记录;
读取模块,用于:从所述集合信息修改记录中,读取所述存储设备集合中存储设备成员的成员信息,所述存储设备集合包括多个存储设备成员,且多个所述存储设备成员中包括至少一个目标存储设备;分别从存储设备集合中除所述目标存储设备之外的至少一个存储设备成员上读取与自身对应的数据修改记录;
确定模块,用于根据所述集合信息修改记录,以及至少一个所述存储设备成员上读取的数据修改记录,确定是否存在丢失数据。
第三方面,本发明提供了一种计算机设备,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述第一方面或其对应的任一实施方式的确定数据丢失的方法。
第四方面,本发明提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的确定数据丢失的方法。
本发明提供的确定数据丢失的方法,由于目标存储设备发生损坏后,该存储设备上存储的所有数据都无法获取到。存储节点存储的集合信息修改记录中包括存储设备集合中每个存储设备的修改记录,每个存储设备上存储有自身的数据修改记录。本方法通过对比集合信息修改记录和存储设备集合中除了目标存储设备之外的其他存储设备的数据修改记录,就可以确定出其他存储设备的数据修改记录是否覆盖了集合信息修改记录,也即可以确定出删除目标存储设备是否会存在丢失数据。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的存储集群的结构示意图;
图2是根据本发明实施例的确定数据丢失的方法的流程示意图;
图3是根据本发明实施例的数据完整性校验工具的结构示意图;
图4是根据本发明实施例的另一确定数据丢失的方法的流程示意图;
图5是根据本发明实施例的又一确定数据丢失的方法的流程示意图;
图6是根据本发明实施例的确定数据丢失的装置的结构框图;
图7是本发明实施例的计算机设备的硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在存储技术领域,存储集群中包括多个存储节点,每个存储节点上有多个存储设备。这些存储设备可能因为各种原因出现问题,出现问题后存储节点会将告警消息发送给管理设备,管理设备将告警消息进行显示,提示技术人员对问题存储设备进行检查。当技术人员确定问题存储设备无法修复后,可以将该存储设备从存储节点中删除。
根据本发明实施例,提供了一种确定数据丢失的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在本实施例中提供了一种确定存在丢失数据的方法,可用于上述的存储集群中的任一存储节点,存储集群的结构可以如图1所示。存储集群中包括多个存储节点,每个存储节点都包括多个存储设备集合,每个存储设备集合都包括多个存储设备。存储节点可以是计算机设备,例如,服务器。存储设备集合可以是放置组(placement group,简称pg),是用于放置对象的一个载体。存储设备可以是对象存储设备(Object-based Storage Device,简称OSD)。图2是根据本发明实施例的确定存在丢失数据的方法的流程图,如图2所示,该流程包括如下步骤:
步骤S201,获取待处理的存储设备集合。
其中,待处理的存储设备集合可以是存在故障存储设备的存储设备集合。每一个存储设备集合均位于一个存储节点上。
在实施中,存储集群中的每个存储节点上可以安装有相关应用程序(例如,可以是数据完整性校验工具),用于检测在对某个存储设备进行删除后,是否会造成数据丢失。该应用程序可以包括pginfo(pg信息)分析模块、pglog(pg日志)分析模块、日志输出分析模块和命令交互模块,可以如图3所示。其中,pginfo分析模块和pglog分析模块可以用于执行步骤S205,交互模块用于各个存储节点之间进行交互,日志输出分析模块用于输出最终的判定结果,告知用户是否存在数据丢失,并且在确定存在数据丢失的情况下,可以告知用户丢失数据的相关信息。
当技术人员找出需要删除的存储设备(目标存储设备)之后,可以在任一存储节点(本发明实施例以目标存储设备所在的目标存储节点为例进行说明)输入执行指令,以运行相关应用程序执行本方法。目标存储设备所在的存储设备集合为待处理的存储设备集合。该执行指令可以携带有目标存储设备的标识信息。另外,该执行指令还可以携带有待处理的存储设备集合的标识信息、目标存储节点的标识信息等。
目标存储节点在获取到执行指令后,可以从执行指令中获取到目标存储设备的标识信息,进一步,根据目标存储设备的标识信息,在本地存储的存储设备的标识信息与存储设备集合的标识信息的对应关系表中,确定出待处理的存储设备集合的标识信息。或者,可以从执行指令中直接获取到待处理的存储设备集合的标识信息(后续简称为存储设备集合)。
步骤S202,根据存储设备集合,获取与存储设备集合对应的集合信息修改记录。
其中,集合信息修改记录可以是pginfo,存储在每个存储节点的monitor(监视器)中,如图1所示。monitor用于监测存储节点中的存储设备集合的变化。集合信息修改记录中可以包括至少一条修改日志,且每一条修改日志均配置有相应的日志序列号、数据的标识信息、存储设备成员的成员信息等。
在实施中,目标存储节点根据步骤S202中的存储设备集合的标识信息,在目标存储节点本地存储的集合信息修改记录中,获取到存储设备集合的集合信息修改记录。
在上述过程中,存储集群可能因为网络不稳定的原因,导致目标存储节点获取存储设备集合对应的集合信息修改记录失败。此时,目标存储节点可以结束该流程,等待下一次接收到执行指令时,再重新获取存储设备集合对应的集合信息修改记录。目标存储节点也可以在接收到获取失败的通知时,重新获取存储设备集合对应的集合信息修改记录。
步骤S203,从集合信息修改记录中,读取存储设备集合中存储设备成员的成员信息。
其中,存储设备集合包括多个存储设备成员,且多个存储设备成员中包括至少一个目标存储设备。存储设备成员可以是probe成员。
在实施中,目标存储节点可以在集合信息修改记录中,对每条修改日志进行解析,从中获取到所有存储设备成员的成员信息。
步骤S204,分别从存储设备集合中除目标存储设备之外的至少一个存储设备成员上读取与自身对应的数据修改记录。
其中,数据修改记录可以是pglog,存储在存储设备集合中的每个存储设备上。数据修改记录中可以包括至少一条修改日志,且每一条修改日志均配置有相应的日志序列号。
在实施中,由于目标存储设备出现故障,其上存储的数据都无法获取到,因此,目标存储节点可以将存储设备集合中除目标存储设备之外的其他存储设备上读取数据修改记录。
步骤S205,根据集合信息修改记录,以及至少一个存储设备成员上读取的数据修改记录,确定是否存在丢失数据。
在实施中,目标存储节点可以根据存储设备集合的集合信息修改记录与多个存储设备的数据修改记录进行对比,在存储设备集合中除目标存储设备之外的其他存储设备成员中,确定是否存在至少一个存储设备成员上读取的数据修改记录中存在与集合信息修改记录中最新的修改记录相一致的修改记录,如果是,则可以确定不存在丢失数据,如果否,则可以确定存在丢失数据。
本实施例提供的确定数据丢失的方法,在确定出目标存储设备发生损坏后,该存储设备上存储的所有数据都无法获取到。存储节点存储的集合信息修改记录中包括存储设备集合中每个存储设备的数据修改记录,存储设备上存储有自身的数据修改记录。本方法通过对比集合信息修改记录和存储设备集合中除了目标存储设备之外的其他存储设备的数据修改记录,就可以确定出其他存储设备的数据修改记录是否覆盖了集合信息修改记录,也即可以确定出删除目标存储设备是否会存在丢失数据。
在本实施例中提供了一种确定存在丢失数据的方法,可用于上述的存储集群中的任一存储节点,存储节点可以是计算机设备,例如,服务器,图4是根据本发明实施例的确定存在丢失数据的方法的流程图,如图4所示,该流程包括如下步骤:
步骤S401,获取待处理的存储设备集合。详细请参见图2所示实施例的步骤S201,在此不再赘述。
步骤S402,根据存储设备集合,获取与存储设备集合对应的集合信息修改记录。详细请参见图2所示实施例的步骤S202,在此不再赘述。
步骤S403,从集合信息修改记录中,读取存储设备集合中存储设备成员的成员信息。详细请参见图2所示实施例的步骤S203,在此不再赘述。
步骤S404,分别从存储设备集合中除目标存储设备之外的至少一个存储设备成员上读取与自身对应的数据修改记录。详细请参见图2所示实施例的步骤S204,在此不再赘述。
步骤S405,根据集合信息修改记录,以及至少一个存储设备成员上读取的数据修改记录,确定是否存在丢失数据。
具体地,上述步骤S405包括:
步骤S4051,将集合信息修改记录与至少一个存储设备成员上读取的数据修改记录进行比较,确定是否存在存储有最新写入数据的目标成员。
其中,目标成员可以是权威成员。具体的,存储有最新写入的数据的成员可以称为权威成员。
在实施中,目标存储节点可以将集合信息修改记录中最新的修改记录,与存储设备集合中每个存储设备成员上读取的数据修改记录中最新的修改记录进行比较,确定是否存在至少一个存储设备成员的最新的数据修改记录与集合信息修改记录中最新的修改记录相一致,如果是,则可以确定存在存储有最新写入数据的目标成员,如果否,则可以确定不存在存储有最新写入数据的目标成员。
在一些可选的实施方式中,上述步骤S4051包括:
当从至少一个存储设备成员中的一个或多个存储设备成员读取的数据修改记录中的日志序列号中存在与集合信息修改记录中最新修改日志的日志序列号相一致的序列号时,确定一个或多个存储设备成员为目标成员。
在实施中,目标存储节点可以先确定出存储设备集合中的多个存储设备成员读取的数据修改记录中的最新修改日志的日志序列号。然后,将多个存储设备成员的最新修改日志中的日志序列号与集合信息修改记录中最新修改日志的日志序列号相一致的存储设备成员确定为目标成员。
步骤S4052,当存储设备集合为副本池类型,且确定存在目标成员时,则不存在丢失数据;或者,当存储设备集合为副本池类型,且确定不存在目标成员时,则存在丢失数据。
在实施中,在副本池类型的存储设备集合中,一个数据会被存储到多个存储设备上。因此,只要确定出一个目标成员,即可确定最新写入的数据不会丢失。
步骤S4053,当存储设备集合为纠删池类型时,统计目标成员的数量,当目标成员的数量大于或者等于预设阈值时,确定不存在丢失数据;或者,当目标成员的数量小于预设阈值时,确定存在丢失数据。
在实施中,在纠删池类型的存储设备集合中,一个数据会被分为多个数据块。进一步,通过纠删算法对多个数据块进行计算,得到多个纠删码。多个数据块和多个纠删码被分配到不同的存储设备中进行存储(可以认为不同的存储设备存储的数据不同)。例如,数据块的数量为k(k即为上述的预设阈值),纠删码的数量为m,k+m个存储设备上存储的数据对应一个完整的数据。在这种纠删池类型的存储设备集合中,纠删码为冗余数据,是为了保证在删除m个存储设备后,都可以从其他k个存储设备上读取的数据块和/或纠删码,恢复出剩余的数据块(假设删除的m个存储设备都是纠删码所在的存储设备,那么从其他k个存储设备上即可读取到数据的全部内容。假设删除的m个存储设备都是数据块所在的存储设备,那么可以从其他k个存储设备上读取数据块和纠删码,然后通过纠删算法对读取数据块和纠删码进行计算,得到剩余的数据块,这样也可以得到数据的全部内容)。
因此,在统计出目标成员的数量后,可以判断目标成员的数量是否大于或等于预设阈值,如果是,则表示多个目标成员上存储有该数据的全部内容,或者,存储有数据块和纠删码,进而也可以恢复出数据的全部内容,即可确定不存在丢失数据。如果否,则可以确定存在丢失数据。
在一些可选的实施方式中,当根据集合信息修改记录,以及至少一个存储设备成员上读取的数据修改记录,确定存在丢失数据后,可以进行下述步骤S406。
步骤S406,将集合信息修改记录中的数据的标识信息与至少一个存储设备成员上读取的数据修改记录中的数据的标识信息进行对比,得到与丢失数据对应的标识信息。
在实施中,目标存储节点可以将集合信息修改记录中的所有修改日志中的数据的标识信息,与其他存储设备成员的数据修改记录中的所有修改日志中的数据的标识信息,进行逐一对比,将不一致的数据的标识信息确定为与丢失数据对应的标识信息。
在一些可选的实施方式中,目标存储节点也可以将集合信息修改记录中的所有修改日志中的日志序列号,与其他存储设备成员的所有修改日志中的日志序列号,进行逐一对比,将不一致的日志序列号对应的修改日志确定为与丢失数据相关的修改日志。进一步,将与丢失数据相关的修改日志中的数据的标识信息,确定为与丢失数据对应的标识信息。
不论通过去前述哪种方法确定出丢失数据对应的标识信息后,目标存储节点都可以将分析过程和丢失数据的标识信息存储为文本格式的分析日志。这样,尽管数据发生了丢失,也可以给技术人员或客户提供分析日志。技术人员或客户可以根据分析日志,确定丢失了哪些数据,以采取相应的补救方案。
在一些可选的实施方式中,当根据集合信息修改记录,以及至少一个存储设备成员上读取的数据修改记录,确定存在丢失数据后,可以进行下述步骤S407。
步骤S407,根据存储设备成员上读取的数据修改记录,以及目标成员上存储的数据,对存储设备集合中除目标成员外的其他存储设备成员进行数据同步。
这样,在判断出删除目标存储设备不会丢失数据后,可以将目标成员上存储的数据同步到其他存储设备成员上,可以使得存储设备集合中的所有成员存储的数据具有一致性。
具体地,上述步骤S307包括:
S4071,将目标成员的数据修改记录中的日志序列号与其他存储设备成员的数据修改记录中的日志序列号不一致的序列号,确定为目标序列号。
S4072,从目标成员的数据修改记录中读取与目标序列号对应数据的标识信息,确定为目标标识信息。
S4073,根据目标标识信息,从目标成员上读取目标数据,并将目标数据同步到其他存储设备成员上。
这样,通过目标成员和其他存储设备成员的日志序列号进行比较,可以较快确定出目标标识信息,进一步,可以提高数据同步的效率。
在本实施例中提供了一种确定存在丢失数据的方法,可用于上述的存储集群中的任一存储节点,存储节点可以是计算机设备,例如,服务器。在本实施例中,以待处理的存储设备集合为超故障域的pg、存储设备为OSD、集合信息修改记录为pginfo、数据修改记录为pglog、存储设备成员为probe成员为例进行说明。图5是根据本发明实施例的确定存在丢失数据的方法的流程图,如图5所示,该流程包括如下步骤:
步骤S501,执行数据完整性校验工具。
步骤S502,确定是否存在超故障域的pg,如果是,执行步骤S504,如果否执行步骤S509。
在实施中,存储节点中还记录有每个OSD的osdmap,osdmap用于指示该OSD的状态以及是否在数据同步过程(peering过程),OSD的状态包括工作状态(up)和宕机状态(down)。在存储集群的使用过程中,网络可能会出现震荡,进一步,会导致pg中的OSD的状态在up和down之间来回切换。OSD的状态每发生一次变化,osdmap都会进行变更。每次osdmap发生变化,都会触发pg内的数据同步过程,此时osdmap会记录OSD在数据同步过程中。例如,当OSD从up状态切换为down状态时,osdmap记录“down”,同时OSD会被触发peering过程,osdmap记录“peering”。此时OSD的osdmap记录为“down+peeing”。
这样,目标存储节点可以从其他存储节点上获取到存储集群中每个OSD的osdmap,进一步,根据每个OSD对应的osdmap确定是否存在超故障域的pg,具体地,当osdmap为“down+perring”时,目标存储节点可以将对应的OSD所在的pg确定为超故障域的pg。
步骤S503,获取超故障域的pg的pginfo,确定是否获取成功,如果是,则执行步骤S504,如果否,则执行步骤S509。
步骤S504,根据超故障域的pginfo确定出超故障域的pg的probe成员。
步骤S505,根据超故障域的pginfo和probe成员的pglog,确定出权威成员的数量。
步骤S506,确定权威成员的数量是否满足指定条件。如果是,则执行步骤S507。如果否,则执行步骤S509。
步骤S507,根据超故障域的pg的pginfo和probe成员的pglog,确定出丢失数据的标识信息。
步骤S508,输出丢失数据的标识信息,以及步骤S504到步骤S507的分析过程。
步骤S509,结束。
上述操作步骤的具体实现过程均已在前文中做了详细描述,因此这里不再过多赘述。
在本实施例中还提供了一种确定数据丢失的装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本实施例提供一种确定数据丢失的装置,如图6所示,包括:获取模块601、读取模块602,以及确定模块603。
获取模块601,用于:获取待处理的存储设备集合,其中,每一个存储设备集合均位于一个存储节点上;根据存储设备集合,获取与存储设备集合对应的集合信息修改记录;
读取模块602,用于:从集合信息修改记录中,读取存储设备集合中存储设备成员的成员信息,存储设备集合包括多个存储设备成员,且多个存储设备成员中包括至少一个目标存储设备;分别从存储设备集合中除目标存储设备之外的至少一个存储设备成员上读取与自身对应的数据修改记录;确定模块603,用于根据集合信息修改记录,以及至少一个存储设备成员上读取的数据修改记录,确定是否存在丢失数据。
在一些可选的实施方式中,确定模块603,包括:
第一确定单元,用于将集合信息修改记录与至少一个存储设备成员上读取的数据修改记录进行比较,确定是否存在存储有最新写入数据的目标成员;
第二确定单元,用于当存储设备集合为副本池类型,且确定存在目标成员时,则不存在丢失数据;或者,当存储设备集合为副本池类型,且确定不存在目标成员时,则存在丢失数据。
在一些可选的实施方式中,当存储设备集合为纠删池类型时,确定模块603还包括:
统计单元,用于统计目标成员的数量,其中,不同目标成员中存储的最新写入的数据不同;
第三确定单元,用于当目标成员的数量大于或者等于预设阈值时,确定不存在丢失数据;
或者,当目标成员的数量小于预设阈值时,确定存在丢失数据,其中,预设阈值大于2。
在一些可选的实施方式中,集合信息修改记录和数据修改记录中均包括至少一条修改日志,且每一条修改日志均配置有相应的日志序列号,第一确定单元,用于:
当从至少一个存储设备成员中的一个或多个存储设备成员读取的数据修改记录中的日志序列号中存在与集合信息修改记录中最新修改日志的日志序列号相一致的序列号时,确定一个或多个存储设备成员为目标成员。
在一些可选的实施方式中,该装置还包括:对比模块604;
对比模块,用于将集合信息修改记录中的数据的标识信息与至少一个存储设备成员上读取的数据修改记录中的数据的标识信息进行对比,得到与丢失数据对应的标识信息。
在一些可选的实施方式中,该装置还包括:同步模块605;
同步模块,用于根据存储设备成员上读取的数据修改记录,以及目标成员上存储的数据,对存储设备集合中除目标成员外的其他存储设备成员进行数据同步。
在一些可选的实施方式中,同步模块,包括:
第五确定单元,用于:将目标成员的数据修改记录中的日志序列号与其他存储设备成员的数据修改记录中的日志序列号不一致的序列号,确定为目标序列号;
从目标成员的数据修改记录中读取与目标序列号对应数据的标识信息,确定为目标标识信息;
第一同步单元,用于根据目标标识信息,从目标成员上读取目标数据,并将目标数据同步到其他存储设备成员上。
上述各个模块和单元的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
本实施例中的确定数据丢失的装置是以功能单元的形式来呈现,这里的单元是指ASIC(Application Specific Integrated Circuit,专用集成电路)电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
本实施例提供的确定数据丢失的装置,在确定出目标存储设备发生损坏后,该存储设备上存储的所有数据都无法获取到。存储节点存储的集合信息修改记录中包括存储设备集合中每个存储设备的数据修改记录,存储设备上存储有自身的数据修改记录。本方法通过对比集合信息修改记录和存储设备集合中除了目标存储设备之外的其他存储设备的数据修改记录,就可以确定出其他存储设备的数据修改记录是否覆盖了集合信息修改记录,也即可以确定出删除目标存储设备是否会存在丢失数据
本发明实施例还提供一种计算机设备,具有上述图6所示的确定数据丢失的装置。
请参阅图7,图7是本发明可选实施例提供的一种计算机设备的结构示意图,如图7所示,该计算机设备包括:一个或多个处理器10、存储器20,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相通信连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在计算机设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在一些可选的实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个计算机设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图7中以一个处理器10为例。
处理器10可以是中央处理器,网络处理器或其组合。其中,处理器10还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路,可编程逻辑器件或其组合。上述可编程逻辑器件可以是复杂可编程逻辑器件,现场可编程逻辑门阵列,通用阵列逻辑或其任意组合。
其中,所述存储器20存储有可由至少一个处理器10执行的指令,以使所述至少一个处理器10执行实现上述实施例示出的方法。
存储器20可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器20可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些可选的实施方式中,存储器20可选包括相对于处理器10远程设置的存储器,这些远程存储器可以通过网络连接至该计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
存储器20可以包括易失性存储器,例如,随机存取存储器;存储器也可以包括非易失性存储器,例如,快闪存储器,硬盘或固态硬盘;存储器20还可以包括上述种类的存储器的组合。
该计算机设备还包括通信接口30,用于该计算机设备与其他设备或通信网络通信。
本发明实施例还提供了一种计算机可读存储介质,上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可记录在存储介质,或者被实现通过网络下载的原始存储在远程存储介质或非暂时机器可读存储介质中并将被存储在本地存储介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件的存储介质上的这样的软件处理。其中,存储介质可为磁碟、光盘、只读存储记忆体、随机存储记忆体、快闪存储器、硬盘或固态硬盘等;进一步地,存储介质还可以包括上述种类的存储器的组合。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件,当软件或计算机代码被计算机、处理器或硬件访问且执行时,实现上述实施例示出的方法。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。

Claims (10)

1.一种确定数据丢失的方法,其特征在于,所述方法应用于存储集群中的任一存储节点,所述方法包括:
获取待处理的存储设备集合,其中,每一个所述存储设备集合均位于一个存储节点上;
根据所述存储设备集合,获取与所述存储设备集合对应的集合信息修改记录;
从所述集合信息修改记录中,读取所述存储设备集合中存储设备成员的成员信息,所述存储设备集合包括多个存储设备成员,且多个所述存储设备成员中包括至少一个目标存储设备;
分别从存储设备集合中除所述目标存储设备之外的至少一个存储设备成员上读取与自身对应的数据修改记录;
根据所述集合信息修改记录,以及至少一个所述存储设备成员上读取的数据修改记录,确定是否存在丢失数据。
2.根据权利要求1所述的方法,其特征在于,所述根据所述集合信息修改记录,以及至少一个所述存储设备成员上读取的数据修改记录,确定是否存在丢失数据,包括:
将所述集合信息修改记录与至少一个所述存储设备成员上读取的数据修改记录进行比较,确定是否存在存储有最新写入数据的目标成员;
当所述存储设备集合为副本池类型,且确定存在所述目标成员时,则不存在所述丢失数据;或者,当所述存储设备集合为副本池类型,且确定不存在所述目标成员时,则存在所述丢失数据。
3.根据权利要求2所述的方法,其特征在于,当所述存储设备集合为纠删池类型时,所述方法还包括:
统计所述目标成员的数量,其中,不同目标成员中存储的最新写入的数据不同;
当所述目标成员的数量大于或者等于预设阈值时,确定不存在所述丢失数据;
或者,当所述目标成员的数量小于所述预设阈值时,确定存在所述丢失数据,其中,所述预设阈值大于2。
4.根据权利要求2所述的方法,其特征在于,所述集合信息修改记录和所述数据修改记录中均包括至少一条修改日志,且每一条所述修改日志均配置有相应的日志序列号,所述将所述集合信息修改记录与至少一个所述存储设备成员上读取的数据修改记录进行比较,确定是否存在存储有最新写入数据的目标成员,包括:
当从至少一个所述存储设备成员中的一个或多个存储设备成员读取的数据修改记录中的日志序列号中存在与所述集合信息修改记录中最新修改日志的日志序列号相一致的序列号时,确定一个或多个存储设备成员为所述目标成员。
5.根据权利要求1-4任一项所述的方法,其特征在于,当根据所述集合信息修改记录,以及至少一个所述存储设备成员上读取的数据修改记录,确定存在丢失数据后,所述方法还包括:
将所述集合信息修改记录中的数据的标识信息与至少一个所述存储设备成员上读取的数据修改记录中的数据的标识信息进行对比,得到与所述丢失数据对应的标识信息。
6.根据权利要求1-4任一项所述的方法,其特征在于,当根据所述集合信息修改记录,以及至少一个所述存储设备成员上读取的数据修改记录,确定不存在丢失数据后,所述方法还包括:
根据所述存储设备成员上读取的数据修改记录,以及所述目标成员上存储的数据,对所述存储设备集合中除所述目标成员外的其他存储设备成员进行数据同步。
7.根据权利要求6所述的方法,其特征在于,所述根据所述存储设备成员上读取的数据修改记录、所述目标成员上存储的数据修改记录,以及所述目标成员上存储的数据,对所述存储设备集合中除所述目标成员外的其他存储设备成员进行数据同步,包括:
将所述目标成员的数据修改记录中的日志序列号与其他存储设备成员的数据修改记录中的日志序列号不一致的序列号,确定为目标序列号;
从所述目标成员的数据修改记录中读取与所述目标序列号对应数据的标识信息,确定为目标标识信息;
根据所述目标标识信息,从所述目标成员上读取目标数据,并将所述目标数据同步到所述其他存储设备成员上。
8.一种确定数据丢失的装置,其特征在于,所述装置包括:
获取模块,用于获取待处理的存储设备集合,其中,每一个所述存储设备集合均位于一个存储节点上;根据所述存储设备集合,获取与所述存储设备集合对应的集合信息修改记录;
读取模块,用于从所述集合信息修改记录中,读取所述存储设备集合中存储设备成员的成员信息,所述存储设备集合包括多个存储设备成员,且多个所述存储设备成员中包括至少一个目标存储设备;分别从存储设备集合中除所述目标存储设备之外的至少一个存储设备成员上读取与自身对应的数据修改记录;
确定模块,用于根据所述集合信息修改记录,以及至少一个所述存储设备成员上读取的数据修改记录,确定是否存在丢失数据。
9.一种计算机设备,其特征在于,包括:
存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1至7中任一项所述的确定丢失数据的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令用于使计算机执行权利要求1至7中任一项所述的确定丢失数据的方法。
CN202311093044.9A 2023-08-28 2023-08-28 确定数据丢失的方法、装置、设备及存储介质 Pending CN117149487A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311093044.9A CN117149487A (zh) 2023-08-28 2023-08-28 确定数据丢失的方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311093044.9A CN117149487A (zh) 2023-08-28 2023-08-28 确定数据丢失的方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN117149487A true CN117149487A (zh) 2023-12-01

Family

ID=88905533

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311093044.9A Pending CN117149487A (zh) 2023-08-28 2023-08-28 确定数据丢失的方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN117149487A (zh)

Similar Documents

Publication Publication Date Title
CN110046029A (zh) 应用于集群内多级缓存的数据处理方法和装置
CN113111129A (zh) 数据同步方法、装置、设备及存储介质
CN108874441B (zh) 一种板卡配置方法、装置、服务器和存储介质
CN110910249B (zh) 一种数据处理方法、装置、节点设备及存储介质
CN105573872B (zh) 数据存储系统的硬盘维护方法和装置
CN111858605A (zh) 数据库自动化审计方法、系统、设备及存储介质
CN109918221B (zh) 一种硬盘报错解析方法、系统、终端及存储介质
CN114442930A (zh) 组磁盘阵列的控制方法、装置、电子设备及可读存储介质
CN111694684A (zh) 存储设备的异常构造方法、装置、电子设备及存储介质
CN117131014A (zh) 数据库迁移方法、装置、设备及存储介质
CN116680055A (zh) 一种异步任务处理方法、装置、计算机设备及存储介质
CN116501259A (zh) 磁盘组双活同步方法、装置、计算机设备及存储介质
US8250402B2 (en) Method to precondition a storage controller for automated data collection based on host input
CN117149487A (zh) 确定数据丢失的方法、装置、设备及存储介质
CN114490196A (zh) 数据库切换方法、系统、设备及介质
CN113821369A (zh) 一种内存巡检的方法、装置及介质
CN112463444A (zh) 一种数据不一致修复方法及相关装置
CN106599046B (zh) 分布式文件系统的写入方法及装置
CN111292796B (zh) 一种raid损坏详细信息获取方法、系统、终端及存储介质
CN118152401A (zh) 数据存储方法、装置、设备、存储介质及程序产品
CN110765022B (zh) 自动化测试送样ssd的方法、装置、计算机设备及存储介质
CN117130830A (zh) 对象的数据恢复方法、装置、计算机设备及存储介质
CN107707402B (zh) 一种分布式系统中服务仲裁的管理系统及其管理方法
CN114443360A (zh) 云盘数据的备份方法、装置、电子设备及可读存储介质
CN117453454A (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