CN113316770B - 数据修复方法和装置 - Google Patents

数据修复方法和装置 Download PDF

Info

Publication number
CN113316770B
CN113316770B CN201980089700.3A CN201980089700A CN113316770B CN 113316770 B CN113316770 B CN 113316770B CN 201980089700 A CN201980089700 A CN 201980089700A CN 113316770 B CN113316770 B CN 113316770B
Authority
CN
China
Prior art keywords
data
state storage
hard disk
storage hard
solid
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.)
Active
Application number
CN201980089700.3A
Other languages
English (en)
Other versions
CN113316770A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN113316770A publication Critical patent/CN113316770A/zh
Application granted granted Critical
Publication of CN113316770B publication Critical patent/CN113316770B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本申请提供一种数据修复方法和装置,其中,该方法包括:在确定第一固态存储硬盘的第一数据对象中的至少一个第一数据块出现错误时,获取第二固态存储硬盘的第二数据对象中的至少一个第二数据块,第一数据对象包括N个数据块,第二数据对象包括N个数据块,第一数据对象中的至少一个第一数据块的数据内容与第二数据对象中的至少一个第二数据块的数据内容相同;将至少一个第二数据块写入到第一固态存储硬盘的第一数据对象中。只需要对出现错误的数据块进行数据修复,只需要获取与出现错误的数据块相同的数据块,可以减少处理的数据量,提高修复数据的效率;不需要获取和传输整个数据对象,减少利用的带宽资源,提高数据传输速度。

Description

