CN103823637A - 一种数据处理方法及设备 - Google Patents
一种数据处理方法及设备 Download PDFInfo
- Publication number
- CN103823637A CN103823637A CN201310631351.8A CN201310631351A CN103823637A CN 103823637 A CN103823637 A CN 103823637A CN 201310631351 A CN201310631351 A CN 201310631351A CN 103823637 A CN103823637 A CN 103823637A
- Authority
- CN
- China
- Prior art keywords
- deblocking
- written
- data
- bad piece
- piece mark
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
本发明公开了一种数据处理方法及设备,该方法包括:针对任一待写入同一分条中的待写入数据分块组,对该待写入数据分块组中的至少一个数据分块所要写入到的磁盘区域进行坏块标记;对该待写入数据分块组执行磁盘写入操作;若确定该待写入数据分块组未成功写入,则对该同一分条中的至少一个与坏块标记相对应的数据分块进行修复,直至将该至少一个与坏块标记相对应的数据分块修复为与该同一分条中的各其他数据分块呈相互匹配状态。在本方案中,可通过对待写磁盘区域进行坏块标记,并根据坏块标记对已写入数据进行修复,来解决分条未成功写入时所造成的写漏洞问题,在节省大量系统资源的基础上,极大地缩短了数据处理时延、提高了数据处理效率。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据处理方法及设备。
背景技术
在RAID(Redundant Arrays of Inexpensive Disks)等磁盘阵列中,当出现级联框掉电、双控变单控、电池故障等异常掉电时,会出现一个分条的待写入数据分块无法完全下盘,从而导致分条不一致(分条中的用户数据分块以及校验数据分块相互不匹配)的问题,即使主机或cache(缓存)能保留刷盘失败的数据,并对该数据进行重新写入操作,仍可能会导致分条不一致,若再发生磁盘失效或重构等,会进一步导致数据的不一致,这种问题被称为WRITEHOLE(写漏洞)。
具体地,当出现WRITE HOLE问题时,通常无法继续正常处理主机或cache的I/O(输入/输出)操作以及无法对磁盘阵列进行冗余数据保护等,针对此种情况,目前业界常采用数据写前备份的方式来解决。具体地,可在分条待写入数据分块下盘前,将各待写入数据分块及相关地址等信息备份到NVM(Nonvolatile Memory,非易失性存储器)或镜像到其他节点,在将各待写入数据分块成功写入之后再删除备份,若在数据处理过程中,出现数据写入异常等问题,则可根据备份数据重新下盘,直至分条一致后再进行后续其他数据处理业务,以此保证数据处理业务的正常进行。
但是,由于在采用数据写前备份的方式来解决WRITE HOLE问题时,需要备份的数据量较大,会占用大量镜像带宽或非易失性存储器带宽,从而导致数据处理时延较大,降低数据的处理效率。
发明内容
本发明实施例提供了一种数据处理方法及设备,用以解决目前存在的采用数据写前备份的方式解决写漏洞问题时,数据处理时延较大以及处理效率较低的问题。
第一方面,提供了一种数据处理方法,包括:
针对任一待写入磁盘阵列同一分条中的待写入数据分块组,对所述待写入数据分块组中的至少一个数据分块所要写入到的磁盘区域进行坏块标记;
对所述待写入数据分块组执行磁盘写入操作;
若确定所述待写入数据分块组未成功写入,则对所述同一分条中的至少一个与所述坏块标记相对应的数据分块进行修复,直至将所述至少一个与所述坏块标记相对应的数据分块修复为与所述同一分条中的各其他数据分块呈相互匹配状态。
结合第一方面,在第一方面的第一种可能的实现方式中,在将所述至少一个与所述坏块标记相对应的数据分块修复为与所述同一分条中的各其他数据分块呈相互匹配状态之后,所述方法还包括:
若确定所述待写入数据分块组仍未成功写入,则重新对所述待写入数据分块组执行磁盘写入操作;或者,
若确定所述待写入数据分块组已成功写入,则清除所述坏块标记。
结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,任一待写入数据分块组包括至少一个待写入用户数据分块以及待写入校验数据分块。
结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,对所述待写入数据分块组中的至少一个数据分块所要写入到的磁盘区域进行坏块标记,包括:
对所述待写入数据分块组中的待写入校验数据分块所要写入到的磁盘区域进行坏块标记。
结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第四种可能的实现方式中,对所述同一分条中的至少一个与所述坏块标记相对应的数据分块进行修复,直至将所述至少一个与所述坏块标记相对应的数据分块修复为与所述同一分条中的各其他数据分块呈相互匹配状态,包括:
从所述同一分条中的与所述坏块标记相对应的各数据分块中,选取至少一个数据分块作为当前待修复数据分块;
针对任一当前待修复数据分块,根据所述同一分条中的、与所述当前待修复数据分块不同的各其他数据分块,生成与所述当前待修复数据分块相匹配的新数据分块,并将生成的所述新数据分块写入所述当前待修复数据分块所对应的磁盘区域中。
第二方面,提供了一种数据处理设备,包括:
坏块标记模块,用于针对任一待写入磁盘阵列同一分条中的待写入数据分块组,对所述待写入数据分块组中的至少一个数据分块所要写入到的磁盘区域进行坏块标记;
数据写入模块,用于对所述待写入数据分块组执行磁盘写入操作;
结果确定模块,用于确定所述待写入数据分块组未成功写入的第一结果;
数据修复模块,用于根据所述结果确定模块确定的第一结果,对所述同一分条中的至少一个与所述坏块标记相对应的数据分块进行修复,直至将所述至少一个与所述坏块标记相对应的数据分块修复为与所述同一分条中的各其他数据分块呈相互匹配状态。
结合第二方面,在第二方面的第一种可能的实现方式中,所述数据处理设备还包括标记清除模块:
所述结果确定模块,还用于确定所述待写入数据分块组已成功写入的第二结果;
所述数据写入模块,还用于在所述数据修复模块将所述至少一个与所述坏块标记相对应的数据分块修复为与所述同一分条中的各其他数据分块呈相互匹配状态之后,根据所述结果确定模块确定的第一结果,重新对所述待写入数据分块组执行磁盘写入操作;
所述标记清除模块,用于在所述数据修复模块将所述至少一个与所述坏块标记相对应的数据分块修复为与所述同一分条中的各其他数据分块呈相互匹配状态之后,根据所述结果确定模块确定的第二结果,清除所述坏块标记。
结合第二方面或第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,任一待写入数据分块组包括至少一个待写入用户数据分块以及待写入校验数据分块。
结合第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,所述坏块标记模块,具体用于对所述待写入数据分块组中的待写入校验数据分块所要写入到的磁盘区域进行坏块标记。
结合第二方面或第二方面的第一种可能的实现方式,在第二方面的第四种可能的实现方式中,所述数据修复模块,具体用于从所述同一分条中的与所述坏块标记相对应的各数据分块中,选取至少一个数据分块作为当前待修复数据分块,以及,针对任一当前待修复数据分块,根据所述同一分条中的、与所述当前待修复数据分块不同的各其他数据分块,生成与所述当前待修复数据分块相匹配的新数据分块,并将生成的所述新数据分块写入所述当前待修复数据分块所对应的磁盘区域中。
根据第一方面提供的数据处理方法以及第二方面提供的数据处理设备,在进行分条数据的写入操作时,可通过对待写入同一分条中的待写入数据分块组中的至少一个数据分块所要写入到的磁盘区域进行坏块标记,并在确定所述待写入数据分块组未成功写入时,根据所述坏块标记,对所述同一分条中的至少一个与所述坏块标记相对应的数据分块进行修复,来解决分条未成功写入时所造成的WRITE HOLE问题,在节省大量系统资源的基础上,极大地缩短了数据的处理时延、提高了数据的处理效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1所示为本发明实施例一中所述数据处理方法的流程示意图;
图2所示为本发明实施例二中所述数据处理设备的结构示意图;
图3所示为本发明实施例三中所述数据处理设备的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
实施例一:
如图1所示,其为本发明实施例一中所述数据处理方法的流程示意图,所述数据处理方法可适用于具备多个磁盘的磁盘阵列,如RAID5等磁盘阵列中,本发明实施例对此不作任何限定。具体地,所述数据处理方法可包括以下步骤:
步骤101:针对任一待写入磁盘阵列同一分条中的待写入数据分块组,对所述待写入数据分块组中的至少一个数据分块所要写入到的磁盘区域进行坏块标记。
需要说明的是,由于现有技术中,所述分条通常是指在使用分条数据映射的磁盘阵列中,每个编号的磁盘阵列盘区相应位置的一系列条带,这些条带之间可通过某种方式互相相关,从而使得分条中的成员关系能够被快速且惟一地确定,因此,针对磁盘阵列中的任一分条,所述分条通常可由所述磁盘阵列中的多个磁盘的相应位置的磁盘区域组成。
相应地,针对磁盘阵列中的任一分条,在对所述分条进行分条数据的写入时,通常可根据所述分条所对应的磁盘区域,确定一个或多个待写入数据分块,并将所述待写入数据分块写入到相应的磁盘区域中。
具体地,在本发明所述实施例中,可将所确定的一个或多个待写入数据分块称为待写入数据分块组,并且,针对任一待写入磁盘阵列同一分条中的待写入数据分块组,所述待写入数据分块组通常可包括至少一个待写入用户数据分块以及待写入校验数据分块,其中,所述待写入校验数据分块通常可根据所述至少一个待写入用户数据分块以及所述同一分条中的各已写入数据分块生成,本发明实施例对此不作赘述。
进一步地,针对任一待写入磁盘阵列同一分条中的待写入数据分块组,所述待写入数据分块组中的各待写入用户数据分块通常可为主机或cache等下发到RAID等磁盘阵列中的用户数据分块。相应地,所述待写入数据分块组中的待写入校验数据分块通常可为RAID等磁盘阵列根据所述主机或cache等下发的各用户数据分块以及所述同一分条中的各已写入数据分块所生成的校验数据分块。
进一步地,在本发明所述实施例中,在对所述待写入数据分块组中的至少一个数据分块所要写入到的磁盘区域进行坏块标记时,通常可仅对所述待写入数据分块组中的待写入校验数据分块所要写入到的磁盘区域进行坏块标记。由于对所述待写入数据分块组中的至少一个数据分块所要写入到的磁盘区域进行坏块标记,可相当于对所述坏块标记进行了存储备份,并且,由于所述坏块标记的大小通常是字节级别的,因此,相较于目前存在的千字节级别的数据分块备份来说,可极大地缩小备份内容,进而达到节省系统资源以及提高后续数据处理的效率的目的。
步骤102:对所述待写入数据分块组执行磁盘写入操作。
具体地,在本发明所述实施例中,对所述待写入数据分块组执行磁盘写入操作的过程(即将所述待写入数据分块组中的各数据分块分别写入与该数据分块相对应的磁盘区域中的过程)与现有技术中的磁盘写入操作过程类似,本发明实施例对此不作赘述。
步骤103:若确定所述待写入数据分块组未成功写入,则对所述同一分条中的至少一个与所述坏块标记相对应的数据分块进行修复,直至将所述至少一个与所述坏块标记相对应的数据分块修复为与所述同一分条中的各其他数据分块呈相互匹配状态。
具体地,在本发明所述实施例中,可在设定时长内未接收到磁盘阵列中的各磁盘返回的用于指示数据已成功写入的响应消息时或接收到磁盘阵列中的各磁盘返回的用于指示数据未成功写入的响应消息时,确定所述待写入数据分块组未成功写入所述磁盘阵列相应磁盘的磁盘区域中,本发明实施例对此不作任何限定。此时,由于通常会出现分条未成功写入所导致的WRITE HOLE问题,进而影响主机或cache的正常I/O处理等操作,因此,需要对所述待写入数据分块组所对应的分条进行修复,以克服上述问题。
具体地,在本发明所述实施例中,在确定所述待写入数据分块组未成功写入时,可通过根据所述坏块标记,对所述同一分条中的至少一个与所述坏块标记相对应的数据分块进行修复,直至将所述至少一个与所述坏块标记相对应的数据分块修复为与所述同一分条中的各其他数据分块呈相互匹配状态的方式,来解决分条未成功写入时所造成的WRITE HOLE问题。
进一步地,在本发明所述实施例中,对所述同一分条中的至少一个与所述坏块标记相对应的数据分块进行修复,直至将所述至少一个与所述坏块标记相对应的数据分块修复为与所述同一分条中的各其他数据分块呈相互匹配状态,可以包括:
从所述同一分条中的与所述坏块标记相对应的各数据分块中,选取至少一个数据分块作为当前待修复数据分块;
针对任一当前待修复数据分块,根据所述同一分条中的、与所述当前待修复数据分块不同的各其他数据分块,生成与所述当前待修复数据分块相匹配的新数据分块,并将生成的所述新数据分块写入所述当前待修复数据分块所对应的磁盘区域中。
需要说明的是,在本发明所述实施例中,由于通常可对各待写入数据分块组中的待写入校验数据分块所要写入到的磁盘区域进行坏块标记,因此,在确定所述待写入数据分块组未成功写入时,通常可采用以下方式对所述同一分条中的至少一个与所述坏块标记相对应的数据分块进行修复:
根据所述同一分条中的各用户数据分块,生成与所述各用户数据分块相匹配的校验数据分块,并将生成的校验数据分块写入所述同一分条中的原校验数据分块所对应的磁盘区域,得到用户数据分块以及校验数据分块相互匹配的分条数据。此时,由于修复后的所述同一分条中的用户数据分块以及校验数据分块相互匹配,即分条一致,因此,可继续正常进行主机或cache的I/O处理等操作。
例如,以6盘RAID5为例,当所述RAID5中的某一分条对应的原始用户数据分块分别为D0、D1、D2、D3、D4,对应的原始校验数据分块为P时,以下等式成立:
D0⊕D1⊕D2⊕D3⊕D4=P;
若待写入该分条的待写入数据分块组中的待写入用户数据分块为D1’以及D2’,可计算得到新的待写入校验数据分块P’,并且有以下等式成立:
D0⊕D1’⊕D2’⊕D3⊕D4=P’;
针对包括待写入用户数据分块D1’、D2’以及待写入校验数据分块P’的待写入数据分块组,在对所述待写入数据分块组进行磁盘写入操作之前,可先对待写入校验数据分块P’所要写入到的磁盘区域(即校验盘对应区域)进行坏块标记,如果异常复位时,D1’成功下盘,盘上数据变为D0,D1’,D2,D3,D4,P,此时,由于该分条中的用户数据分块以及校验数据分块相互并不匹配,因此,该分条是不一致的,如下述公式所示:
D0⊕D1’⊕D2⊕D3⊕D4≠P;
但因为待写入校验数据分块P’所要写入到的磁盘区域记录有坏块标记,因此,可根据数据盘数据重新计算校验盘数据,即根据该分条中的各用户数据分块,生成与各用户数据分块相匹配的校验数据分块P”,如:
D0⊕D1’⊕D2⊕D3⊕D4=P”;
进而,可将生成的校验数据分块P”写入该分条中的原校验数据分块所对应的磁盘区域,以得到修复后的分条一致的分条数据,从而达到可正常处理主机或cache的I/O处理等操作的目的。
需要说明的是,在本发明所述实施例中,在确定所述待写入数据分块组未成功写入时,还可以采用其他方式将与所述待写入数据分块组相对应的同一分条中的用户数据分块以及校验数据分块修复为相互匹配状态,本发明实施例对此不作任何限定。
进一步地,在将所述至少一个与所述坏块标记相对应的数据分块修复为与所述同一分条中的各其他数据分块呈相互匹配状态之后,所述方法还可以包括:
若确定所述待写入数据分块组仍未成功写入,则重新对所述待写入数据分块组执行磁盘写入操作;或者,若确定所述待写入数据分块组已成功写入,则清除所述坏块标记。
本发明实施例一提供了一种数据处理方法,在进行分条数据的写入操作时,可通过对待写入磁盘阵列同一分条中的待写入数据分块组中的至少一个数据分块所要写入到的磁盘区域进行坏块标记,并在确定所述待写入数据分块组未成功写入时,根据所述坏块标记,对所述同一分条中的至少一个与所述坏块标记相对应的数据分块进行修复,来解决分条未成功写入时所造成的WRITEHOLE问题,在节省大量系统资源的基础上,极大地缩短了数据的处理时延、提高了数据的处理效率。
实施例二:
本发明实施例二提供了一种可用于实现本发明实施例一所示方法的数据处理设备,如图2所示,其为本发明实施例二中所述数据处理设备的结构示意图,所述数据处理设备可适用于具备多个磁盘的磁盘阵列,如RAID5等磁盘阵列中,本发明实施例对此不作任何限定。
具体地,所述数据处理设备可包括坏块标记模块11、数据写入模块12、结果确定模块13以及数据修复模块14,其中:
所述坏块标记模块11可用于针对任一待写入磁盘阵列同一分条中的待写入数据分块组,对所述待写入数据分块组中的至少一个数据分块所要写入到的磁盘区域进行坏块标记。具体地,任一待写入数据分块组可包括至少一个待写入用户数据分块以及待写入校验数据分块;进一步地,为了提高数据的处理效率以及缩小备份内容,所述坏块标记模块11具体可用于对所述待写入数据分块组中的待写入校验数据分块所要写入到的磁盘区域进行坏块标记。
所述数据写入模块12可用于对所述待写入数据分块组执行磁盘写入操作;
所述结果确定模块13可用于确定所述待写入数据分块组未成功写入的第一结果;具体地,在本发明所述实施例中,所述结果确定模块13可在设定时长内未接收到磁盘阵列中的各磁盘返回的用于指示数据已成功写入的响应消息时或接收到磁盘阵列中的各磁盘返回的用于指示数据未成功写入的响应消息时,确定所述待写入数据分块组未成功写入所述磁盘阵列相应磁盘的磁盘区域中,本发明实施例对此不作任何限定。
所述数据修复模块14可用于根据所述结果确定模块13确定的第一结果,对所述同一分条中的至少一个与所述坏块标记相对应的数据分块进行修复,直至将所述至少一个与所述坏块标记相对应的数据分块修复为与所述同一分条中的各其他数据分块呈相互匹配状态。
具体地,在本发明所述实施例中,所述数据修复模块14具体可用于从所述同一分条中的与所述坏块标记相对应的各数据分块中,选取至少一个数据分块作为当前待修复数据分块,以及,针对任一当前待修复数据分块,根据所述同一分条中的、与所述当前待修复数据分块不同的各其他数据分块,生成与所述当前待修复数据分块相匹配的新数据分块,并将生成的所述新数据分块写入所述当前待修复数据分块所对应的磁盘区域中。
需要说明的是,在本发明所述实施例中,由于通常可对各待写入数据分块组中的待写入校验数据分块所要写入到的磁盘区域进行坏块标记,因此,在确定所述待写入数据分块组未成功写入时,所述数据修复模块14通常可采用以下方式对所述同一分条中的至少一个与所述坏块标记相对应的数据分块进行修复:
根据所述同一分条中的各用户数据分块,生成与所述各用户数据分块相匹配的校验数据分块,并将生成的校验数据分块写入所述同一分条中的原校验数据分块所对应的磁盘区域,得到用户数据分块以及校验数据分块相互匹配的分条数据。
进一步地,在本发明所述实施例中,所述数据写入模块12还可用于在所述数据修复模块14将所述至少一个与所述坏块标记相对应的数据分块修复为与所述同一分条中的各其他数据分块呈相互匹配状态之后,根据所述结果确定模块13确定的第一结果,重新对所述待写入数据分块组执行磁盘写入操作。
进一步地,所述结果确定模块13还可用于确定所述待写入数据分块组已成功写入的第二结果;
所述数据处理设备还可包括可用于根据所述结果确定模块13确定的第二结果,清除所述坏块标记的标记清除模块15。
具体地,所述标记清除模块15可用于在所述数据修复模块14将所述至少一个与所述坏块标记相对应的数据分块修复为与所述同一分条中的各其他数据分块呈相互匹配状态之后,根据所述结果确定模块13确定的第二结果,清除所述坏块标记;或者,可用于在所述数据写入模块12对所述待写入数据分块组执行磁盘写入操作之后,根据所述结果确定模块13确定的第二结果,清除所述坏块标记,本发明实施例对此不作任何限定。
本发明实施例二提供了一种数据处理设备,在进行分条数据的写入操作时,可通过对待写入磁盘阵列同一分条中的待写入数据分块组中的至少一个数据分块所要写入到的磁盘区域进行坏块标记,并在确定所述待写入数据分块组未成功写入时,根据所述坏块标记,对所述同一分条中的至少一个与所述坏块标记相对应的数据分块进行修复,来解决分条未成功写入时所造成的WRITEHOLE问题,在节省大量系统资源的基础上,极大地缩短了数据的处理时延、提高了数据的处理效率。
实施例三:
本发明实施例三提供了一种可用于实现本发明实施例一所示方法的数据处理设备,如图3所示,其为本发明实施例三中所述数据处理设备的结构示意图,为了便于说明,仅示出了与本发明实施例三相关的部分,具体技术细节未揭示的,请参照图1所示的本发明实施例。
具体地,所述数据处理设备可为服务器等独立设备,或为位于服务器等独立设备中的集成设备等,本发明实施例对此不作任何限定。具体地,本发明实施例三以所述数据处理设备为独立的服务器为例进行说明,图3示出的是与本发明实施例三相关的服务器20的部分结构的框图。
如图3所示,所述服务器20可以包括:第一处理器21、第二处理器22以及第三处理器23等部件。本领域技术人员可以理解,图3中示出的服务器20的结构并不构成对服务器的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,本发明实施例对此不作任何限定。
下面结合图3对所述服务器20的各个构成部件进行具体的介绍:
所述第一处理器21可用于针对任一待写入磁盘阵列同一分条中的待写入数据分块组,对所述待写入数据分块组中的至少一个数据分块所要写入到的磁盘区域进行坏块标记。具体地,任一待写入数据分块组可包括至少一个待写入用户数据分块以及待写入校验数据分块;进一步地,为了提高数据的处理效率以及缩小备份内容,所述第一处理器21具体可用于对所述待写入数据分块组中的待写入校验数据分块所要写入到的磁盘区域进行坏块标记。
所述第二处理器22可用于对所述待写入数据分块组执行磁盘写入操作;
所述第三处理器23可用于确定所述待写入数据分块组未成功写入的第一结果,并根据所述第一结果对所述同一分条中的至少一个与所述坏块标记相对应的数据分块进行修复,直至将所述至少一个与所述坏块标记相对应的数据分块修复为与所述同一分条中的各其他数据分块呈相互匹配状态。
具体地,在本发明所述实施例中,所述第三处理器23可在设定时长内未接收到磁盘阵列中的各磁盘返回的用于指示数据已成功写入的响应消息时或接收到磁盘阵列中的各磁盘返回的用于指示数据未成功写入的响应消息时,确定所述待写入数据分块组未成功写入所述磁盘阵列相应磁盘的磁盘区域中,本发明实施例对此不作任何限定。
进一步地,在本发明所述实施例中,所述第三处理器23具体可用于从所述同一分条中的与所述坏块标记相对应的各数据分块中,选取至少一个数据分块作为当前待修复数据分块,以及,针对任一当前待修复数据分块,根据所述同一分条中的、与所述当前待修复数据分块不同的各其他数据分块,生成与所述当前待修复数据分块相匹配的新数据分块,并将生成的所述新数据分块写入所述当前待修复数据分块所对应的磁盘区域中。
需要说明的是,在本发明所述实施例中,由于通常可对各待写入数据分块组中的待写入校验数据分块所要写入到的磁盘区域进行坏块标记,因此,在确定所述待写入数据分块组未成功写入时,所述第三处理器23通常可采用以下方式对所述同一分条中的至少一个与所述坏块标记相对应的数据分块进行修复:
根据所述同一分条中的各用户数据分块,生成与所述各用户数据分块相匹配的校验数据分块,并将生成的校验数据分块写入所述同一分条中的原校验数据分块所对应的磁盘区域,得到用户数据分块以及校验数据分块相互匹配的分条数据。
进一步地,在本发明所述实施例中,所述第二处理器22还可用于在所述第三处理器23将所述至少一个与所述坏块标记相对应的数据分块修复为与所述同一分条中的各其他数据分块呈相互匹配状态之后,根据所述第三处理器23确定的第一结果,重新对所述待写入数据分块组执行磁盘写入操作。
进一步地,所述第三处理器23还可用于确定所述待写入数据分块组已成功写入的第二结果,并根据所述第二结果,清除所述坏块标记。
具体地,所述第三处理器23可用于在将所述至少一个与所述坏块标记相对应的数据分块修复为与所述同一分条中的各其他数据分块呈相互匹配状态之后,根据所述第二结果,清除所述坏块标记;或者,可用于在所述第二处理器22对所述待写入数据分块组执行磁盘写入操作之后,根据所述第二结果,清除所述坏块标记,本发明实施例对此不作任何限定。
本发明实施例三提供了一种数据处理设备,在进行分条数据的写入操作时,可通过对待写入磁盘阵列同一分条中的待写入数据分块组中的至少一个数据分块所要写入到的磁盘区域进行坏块标记,并在确定所述待写入数据分块组未成功写入时,根据所述坏块标记,对所述同一分条中的至少一个与所述坏块标记相对应的数据分块进行修复,来解决分条未成功写入时所造成的WRITEHOLE问题,在节省大量系统资源的基础上,极大地缩短了数据的处理时延、提高了数据的处理效率。
本领域技术人员应明白,本发明的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种数据处理方法,其特征在于,包括:
针对任一待写入磁盘阵列同一分条中的待写入数据分块组,对所述待写入数据分块组中的至少一个数据分块所要写入到的磁盘区域进行坏块标记;
对所述待写入数据分块组执行磁盘写入操作;
若确定所述待写入数据分块组未成功写入,则对所述同一分条中的至少一个与所述坏块标记相对应的数据分块进行修复,直至将所述至少一个与所述坏块标记相对应的数据分块修复为与所述同一分条中的各其他数据分块呈相互匹配状态。
2.如权利要求1所述的数据处理方法,其特征在于,在将所述至少一个与所述坏块标记相对应的数据分块修复为与所述同一分条中的各其他数据分块呈相互匹配状态之后,所述方法还包括:
若确定所述待写入数据分块组仍未成功写入,则重新对所述待写入数据分块组执行磁盘写入操作;或者,
若确定所述待写入数据分块组已成功写入,则清除所述坏块标记。
3.如权利要求1~2任一所述的数据处理方法,其特征在于,
任一待写入数据分块组包括至少一个待写入用户数据分块以及待写入校验数据分块。
4.如权利要求3所述的数据处理方法,其特征在于,对所述待写入数据分块组中的至少一个数据分块所要写入到的磁盘区域进行坏块标记,包括:
对所述待写入数据分块组中的待写入校验数据分块所要写入到的磁盘区域进行坏块标记。
5.如权利要求1~2任一所述的数据处理方法,其特征在于,对所述同一分条中的至少一个与所述坏块标记相对应的数据分块进行修复,直至将所述至少一个与所述坏块标记相对应的数据分块修复为与所述同一分条中的各其他数据分块呈相互匹配状态,包括:
从所述同一分条中的与所述坏块标记相对应的各数据分块中,选取至少一个数据分块作为当前待修复数据分块;
针对任一当前待修复数据分块,根据所述同一分条中的、与所述当前待修复数据分块不同的各其他数据分块,生成与所述当前待修复数据分块相匹配的新数据分块,并将生成的所述新数据分块写入所述当前待修复数据分块所对应的磁盘区域中。
6.一种数据处理设备,其特征在于,包括:
坏块标记模块,用于针对任一待写入磁盘阵列同一分条中的待写入数据分块组,对所述待写入数据分块组中的至少一个数据分块所要写入到的磁盘区域进行坏块标记;
数据写入模块,用于对所述待写入数据分块组执行磁盘写入操作;
结果确定模块,用于确定所述待写入数据分块组未成功写入的第一结果;
数据修复模块,用于根据所述结果确定模块确定的第一结果,对所述同一分条中的至少一个与所述坏块标记相对应的数据分块进行修复,直至将所述至少一个与所述坏块标记相对应的数据分块修复为与所述同一分条中的各其他数据分块呈相互匹配状态。
7.如权利要求6所述的数据处理设备,其特征在于,所述数据处理设备还包括标记清除模块:
所述结果确定模块,还用于确定所述待写入数据分块组已成功写入的第二结果;
所述数据写入模块,还用于在所述数据修复模块将所述至少一个与所述坏块标记相对应的数据分块修复为与所述同一分条中的各其他数据分块呈相互匹配状态之后,根据所述结果确定模块确定的第一结果,重新对所述待写入数据分块组执行磁盘写入操作;
所述标记清除模块,用于在所述数据修复模块将所述至少一个与所述坏块标记相对应的数据分块修复为与所述同一分条中的各其他数据分块呈相互匹配状态之后,根据所述结果确定模块确定的第二结果,清除所述坏块标记。
8.如权利要求6~7任一所述的数据处理设备,其特征在于,
任一待写入数据分块组包括至少一个待写入用户数据分块以及待写入校验数据分块。
9.如权利要求8所述的数据处理设备,其特征在于,
所述坏块标记模块,具体用于对所述待写入数据分块组中的待写入校验数据分块所要写入到的磁盘区域进行坏块标记。
10.如权利要求6~7任一所述的数据处理设备,其特征在于,
所述数据修复模块,具体用于从所述同一分条中的与所述坏块标记相对应的各数据分块中,选取至少一个数据分块作为当前待修复数据分块,以及,针对任一当前待修复数据分块,根据所述同一分条中的、与所述当前待修复数据分块不同的各其他数据分块,生成与所述当前待修复数据分块相匹配的新数据分块,并将生成的所述新数据分块写入所述当前待修复数据分块所对应的磁盘区域中。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310631351.8A CN103823637B (zh) | 2013-11-29 | 2013-11-29 | 一种数据处理方法及设备 |
PCT/CN2014/082983 WO2015078192A1 (zh) | 2013-11-29 | 2014-07-25 | 一种数据处理方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310631351.8A CN103823637B (zh) | 2013-11-29 | 2013-11-29 | 一种数据处理方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103823637A true CN103823637A (zh) | 2014-05-28 |
CN103823637B CN103823637B (zh) | 2017-07-07 |
Family
ID=50758727
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310631351.8A Active CN103823637B (zh) | 2013-11-29 | 2013-11-29 | 一种数据处理方法及设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN103823637B (zh) |
WO (1) | WO2015078192A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104035830A (zh) * | 2014-06-24 | 2014-09-10 | 浙江宇视科技有限公司 | 一种数据恢复方法和装置 |
WO2015078192A1 (zh) * | 2013-11-29 | 2015-06-04 | 华为技术有限公司 | 一种数据处理方法及设备 |
CN111382007A (zh) * | 2018-12-28 | 2020-07-07 | 深圳市茁壮网络股份有限公司 | 一种数据恢复方法、装置及电子设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020161970A1 (en) * | 2001-03-06 | 2002-10-31 | Busser Richard W. | Utilizing parity caching and parity logging while closing the RAID 5 write hole |
CN1851635A (zh) * | 2006-06-01 | 2006-10-25 | 杭州华为三康技术有限公司 | 对廉价磁盘冗余阵列进行读写操作的方法和系统 |
CN101566924A (zh) * | 2008-04-23 | 2009-10-28 | 中兴通讯股份有限公司 | 一种磁盘阵列的数据读写方法 |
CN101615105A (zh) * | 2009-08-06 | 2009-12-30 | 杭州华三通信技术有限公司 | Raid存储系统和可进行raid计算的存储器及控制方法 |
CN101916173A (zh) * | 2010-08-27 | 2010-12-15 | 杭州华三通信技术有限公司 | 一种基于raid的数据读写方法及其系统 |
US8225136B2 (en) * | 2008-06-13 | 2012-07-17 | Fujitsu Limited | Control method and storage device |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7979773B2 (en) * | 2007-03-13 | 2011-07-12 | Summit Data Systems Llc | RAID array auto-initialization (RAAI) |
EP2630571B1 (en) * | 2010-10-21 | 2020-10-14 | Oracle International Corporation | Two stage checksummed raid storage model |
CN102023902B (zh) * | 2010-12-28 | 2013-05-08 | 创新科存储技术有限公司 | 一种磁盘阵列重建方法 |
CN103823637B (zh) * | 2013-11-29 | 2017-07-07 | 华为技术有限公司 | 一种数据处理方法及设备 |
-
2013
- 2013-11-29 CN CN201310631351.8A patent/CN103823637B/zh active Active
-
2014
- 2014-07-25 WO PCT/CN2014/082983 patent/WO2015078192A1/zh active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020161970A1 (en) * | 2001-03-06 | 2002-10-31 | Busser Richard W. | Utilizing parity caching and parity logging while closing the RAID 5 write hole |
CN1851635A (zh) * | 2006-06-01 | 2006-10-25 | 杭州华为三康技术有限公司 | 对廉价磁盘冗余阵列进行读写操作的方法和系统 |
CN101566924A (zh) * | 2008-04-23 | 2009-10-28 | 中兴通讯股份有限公司 | 一种磁盘阵列的数据读写方法 |
US8225136B2 (en) * | 2008-06-13 | 2012-07-17 | Fujitsu Limited | Control method and storage device |
CN101615105A (zh) * | 2009-08-06 | 2009-12-30 | 杭州华三通信技术有限公司 | Raid存储系统和可进行raid计算的存储器及控制方法 |
CN101916173A (zh) * | 2010-08-27 | 2010-12-15 | 杭州华三通信技术有限公司 | 一种基于raid的数据读写方法及其系统 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015078192A1 (zh) * | 2013-11-29 | 2015-06-04 | 华为技术有限公司 | 一种数据处理方法及设备 |
CN104035830A (zh) * | 2014-06-24 | 2014-09-10 | 浙江宇视科技有限公司 | 一种数据恢复方法和装置 |
CN111382007A (zh) * | 2018-12-28 | 2020-07-07 | 深圳市茁壮网络股份有限公司 | 一种数据恢复方法、装置及电子设备 |
CN111382007B (zh) * | 2018-12-28 | 2024-04-30 | 深圳市茁壮网络股份有限公司 | 一种数据恢复方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2015078192A1 (zh) | 2015-06-04 |
CN103823637B (zh) | 2017-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2008539474A (ja) | パワーセーフディスクストレージ装置、システム及び方法 | |
CN103631721A (zh) | 一种隔离内存中坏块的方法及系统 | |
CN107562578B (zh) | 一种存储数据的快照创建方法、装置、设备及存储介质 | |
US9104604B2 (en) | Preventing unrecoverable errors during a disk regeneration in a disk array | |
CN103455386A (zh) | 一种修复出错数据的方法和设备 | |
CN109086425B (zh) | 用于数据库的数据处理方法和装置 | |
US20160283354A1 (en) | Technologies for application validation in persistent memory systems | |
CN103218271B (zh) | 一种数据纠错方法及装置 | |
WO2015111176A1 (ja) | プログラマブルデバイス、エラー保持システム、及び電子システム装置 | |
TW201301016A (zh) | 資料備份與恢復系統及方法 | |
KR20130069364A (ko) | 비휘발성 반도체 기억 장치 및 그 관리 방법 | |
US20200066367A1 (en) | Memory device controller | |
CN104461791A (zh) | 一种信息处理方法及处理装置 | |
CN103823637A (zh) | 一种数据处理方法及设备 | |
CN103475514B (zh) | 无bmc的节点、集群系统及bios修复和升级方法 | |
CN105094684A (zh) | 磁盘阵列系统中问题磁盘的重用方法和系统 | |
CN112231403B (zh) | 数据同步的一致性校验方法、装置、设备和存储介质 | |
WO2024103977A1 (zh) | 一种元数据的配置方法、装置及非易失性可读存储介质 | |
CN104407806A (zh) | 独立磁盘冗余阵列组硬盘信息的修改方法和装置 | |
TW201426282A (zh) | 基本輸入輸出系統的存取系統及方法 | |
CN110119285A (zh) | 一种低端单片机软件升级方法及相关装置 | |
CN104572350B (zh) | 一种元数据处理方法及装置 | |
WO2017012507A1 (zh) | 一种数据恢复方法及装置 | |
JP2010536112A (ja) | 中断された書込みの回復のためのデータ記憶方法、機器およびシステム | |
CN114385412A (zh) | 存储管理方法、设备和计算机程序产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |