CN111698330A - 存储集群的数据恢复方法、装置及服务器 - Google Patents
存储集群的数据恢复方法、装置及服务器 Download PDFInfo
- Publication number
- CN111698330A CN111698330A CN202010540188.4A CN202010540188A CN111698330A CN 111698330 A CN111698330 A CN 111698330A CN 202010540188 A CN202010540188 A CN 202010540188A CN 111698330 A CN111698330 A CN 111698330A
- Authority
- CN
- China
- Prior art keywords
- storage
- information
- node
- target object
- target
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种存储集群的数据恢复方法、装置及服务器,该方法包括:当存储集群出现故障时,从控制节点获取存储信息;根据存储信息中的名称信息,从存储集群的最小存储单元中确定目标最小存储单元,并将目标最小存储单元所在的存储节点确定为目标节点;从目标节点获取目标节点关联的存储区标识;基于目标节点关联的存储区标识,从存储集群的各个存储节点中拉取目标对象文件;其中,目标对象文件记录有存储集群故障前存储的全部或部分数据;根据目标对象文件恢复存储集群故障前存储的数据。本发明实施例可以有效提高存储集群中存储数据的安全可靠性。
Description
技术领域
本发明涉及计算机技术领域,尤其是涉及一种存储集群的数据恢复方法、装置及服务器。
背景技术
块存储是一种“基于存储网络的、可弹性扩展的、可由云服务器进行管理和使用”的原始块级存储卷设备,目前为增加块存储设备的安全可靠性,可以通过将块存储中数据的多个副本存储在不同的存储节点,从而在一个存储节点损坏后还可从其他存储节点中获取数据,其中,数据的副本数量越多数据的安全可靠性越强。虽然通过增加数据的副本数量的方式可以在一定程度上提高数据的安全可靠性,但是当块存储集群遭遇灾难故障无法恢复启动时,块存储集群中所保存的数据将均无法读取,此时将造成数据丢失,也即现有的块存储集群存储数据的安全可靠性仍然较差。
发明内容
有鉴于此,本发明的目的在于提供一种存储集群的数据恢复方法、装置及服务器,可以有效提高存储集群中存储数据的安全可靠性。
第一方面,本发明实施例提供了一种存储集群的数据恢复方法,所述方法包括:当所述存储集群出现故障时,从所述存储集群的控制节点获取所述存储信息,其中,所述控制节点上存储有所述存储集群中各个存储节点的存储信息,所述存储信息包含存储节点中存储有数据的最小存储单元的名称信息;根据所述存储信息中的名称信息,从所述存储集群的最小存储单元中确定目标最小存储单元,并将所述目标最小存储单元所在的存储节点确定为目标节点;从所述目标节点获取所述目标节点关联的存储区标识,其中,所述存储节点上存储有包含与所述存储节点关联的存储区标识;基于所述目标节点关联的存储区标识,从所述存储集群的各个存储节点中拉取目标对象文件;其中,所述目标对象文件记录有所述存储集群故障前存储的全部或部分数据;根据所述目标对象文件恢复所述存储集群故障前存储的数据。
在一种实施方式中,所述存储信息的版本为多个;所述当所述存储集群出现故障时,从所述控制节点获取所述存储信息的步骤,包括:当所述存储集群出现故障时,从所述控制节点获取指定版本的存储信息;其中,所述指定版本包括存储信息的更新时间距离当前时间最近的版本和/或存储信息的名称编号最大的版本。
在一种实施方式中,所述根据所述存储信息中的名称信息,从所述存储集群的最小存储单元中确定目标最小存储单元的步骤,包括:将所述存储信息中指定名称信息对应的最小存储单元,确定为目标最小存储单元;其中,所述目标最小存储单元用于记录所述存储集群故障前存储的数据的数据名称。
在一种实施方式中,所述基于所述目标节点关联的存储区标识,从所述存储集群的各个存储节点中拉取目标对象文件的步骤,包括:读取所述目标节点关联的存储区标识对应的Value值;在所述存储集群的各个所述存储节点中查找文件名称包含所述Value值的目标对象文件,并记录所述目标对象文件的文件信息;其中,所述文件信息包括地址信息、路径信息和文件名称中的一种或多种;利用多个预设的镜像备份进程拉取所述目标对象文件,得到所述目标对象文件记录的数据。
在一种实施方式中,所述文件名称还包括最小存储单元的名称信息;在所述记录所述目标对象文件的文件信息的步骤之后,所述方法还包括:利用所述文件名称中最小存储单元的名称信息,对所述目标对象文件进行去重处理,以使所述最小存储单元仅对应一个目标对象文件。
在一种实施方式中,所述根据所述目标对象文件恢复所述存储集群故障前存储的数据的步骤,包括:根据所述目标对象文件所在的最小存储单元的名称信息和内存信息,确定各个所述目标对象文件对应的偏移位置;按照各个所述目标对象文件的偏移位置,写入各个所述目标对象文件记录的数据,得到所述存储集群故障前存储的数据。
在一种实施方式中,所述根据所述目标对象文件所在的最小存储单元的名称信息和内存信息,确定各个所述目标对象文件对应的偏移位置的步骤,包括:按照所述目标对象文件所在的最小存储单元的名称信息对所述目标对象文件进行排序;其中,所述最小存储单元的名称信息包括名称编号;基于所述排序和所述目标对象文件所在的最小存储单元的内存信息,确定各个所述目标对象文件的偏移起始点和偏移终止点;其中,所述偏移位置包括偏移起始点和偏移终止点。
第二方面,本发明实施例还提供一种存储集群的数据恢复装置,所述装置包括:存储信息获取模块,用于当所述存储集群出现故障时,从所述存储集群的控制节点获取所述存储信息,其中,所述控制节点上存储有所述存储集群中各个存储节点的存储信息,所述存储信息包含存储节点中存储有数据的最小存储单元的名称信息;节点确定模块,用于根据所述存储信息中的名称信息,从所述存储集群的最小存储单元中确定目标最小存储单元,并将所述目标最小存储单元所在的存储节点确定为目标节点;标识获取模块,用于从所述目标节点获取所述目标节点关联的存储区标识,其中,所述存储节点上存储有包含与所述存储节点关联的存储区标识;文件拉取模块,用于基于所述目标节点关联的存储区标识,从所述存储集群的各个存储节点中拉取目标对象文件;其中,所述目标对象文件记录有所述存储集群故障前存储的全部或部分数据;数据恢复模块,用于根据所述目标对象文件恢复所述存储集群故障前存储的数据。
第三方面,本发明实施例还提供一种服务器,包括处理器和存储器;所述存储器上存储有计算机程序,所述计算机程序在被所述处理器运行时执行如第一方面提供的任一项所述的方法。
第四方面,本发明实施例还提供一种计算机存储介质,用于储存为第一方面提供的任一项所述方法所用的计算机软件指令。
本发明实施例带来了以下有益效果:
本发明实施例提供的一种存储集群的数据恢复方法、装置及服务器,该方法首先在存储集群出现故障时从存储集群的控制节点获取存储信息,然后根据存储信息中的名称信息,从存储集群的最小存储单元中确定目标最小存储单元,并将目标最小存储单元所在的存储节点确定为目标节点,然后从目标节点获取目标节点关联的存储区标识,从而基于目标节点关联的存储区标识从存储集群的各个存储节点中拉取目标对象文件(记录有存储集群故障前存储的全部或部分数据),进而根据目标对象文件恢复存储集群故障前存储的数据。其中,上述控制节点上存储有存储集群中各个存储节点的存储信息,存储信息包含存储节点中存储有数据的最小存储单元的名称信息,以及存储节点上存储有包含与存储节点关联的存储区标识。上述方法基于存储信息内的名称信息确定目标最小存储单元和目标最小存储单元所在的目标节点,以从目标节点中获取存储区标识,从而从基于该存储区标识从存储集群中的各个存储节点中拉取记录有全部或部分数据的目标对象文件,进而基于目标对象文件恢复存储集群故障前存储的数据,本发明实施例通过上述方法逆向推理存储集群存储数据的过程,以拉取存储集群中的数据并重新组织成存储集群可识别的结构,从而在存储集群在于灾难故障无法恢复启动时仍能恢复故障前存储的数据,进而有效提高了存储集群存储数据的安全可靠性。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种存储集群的结构示意图;
图2为本发明实施例提供的一种存储集群的数据恢复方法的流程示意图;
图3为本发明实施例提供的另一种存储集群的数据恢复方法的流程示意图;
图4为本发明实施例提供的一种存储集群的数据恢复装置的结构示意图;
图5为本发明实施例提供的一种服务器的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合实施例对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前,当块存储集群遭遇灾难故障无法恢复启动时,块存储集群中所保存的数据将均无法读取,此时将造成数据丢失,导致块存储集群存储数据的安全可靠性较差,基于此,本发明实施提供了一种存储集群的数据恢复方法、装置及服务器,可以有效提高存储集群中存储数据的安全可靠性。
为便于对本实施例进行理解,首先对本发明实施例所公开的一种存储集群的数据恢复方法进行详细介绍,该方法用于对存储集群中的数据进行恢复,为便于对存储集群进行理解,本发明实施例提供了一种存储集群的结构示意图,如图1所示,存储集群包括控制节点(Monitor)和多个存储节点(OSD,Object-based Storage),存储节点又包括多个OSD实例,每个OSD实例又包括多个最小存储单元(Object),其中,上述存储集群可以为Ceph存储集群,控制节点上存储有各个存储节点的存储信息,存储信息包含存储有数据的最小存储单元的名称信息,存储节点上存储有包含与存储节点关联的存储区标识,存储区标识可以为块存储设备(Image)的标识,块存储设备为客户端使用上述Ceph存储集群的设备。
基于图1所示的存储集群的结构示意图,本发明实施例对存储集群的数据恢复方法进行详细介绍,参见图2所示的一种存储集群的数据恢复方法的流程示意图,该方法主要包括以下步骤S202至步骤S210:
步骤S202,当存储集群出现故障时,从存储集群的控制节点获取存储信息。
当存储集群出现故障时用户将无法访问存储集群中存储的数据,此时用户可从存储集群的控制节点中获取各个存储节点的存储信息(OSDMap),在实际应用中,控制节点中存储有多个版本的OSDMap,OSDMap可以体现所有存储节点的改变,例如,各个存储节点的加入、退出或权重变化等信息均可反映到OSDMap上,伴随着各个存储节点存入或删除数据的过程将生成不同版本的OSDMap,本发明实施例可从控制节点中仅获取指定版本的存储信息,在一种实施方式中,用户可以通过访问第一指定路径来获取存储节点中存储的指定版本的存储信息。
步骤S204,根据存储信息中的名称信息,从存储集群的最小存储单元中确定目标最小存储单元,并将目标最小存储单元所在的存储节点确定为目标节点。
在实际应用中,不同最小存储单元的名称信息可能不同,以及不同名称信息的最小存储单元存储的数据可能不同,根据名称信息可从存储集群中查找到用于存储数据的镜像文件的最小存储单元,其中,镜像文件中包含有存储集群中存储的数据的数据名称,将该最小存储单元确定为目标最小存储单元,并查看目标最小存储单元所在的OSD实例,且进一步查看该OSD实例所在的存储节点,进而将该OSD实例所在的存储节点确定为目标节点。
步骤S206,从目标节点获取目标节点关联的存储区标识。在一种实施方式中,可通过访问第二指定路径查看目标节点中存储的Image名称(也即,上述存储区标识)。
步骤S208,基于目标节点关联的存储区标识,从存储集群的各个存储节点中拉取目标对象文件。
其中,目标对象文件记录有存储集群故障前存储的全部或部分数据。在一种实施方式中,可以查找目标节点关联的存储区标识对应的Value值,该Value值可以体现存储区标识对应的ID(Identity document,身份证标识号)信息,将所有存储节点中包含有该Value值的对象文件均可确定为目标对象文件,并从各个存储节点中分别拉取对应的目标对象文件。
步骤S210,根据目标对象文件恢复存储集群故障前存储的数据。
在一种实施方式中,目标对象文件中包含有该目标对象文件的编号和大小,可以按照编号顺序对各个目标对象文件进行排序,并结合各个目标对象文件的大小依次确定各个目标对象文件的位置偏移量,进而基于该位置偏移量拼接各个目标对象文件,以恢复存储集群故障前存储的数据。
本发明实施例提供的上述存储集群的数据恢复方法,基于存储信息内的名称信息确定目标最小存储单元和目标最小存储单元所在的目标节点,以从目标节点中获取存储区标识,从而从基于该存储区标识从存储集群中的各个存储节点中拉取记录有全部或部分数据的目标对象文件,进而基于目标对象文件恢复存储集群故障前存储的数据,本发明实施例通过上述方法逆向推理存储集群存储数据的过程,以拉取存储集群中的数据并重新组织成存储集群可识别的结构,从而在存储集群在于灾难故障无法恢复启动时仍能恢复故障前存储的数据,进而有效提高了存储集群存储数据的安全可靠性。
为便于对上述步骤S202进行理解,本发明实施例提供了一种当存储集群出现故障时,从控制节点获取存储信息的具体实施方式,其中,存储信息的版本为多个,因此在从控制节点获取存储信息时,可以从控制节点获取指定版本的存储信息,指定版本包括存储信息的更新时间距离当前时间最近的版本和/或存储信息的名称编号最大的版本。在实际应用中,每生成一个新版本的OSDMap,该版本的OSDMap的名称编号将随之增大,从而更新时间距离当前时间最近的版本的OSDMap名称编号最大。在一种实施方式中,可基于第一指定路径访问控制节点的数据库,进而从控制节点的数据库中获取指定版本的存储信息。例如,第一指定路径为“/var/lib/ceph/mon/ceph-mon1/store.db/”,指定版本为最后一个版本,基于该第一指定路径访问控制节点的数据库,并对控制节点的数据库中存储的OSDMap进行过滤得到最后一个(last_version)版本的OSDMap。另外,继续读取控制节点的数据库可以获取last_version版本的OSDMap的具体内容,也即读取控制节点的数据库可以获取指定版本的存储信息中所包含的最小存储单元的名称信息。
在一种实施方式中,本发明实施例在执行上述步骤S204时,可以将存储信息中指定名称信息对应的最小存储单元,确定为目标最小存储单元,其中,目标最小存储单元用于记录存储集群故障前存储的数据的数据名称。具体的,名称信息为“rbd_directory”的最小存储单元可通过列表形式记录存储集群故障前存储的数据的数据名称。在一种具体的实施方式中,利用Ceph存储集群提供的osdmaptool工具读取存储信息中各个最小存储单元的名称信息,并将名称信息为“rbd_directory”的最小存储单元确定为目标最小存储单元。
本发明实施例提供了一种基于目标节点关联的存储区标识,从存储集群的各个存储节点中拉取目标对象文件的具体实施方式,参见如下步骤1至步骤3:
步骤1,读取目标节点关联的存储区标识对应的Value值。其中,Value值可以体现存储区标识对应的ID信息。在一种实施方式中,可以基于第二指定路径访问目标节点的数据库,查找包含有指定字符串的字段,进而基于查找到的字段获知目标节点关联的存储区标识(也即,Image名称),基于该存储区标识继续读取目标节点的数据库中的Value值。例如,第二指定路径为“/var/lib/ceph/osd/ceph-1/current/omap”,指定字符串为“name_”,则在实际应用中,可以为通过访问目标节点的第二指定路径“/var/lib/ceph/osd/ceph-1/current/omap”查找包含有“name_”字符串的字段,假设查找得到如下结果:
_USER_0000000000000113_USER_:name_test;
_USER_0000000000000113_USER_:name_test-1,其中,字符串“name_”后面的字符串即为Image名称。
基于上述查询结果,继续读取目标节点的数据库中key为“_USER_0000000000000113_USER_:name_test”的Value值,会得到一个12位的数字串,假设得到的Value值为“37e06b8b4567”。
步骤2,在存储集群的各个存储节点中查找文件名称包含Value值的目标对象文件,并记录目标对象文件的文件信息。其中,文件信息包括地址信息、路径信息和文件名称中的一种或多种,文件名称还包括最小存储单元的名称信息。例如,在所有存储节点中查找文件名称包含rbd_data.37ad6b8b4567”的目标对象文件,并将目标对象文件所在的存储节点的IP信息、路径信息和文件名称保存在一个文件中。
另外,本发明实施例在利用多个预设的镜像备份进行拉取目标对象文件之前,可以利用文件名称中最小存储单元的名称信息,对目标对象文件进行去重处理,以使最小存储单元仅对应一个目标对象文件。例如,目标对象文件1所在的最小存储单元的名称信息与目标对象文件2所在的最小存储单元的名称信息相同,说明目标对象文件1和目标对象文件2处于同一最小存储单元内,此时可随机去除目标对象文件1或目标对象文件2,从而保证该最小存储单元仅对应一个目标对象文件。
步骤3,利用多个预设的镜像备份进程拉取目标对象文件,得到目标对象文件记录的数据。在一种实施方式中,镜像备份进行可以为rsync进程,也即利用rsync进程拉取最小存储单元中存储的目标对象文件。
对于前述步骤S210,可参考如下步骤a至步骤b执行根据目标对象文件恢复存储集群故障前存储的数据的步骤:
步骤a,根据目标对象文件所在的最小存储单元的名称信息和内存信息,确定各个目标对象文件对应的偏移位置。其中,目标对象文件中包含有该目标对象文件所在的最小存储单元的名称信息和内存信息,内存信息用于表征目标对象文件的大小。在一种实施方式中,可按如下步骤a1至步骤a2执行根据目标对象文件所在的最小存储单元的名称信息和内存信息的步骤:
步骤a1,按照目标对象文件所在的最小存储单元的名称信息对目标对象文件进行排序。其中,最小存储单元的名称信息包括名称编号(object number)。在一种实施方式中,可以按照目标对象文件所在的最小存储单元的名称编号由小到大(或由大到小)的顺序对目标对象文件进行排序。例如,目标对象文件A对应的名称信息为000001,目标对象文件B对应的名称信息为000002,目标对象文件C对应的名称信息为000003,则可确定排序结果为“目标对象文件A、目标对象文件B、目标对象文件C”。
步骤a2,基于排序和目标对象文件所在的最小存储单元的内存信息(objectsize),确定各个目标对象文件的偏移起始点和偏移终止点。其中,偏移位置包括偏移起始点和偏移终止点。例如,假设目标对象文件A的内存信息为x1,目标对象文件B的内存信息为x2,目标对象文件C的内存信息为x3,假设起始点为“X”,则目标对象文件A的偏移起始点为“X”,偏置终止点为“X+x1”,目标对象文件B的偏移起始点为“X+x1+1”,偏移终止点为“X+x1+1+x2”,以此类推。
步骤b,按照各个目标对象文件的偏移位置,写入各个目标对象文件记录的数据,得到存储集群故障前存储的数据。在一种实施方式中,可按照上述偏移位置将目标对象文件记录的数据写入Image设备中,从而得到完整的Image数据,其中,该完整的Image数据即为出处集群故障前存储的数据。
为便于对上述实施例提供的存储集群的数据恢复方法进行理解,本发明实施例提供了另一种存储集群的数据恢复方法,参见图3所示的另一种存储集群的数据恢复方法的流程示意图,该方法主要包括以下步骤S302至步骤S314:
步骤S302,获取目标OSDMap版本。其中,OSDMap即为上述存储信息,目标OSDMap版本可以为last_version版本,具体获取过程可前述实施例,本发明实施例在此不再赘述。
步骤S304,获取目标OSDMap版本的数据内容。其中,目标OSDMap版本的数据内容也即last_version版本的OSDMap中所包含的最小存储单元的名称信息,在一种实施方式中,可通过第一指定路径访问控制节点的数据库,进而获得目标OSDMap版本的数据内容。
步骤S306,根据数据内容确定目标最小存储单元,并确定目标最小存储单元所在的目标OSD实例。在一种实施方式中,可通过osdmaptool工具查找名称信息为“rbd_directory”的最小存储单元,并将查找到的最小存储单元确定为目标最小存储单元。
步骤S308,从目标OSD实例所在的存储服务器(也即,目标节点)中读取Image名称(也即,上述存储区标识)。在一种实施方式中,可通过第而指定路径访问目标节点的数据库,进而获得Image名称。
步骤S310,获取Image名称与ID信息之间的对应关系。在一种实施方式中,可通过读取目标节点的数据库中的key值包含Image名称的Value值,进而将读取的Value值作为ID信息,进而得到Image名称和ID信息之间的对应关系。
步骤S312,在各个OSD节点(也即,存储节点)中收集包含有与ID信息相同的object文件(也即,上述目标对象文件)。在一种实施方式中,可启动多个rsync进程来拉取object文件到本地。
步骤S314,将object文件拼接为Image文件。在具体实现时,每个object文件名中都有object number,我们可以通过object number和object size来确定object文件在image设备中的offset位置(也即,上述偏移位置),在offset位置写入object文件,即可得到完整的Image文件,由于存储结构没有改变,因此Image文件可以成功导入到Ceph存储集群。
综上所述,本发明实施例在Ceph存储集群遭遇灾难故障无法恢复启动时,可将故障前存储的数据重新组织成Ceph存储集群可识别的存储结构,并导入到新建的Ceph存储集群中,从而避免数据丢失,继续为用户提供块存储服务,有效提高了存储集群存储数据的安全可靠性。
对于前述实施例提供的存储集群的数据恢复方法,本发明实施例提供了一种存储集群的数据恢复装置,参见图4所示的一种存储集群的数据恢复装置的结构示意图,该装置包括以下部分:
存储信息获取模块402,用于当存储集群出现故障时,从存储集群的控制节点获取存储信息。
节点确定模块404,用于根据存储信息中的名称信息,从存储集群的最小存储单元中确定目标最小存储单元,并将目标最小存储单元所在的存储节点确定为目标节点,其中,控制节点上存储有存储集群中各个存储节点的存储信息,存储信息包含存储节点中存储有数据的最小存储单元的名称信息。
标识获取模块406,用于从目标节点获取目标节点关联的存储区标识,其中,存储节点上存储有包含与存储节点关联的存储区标识。
文件拉取模块408,用于基于目标节点关联的存储区标识,从存储集群的各个存储节点中拉取目标对象文件;其中,目标对象文件记录有存储集群故障前存储的全部或部分数据。
数据恢复模块410,用于根据目标对象文件恢复存储集群故障前存储的数据。
本发明实施例提供的上述存储集群的数据恢复装置,基于存储信息内的名称信息确定目标最小存储单元和目标最小存储单元所在的目标节点,以从目标节点中获取存储区标识,从而从基于该存储区标识从存储集群中的各个存储节点中拉取记录有全部或部分数据的目标对象文件,进而基于目标对象文件恢复存储集群故障前存储的数据,本发明实施例通过上述方法逆向推理存储集群存储数据的过程,以拉取存储集群中的数据并重新组织成存储集群可识别的结构,从而在存储集群在于灾难故障无法恢复启动时仍能恢复故障前存储的数据,进而有效提高了存储集群存储数据的安全可靠性。
在一种实施方式中,所述存储信息的版本为多个;上述存储信息获取模块402还用于:当所述存储集群出现故障时,从所述控制节点获取指定版本的存储信息;其中,所述指定版本包括存储信息的更新时间距离当前时间最近的版本和/或存储信息的名称编号最大的版本。
在一种实施方式中,上述节点确定模块404还用于:将所述存储信息中指定名称信息对应的最小存储单元,确定为目标最小存储单元;其中,所述目标最小存储单元用于记录所述存储集群故障前存储的数据的数据名称。
在一种实施方式中,上述文件拉取模块408还用于:读取所述目标节点关联的存储区标识对应的Value值;在所述存储集群的各个所述存储节点中查找文件名称包含所述Value值的目标对象文件,并记录所述目标对象文件的文件信息;其中,所述文件信息包括地址信息、路径信息和文件名称中的一种或多种;利用多个预设的镜像备份进程拉取所述目标对象文件,得到所述目标对象文件记录的数据。
在一种实施方式中,所述文件名称还包括最小存储单元的名称信息;上述装置还包括去重模块,用于在所述记录所述目标对象文件的文件信息的步骤之后,利用所述文件名称中最小存储单元的名称信息,对所述目标对象文件进行去重处理,以使所述最小存储单元仅对应一个目标对象文件。
在一种实施方式中,上述数据恢复模块410还用于:根据所述目标对象文件所在的最小存储单元的名称信息和内存信息,确定各个所述目标对象文件对应的偏移位置;按照各个所述目标对象文件的偏移位置,写入各个所述目标对象文件记录的数据,得到所述存储集群故障前存储的数据。
在一种实施方式中,上述数据恢复模块410还用于:按照所述目标对象文件所在的最小存储单元的名称信息对所述目标对象文件进行排序;其中,所述最小存储单元的名称信息包括名称编号;基于所述排序和所述目标对象文件所在的最小存储单元的内存信息,确定各个所述目标对象文件的偏移起始点和偏移终止点;其中,所述偏移位置包括偏移起始点和偏移终止点。
本发明实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
该设备为一种服务器,具体的,该服务器包括处理器和存储装置;存储装置上存储有计算机程序,计算机程序在被所述处理器运行时执行如上所述实施方式的任一项所述的方法。
图5为本发明实施例提供的一种服务器的结构示意图,该服务器100包括:处理器50,存储器51,总线52和通信接口53,所述处理器50、通信接口53和存储器51通过总线52连接;处理器50用于执行存储器51中存储的可执行模块,例如计算机程序。
其中,存储器51可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口53(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。
总线52可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
其中,存储器51用于存储程序,所述处理器50在接收到执行指令后,执行所述程序,前述本发明实施例任一实施例揭示的流过程定义的装置所执行的方法可以应用于处理器50中,或者由处理器50实现。
处理器50可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器50中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器50可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital SignalProcessing,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现成可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器51,处理器50读取存储器51中的信息,结合其硬件完成上述方法的步骤。
本发明实施例所提供的可读存储介质的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见前述方法实施例,在此不再赘述。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种存储集群的数据恢复方法,其特征在于,所述方法包括:
当所述存储集群出现故障时,从所述存储集群的控制节点获取存储信息,其中,所述控制节点上存储有所述存储集群中各个存储节点的存储信息,所述存储信息包含存储节点中存储有数据的最小存储单元的名称信息;
根据所述存储信息中的名称信息,从所述存储集群的最小存储单元中确定目标最小存储单元,并将所述目标最小存储单元所在的存储节点确定为目标节点;
从所述目标节点获取所述目标节点关联的存储区标识,其中,所述存储节点上存储有包含与所述存储节点关联的存储区标识;
基于所述目标节点关联的存储区标识,从所述存储集群的各个存储节点中拉取目标对象文件;其中,所述目标对象文件记录有所述存储集群故障前存储的全部或部分数据;
根据所述目标对象文件恢复所述存储集群故障前存储的数据。
2.根据权利要求1所述的方法,其特征在于,所述存储信息的版本为多个;
所述当所述存储集群出现故障时,从所述控制节点获取所述存储信息的步骤,包括:
当所述存储集群出现故障时,从所述控制节点获取指定版本的存储信息;其中,所述指定版本包括存储信息的更新时间距离当前时间最近的版本和/或存储信息的名称编号最大的版本。
3.根据权利要求1所述的方法,其特征在于,所述根据所述存储信息中的名称信息,从所述存储集群的最小存储单元中确定目标最小存储单元的步骤,包括:
将所述存储信息中指定名称信息对应的最小存储单元,确定为目标最小存储单元;其中,所述目标最小存储单元用于记录所述存储集群故障前存储的数据的数据名称。
4.根据权利要求1所述的方法,其特征在于,所述基于所述目标节点关联的存储区标识,从所述存储集群的各个存储节点中拉取目标对象文件的步骤,包括:
读取所述目标节点关联的存储区标识对应的Value值;
在所述存储集群的各个所述存储节点中查找文件名称包含所述Value值的目标对象文件,并记录所述目标对象文件的文件信息;其中,所述文件信息包括地址信息、路径信息和文件名称中的一种或多种;
利用多个预设的镜像备份进程拉取所述目标对象文件,得到所述目标对象文件记录的数据。
5.根据权利要求4所述的方法,其特征在于,所述文件名称还包括最小存储单元的名称信息;
在所述记录所述目标对象文件的文件信息的步骤之后,所述方法还包括:
利用所述文件名称中最小存储单元的名称信息,对所述目标对象文件进行去重处理,以使所述最小存储单元仅对应一个目标对象文件。
6.根据权利要求1所述的方法,其特征在于,所述根据所述目标对象文件恢复所述存储集群故障前存储的数据的步骤,包括:
根据所述目标对象文件所在的最小存储单元的名称信息和内存信息,确定各个所述目标对象文件对应的偏移位置;
按照各个所述目标对象文件的偏移位置,写入各个所述目标对象文件记录的数据,得到所述存储集群故障前存储的数据。
7.根据权利要求6所述的方法,其特征在于,所述根据所述目标对象文件所在的最小存储单元的名称信息和内存信息,确定各个所述目标对象文件对应的偏移位置的步骤,包括:
按照所述目标对象文件所在的最小存储单元的名称信息对所述目标对象文件进行排序;其中,所述最小存储单元的名称信息包括名称编号;
基于所述排序和所述目标对象文件所在的最小存储单元的内存信息,确定各个所述目标对象文件的偏移起始点和偏移终止点;其中,所述偏移位置包括偏移起始点和偏移终止点。
8.一种存储集群的数据恢复装置,其特征在于,所述装置包括:
存储信息获取模块,用于当所述存储集群出现故障时,从所述存储集群的控制节点获取所述存储信息,其中,所述控制节点上存储有所述存储集群中各个存储节点的存储信息,所述存储信息包含存储节点中存储有数据的最小存储单元的名称信息;
节点确定模块,用于根据所述存储信息中的名称信息,从所述存储集群的最小存储单元中确定目标最小存储单元,并将所述目标最小存储单元所在的存储节点确定为目标节点;
标识获取模块,用于从所述目标节点获取所述目标节点关联的存储区标识,其中,所述存储节点上存储有包含与所述存储节点关联的存储区标识;
文件拉取模块,用于基于所述目标节点关联的存储区标识,从所述存储集群的各个存储节点中拉取目标对象文件;其中,所述目标对象文件记录有所述存储集群故障前存储的全部或部分数据;
数据恢复模块,用于根据所述目标对象文件恢复所述存储集群故障前存储的数据。
9.一种服务器,其特征在于,包括处理器和存储器;
所述存储器上存储有计算机程序,所述计算机程序在被所述处理器运行时执行如权利要求1至7任一项所述的方法。
10.一种计算机存储介质,其特征在于,用于储存为权利要求1至7任一项所述方法所用的计算机软件指令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010540188.4A CN111698330B (zh) | 2020-06-12 | 2020-06-12 | 存储集群的数据恢复方法、装置及服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010540188.4A CN111698330B (zh) | 2020-06-12 | 2020-06-12 | 存储集群的数据恢复方法、装置及服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111698330A true CN111698330A (zh) | 2020-09-22 |
CN111698330B CN111698330B (zh) | 2022-06-21 |
Family
ID=72480967
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010540188.4A Active CN111698330B (zh) | 2020-06-12 | 2020-06-12 | 存储集群的数据恢复方法、装置及服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111698330B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113821176A (zh) * | 2021-09-29 | 2021-12-21 | 重庆紫光华山智安科技有限公司 | 一种数据迁移的处理方法、装置及存储介质 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103064765A (zh) * | 2012-12-28 | 2013-04-24 | 华为技术有限公司 | 数据恢复方法、装置及集群存储系统 |
CN104035836A (zh) * | 2013-03-06 | 2014-09-10 | 阿里巴巴集团控股有限公司 | 集群检索平台中的自动容灾恢复方法及系统 |
CN105159800A (zh) * | 2015-09-10 | 2015-12-16 | 华为技术有限公司 | 数据恢复方法、数据备份方法及相关设备、系统 |
CN106469100A (zh) * | 2015-08-17 | 2017-03-01 | 华为技术有限公司 | 一种数据恢复的方法、存储的方法相应的装置及系统 |
CN107608826A (zh) * | 2017-09-19 | 2018-01-19 | 郑州云海信息技术有限公司 | 一种存储集群的节点的故障恢复方法、装置及介质 |
CN107844388A (zh) * | 2012-11-26 | 2018-03-27 | 亚马逊科技公司 | 从备份系统流式恢复数据库 |
US20180300205A1 (en) * | 2017-04-18 | 2018-10-18 | Netapp, Inc. | Systems and methods for backup and restore of master-less distributed database clusters |
US20190004911A1 (en) * | 2017-06-30 | 2019-01-03 | Wipro Limited | Method and system for recovering data from storage systems |
CN109522287A (zh) * | 2018-09-18 | 2019-03-26 | 平安科技(深圳)有限公司 | 分布式文件存储集群的监控方法、系统、设备及介质 |
CN111124755A (zh) * | 2019-12-06 | 2020-05-08 | 中国联合网络通信集团有限公司 | 集群节点的故障恢复方法、装置、电子设备及存储介质 |
-
2020
- 2020-06-12 CN CN202010540188.4A patent/CN111698330B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107844388A (zh) * | 2012-11-26 | 2018-03-27 | 亚马逊科技公司 | 从备份系统流式恢复数据库 |
CN103064765A (zh) * | 2012-12-28 | 2013-04-24 | 华为技术有限公司 | 数据恢复方法、装置及集群存储系统 |
CN104035836A (zh) * | 2013-03-06 | 2014-09-10 | 阿里巴巴集团控股有限公司 | 集群检索平台中的自动容灾恢复方法及系统 |
CN106469100A (zh) * | 2015-08-17 | 2017-03-01 | 华为技术有限公司 | 一种数据恢复的方法、存储的方法相应的装置及系统 |
CN105159800A (zh) * | 2015-09-10 | 2015-12-16 | 华为技术有限公司 | 数据恢复方法、数据备份方法及相关设备、系统 |
CN109522154A (zh) * | 2015-09-10 | 2019-03-26 | 华为技术有限公司 | 数据恢复方法及相关设备与系统 |
US20180300205A1 (en) * | 2017-04-18 | 2018-10-18 | Netapp, Inc. | Systems and methods for backup and restore of master-less distributed database clusters |
US20190004911A1 (en) * | 2017-06-30 | 2019-01-03 | Wipro Limited | Method and system for recovering data from storage systems |
CN107608826A (zh) * | 2017-09-19 | 2018-01-19 | 郑州云海信息技术有限公司 | 一种存储集群的节点的故障恢复方法、装置及介质 |
CN109522287A (zh) * | 2018-09-18 | 2019-03-26 | 平安科技(深圳)有限公司 | 分布式文件存储集群的监控方法、系统、设备及介质 |
CN111124755A (zh) * | 2019-12-06 | 2020-05-08 | 中国联合网络通信集团有限公司 | 集群节点的故障恢复方法、装置、电子设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
艾锟等: "集群环境下数据库的数据安全保护", 《电力信息化》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113821176A (zh) * | 2021-09-29 | 2021-12-21 | 重庆紫光华山智安科技有限公司 | 一种数据迁移的处理方法、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111698330B (zh) | 2022-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109522290B (zh) | 一种HBase数据块恢复及数据记录提取方法 | |
CN109710455B (zh) | 基于fat32文件系统的删除文件恢复方法及系统 | |
CN111125298A (zh) | 重建ntfs文件目录树的方法、设备及存储介质 | |
CN106844102B (zh) | 数据恢复方法和装置 | |
WO2014067240A1 (zh) | 一种恢复移动终端已删除sqlite文件的方法及装置 | |
CN107783770B (zh) | 页面配置更新方法、装置、服务器和介质 | |
WO2021237467A1 (zh) | 文件上传方法、文件下载方法和文件管理装置 | |
CN107179965B (zh) | 数据库恢复方法及装置 | |
CN111698330B (zh) | 存储集群的数据恢复方法、装置及服务器 | |
CN111984732A (zh) | 在区块链上实现去中心化检索的方法、节点及区块链网络 | |
CN112115002A (zh) | 从损坏或不可信机械硬盘恢复文件的方法及装置 | |
CN114117111A (zh) | 一种信息检索方法、装置及系统 | |
CN107301177B (zh) | 一种文件存储方法及装置 | |
KR101670473B1 (ko) | MySQL InnoDB 데이터베이스에서 삭제된 데이터를 복원하는 방법 | |
CN115796146A (zh) | 一种文件对比方法及装置 | |
CN107169065B (zh) | 一种特定内容的去除方法和装置 | |
CN114281769A (zh) | 磁盘上文件管理方法、装置、计算机设备及存储介质 | |
CN111736778B (zh) | 数据更新方法、装置、系统和电子设备 | |
CN113918762A (zh) | 视频结构化信息的处理方法、装置、设备及存储介质 | |
CN108132971B (zh) | 数据库碎片文件的分析方法和装置 | |
CN113780042A (zh) | 图片集操作方法、图片集标注方法和装置 | |
CN114968963A (zh) | 文件覆盖写方法、装置和电子设备 | |
Sitompul et al. | A file undelete with Aho-Corasick algorithm in file recovery | |
CN107301183B (zh) | 一种文件存储方法及装置 | |
CN110990338B (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 |