数据修复方法和装置
技术领域
本申请涉及计算机技术领域,特别涉及数据修复方法和装置。
背景技术
在固态存储硬盘(Solid State Drivers,SSD)中存储的数据是以数据对象为单位进行存储的。可以获取到多个固态存储硬盘所存储的数据对象,为了保证数据的可靠性,会在多个固态存储硬盘上存储相同的数据对象。
现有技术中,当某一个固态存储硬盘所存储的数据对象的数据无法读取的时候,需要从其他固态存储硬盘中获取相同的数据对象的数据,进而去修复发生问题的固态存储硬盘所存储的数据对象。
然而现有技术中,当某一个固态存储硬盘所存储的数据对象的数据无法读取的时候,需要从其他固态存储硬盘中获取相同的数据对象的所有数据,然后将该数据对象的所有数据,写入到发生问题的固态存储硬盘中,进而需要对整个数据对象的数据进行读取和写入,需要处理的数据量较大,造成修复数据的效率较低;并且需要对整个数据对象进行获取和传输,造成传输带宽资源的浪费。
发明内容
本申请提供了一种数据修复方法和装置,以解决修复数据的效率较低,浪费传输带宽资源的问题
第一方面,本申请提供一种数据修复方法,用于对基于对象存储的数据进行恢复,所述方法,包括:
在确定第一固态存储硬盘的第一数据对象中的至少一个第一数据块出现错误时,获取第二固态存储硬盘的第二数据对象中的至少一个第二数据块,其中,所述第一数据对象包括N个数据块,所述第二数据对象包括N个数据块,N为正整数,所述第一数据对象中的至少一个第一数据块的数据内容与所述第二数据对象中的至少一个第二数据块的数据内容相同;
将所述至少一个第二数据块,写入到所述第一固态存储硬盘的所述第一数据对象中。
本申请,通过对固态存储硬盘中的数据对象划分为多个数据块,在确定固态存储硬盘中的数据对象出现错误的时候,可以确定出数据对象的哪些数据块出现错误;进而,从其他固态存储硬盘中获取相同数据对象中的相同数据块,将出现错误的数据块替换为获取到的相同数据块,完成数据的修复;由于本申请实施例提供的数据修复方式,只需要对出现错误的数据块进行数据修复,从而只需要获取与出现错误的数据块相同的数据块,不需要获取整个数据对象的数据,可以减少处理的数据量,进而快速的对数据完成修复,提高了修复数据的效率;进一步地,不需要获取和传输整个数据对象,可以减少利用的带宽资源,提高了数据传输速度,也进一步的提高了修复数据的效率。
在一种可能的设计中,在确定第一固态存储硬盘的第一数据对象中的至少一个第一数据块出现错误时,获取第二固态存储硬盘的第二数据对象中的至少一个第二数据块之前,还包括:
根据所述第一数据对象,生成所述第二数据对象;
将所述第二数据对象,发送给所述第二固态存储硬盘进行存储。
在一种可能的设计中,在确定第一固态存储硬盘的第一数据对象中的至少一个第一数据块出现错误时,获取第二固态存储硬盘的第二数据对象中的至少一个第二数据块之前,还包括:
对所述第一固态存储硬盘中的每一个数据对象进行切分处理,得到切分处理后的数据对象,其中,切分处理后的数据对象包括M个数据块,所述数据块的大小为预设字节,M为正整数,M与N相同或不同。
在一种可能的设计中,所述获取第二固态存储硬盘的第二数据对象中的至少一个第二数据块,包括:
通过预设接口获取所述至少一个第二数据块。
在一种可能的设计中,在确定第一固态存储硬盘的第一数据对象中的至少一个第一数据块出现错误时,获取第二固态存储硬盘的第二数据对象中的至少一个第二数据块之前,还包括:
检测所述第一固态存储硬盘的第一数据对象中的数据块是否出现错误;
或者,接收所述第一固态存储硬盘发送的第一指示信息,其中,所述第一指示信息用于指示所述第一固态存储硬盘的第一数据对象中的至少一个第一数据块出现错误。
在一种可能的设计中,所述获取第二固态存储硬盘的第二数据对象中的至少一个第二数据块,包括:
生成第二指示信息,向所述第二固态存储硬盘发送所述第二指示信息,其中,所述第二指示信息用于指示所述第一固态存储硬盘的第一数据对象中的至少一个第一数据块出现错误;
接收所述第二固态存储硬盘根据所述第二指示信息发送的所述第二数据对象中的至少一个第二数据块。
在一种可能的设计中,同一个数据对象中的数据块的个数相同。
在一种可能的设计中,所述固态存储硬盘中设置有散列Hash表,所述Hash表包括固态存储硬盘的每一个数据对象中的每一个数据块的Hash值和物理地址。
在一种可能的设计中,每一个数据块的Hash值为采用偏移方法对数据块所归属的数据对象的键值进行计算而得到的。
第二方面,本申请提供一种数据修复装置,用于对基于对象存储的数据进行恢复,包括:
处理模块,用于在确定第一固态存储硬盘的第一数据对象中的至少一个第一数据块出现错误时,获取第二固态存储硬盘的第二数据对象中的至少一个第二数据块,其中,所述第一数据对象包括N个数据块,所述第二数据对象包括N个数据块,N为正整数,所述第一数据对象中的至少一个第一数据块的数据内容与所述第二数据对象中的至少一个第二数据块的数据内容相同;
所述处理模块,还用于将所述至少一个第二数据块,写入到所述第一固态存储硬盘的所述第一数据对象中。
本申请,通过对固态存储硬盘中的数据对象划分为多个数据块,在确定固态存储硬盘中的数据对象出现错误的时候,可以确定出数据对象的哪些数据块出现错误;进而,从其他固态存储硬盘中获取相同数据对象中的相同数据块,将出现错误的数据块替换为获取到的相同数据块,完成数据的修复;由于本申请实施例提供的数据修复方式,只需要对出现错误的数据块进行数据修复,从而只需要获取与出现错误的数据块相同的数据块,不需要获取整个数据对象的数据,可以减少处理的数据量,进而快速的对数据完成修复,提高了修复数据的效率;进一步地,不需要获取和传输整个数据对象,可以减少利用的带宽资源,提高了数据传输速度,也进一步的提高了修复数据的效率。
在一种可能的设计中,所述处理模块,还用于在确定第一固态存储硬盘的第一数据对象中的至少一个第一数据块出现错误时,获取第二固态存储硬盘的第二数据对象中的至少一个第二数据块之前,根据所述第一数据对象,生成所述第二数据对象;
所述装置,还包括:发送模块,用于将所述第二数据对象,发送给所述第二固态存储硬盘进行存储。
在一种可能的设计中,所述处理模块,还用于:
在确定第一固态存储硬盘的第一数据对象中的至少一个第一数据块出现错误时,获取第二固态存储硬盘的第二数据对象中的至少一个第二数据块之前,对所述第一固态存储硬盘中的每一个数据对象进行切分处理,得到切分处理后的数据对象,其中,切分处理后的数据对象包括M个数据块,所述数据块的大小为预设字节,M为正整数,M与N相同或不同。
在一种可能的设计中,所述处理模块,具体用于:
通过预设接口获取所述至少一个第二数据块。
在一种可能的设计中,所述处理模块,还用于在确定第一固态存储硬盘的第一数据对象中的至少一个第一数据块出现错误时,获取第二固态存储硬盘的第二数据对象中的至少一个第二数据块之前,检测所述第一固态存储硬盘的第一数据对象中的数据块是否出现错误;
或者,所述装置,还包括:接收模块,用于接收所述第一固态存储硬盘发送的第一指示信息,其中,所述第一指示信息用于指示所述第一固态存储硬盘的第一数据对象中的至少一个第一数据块出现错误。
在一种可能的设计中,所述处理模块,具体用于:
生成第二指示信息,其中,所述第二指示信息用于指示所述第一固态存储硬盘的第一数据对象中的至少一个第一数据块出现错误;
所述装置的发送模块,用于向所述第二固态存储硬盘发送所述第二指示信息;
所述装置的接收模块,用于接收所述第二固态存储硬盘根据所述第二指示信息发送的所述第二数据对象中的至少一个第二数据块。
在一种可能的设计中,同一个数据对象中的数据块的个数相同。
在一种可能的设计中,所述固态存储硬盘中设置有散列Hash表,所述Hash表包括固态存储硬盘的每一个数据对象中的每一个数据块的Hash值和物理地址。
在一种可能的设计中,每一个数据块的Hash值为采用偏移方法对数据块所归属的数据对象的键值进行计算而得到的。
第三方面,本申请提供一种数据修复设备,包括:发送器、接收器、存储器和处理器;
所述存储器用于存储计算机指令;所述处理器用于运行所述存储器存储的所述计算机指令实现第一方面的任一实现方式提供的方法。
第四方面,本申请提供一种数据修复设备,包括用于执行以上第一方面的任一实现方式的至少一个处理元件或芯片。
第五方面,本申请提供一种程序,该程序在被处理器执行时用于执行以上第一方面的任一实现方式。
第六方面,本申请提供一种计算机可读存储介质,包括第五方面的程序。
第七方面,本申请提供一种数据修复系统,包括:如第二方面的任一实现方式提供的装置和至少两个固态存储硬盘。
附图说明
图1为数据修复的示意图一;
图2为本申请实施例提供的一种应用场景示意图;
图3为本申请实施例提供的另一种应用场景示意图;
图4为本申请实施例提供的又一种应用场景示意图;
图5为本申请实施例提供的一种数据修复方法的流程示意图;
图6为本申请实施例提供的另一种数据修复方法的流程示意图;
图7为数据修复的示意图二;
图8为本申请实施例提供的一种数据修复装置的示意性框图;
图9为本申请实施例提供的另一种数据修复装置的示意性框图;
图10为本申请实施例提供的一种数据修复设备的示意性框图。
具体实施方式
本申请实施例应用于数据修复装置中、或者数据修复设备中、或者数据修复系统中、或者可以执行本申请实施例的任意系统中,以下对本申请中的部分用语进行解释说明,以便于本领域技术人员理解。需要说明的是,当本申请实施例的方案应用于数据修复设备中、或者可以执行本申请实施例的任意系统中时,数据修复装置、数据修复设备的名称可能发生变化,但这并不影响本申请实施例方案的实施。
应理解,本申请实施例的技术方案可以对应用于各种通信系统的固态存储硬盘进行处理,其中,通信系统例如:无线局域网通信(wireless local area network,WLAN)系统,全球移动通信(global system of mobile communication,GSM)系统、码分多址(codedivision multiple access,CDMA)系统、宽带码分多址(wideband code divisionmultiple access,WCDMA)系统、通用分组无线业务(general packet radio service,GPRS)、长期演进(long term evolution,LTE)系统、LTE频分双工(frequency divisionduplex,FDD)系统、LTE时分双工(time division duplex,TDD)、通用移动通信系统(universal mobile telecommunication system,UMTS)、全球互联微波接入(worldwideinteroperability for microwave access,WiMAX)通信系统、以及未来的第五代移动通信技术(the 5th Generation mobile communication technology,5G)系统或未来可能出现的其他系统。
本申请的实施方式部分使用的术语仅用于对本申请的具体实施例进行解释,而非旨在限定本申请。以下对本申请中的部分用语进行解释说明,以便于本领域技术人员理解。
1)固态存储硬盘,用于存储数据;可以将固态存储硬盘设置在终端上,也可以将固态存储硬盘设置在服务器上。
2)终端设备,又称为终端、用户设备,是一种向用户提供语音和/或数据连通性的设备,例如,具有无线连接功能的手持式设备、车载设备等;终端设备也可以是检测数据的设备,例如,传感器等;终端设备也可以是智能设备,例如,部署于室内的智能家居设备、可穿戴设备等。常见的终端设备例如包括:空气质量监测传感器、温度传感器、烟雾传感器手机、平板电脑、笔记本电脑、掌上电脑、移动互联网设备(mobile internet device,MID)、可穿戴设备,其中,可穿戴设备例如包括:智能手表、智能手环、计步器等。终端设备为现在和未来可能的无线通信的终端设备或有限通信的终端设备。
3)服务器,可以是网络设备、或无线接入网(radio access network,RAN)设备,例如包括但不限于:无线接入点(例如无线局域网接入点),基站、演进型节点B(evolved NodeB,eNB)、无线网络控制器(radio network controller,RNC)、节点B(Node B,NB)、网络设备控制器(base station controller,BSC)、网络设备收发台(base transceiver station,BTS)、家庭网络设备(例如,home evolved NodeB,或home Node B,HNB)、基带单元(baseband unit,BBU)等。
4)“多个”是指两个或两个以上,其它量词与之类似。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
5)“对应”可以指的是一种关联关系或绑定关系,A与B相对应指的是A与B之间是一种关联关系或绑定关系。
需要指出的是,本申请实施例中涉及的名词或术语可以相互参考,不再赘述。
随着对象存储技术和固态存储硬盘的容量的不断发展,支持对象存储的固态存储硬盘正在逐渐被应用;其中,对象例如是键值(KV)、或者持久化日志(Plog)。支持对象存储的固态存储硬盘是以对象为单位进行数据存储的,从而可以根据数据对象的键(Key)或标识(ID)去索引数据对象。为了保证数据的可靠性,会在多个固态存储硬盘上存储相同的数据对象。
固态存储硬盘是基于闪存技术发展而来的,固态存储硬盘会出现失效的情况,例如,出现页(page)失效、块(block)失效等情况,从而会导致固态存储硬盘所存储的数据对象的数据不可用,即数据对象的数据无法被读取。当出现某一个固态存储硬盘所存储的数据对象的数据无法被读取的时候,可以从其他固态存储硬盘中获取相同的数据对象的数据;然后,将获取到的数据对象的数据,写入到发生问题的固态存储硬盘中,进而完成数据修复。
举例来说,图1为数据修复的示意图一,如图1所示,为服务器提供了P个固态存储硬盘,P为大于1的正整数,每一个固态存储硬盘都是支持对象存储的;在每一个固态存储硬盘存储了n个数据对象,n为大于等于1的正整数。其中,对于数据对象1来说,在每一个固态存储硬盘都存储有数据对象1;每一个固态存储硬盘中的其他数据对象可以相同或不同,例如,在固态存储硬盘1和固态存储硬盘2中都存储了数据对象2,固态存储硬盘P中存储了数据对象3。在服务器从固态存储硬盘1中读取数据对象1的时候,服务器发现固态存储硬盘1中的数据对象1无法被读取或者被损坏,则服务器删除固态存储硬盘1中的数据对象1;然后,服务器依次读取排在固态存储硬盘1之后的固态存储硬盘;然后,服务器可以从固态存储硬盘2中获取数据对象1;服务器将固态存储硬盘2中的数据对象1,写入到固态存储硬盘1中,从而服务器对固态存储硬盘1中的数据对象1进行修复。
然而以上数据修复的方式,需要从其他固态存储硬盘中获取相同的数据对象的所有数据,然后将该数据对象的所有数据,写入到发生问题的固态存储硬盘中,进而需要对整个数据对象的数据进行读取和写入。从而,需要处理的数据量较大,造成修复数据的效率较低;并且需要对整个数据对象进行获取和传输,造成传输带宽资源的浪费。
本申请针对以上问题提出解决方案。下面将结合附图,对本申请实施例的技术方案进行描述。
图2为本申请实施例提供的一种应用场景示意图。如图2所示的架构,主要包括服务器,为服务器布置了P个固态存储硬盘,P为大于1的正整数;在每一个固态存储硬盘中存储有至少一个数据对象;服务器可以读取每一个固态存储硬盘中的数据对象的数据,终端或其他服务器也可以读取每一个固态存储硬盘中的数据对象的数据。
图3为本申请实施例提供的另一种应用场景示意图。如图3所示的架构,主要包括终端,为终端布置了P个固态存储硬盘,P为大于1的正整数;在每一个固态存储硬盘中存储有至少一个数据对象;终端可以读取每一个固态存储硬盘中的数据对象的数据,其他终端或服务器也可以读取每一个固态存储硬盘中的数据对象的数据。
图4为本申请实施例提供的又一种应用场景示意图。如图4所示的架构,主要包括服务器a和服务器b,在服务器a和服务器b中一共布置了P个固态存储硬盘,P为大于1的正整数,例如,在服务器a中布置了M个固态存储硬盘,在服务器b中布置了P-M个固态存储硬盘,M为大于等于1的正整数;在每一个固态存储硬盘中存储有至少一个数据对象;服务器a和服务器b可以读取每一个固态存储硬盘中的数据对象的数据,其他服务器或终端也可以读取每一个固态存储硬盘中的数据对象的数据。其中,服务器a可以换为终端a,服务器b可以换为终端b。
图5为本申请实施例提供的一种数据修复方法的流程示意图。如图5所示,该方法包括:
101、在确定第一固态存储硬盘的第一数据对象中的至少一个第一数据块出现错误时,获取第二固态存储硬盘的第二数据对象中的至少一个第二数据块,其中,第一数据对象包括N个数据块,第二数据对象包括N个数据块,N为正整数,第一数据对象中的至少一个第一数据块的数据内容与第二数据对象中的至少一个第二数据块的数据内容相同。
可选的,101具体包括:在确定第一固态存储硬盘的第一数据对象中的至少一个第一数据块出现错误时,通过预设接口获取至少一个第二数据块。
可选的,同一个数据对象中的数据块的个数相同。
示例性的,本申请实施例的执行主体可以为需要读取数据对象的装置或设备,例如,执行主体为终端、或者服务器。本申请实施例以执行主体为服务器进行说明。
为服务器部署了P个固态存储硬盘,其中,P个固态存储硬盘可以都设置在服务器上,或者,P个固态存储硬盘设置在终端上,或者,P个固态存储硬盘分布式的设置在多个服务器上,或者,P个固态存储硬盘分布式的设置在多个终端上。
P个固态存储硬盘中的每一个固态存储硬盘中分别存储有至少一个数据对象。不同的固态存储硬盘中存储有相同的数据对象;例如,固态存储硬盘1、固态存储硬盘2和固态存储硬盘3都存储有数据对象1,固态存储硬盘2、固态存储硬盘3和固态存储硬盘4都存储有数据对象2,固态存储硬盘5和固态存储硬盘6都存储有数据对象3。
并且,每一个数据对象被划分为了N个数据块;其中,不同的数据对象所包括的数据块的个数,可以相同或不同;相同的数据对象所包括的数据块的个数是相同的。即,不同的数据对象的粒度,可以相同或不同;相同的数据对象的粒度是相同的。
举例来说,固态存储硬盘1、固态存储硬盘2和固态存储硬盘3都存储有数据对象1,固态存储硬盘2、固态存储硬盘3和固态存储硬盘4都存储有数据对象2;其中,固态存储硬盘1、固态存储硬盘2和固态存储硬盘3中的数据对象1,都是分别包括A个数据块的,A为大于1的正整数;固态存储硬盘2、固态存储硬盘3和固态存储硬盘4中的数据对象2,都是分别包括B个数据块的,B为大于1的正整数;A可以等于B,A也可以不等于B。
从而,在服务器从P个固态存储硬盘中的第一固态存储硬盘中读取第一数据对象时,服务器确定第一固态存储硬盘中的第一数据对象无法被读取。或者,第一固态存储硬盘在扫描自身的各个数据对象的时候,第一固态存储硬盘发现第一固态存储硬盘中的第一数据对象无法被读取;此时,第一固态存储硬盘向服务器发送通知消息,通知消息表征了第一固态存储硬盘中的第一数据对象无法被读取;从而,服务器获知第一固态存储硬盘中的第一数据对象无法被读取。
然后,服务器在确定第一固态存储硬盘中的第一数据对象无法被读取的时候,服务器可以确定第一数据对象的哪一个数据块出现了错误;服务器可以确定第一数据对象中的至少一个第一数据块出现了错误。
在P个固态存储硬盘的每一个固态存储硬盘中存储数据对象的时候,服务器可以获知哪些固态存储硬盘中存储有相同的数据对象;服务器就可以确定出第二固态存储硬盘中的第二数据对象与第一固态存储硬盘中的第一数据对象,两者的数据内容是相同的。例如,服务器存储有映射关系;该映射关系用于指示各个固态存储硬盘中的各个数据对象是否相同,哪些数据对象是相同的。
并且,第一数据对象中的数据块的个数与第二数据对象中的数据块的个数相同,即第一数据对象的粒度与第二数据对象的粒度是相同的;服务器确定出第二数据对象中的至少一个第二数据块,其中,每一个第二数据块与每一个第一数据块是一一对应的,第二数据块的数据内容与第二数据块所对应的第一数据块的数据内容是相同的;为服务器配置有接口,并且为固态存储硬盘配置有接口,从而服务器可以通过接口获取第二数据对象中的至少一个第二数据块;其中,接口的类型不做限制。
举例来说,服务器在从第一固态存储硬盘中读取数据对象的时候,服务器确定第一固态存储硬盘中的第一数据对象a出现问题,并且,服务器可以确定第一数据对象a中的第一数据块1和第一数据块2出现错误;服务器可以确定第二固态存储硬盘存储有与第一数据对象a相同的第二数据对象b,即第一数据对象a的数据内容与第二数据对象b的数据内容相同,并且,第一数据对象a具有10个数据块,第二数据对象b也具有10个数据块,第一数据对象a中的数据块与第二数据对象b中的数据块是一一对应的;服务器可以从第二固态存储硬盘中的第二数据对象b中,获取到第二数据对象b中的第二数据块1和第二数据块2,其中,第二数据块1的数据内容与第一数据块1的数据内容相同,第二数据块2的数据内容与第一数据块2的数据内容相同。
102、将至少一个第二数据块,写入到第一固态存储硬盘的第一数据对象中。
示例性的,服务器将获取到的各个第二数据块,写入到第一固态存储硬盘的第一数据对象中。
举例来说,根据步骤101的举例说明,服务器可以从第二固态存储硬盘中的第二数据对象b中,获取到第二数据对象b中的第二数据块1和第二数据块2;然后,服务器需要删除掉第一固态存储硬盘的第一数据对象a中的第一数据块1和第一数据块2;服务器将第二数据块1和第二数据块2,存储到第一固态存储硬盘的第一数据对象a中的原来第二数据块1和第二数据块2的位置上;从而,服务器将第二数据块1和第二数据块2,写入到第一固态存储硬盘的第一数据对象a中,进而对第一固态存储硬盘的第一数据对象a进行修复。
本实施例,通过在确定第一固态存储硬盘的第一数据对象中的至少一个第一数据块出现错误时,获取第二固态存储硬盘的第二数据对象中的至少一个第二数据块,其中,第一数据对象包括N个数据块,第二数据对象包括N个数据块,N为正整数,第一数据对象中的至少一个第一数据块的数据内容与第二数据对象中的至少一个第二数据块的数据内容相同;将至少一个第二数据块,写入到第一固态存储硬盘的第一数据对象中。从而,对固态存储硬盘中的数据对象划分为多个数据块,在确定固态存储硬盘中的数据对象出现错误的时候,可以确定出数据对象的哪些数据块出现错误;进而,从其他固态存储硬盘中获取相同数据对象中的相同数据块,将出现错误的数据块替换为获取到的相同数据块,完成数据的修复;由于本申请实施例提供的数据修复方式,只需要对出现错误的数据块进行数据修复,从而只需要获取与出现错误的数据块相同的数据块,不需要获取整个数据对象的数据,可以减少处理的数据量,进而快速的对数据完成修复,提高了修复数据的效率;进一步地,不需要获取和传输整个数据对象,可以减少利用的带宽资源,提高了数据传输速度,也进一步的提高了修复数据的效率。
图6为本申请实施例提供的另一种数据修复方法的流程示意图。如图6所示,该方法包括:
201、对第一固态存储硬盘中的每一个数据对象进行切分处理,得到切分处理后的数据对象,其中,切分处理后的数据对象包括M个数据块,数据块的大小为预设字节,M为正整数。
示例性的,本申请实施例的执行主体可以为需要读取数据对象的装置或设备,例如,执行主体为终端、或者服务器。本申请实施例以执行主体为服务器进行说明。
服务器可以将第一固态存储硬盘中的每一个数据对象进行切分处理,进而将每一个数据对象划分为M个数据块。其中,不同的数据的对象的数据块的个数可以相同或不同。并且,每一个数据块的大小为预设的字节。
举例来说,服务器是4千字节(kilobyte,k或kb)为单元从固态存储硬盘中读取数据。可以将第一固态存储硬盘中每一个数据对象划分为M个数据块,每一个数据块的大小为4k。或者,将第一固态存储硬盘中部分数据对象中的每一个数据对象,划分为Q个数据块,每一个数据块的大小为8k;将第一固态存储硬盘中其余数据对象中的每一个数据对象,划分为M个数据块,每一个数据块的大小为4k。
202、根据第一数据对象,生成第二数据对象。
示例性的,为了便于数据对象的后续获取,或者为了其他需求,可以将数据对象进行复制和存储。服务器将第一固态存储硬盘中的至少一个数据对象中的每一个数据对象分别进行复制,到与每一个数据对象对应的复制后的数据对象。
在本实施例中,为了后续可以获取到与第一数据对象的数据内容相同的数据对象,服务器需要对第一固态存储硬盘中的第一数据对象进行复制处理,进而得到第二数据对象,其中,第二数据对象的数据内容与第一数据对象的数据内容相同。
203、将第二数据对象,发送给第二固态存储硬盘进行存储。
示例性的,在服务器需要将复制所得到的第二数据对象进行存储的时候,服务器可以将第二数据对象发送给一个或多个其他固态存储硬盘进行存储;从而,一个或多个其他固态存储硬盘中的每一个固态存储硬盘,可以分别存储一个第二数据对象。
举例来说,服务器将第一固态存储硬盘中的第一数据对象a划分为多个数据块,每一个数据块的大小为4k;服务器将第一数据对象a进行复制,得到与第一数据对象a相同的第二数据对象b;服务器将第二数据对象b,发送给第二固态存储硬盘进行存储;服务器还可以将第二数据对象b,发送给其他固态存储硬盘进行存储。
204、检测第一固态存储硬盘的第一数据对象中的数据块是否出现错误;或者,接收第一固态存储硬盘发送的第一指示信息,其中,第一指示信息用于指示第一固态存储硬盘的第一数据对象中的至少一个第一数据块出现错误。
示例性的,参照图5所示的实施例,为服务器部署了P个固态存储硬盘;P个固态存储硬盘中的每一个固态存储硬盘中分别存储有至少一个数据对象;并且,每一个数据对象被划分为了N个数据块。具体介绍参见图5所示的实施例,不再赘述。
服务器可以实时或定时的对每一个固态存储硬盘进行检测,进而服务器检测出哪些固态存储硬盘中的数据对象出现错误,进一步的,服务器确定出数据对象中的哪些数据块是否出现错误。从而,服务器可以自动的检测到第一固态存储硬盘的第一数据对象中的数据块是否出现错误。
或者,每一个固态存储硬盘可以实时或定时的扫描自身的数据对象,进而每一个固态存储硬盘可以检测到固态存储硬盘中的哪些数据对象出现错误,进一步的,每一个固态存储硬盘确定出数据对象中的哪些数据块是否出现错误。从而,在第一固态存储硬盘检测到第一数据对象中的数据块出现错误的时候,第一固态存储硬盘向服务器发送第一指示信息;服务器可以确定第一固态存储硬盘的第一数据对象中的哪些数据块出现错误。
205、在确定第一固态存储硬盘的第一数据对象中的至少一个第一数据块出现错误时,获取第二固态存储硬盘的第二数据对象中的至少一个第二数据块,其中,第一数据对象包括N个数据块,第二数据对象包括N个数据块,N为正整数,第一数据对象中的至少一个第一数据块的数据内容与第二数据对象中的至少一个第二数据块的数据内容相同。
可选的,步骤205包括以下步骤:
第一步骤、生成第二指示信息,向第二固态存储硬盘发送第二指示信息,其中,第二指示信息用于指示第一固态存储硬盘的第一数据对象中的至少一个第一数据块出现错误。
第二步骤、接收第二固态存储硬盘根据第二指示信息发送的第二数据对象中的至少一个第二数据块。
可选的,固态存储硬盘中设置有Hash表,Hash表包括固态存储硬盘的每一个数据对象中的每一个数据块的Hash值和物理地址。
可选的,每一个数据块的Hash值为采用偏移方法对数据块所归属的数据对象的键值进行计算而得到的。
示例性的,在将固态存储硬盘中的每一个数据对象划分为多个数据块之后,对于每一个数据对象来说,为数据对象的每一个数据块配置了键值(Key);从而,可以采用现有的偏移方法对每一个数据块的键值进行计算,得到每一个数据块的散列(Hash)值,其中,散列值也可以称作哈希值;并且,会将数据对象的每一个数据块存储到NAND Flash上,其中,NAND Flash是一种存储介质;从而,在将数据对象的每一个数据块存储到NAND Flash上之后,会得到每一个数据块的物理地址;将数据对象的每一个数据块的Hash值和物理地址进行对应存储,去存储到一个Hash表。
对于每一个固态存储硬盘来说,对固态存储硬盘中的每一个数据对象都执行以上过程,进而将固态存储硬盘的每一个数据对象中的每一个数据块的Hash值和物理地址,存储到Hash表中。
举例来说,对于固态存储硬盘1,固态存储硬盘1中设置有一个Hash表,Hash表的内容如下:数据对象a的数据块1的Hash值和物理地址、数据对象a的数据块2的Hash值和物理地址、数据对象a的数据块3的Hash值和物理地址、数据对象b的数据块1的Hash值和物理地址、数据对象b的数据块2的Hash值和物理地址、数据对象b的数据块3的Hash值和物理地址、以此类推。
基于以上原理,服务器在确定第一固态存储硬盘中的第一数据对象无法被读取的时候,服务器可以确定第一数据对象的哪一个数据块出现了错误;服务器可以确定第一数据对象中的至少一个第一数据块出现了错误。
然后,服务器可以根据出现错误的第一数据块的键值,生成第二指示信息;从而,第二指示信息中携带有出现错误的第一数据块的键值,并且第二指示信息指示出了第一数据对象中的至少一个第一数据块出现错误。
并且,服务器可以获知哪些固态存储硬盘中存储有相同的数据对象;服务器就可以确定出第二固态存储硬盘中的第二数据对象与第一固态存储硬盘中的第一数据对象,两者的数据内容是相同的。
然后,服务器将第二指示信息,通过服务器的接口和第二固态存储硬盘的接口发送给第二固态存储硬盘。
然后,由于第二固态存储硬盘中设置有一个Hash表,第二指示信息中携带有出现错误的第一数据块的键值,从而第二固态存储硬盘就可以根据第二指示信息中的每一个第一数据块的键值,采用偏移方法计算出每一个第一数据块的Hash值;接着,第二固态存储硬盘根据自身存储的Hash表进行查询,可以查询出与每一个第一数据块的Hash值对应的物理地址。
然后,第二固态存储硬盘依据查询出的每一个物理地址,分别从NAND Flash中获取到第二数据对象的第二数据块。其中,一个物理地址与第一个第二数据块是一一对应的;并且,第二数据块与第一数据块是一一对应的,第二数据块的数据内容与第二数据块所对应的第一数据块的数据内容是相同的。
举例来说,图7为数据修复的示意图二,如图7所示,为服务器部署了P个固态存储硬盘,P个固态存储硬盘中的每一个固态存储硬盘中分别存储有至少一个数据对象,每一个数据对象被划分为了N个数据块;其中,第一固态存储硬盘的第一数据对象a中包括第一数据块1、第一数据块2、第一数据块3、第一数据块4、第一数据块5和第一数据块6;第二固态存储硬盘的第二数据对象b中包括第二数据块1、第二数据块2、第二数据块3、第二数据块4、第二数据块5和第二数据块6;第一数据对象a的数据内容与第二数据对象b的数据内容相同;服务器确定第一固态存储硬盘的第二数据对象a中的第一数据块1和第一数据块2出现错误;服务器将第二指示信息发送给第二固态存储硬盘,第二指示信息中包括了第一固态存储硬盘的第一数据对象a中的第一数据块1的键值和第一数据块2的键值,第二指示信息指示出了第一数据块1和第一数据块2出现错误;第二固态存储硬盘根据第一数据块1的键值计算出第一数据块1的Hash值,并且根据第一数据块2的键值计算出第一数据块2的Hash值;然后,第二固态存储硬盘根据存储的Hash表,查找到与第一数据块1的Hash值对应的物理地址、与第一数据块2的Hash值对应的物理地址;然后,第二固态存储硬盘根据与第一数据块1的Hash值对应的物理地址,从NAND Flash中获取到第二数据对象b中的第二数据块1;第二固态存储硬盘根据与第一数据块2的Hash值对应的物理地址,从NAND Flash中获取到第二数据对象b中的第二数据块2。
然后,第二固态存储硬盘将获取到的第二数据对象的第二数据块,发送给服务器。从而,服务器可以通过接口获取第二数据对象中的第二数据块。
从而,服务器发现哪几个第一数据块出现错误,就可以获取到与每一个第一数据块对应的第二数据块。
206、将至少一个第二数据块,写入到第一固态存储硬盘的第一数据对象中。
示例性的,本步骤可以参见图5的步骤102,不再赘述。
本实施例,通过在确定第一固态存储硬盘的第一数据对象中的至少一个第一数据块出现错误时,获取第二固态存储硬盘的第二数据对象中的至少一个第二数据块,其中,第一数据对象包括N个数据块,第二数据对象包括N个数据块,N为正整数,第一数据对象中的至少一个第一数据块的数据内容与第二数据对象中的至少一个第二数据块的数据内容相同;将至少一个第二数据块,写入到第一固态存储硬盘的第一数据对象中。从而,对固态存储硬盘中的数据对象划分为多个数据块,可以将划分为多个数据块的数据对象存储到其他固态存储硬盘中;在确定固态存储硬盘中的数据对象出现错误的时候,可以确定出数据对象的哪些数据块出现错误;进而,其他固态存储硬盘根据存储的Hash表可以确定出与出现错误的数据块的键值对应的物理地址,进而其他固态存储硬盘根据物理地址可以获取到没有问题的数据块,从而可以从其他固态存储硬盘中获取相同数据对象中的相同数据块,将出现错误的数据块替换为获取到的相同数据块,完成数据的修复;由于本申请实施例提供的数据修复方式,只需要对出现错误的数据块进行数据修复,从而只需要获取与出现错误的数据块相同的数据块,不需要获取整个数据对象的数据,可以减少处理的数据量,进而快速的对数据完成修复,提高了修复数据的效率;进一步地,不需要获取和传输整个数据对象,可以减少利用的带宽资源,提高了数据传输速度,也进一步的提高了修复数据的效率。
上文中详细描述了根据本申请实施例的数据修复方法,下面将描述本申请实施例的数据修复装置。
在一个示例中,图8为本申请实施例提供的一种数据修复装置的示意性框图。本申请实施例的装置可以是上述方法实施例中的服务器,也可以是服务器内的一个或多个芯片,也可以是终端,也可以是终端内的一个或多个芯片。该数据修复装置80可以用于执行上述方法实施例中的数据修复设备的部分或全部功能。该数据修复装置80可以包括下述单元和模块。
处理模块81,用于在确定第一固态存储硬盘91的第一数据对象中的至少一个第一数据块出现错误时,获取第二固态存储硬盘92的第二数据对象中的至少一个第二数据块,其中,第一数据对象包括N个数据块,第二数据对象包括N个数据块,N为正整数,第一数据对象中的至少一个第一数据块的数据内容与第二数据对象中的至少一个第二数据块的数据内容相同;
处理模块81,还用于将至少一个第二数据块,写入到第一固态存储硬盘91的第一数据对象中。
其中,处理模块81可以执行图5所示方法的步骤101和步骤102,或者可以执行图6所示方法的步骤205和步骤206。
图8所示实施例的数据修复装置可用于执行上述方法中图5所示实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
在另一个示例中,图9为本申请实施例提供的另一种数据修复装置的示意性框图。在图8所示装置的基础上,如图9所示,该数据修复装置80中,处理模块81,还用于在确定第一固态存储硬盘91的第一数据对象中的至少一个第一数据块出现错误时,获取第二固态存储硬盘92的第二数据对象中的至少一个第二数据块之前,根据第一数据对象,生成第二数据对象。此时,处理模块81可以执行图5所示方法的步骤202。
数据修复装置80,还包括:发送模块82,用于将第二数据对象,发送给第二固态存储硬盘92进行存储。此时,发送模块82可以执行图5所示方法的步骤203。
可选的,处理模块81,还用于:在确定第一固态存储硬盘91的第一数据对象中的至少一个第一数据块出现错误时,获取第二固态存储硬盘92的第二数据对象中的至少一个第二数据块之前,对第一固态存储硬盘91中的每一个数据对象进行切分处理,得到切分处理后的数据对象,其中,切分处理后的数据对象包括M个数据块,数据块的大小为预设字节,M为正整数,M与N相同或不同。此时,处理模块81可以执行图5所示方法的步骤201。
可选的,处理模块81,具体用于:通过预设接口获取至少一个第二数据块。
可选的,处理模块81,还用于在确定第一固态存储硬盘91的第一数据对象中的至少一个第一数据块出现错误时,获取第二固态存储硬盘92的第二数据对象中的至少一个第二数据块之前,检测第一固态存储硬盘91的第一数据对象中的数据块是否出现错误。此时,处理模块81可以执行图5所示方法的步骤204的部分过程。
或者,数据修复装置80,还包括:接收模块83,用于接收第一固态存储硬盘91发送的第一指示信息,其中,第一指示信息用于指示第一固态存储硬盘91的第一数据对象中的至少一个第一数据块出现错误。此时,接收模块83可以执行图5所示方法的步骤204的部分过程。
可选的,处理模块81,具体用于:生成第二指示信息,其中,第二指示信息用于指示第一固态存储硬盘91的第一数据对象中的至少一个第一数据块出现错误。此时,处理模块81可以执行图5所示方法的步骤205的部分过程。
可选的,发送模块82,用于向第二固态存储硬盘92发送第二指示信息。此时,发送模块82可以执行图5所示方法的步骤205的部分过程。
接收模块83,用于接收第二固态存储硬盘92根据第二指示信息发送的第二数据对象中的至少一个第二数据块。此时,接收模块83可以执行图5所示方法的步骤205的部分过程。
可选的,同一个数据对象中的数据块的个数相同。
可选的,固态存储硬盘中设置有散列Hash表,Hash表包括固态存储硬盘的每一个数据对象中的每一个数据块的Hash值和物理地址。
可选的,每一个数据块的Hash值为采用偏移方法对数据块所归属的数据对象的键值进行计算而得到的。
图9所示实施例的数据修复装置可用于执行上述方法中图6所示实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
并且,图9所示实施例的实施不依赖于图8所示的实施例是否实施,本实施例可以独立实施。
图10为本申请实施例提供的一种数据修复设备的示意性框图。如图10所示,该数据修复设备包括发送器261、接收器262和处理器263。
其中,处理器263用于执行图5的数据处理过程,或者,处理器263用于执行图6的数据处理过程;处理器263用于实现图8的处理模块,或者,处理器263用于实现图9的处理模块。
图10所示实施例的数据修复设备的处理器263可用于执行上述方法实施例的技术方案,或者图8-9所示实施例各个单元和模块的程序,处理器263调用该程序,执行以上方法实施例的操作,以实现图8-9所示的各单元和模块。
其中,处理器263也可以为芯片,图10中表示为“芯片/处理器263”。发送器261和接收器262用于支持数据修复设备与上述实施例中的网络环境中的各设备之间收发信息,以及支持数据修复设备与上述实施例中的网络环境中的各设备之间进行通信。
发送器261用于执行图5的数据发送过程,或者,用于执行图6的数据发送过程。发送器261用于实现图8的发送模块,或者,发送器261用于实现图9的发送模块。
接收器262用于执行图5的数据接收过程,或者,用于执行图6的数据接收过程。接收器262用于实现图8的接收模块,或者,接收器262用于实现图9的接收模块.
进一步的,数据修复设备还可以包括存储器264,存储器264用于存储数据修复设备的程序代码和数据。进一步的,数据修复设备还可以包括通信接口265。
处理器263例如是芯片或NPCPU,还可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(application specific integrated circuit,ASIC),或,一个或多个微处理器(digital singnal processor,DSP),或,一个或者多个现场可编程门阵列(field programmable gate array,FPGA)等。存储器264可以是一个存储器,也可以是多个存储元件的统称。
本申请实施例,还提供了一种计算机可读存储介质,包括了指令,当指令在计算机上运行时,计算机可以执行图5或图6所提供的数据修复方法。
本申请实施例,还提供了一种数据修复系统,该数据修复系统包括了图8或图9提供的装置,还包括了两个固态存储硬盘。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如,同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如,红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如,固态硬盘(solid state disk,SSD))等。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (14)

