一种数据恢复方法和装置制造方法及图纸

技术编号:16969403 阅读:57 留言:0更新日期:2018-01-07 06:27
本申请提供一种数据恢复方法和装置,该方法包括:确定待恢复数据,并将待恢复数据的数据信息写入到第一映射表;在接收到客户端发送的写请求时,判断第一映射表中是否存在与所述写请求匹配的数据信息,如果是,则将与所述写请求匹配的数据信息写入到第二映射表,从第一映射表中删除与所述写请求匹配的数据信息;确定与所述写请求对应的存储节点,并将所述写请求发送给存储节点,以使存储节点根据所述写请求写入数据;在接收到存储节点发送的数据写入完成消息后,确定所述写请求处理完成,从第二映射表中查询出与所述写请求匹配的数据信息,利用查询出的数据信息进行数据恢复。通过本申请的技术方案,可以提升IO服务的可用性,保证数据的可靠性。

【技术实现步骤摘要】
一种数据恢复方法和装置
本申请涉及存储
,尤其涉及一种数据恢复方法和装置。
技术介绍
随着大数据时代的到来,越来越多的分布式系统应运而生,而分布式存储系统(如Ceph等分布式存储系统)是一个重要部分,大数据、云计算产生的数据均要通过分布式存储系统进行存储。其中,分布式存储系统可以包括多个OSD(ObjectStorageDevice,对象存储设备),数据可以存储于OSD中,每个数据(不做特殊说明的情况下,本文中的“数据”均指数据对象)可以保存在至少两个OSD上,从而对数据进行备份,保证数据存储的安全性。例如,分布式存储系统包括OSD1、OSD2和OSD3,可以将数据1存储在OSD1、OSD2,将数据2存储在OSD1、OSD3,以此类推。这样,当某个OSD(如OSD1)发生故障时,还可以从OSD2获得数据1,避免数据1发生丢失。在分布式存储系统,需遵守CAP(ConsistencyAvailabilityPartitiontolerance,一致性、可用性、分区容错性)理论。一致性是指:所有OSD均存储最新的数据;可用性是指:在某个OSD发生故障时,读写操作仍然能够正常执行;分区容忍性是指:在某个OSD发生故障时,仍然能够满足一致性和可用性。在传统方式中,当OSD发生故障时,忽略了一致性和可用性的均衡。
技术实现思路
本申请提供一种数据恢复方法,应用于分布式存储系统中的监控节点,所述分布式存储系统中的每个数据存储在至少两个存储节点,所述方法包括:确定待恢复数据,并将所述待恢复数据的数据信息写入到第一映射表;其中,所述第一映射表用于存储没有与写请求对应的待恢复数据的数据信息;在接收到客户端发送的写请求时,判断所述第一映射表中是否存在与所述写请求匹配的数据信息,如果是,则将与所述写请求匹配的数据信息写入到第二映射表,并从所述第一映射表中删除与所述写请求匹配的数据信息;其中,所述第二映射表用于存储与写请求对应的待恢复数据的数据信息;确定与所述写请求对应的存储节点,并将所述写请求发送给所述存储节点,以使所述存储节点根据所述写请求写入数据;在接收到所述存储节点发送的数据写入完成消息后,确定所述写请求处理完成,并从所述第二映射表中查询出与所述写请求匹配的数据信息,并利用查询出的数据信息进行数据恢复。本申请提供一种数据恢复装置,应用于分布式存储系统中的监控节点,所述分布式存储系统中的每个数据存储在至少两个存储节点,所述装置包括:确定模块,用于确定待恢复数据;表项管理模块,用于将所述待恢复数据的数据信息写入到第一映射表;在接收到客户端发送的写请求时,判断所述第一映射表中是否存在与所述写请求匹配的数据信息,如果是,则将与所述写请求匹配的数据信息写入到第二映射表,并从所述第一映射表中删除与所述写请求匹配的数据信息;其中,所述第一映射表用于存储没有与写请求对应的待恢复数据的数据信息;所述第二映射表用于存储与写请求对应的待恢复数据的数据信息;处理模块,用于确定与所述写请求对应的存储节点,并将所述写请求发送给所述存储节点,以使所述存储节点根据所述写请求写入数据;在接收到所述存储节点发送的数据写入完成消息后,确定所述写请求处理完成,并从所述第二映射表中查询出与所述写请求匹配的数据信息,并利用查询出的数据信息进行数据恢复。基于上述技术方案,本申请实施例中,当存储节点发生故障时,可以确定待恢复数据,并将待恢复数据的数据信息写入到第一映射表,在此基础上,在接收到客户端发送的写请求时,若第一映射表中存在与该写请求匹配的数据信息,则优先处理该写请求,在该写请求处理完成后,才利用与该写请求匹配的数据信息进行数据恢复,而不是先利用与该写请求匹配的数据信息进行数据恢复,在数据恢复完成后才处理该写请求。基于此,通过优先处理客户端发送的写请求,在处理完成后才进行数据恢复,从而提升IO(InputOutput,输入输出)服务的可用性,保证数据的可靠性,并可以达到一致性和可用性的均衡。附图说明为了更加清楚地说明本申请实施例或者现有技术中的技术方案,下面将对本申请实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本申请实施例的这些附图获得其他的附图。图1是本申请一种实施方式中的应用场景视图;图2是本申请一种实施方式中的数据恢复方法的流程图;图3是本申请另一种实施方式中的数据恢复方法的流程图;图4是本申请一种实施方式中的数据恢复装置的结构图;图5是本申请一种实施方式中的监控节点的硬件结构图。具体实施方式在本申请使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。本申请实施例中提出一种数据恢复方法,该方法可以应用于包括监控节点、客户端和多个存储节点(如OSD)的分布式存储系统,且分布式存储系统中的每个数据存储在至少两个存储节点,从而进行数据备份。其中,本文中的数据可以是指定大小(如4M大小)的数据对象(也可以称为数据块)。如图1所示,为本申请实施例的应用场景示意图,图1中以三个存储节点为例进行说明,实际应用中,存储节点的数量还可以更多,对此数量不做限制。图1中以三个客户端为例进行说明,实际应用中,客户端的数量可以更多,对此数量不做限制。参见图2所示,为该数据恢复方法的流程图,该数据恢复方法可以应用于分布式存储系统中的监控节点,该数据恢复方法可以包括以下步骤:步骤201,确定待恢复数据,并将待恢复数据的数据信息写入到第一映射表。其中,该第一映射表用于存储没有与写请求对应的待恢复数据的数据信息。在一个例子中,当某个存储节点(如存储节点111)发生故障时,则监控节点可以将该存储节点111上存储的所有数据均确定为待恢复数据,并确定这些待恢复数据的数据信息,并将这些待恢复数据的数据信息写入到第一映射表。其中,该数据信息可以包括但不限于以下之一或者任意组合:数据标识、源存储节点、目标存储节点、源存储节点的存储位置、目标存储节点的存储位置等。当然,该数据信息并不局限于上述内容,对此数据信息不做限制。例如,假设数据A存储在存储节点111和存储节点112,当存储节点111发生故障时,则监控节点确定数据A为待恢复数据、存储节点112为源存储节点(存储有数据A,且当前未发生故障的存储节点),存储节点113为目标存储节点(即未存储有数据A,且当前未发生故障的存储节点)。此外,源存储节点的存储位置(如存储位置1)是指:数据A当前存储在该存储位置1;目标存储节点的存储位置(如存储位置2)是指:数据A需要备份到该存储位置2。步骤202本文档来自技高网...
一种数据恢复方法和装置