1.一种数据修复方法,其特征在于,用于对基于对象存储的数据进行恢复,所述方法,包括:
在确定第一固态存储硬盘的第一数据对象中的至少一个第一数据块出现错误时,获取第二固态存储硬盘的第二数据对象中的至少一个第二数据块,其中,所述第一数据对象包括N个数据块,所述第二数据对象包括N个数据块,N为正整数,所述第一数据对象中的至少一个第一数据块的数据内容与所述第二数据对象中的至少一个第二数据块的数据内容相同;
将所述至少一个第二数据块,写入到所述第一固态存储硬盘的所述第一数据对象中;
所述固态存储硬盘中设置有散列Hash表,所述Hash表包括固态存储硬盘的每一个数据对象中的每一个数据块的Hash值和物理地址;每一个数据块的Hash值为每一个数据块配置的键值Key加上偏移得到;
所述在确定第一固态存储硬盘的第一数据对象中的至少一个第一数据块出现错误时,获取第二固态存储硬盘的第二数据对象中的至少一个第二数据块,包括:
根据所述至少一个第一数据块的键值Key,生成第二指示信息,所述第二指示信息中携带所述至少一个第一数据块的键值Key;
向第二固态存储硬盘发送所述第二指示信息,以使所述第二固态存储硬盘根据所述第二指示信息中的每一个第一数据块的键值Key,计算出每一个第一数据块的Hash值,并根据自身存储的Hash表查询出与每一个第一数据块的Hash值对应的物理地址,以获取第二数据对象中的至少一个第二数据块;
接收所述第二固态存储硬盘发送的所述第二数据对象中的至少一个第二数据块。
2.根据权利要求1所述的方法,其特征在于,在确定第一固态存储硬盘的第一数据对象中的至少一个第一数据块出现错误时,获取第二固态存储硬盘的第二数据对象中的至少一个第二数据块之前,还包括:
根据所述第一数据对象,生成所述第二数据对象;
将所述第二数据对象,发送给所述第二固态存储硬盘进行存储。
3.根据权利要求1或2所述的方法,其特征在于,在确定第一固态存储硬盘的第一数据对象中的至少一个第一数据块出现错误时,获取第二固态存储硬盘的第二数据对象中的至少一个第二数据块之前,还包括:
对所述第一固态存储硬盘中的每一个数据对象进行切分处理,得到切分处理后的数据对象,其中,切分处理后的数据对象包括M个数据块,所述M个数据块的大小为预设字节,M为正整数,M与N相同或不同。
4.根据权利要求1或2所述的方法,其特征在于,所述获取第二固态存储硬盘的第二数据对象中的至少一个第二数据块,包括:
通过预设接口获取所述至少一个第二数据块。
5.根据权利要求1或2所述的方法,其特征在于,在确定第一固态存储硬盘的第一数据对象中的至少一个第一数据块出现错误时,获取第二固态存储硬盘的第二数据对象中的至少一个第二数据块之前,还包括:
检测所述第一固态存储硬盘的第一数据对象中的数据块是否出现错误;
或者,接收所述第一固态存储硬盘发送的第一指示信息,其中,所述第一指示信息用于指示所述第一固态存储硬盘的第一数据对象中的至少一个第一数据块出现错误。
6.根据权利要求1或2所述的方法,其特征在于,同一个数据对象中的数据块的个数相同。
7.一种数据修复装置,其特征在于,用于对基于对象存储的数据进行恢复,包括:
处理模块,用于在确定第一固态存储硬盘的第一数据对象中的至少一个第一数据块出现错误时,获取第二固态存储硬盘的第二数据对象中的至少一个第二数据块,其中,所述第一数据对象包括N个数据块,所述第二数据对象包括N个数据块,N为正整数,所述第一数据对象中的至少一个第一数据块的数据内容与所述第二数据对象中的至少一个第二数据块的数据内容相同;所述固态存储硬盘中设置有散列Hash表,所述Hash表包括固态存储硬盘的每一个数据对象中的每一个数据块的Hash值和物理地址;每一个数据块的Hash值为每一个数据块配置的键值Key加上偏移得到;
所述处理模块,还用于将所述至少一个第二数据块,写入到所述第一固态存储硬盘的所述第一数据对象中;
所述处理模块具体用于,所述在确定第一固态存储硬盘的第一数据对象中的至少一个第一数据块出现错误时,获取第二固态存储硬盘的第二数据对象中的至少一个第二数据块,包括:
根据所述至少一个第一数据块的键值Key,生成第二指示信息,所述第二指示信息中携带所述至少一个第一数据块的键值Key;
向第二固态存储硬盘发送所述第二指示信息,以使所述第二固态存储硬盘根据所述第二指示信息中的每一个第一数据块的键值Key,计算出每一个第一数据块的Hash值,并根据自身存储的Hash表查询出与每一个第一数据块的Hash值对应的物理地址,以获取第二数据对象中的至少一个第二数据块;
接收所述第二固态存储硬盘发送的所述第二数据对象中的至少一个第二数据块。
8.根据权利要求7所述的装置,其特征在于,所述处理模块,还用于在确定第一固态存储硬盘的第一数据对象中的至少一个第一数据块出现错误时,获取第二固态存储硬盘的第二数据对象中的至少一个第二数据块之前,根据所述第一数据对象,生成所述第二数据对象;
所述装置,还包括:发送模块,用于将所述第二数据对象,发送给所述第二固态存储硬盘进行存储。
9.根据权利要求7或8所述的装置,其特征在于,所述处理模块,还用于:
在确定第一固态存储硬盘的第一数据对象中的至少一个第一数据块出现错误时,获取第二固态存储硬盘的第二数据对象中的至少一个第二数据块之前,对所述第一固态存储硬盘中的每一个数据对象进行切分处理,得到切分处理后的数据对象,其中,切分处理后的数据对象包括M个数据块,所述数据块的大小为预设字节,M为正整数,M与N相同或不同。
10.根据权利要求7或8所述的装置,其特征在于,所述处理模块,具体用于:
通过预设接口获取所述至少一个第二数据块。
11.根据权利要求7或8所述的装置,其特征在于,所述处理模块,还用于在确定第一固态存储硬盘的第一数据对象中的至少一个第一数据块出现错误时,获取第二固态存储硬盘的第二数据对象中的至少一个第二数据块之前,检测所述第一固态存储硬盘的第一数据对象中的数据块是否出现错误;
或者,所述装置,还包括:接收模块,用于接收所述第一固态存储硬盘发送的第一指示信息,其中,所述第一指示信息用于指示所述第一固态存储硬盘的第一数据对象中的至少一个第一数据块出现错误。
12.根据权利要求7或8所述的装置,其特征在于,同一个数据对象中的数据块的个数相同。
13.一种计算机可读存储介质,其特征在于,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1-6任一项所述的方法。
14.一种数据修复系统,其特征在于,包括:如权利要求7-12任一项所述的装置和至少两个固态存储硬盘。
CN201980089700.3A 2019-01-25 2019-01-25 数据修复方法和装置 Active CN113316770B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2019/073206 WO2020151002A1 (zh) 2019-01-25 2019-01-25 数据修复方法和装置