【技术保护点】
一种数据恢复方法,其特征在于,应用于分布式存储系统中的监控节点,所述分布式存储系统中的每个数据存储在至少两个存储节点,所述方法包括:确定待恢复数据,并将所述待恢复数据的数据信息写入到第一映射表;其中,所述第一映射表用于存储没有与写请求对应的待恢复数据的数据信息;在接收到客户端发送的写请求时,判断所述第一映射表中是否存在与所述写请求匹配的数据信息,如果是,则将与所述写请求匹配的数据信息写入到第二映射表,并从所述第一映射表中删除与所述写请求匹配的数据信息;其中,所述第二映射表用于存储与写请求对应的待恢复数据的数据信息;确定与所述写请求对应的存储节点,并将所述写请求发送给所述存储节点,以使所述存储节点根据所述写请求写入数据;在接收到所述存储节点发送的数据写入完成消息后,确定所述写请求处理完成,并从所述第二映射表中查询出与所述写请求匹配的数据信息,并利用查询出的数据信息进行数据恢复。

【技术特征摘要】
1.一种数据恢复方法,其特征在于,应用于分布式存储系统中的监控节点,所述分布式存储系统中的每个数据存储在至少两个存储节点,所述方法包括:确定待恢复数据,并将所述待恢复数据的数据信息写入到第一映射表;其中,所述第一映射表用于存储没有与写请求对应的待恢复数据的数据信息;在接收到客户端发送的写请求时,判断所述第一映射表中是否存在与所述写请求匹配的数据信息,如果是,则将与所述写请求匹配的数据信息写入到第二映射表,并从所述第一映射表中删除与所述写请求匹配的数据信息;其中,所述第二映射表用于存储与写请求对应的待恢复数据的数据信息;确定与所述写请求对应的存储节点,并将所述写请求发送给所述存储节点,以使所述存储节点根据所述写请求写入数据;在接收到所述存储节点发送的数据写入完成消息后,确定所述写请求处理完成,并从所述第二映射表中查询出与所述写请求匹配的数据信息,并利用查询出的数据信息进行数据恢复。2.根据权利要求1所述的方法,其特征在于,所述待恢复数据的数据信息包括数据标识,且所述写请求携带数据标识;所述判断所述第一映射表中是否存在与所述写请求匹配的数据信息的过程,具体包括:判断所述第一映射表中记录的待恢复数据的数据标识与所述写请求携带的数据标识是否相同;如果不同,则确定所述第一映射表中不存在与所述写请求匹配的数据信息;如果相同,则判断所述待恢复数据当前是否正在恢复;如果是,则确定所述第一映射表中不存在与所述写请求匹配的数据信息;如果否,则将所述待恢复数据的数据信息确定为与所述写请求匹配的数据信息。3.根据权利要求2所述的方法,其特征在于,所述判断所述待恢复数据当前是否正在恢复的过程,具体包括:判断所述待恢复数据的数据信息是否设置有特定标记,其中,所述特定标记是所述监控节点在对所述待恢复数据进行恢复时设置的;如果是,则确定所述待恢复数据当前正在恢复;如果否,则确定所述待恢复数据当前没有正在恢复。4.根据权利要求3所述的方法,其特征在于,所述待恢复数据的数据信息包括:源存储节点和目标存储节点,所述方法还包括:从所述第一映射表中选取数据信息,并确定选取出的数据信息对应的源存储节点和目标存储节点,通知所述源存储节点将选取出的数据信息对应的待恢复数据恢复到所述目标存储节点,并为选取出的数据信息设置特定标记;在接收到所述源存储节点发送的数据恢复完成消息后,删除为选取出的数据信息设置的特定标记,并从所述第一映射表中删除所述选取的数据信息。5.根据权利要求1所述的方法,其特征在于,所述待恢复数据的数据信息包括:源存储节点和目标存储节点;所述从所述第二映射表中查询出与所述写请求匹配的数据信息,并利用查询出的数据信息进行数据恢复的过程,具体包括:确定与所述查询出的数据信息对应的源存储节点和目标存储节点;通知所述源存储节点将所述查询出的数据信息对应的数据写入到所述目标存储节点;其中,写入到目标存储节点的数据是根据所述写请求更新后的数据;在接收到所述源存储节点发送的数据恢复完成消息后,确定数据恢复完成,并从所述第二映射表中删除所述查询出的数据信息。6.一种数据恢复装置,其特征在于,应用于分...

【专利技术属性】
技术研发人员:陈云辉
申请(专利权)人:新华三技术有限公司
类型:发明
国别省市:浙江,33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1