Publications (2)

Publication Number Publication Date
CN113316770A CN113316770A (zh) 2021-08-27
CN113316770B true CN113316770B (zh) 2023-08-22

Family

ID=71736037

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980089700.3A Active CN113316770B (zh) 2019-01-25 2019-01-25 数据修复方法和装置

Country Status (2)

Country Link
CN (1) CN113316770B (zh)
WO (1) WO2020151002A1 (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0425414A2 (en) * 1989-10-23 1991-05-02 International Business Machines Corporation Method and apparatus for processing a complex hierarchy of data objects
CN1257256A (zh) * 1998-12-17 2000-06-21 国际商业机器公司 证实对象和对象数据的方法和系统
CN101453294A (zh) * 2007-12-05 2009-06-10 华为技术有限公司 一种数据传输方法、终端及系统
CN101561773A (zh) * 2009-06-03 2009-10-21 成都市华为赛门铁克科技有限公司 一种磁盘数据恢复方法及装置
CN103065096A (zh) * 2012-12-18 2013-04-24 华为技术有限公司 一种数据保护方法、装置及系统
CN103064765A (zh) * 2012-12-28 2013-04-24 华为技术有限公司 数据恢复方法、装置及集群存储系统
CN104598168A (zh) * 2015-01-23 2015-05-06 华为技术有限公司 一种数据恢复方法及对象存储设备
CN109120385A (zh) * 2018-08-15 2019-01-01 锐捷网络股份有限公司 一种基于数据传输系统的数据传输方法、装置及系统
CN109213618A (zh) * 2017-06-30 2019-01-15 伊姆西Ip控股有限责任公司 用于管理存储系统的方法、设备和计算机程序产品

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3990332B2 (ja) * 2003-08-29 2007-10-10 日本電気株式会社 データ処理システム
US7954037B2 (en) * 2005-10-25 2011-05-31 Sandisk Il Ltd Method for recovering from errors in flash memory
US8290915B2 (en) * 2008-09-15 2012-10-16 International Business Machines Corporation Retrieval and recovery of data chunks from alternate data stores in a deduplicating system
US8095765B2 (en) * 2009-03-04 2012-01-10 Micron Technology, Inc. Memory block management
US20160117226A1 (en) * 2014-10-22 2016-04-28 Netapp, Inc. Data recovery technique for recovering data from an object store
CN106844094B (zh) * 2016-12-23 2021-01-29 华为技术有限公司 一种文件修复方法及装置
CN108509156B (zh) * 2018-04-04 2021-06-11 腾讯科技(深圳)有限公司 数据读取方法、装置、设备及系统

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0425414A2 (en) * 1989-10-23 1991-05-02 International Business Machines Corporation Method and apparatus for processing a complex hierarchy of data objects
CN1257256A (zh) * 1998-12-17 2000-06-21 国际商业机器公司 证实对象和对象数据的方法和系统
CN101453294A (zh) * 2007-12-05 2009-06-10 华为技术有限公司 一种数据传输方法、终端及系统
CN101561773A (zh) * 2009-06-03 2009-10-21 成都市华为赛门铁克科技有限公司 一种磁盘数据恢复方法及装置
CN103065096A (zh) * 2012-12-18 2013-04-24 华为技术有限公司 一种数据保护方法、装置及系统
CN103064765A (zh) * 2012-12-28 2013-04-24 华为技术有限公司 数据恢复方法、装置及集群存储系统
CN104598168A (zh) * 2015-01-23 2015-05-06 华为技术有限公司 一种数据恢复方法及对象存储设备
CN109213618A (zh) * 2017-06-30 2019-01-15 伊姆西Ip控股有限责任公司 用于管理存储系统的方法、设备和计算机程序产品
CN109120385A (zh) * 2018-08-15 2019-01-01 锐捷网络股份有限公司 一种基于数据传输系统的数据传输方法、装置及系统

Also Published As

Publication number Publication date
CN113316770A (zh) 2021-08-27
WO2020151002A1 (zh) 2020-07-30

Similar Documents

Publication Publication Date Title
CN107219997B (zh) 一种用于验证数据一致性的方法及装置
EP3780438B1 (en) Data transmission method and related device
CN113676896B (zh) 通信方法及相关设备
WO2019062572A1 (zh) 一种数据处理方法、装置及系统
US11304105B2 (en) System information sending method, network device and terminal device
RU2730936C1 (ru) Способ и устройство для передачи данных
US10067719B1 (en) Methods and systems for storing and accessing data in a distributed data storage system
JP5787391B2 (ja) 無線リンク障害報告を登録する方法および機器
CN104954431A (zh) 网络选择方法、装置及系统
US20170126556A1 (en) Information transmission method and apparatus, device and storage medium
US11455117B2 (en) Data reading method, apparatus, and system, avoiding version rollback issues in distributed system
CN113316770B (zh) 数据修复方法和装置
JP6368659B2 (ja) 基地局輻輳管理システム、及び基地局輻輳管理方法
WO2016145616A1 (zh) 一种信息传输方法、设备及系统
WO2018127136A1 (zh) 一种候选控制信道资源确定方法及装置
JP5748906B2 (ja) 周辺セルを最適化する方法、基地局及びシステム
WO2021196697A1 (zh) 一种容灾处理方法及装置
CN109982344B (zh) 配置更新方法及装置、计算机存储介质
CN108028854A (zh) 一种数据传输方法以及宿主机
WO2023201757A1 (zh) 信息上报方法及装置
WO2023201758A1 (zh) 信息上报方法及装置
CN107203559B (zh) 一种划分数据条带的方法和装置
WO2023029624A1 (zh) 一种存储块的回收方法以及相关装置
WO2023216203A1 (zh) 资源配置方法及装置
CN104641703A (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