CN103647804B - 一种存储单元的数据处理方法、设备及系统 - Google Patents

一种存储单元的数据处理方法、设备及系统 Download PDF

Info

Publication number
CN103647804B
CN103647804B CN201310600884.XA CN201310600884A CN103647804B CN 103647804 B CN103647804 B CN 103647804B CN 201310600884 A CN201310600884 A CN 201310600884A CN 103647804 B CN103647804 B CN 103647804B
Authority
CN
China
Prior art keywords
data
memory element
failure
server
request
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
CN201310600884.XA
Other languages
English (en)
Other versions
CN103647804A (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 Cloud Computing 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
Priority to CN201310600884.XA priority Critical patent/CN103647804B/zh
Publication of CN103647804A publication Critical patent/CN103647804A/zh
Priority to EP14864210.1A priority patent/EP3054626B1/en
Priority to PCT/CN2014/078079 priority patent/WO2015074392A1/zh
Priority to US15/160,129 priority patent/US10049024B2/en
Application granted granted Critical
Publication of CN103647804B publication Critical patent/CN103647804B/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
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2033Failover techniques switching over of hardware resources
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2002Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
    • G06F11/2007Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication media
    • G06F11/201Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication media between storage system components
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2069Management of state, configuration or failover
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2089Redundant storage control functionality
    • G06F11/2092Techniques of failing over between control units
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • G06F11/1662Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit the resynchronized component or unit being a persistent storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/805Real-time

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Retry When Errors Occur (AREA)
  • Hardware Redundancy (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明实施例提供了一种存储单元的数据处理方法、设备及系统,用于避免对存储单元进行重复的数据读取操作,提高存储单元的数据处理机制合理性,节省系统资源。该方法包括:第一服务器针对至少一个用于存储数据的存储单元,记录发生可修复故障但修复失败的存储单元的信息;所述第一服务器在每次接收到读取数据的请求时,查询记录的存储单元的信息对应的存储单元中是否存储有所述数据中的部分或全部数据;如果是,向发送所述请求的请求方返回读取所述数据失败的消息;否则,在存储有所述数据的存储单元中读取所述数据,并反馈给发送所述请求的请求方。

Description

一种存储单元的数据处理方法、设备及系统
技术领域
本发明涉及电子计算机技术领域,尤其涉及一种存储单元的数据处理方法、设备及系统。
背景技术
现有存储系统常使用磁盘驱动器(Hard Disk Drive,HDD)和固态硬盘(SolidState Disk,SDD)作为存储介质。此类存储介质可能出现的故障中包括一些可修复故障,例如校验错误(ECC uncorrectable errors,UNC),扇区标识出错(sector ID not found,IDNF),可修复故障通常可以通过重新写入新的数据进行修复。
对于数据存在备份的分布式存储系统,备份数据会分布在不同的服务器。如果主用服务器发生UNC、IDNF等可修复故障,主用服务器请求存储有故障区域的备份数据的备用服务器发送备份数据,将接收的备份数据覆盖到故障区域,完成故障修复;同样,如果备用服务器发生UNC、IDNF等可修复故障,备用服务器向相应的主用服务器发送请求,根据接收的来自主用服务器的备份数据完成故障修复。而当主、备用服务器的同一备份数据均发生故障时,故障区域则无法完成修复。
在无法完成修复的情况下,主用服务器或者备用服务器可能再次接收到读取故障区域数据的请求,并再次调度操作系统(Operate System,OS)输入输出(Input Output,IO)通道访问硬盘故障区域,进而重新启动故障修复过程,然后返回故障修复失败。反复的IO调度和修复过程会浪费掉大量的系统资源。
发明内容
本发明实施例提供了一种存储单元的数据处理方法、设备及系统,用以解决主、备用服务器的同一备份数据均发生故障时,反复的IO调度和修复过程浪费系统资源的问题。
本发明实施例提供的具体技术方案如下:
第一方面,一种存储单元的数据处理方法,该方法包括:
第一服务器针对至少一个用于存储数据的存储单元,记录发生可修复故障但修复失败的存储单元的信息;
所述第一服务器在每次接收到读取数据的请求时,查询记录的存储单元的信息对应的存储单元中是否存储有所述数据中的部分或全部数据;
如果是,向发送所述请求的请求方返回读取所述数据失败的消息;
否则,在存储有所述数据的存储单元中读取所述数据,并反馈给发送所述请求的请求方。
结合第一方面,在第一种可能的实现方式中,所述第一服务器记录发生可修复故障但修复失败的存储单元的信息,包括:
所述第一服务器向第二服务器发送消息,用以请求所述第二服务器读取所述第一服务器内发生可修复故障的存储单元中存储的数据的备份数据;
当所述第一服务器接收到所述第二服务器在读取所述备份数据失败时返回的消息后,确定所述发生可修复故障的存储单元修复失败;
所述第一服务器记录所述发生可修复故障的存储单元的信息。
结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述第一服务器通过下述方式确定发生可修复故障的存储单元:
所述第一服务器接收读取数据的请求;
所述第一服务器通过操作系统输入输出OS IO通道访问请求读取的数据所在的存储单元;
所述第一服务器根据所述OS IO上报的消息,确定所述请求读取的数据所在的存储单元中发生可修复故障的存储单元。
结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述OS IO通道上报的消息,包括:
所述发生可修复故障的存储单元对应的位图bitmap,以及所述可修复故障的错误码。
结合第一方面,在第四种可能的实现方式中,所述第一服务器记录发生可修复故障但修复失败的存储单元的信息,包括:
所述第一服务器将内存的坏分区表BST中对应于所述发生可修复故障但修复失败的存储单元的比特bit位设置为1。
结合第一方面的第四种可能的实现方式,在第五种可能的实现方式中,该方法还包括:
所述第一服务器将内存的BST存储至硬盘。
结合第一方面和第一方面的第一种可能的实现方式至第五种可能的实现方式中任意一种,在第六种可能的实现方式中,所述可修复故障,包括:
校验错误,和/或扇区标志出错。
结合第一方面,在第七种可能的实现方式中,该方法还包括:
所述第一服务器在每次接收到写入数据的请求时,确定将被写入数据的存储单元的信息;
当所述第一服务器确定记录的存储单元的信息中包括所述将被写入数据的存储单元的信息时,删除记录的所述将被写入数据的存储单元的信息;
向所述将被写入数据的存储单元写入数据。
结合第一方面,在第八种可能的实现方式中,该方法还包括:
当所述第一服务器确定向任一服务器发送数据时,查询记录的存储单元的信息对应的存储单元中是否存储有待发送数据中的部分或全部数据;
如果是,所述第一服务器向接收方服务器发送指示消息,指示所述待发送数据中的部分或全部数据所存储在的存储单元发生可修复故障但修复失败;
否则,所述第一服务器向接收方服务器发送所述待发送数据。
结合第一方面,在第九种可能的实现方式中,该方法还包括:
当所述第一服务器确定将要接收任一服务器发送的数据时,若接收到发送方服务器指示的部分或全部数据所存储在的发送方服务器的存储单元发生可修复故障但修复失败的消息,则确定用于存储所述部分或全部数据的存储单元,在本地记录用于存储所述部分或全部数据的存储单元的信息。
第二方面,一种服务器设备,该设备包括:
记录单元,用于针对至少一个用于存储数据的存储单元,记录发生可修复故障但修复失败的存储单元的信息;
读请求处理单元,用于在每次接收到读取数据的请求时,查询记录的存储单元的信息对应的存储单元中是否存储有所述数据中的部分或全部数据;如果是,向发送所述请求的请求方返回读取所述数据失败的消息;否则,在存储有所述数据的存储单元中读取所述数据,并反馈给发送所述请求的请求方。
结合第二方面,在第一种可能的实现方式中,所述记录单元,包括:
故障确定单元,用于确定本地发生可修复故障的存储单元;
消息发送单元,用于向其它服务器发送消息,用以请求所述其它服务器读取所述发生可修复故障的存储单元中存储的数据的备份数据,
消息处理单元,用于接收到所述其它服务器在读取所述备份数据失败时返回的消息后,确定所述发生可修复故障的存储单元修复失败;
信息记录单元,用于记录所述发生可修复故障的存储单元的信息。
结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述故障确定单元具体用于:
接收读取数据的请求;
通过OS IO通道访问请求读取的数据所在的存储单元;
根据所述OS IO上报的消息,确定所述请求读取的数据所在的存储单元中发生可修复故障的存储单元。
结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中,所述故障确定单元接收的OS IO通道上报的消息,包括:
所述发生可修复故障的存储单元对应的位图bitmap,以及所述可修复故障的错误码。
结合第二方面,在第四种可能的实现方式中,所述记录单元用于记录发生可修复故障但修复失败的存储单元的信息时,具体用于:
将内存的坏分区表BST中对应于所述发生可修复故障但修复失败的存储单元的比特bit位设置为1。
结合第二方面的第四种可能的实现方式,在第五种可能的实现方式中,该设备还包括:
BST存储单元,用于将内存的BST存储至硬盘。
结合第二方面和第二方面的第一种可能的实现方式至第五种可能的实现方式中任意一种,在第六种可能的实现方式中,所述记录单元中记录的存储单元的信息对应的存储单元发生的可修复故障,包括:
校验错误,和/或扇区标志出错。
结合第二方面,在第七种可能的实现方式中,该设备还包括:
写请求处理单元,用于在每次接收到写入数据的请求时,确定将被写入数据的存储单元的信息;当确定记录的存储单元的信息中包括所述将被写入数据的存储单元的信息时,删除记录的所述将被写入数据的存储单元的信息;向所述将被写入数据的存储单元写入数据。
结合第二方面,在第八种可能的实现方式中,该设备还包括:
指示单元,用于当确定向任一服务器发送数据时,查询记录的存储单元的信息对应的存储单元中是否存储有待发送数据中的部分或全部数据;如果是,向接收方服务器发送指示消息,指示所述待发送数据中的部分或全部数据所存储在的存储单元发生可修复故障但修复失败;否则,向接收方服务器发送所述待发送数据。
结合第二方面,在第九种可能的实现方式中,该设备还包括:
指示接收单元,用于当确定将要接收任一服务器发送的数据时,若接收到发送方服务器指示的部分或全部数据所存储在的发送方服务器的存储单元发生可修复故障但修复失败的消息,则确定用于存储所述部分或全部数据的存储单元,在本地记录所述用于存储所述部分或全部数据的存储单元的信息。
第三方面,一种服务器设备,该设备包括:
处理器,用于针对至少一个用于存储数据的存储单元,记录发生可修复故障但修复失败的存储单元的信息;在每次接收到读取数据的请求时,查询记录的存储单元的信息对应的存储单元中是否存储有所述数据中的部分或全部数据;如果是,向发送所述请求的请求方返回读取所述数据失败的消息;否则,在存储有所述数据的存储单元中读取所述数据,并反馈给发送所述请求的请求方。
结合第三方面,在第一种可能的实现方式中,该设备还包括传输模块;
所述处理器用于记录发生可修复故障但修复失败的存储单元的信息时,具体用于:
确定本地发生可修复故障的存储单元;
向其它服务器发送消息,用以请求所述其它服务器读取所述发生可修复故障的存储单元中存储的数据的备份数据;
当接收到所述其它服务器在读取所述备份数据失败时返回的消息后,确定所述发生可修复故障的存储单元修复失败;
记录所述发生可修复故障的存储单元的信息。
结合第三方面的第一种可能的实现方式,在第二种可能的实现方式中,所述处理器用于确定本地发生可修复故障的存储单元时,具体用于:
接收读取数据的请求;
通过操作系统输入输出OS IO通道访问请求读取的数据所在的存储单元;
根据所述OS IO上报的消息,确定所述请求读取的数据所在的存储单元中发生可修复故障的存储单元。
结合第三方面的第二种可能的实现方式,在第三种可能的实现方式中,所述处理器接收的OS IO通道上报的消息,包括:
所述发生可修复故障的存储单元对应的位图bitmap,以及所述可修复故障的错误码。
结合第三方面,在第四种可能的实现方式中,该设备还包括内存;
所述处理器用于记录发生可修复故障但修复失败的存储单元的信息时,具体用于:
将内存的坏分区表BST中对应于所述发生可修复故障但修复失败的存储单元的比特bit位设置为1。
结合第三方面的第四种可能的实现方式,在第五种可能的实现方式中,该设备还包括硬盘;
所述处理器还用于将内存的BST存储至硬盘。
结合第三方面和第三方面第一种可能的实现方式至第五种可能的实现方式中任意一种,在第六种可能的实现方式中,所述处理器记录的存储单元的信息对应的存储单元发生的可修复故障,包括:
校验错误,和/或扇区标志出错。
结合第三方面,在第七种可能的实现方式中,所述处理器还用于在每次接收到写入数据的请求时,确定将被写入数据的存储单元的信息;当确定记录的存储单元的信息中包括所述将被写入数据的存储单元的信息时,删除记录的所述将被写入数据的存储单元的信息;向所述将被写入数据的存储单元写入数据。
结合第三方面,在第八种可能的实现方式中,所述处理器还用于当确定向任一服务器发送数据时,查询记录的存储单元的信息对应的存储单元中是否存储有待发送数据中的部分或全部数据;如果是,向接收方服务器发送指示消息,指示所述待发送数据中的部分或全部数据所存储在的存储单元发生可修复故障但修复失败;否则,向接收方服务器发送所述待发送数据。
结合第三方面,在第九种可能的实现方式中,所述处理器还用于当确定将要接收任一服务器发送的数据时,若接收到发送方服务器指示的部分或全部数据所存储在的发送方服务器的存储单元发生可修复故障但修复失败的消息,则确定用于存储所述部分或全部数据的存储单元,在本地记录所述用于存储所述部分或全部数据的存储单元的信息。
第四方面,一种分布式存储系统,至少包括:
第一服务器,用于针对至少一个用于存储数据的存储单元,记录发生可修复故障但修复失败的存储单元的信息;在每次接收到读取数据的请求时,查询记录的存储单元的信息对应的存储单元中是否存储有所述数据中的部分或全部数据;如果是,向发送所述请求的请求方返回读取所述数据失败的消息;否则,在存储有所述数据的存储单元中读取所述数据,并反馈给发送所述请求的请求方。
结合第四方面,在第一种可能的实现方式中,所述系统中,对于每一第一服务器,存在与该第一服务器对应的第二服务器;
所述第一服务器用于记录发生可修复故障但修复失败的存储单元的信息时,具体用于:
向所述第二服务器发送消息,用以请求所述第二服务器读取所述第一服务器内发生可修复故障的存储单元中存储的数据的备份数据;
当接收到所述第二服务器在读取所述备份数据失败时返回的消息后,确定所述发生可修复故障的存储单元修复失败;
记录所述发生可修复故障的存储单元的信息。
结合第四方面或第四方面的第一种可能的实现方式,在第二种可能的实现方式中,所述第一服务器记录的存储单元的信息对应的存储单元发生的可修复故障,包括:
校验错误,和/或扇区标志出错。
结合第四方面,在第三种可能的实现方式中,所述第一服务器还用于:
当确定向任一服务器发送数据时,查询记录的存储单元的信息对应的存储单元中是否存储有待发送数据中的部分或全部数据;如果是,向接收方服务器发送指示消息,指示所述待发送数据中的部分或全部数据所存储在的存储单元发生可修复故障但修复失败;否则,向接收方服务器发送所述待发送数据。
结合第四方面,在第四种可能的实现方式中,所述第一服务器还用于:
当确定将要接收任一服务器发送的数据时,若接收到发送方服务器指示的部分或全部数据所存储在的发送方服务器的存储单元发生可修复故障但修复失败的消息,则确定用于存储所述部分或全部数据的存储单元,在本地记录用于存储所述部分或全部数据的存储单元的信息。
本发明实施例,第一服务器针对至少一个用于存储数据的存储单元,记录发生可修复故障但修复失败的存储单元的信息;第一服务器在每次接收到读取数据的请求时,查询记录的存储单元的信息对应的存储单元中是否存储有所述数据中的部分或全部数据;如果是,向发送所述请求的请求方返回读取所述数据失败的消息;否则,在存储有所述数据的存储单元中读取所述数据,并反馈给发送所述请求的请求方。通过记录发生可修复故障但修复失败的存储单元,并在每次读取数据之前查询记录的存储单元的信息,避免了对发生可修复故障的存储单元进行重复的没有效果的修复,使得存储单元的数据读取机制更加合理,节省了系统资源。
附图说明
图1是本发明实施例提供的存储单元的数据处理方法的流程示意图;
图2是本发明一具体实施例提供的存储单元的故障处理方法的流程示意图;
图3是本发明另一具体实施例提供的存储单元的故障处理方法的流程示意图;
图4是本发明另一具体实施例提供的存储单元的数据迁移方法的流程示意图;
图5是本发明实施例提供的服务器设备的结构示意图;
图6是本发明实施例提供的服务器设备的另一结构示意图;
图7是本发明实施例提供的服务器设备的另一结构示意图;
图8是本发明实施例提供的分布式存储系统的结构示意图。
具体实施方式
本发明实施例提供了一种存储单元的数据处理方法、设备及系统,用以避免对发生可修复故障的存储单元进行重复的没有效果的修复,节省系统资源。
参见图1,本发明实施例提供的存储单元的数据处理方法包括:
S101、第一服务器针对至少一个用于存储数据的存储单元,记录发生可修复故障但修复失败的存储单元的信息。
第一服务器在OS IO通道上报存储单元发生可修复故障之后,尝试获取存储在其它服务器的备份数据,用以修复故障,若该修复过程失败,则记录此类存储单元的信息。
所述可修复故障,包括:IDNF,和/或UNC。
S102、所述第一服务器在每次接收到读取数据的请求时,查询记录的存储单元的信息对应的存储单元中是否存储有所述数据中的部分或全部数据;如果是,向发送所述请求的请求方返回读取所述数据失败的消息;否则,在存储有所述数据的存储单元中读取所述数据,并反馈给发送所述请求的请求方。
读取数据的请求来自用户,或者来自本地后台程序,或者来自分布式存储系统中的其它计算机。
在调用系统资源访问存储介质之前,先查询存储单元是否有发生可修复故障但修复失败的记录,这样,能够避免对存储单元进行重复修复,节约了系统资源。
较佳的,S101中,第一服务器记录发生可修复故障但修复失败的存储单元的信息,包括:第一服务器向第二服务器发送消息,用以请求第二服务器读取第一服务器内发生可修复故障的存储单元中存储的数据的备份数据;当第一服务器接收到第二服务器在读取所述备份数据失败时返回的消息后,确定所述发生可修复故障的存储单元修复失败;第一服务器记录所述发生可修复故障的存储单元的信息。
较佳的,第一服务器通过下述方式确定发生可修复故障的存储单元:第一服务器接收读取数据的请求;第一服务器通过操作系统输入输出OS IO通道访问请求读取的数据所在的存储单元;第一服务器根据所述OS IO上报的消息,确定所述请求读取的数据所在的存储单元中发生可修复故障的存储单元。现有技术中,通过OS IO通道访问发生任何故障的存储单元时OS IO通道均上报输入输出错误(Error Input Output,EIO),用户层无法得知存储单元发生的是否为可修复故障,不利于用户层进行合理的故障处理。因此,本发明实施例中,定义OS IO通道能够上报存储单元故障的具体类型,这样,使得用户层能够根据OS IO通道上报的消息,确定发生可修复故障的存储单元,然后针对发生可修复故障的存储单元向其它服务器发送消息,以请求传输备份数据进行故障修复。而针对根据OS IO通道上报的消息确定的发生硬件损坏等不可修复故障的存储单元,用户层不作修复处理。
较佳的,OS IO通道的上报方式进行如下改进:在OS IO通道上报的消息中,指示发生故障的存储单元对应的位图bitmap,以及故障的错误码。bitmap用于确定存储单元的位置,错误码用于确定具体的故障类型,UNC和IDNF均有各自对应的错误码。
较佳的,记录发生可修复故障但修复失败的存储单元的信息,包括:第一服务器将内存的坏分区表BST中对应于所述发生可修复故障但修复失败的存储单元的比特bit位设置为1。具体地,可以使用UINT32(Unsigned INTeger32,32位无符号整型)数据的一个bit标记一个存储单元,对于HDD,存储单元为扇区,1M存储空间对应的2048(=64×32)个扇区使用64个UINT32的值即可表示,各个bit初始为0,若某一扇区发生可修复故障并修复失败,将该扇区对应的bit置为1。
较佳的,当满足一定的触发条件时,第一服务器将内存的BST存储至硬盘。例如,在固定的时间点将BST存储至硬盘,或者,当BST有更新时,将BST同步至硬盘。计算机每次在内存掉电之后,从硬盘中读取BST,这样,能够避免BST的记录丢失。
较佳的,本实施例还提供向存储单元写入数据的方法,具体包括:
第一服务器在每次接收到写入数据的请求时,确定将被写入数据的存储单元;所述第一服务器查询记录的存储单元的信息对应的存储单元中是否包括所述将被写入数据的存储单元;如果是,所述第一服务器删除对所述将被写入数据的存储单元的信息的记录,向所述将被写入数据的存储单元写入数据;否则,所述第一服务器向所述将被写入数据的存储单元写入数据。
这样,能够正常读取新写入的数据。
当分布式存储系统内增、减服务器时,服务器之间需要进行再平衡(rebalance)过程,通过转移存储的数据来平衡各服务器负荷。在转移数据的过程中,对于已被记录的发生可修复故障但修复失败的存储单元中的数据,发送方服务器应当指示出来,接收方服务器也应当对本地相应的存储单元进行记录,以避免错误数据的传输和读取,保障数据的一致性。
具体的,当第一服务器确定向任一服务器发送数据时,查询记录的存储单元的信息对应的存储单元中是否存储有待发送数据中的部分或全部数据;如果是,第一服务器向接收方服务器发送指示消息,指示所述待发送数据中的部分或全部数据所存储在的存储单元发生可修复故障但修复失败;否则,第一服务器向接收方服务器发送所述待发送数据。
当第一服务器确定将要接收任一服务器发送的数据时,若接收到发送方服务器指示的部分或全部数据所存储在的发送方服务器的存储单元发生可修复故障但修复失败的消息,则在本地记录与所述部分或全部数据对应的存储单元的信息。例如,不接收已被发送方服务器BST记录的存储单元中的无效数据,仅在本地为无效数据保留同样大小的存储空间,并在本地BST记录这些存储空间。
下面结合实际应用场景,对本发明实施例提供的方法进行详细说明。
场景一、服务器A、B、C中均存有一份数据M,m是M中的一段数据,在服务器A中完全占用一个扇区,A为主用服务器,B和C为备用服务器,服务器A中维护有一张BST。如图2所示,服务器A的存储单元故障处理包括以下流程:
S201、服务器A接收到读操作请求,调用OS IO读取数据M;
S202、服务器A的OS IO返回数据m所在扇区发生UNC或IDNF;
S203、服务器A向服务器B发送读修复请求;服务器B读取数据m,服务器B的OS IO的返回UNC或IDNF;
S204、服务器A接收到服务器B返回的消息,确定读修复失败;
S205、服务器A向服务器C发送读修复请求;服务器C读取数据m,服务器C的OS IO的返回UNC或IDNF;
S206、服务器A接收到服务器C返回的消息,确定读修复失败;
S207、服务器A在BST中标记m所在扇区。
当服务器A再次接收到读取数据M的请求时,先查询BST,发现数据m已被BST标记,返回读取数据M失败;当服务器A接收到写入数据的请求时,先查询BST,发现m所在扇区已被BST标记,则撤销BST中对m所在扇区的标记,然后向m所在扇区写入数据。
场景二、服务器A、B、C中均存有一份数据M,m是M中的一段数据,在服务器A中完全占用一个扇区,C为主用服务器,A和B为备用服务器,服务器A中维护有一张BST。如图3所示,服务器A的存储单元故障处理包括以下流程:
S301、服务器A进行磁盘后台扫描,调用OS IO读取数据M;
S302、服务器A的OS IO返回数据m所在扇区发生UNC或IDNF;
S303、服务器A向服务器C发送读修复请求;服务器C读取数据m,服务器C的OS IO的返回UNC或IDNF;
S304、服务器C向服务器B发送读修复请求;服务器B读取数据m,服务器B的OS IO的返回UNC或IDNF;
S305、服务器C接收到服务器B返回的消息,确定读修复失败;
S306、服务器A接收到服务器C返回的消息,确定读修复失败;
S307、服务器A在BST中标记数据m所在扇区。
当服务器A再次进行磁盘后台扫描等读取数据的操作时,先查询BST,发现数据m已被BST标记,返回读取数据M失败;当服务器A接收到写入数据的请求时,先查询BST,发现m所在扇区已被BST标记,则撤销BST中对m所在扇区的标记,然后向m所在扇区写入数据。
场景三、服务器A、B、C中均存有一份数据M,m是M中的一段数据,在A中完全占用一个扇区,m所在扇区已被A的BST标记,此时加入服务器D,用于分担服务器A、B、C的存储负荷。如图4所示,分布式存储系统的rebalance包括以下流程:
S401、服务器A确定将数据M迁移至服务器D;
S402、服务器A在传输数据M时,不传输数据m,同时指示服务器D数据m所在扇区已被BST标记;
S403、服务器D接收数据M,保留数据m占用的存储空间,同时在BST中标记m所在扇区。
当服务器D读取数据M时,先查询BST,发现数据m已被BST标记,返回读取数据M失败;当服务器D接收到写入数据的请求时,先查询BST,发现m所在扇区已被BST标记,则撤销BST中对m所在扇区的标记,然后向m所在扇区写入数据。
参见图5,本发明实施例提供的服务器设备,包括:
记录单元51,用于针对至少一个用于存储数据的存储单元,记录发生可修复故障但修复失败的存储单元的信息;
读请求处理单元52,用于在每次接收到读取数据的请求时,查询记录的存储单元的信息对应的存储单元中是否存储有所述数据中的部分或全部数据;如果是,向发送所述请求的请求方返回读取所述数据失败的消息;否则,在存储有所述数据的存储单元中读取所述数据,并反馈给发送所述请求的请求方。
较佳的,参见图6,所述记录单元51,包括:
故障确定单元511,用于确定本地发生可修复故障的存储单元;
消息发送单元512,用于向其它服务器发送消息,用以请求所述其它服务器读取所述发生可修复故障的存储单元中存储的数据的备份数据;
消息处理单元513,用于当接收到所述其它服务器在读取所述备份数据失败时返回的消息后,确定所述发生可修复故障的存储单元修复失败;
信息记录单元514,用于记录所述发生可修复故障的存储单元的信息。
较佳的,所述故障确定单元511具体用于:
接收读取数据的请求;
通过OS IO通道访问请求读取的数据所在的存储单元;
根据所述OS IO上报的消息,确定所述请求读取的数据所在的存储单元中发生可修复故障的存储单元。
较佳的,所述故障确定单元511接收的OS IO通道上报的消息,包括:
所述发生可修复故障的存储单元对应的位图bitmap,以及所述可修复故障的错误码。
较佳的,所述记录单元51用于记录发生可修复故障但修复失败的存储单元的信息时,具体用于:
将内存的坏分区表BST中对应于所述发生可修复故障但修复失败的存储单元的比特bit位设置为1。
较佳的,该设备还包括:
BST存储单元,用于将内存的BST存储至硬盘。
较佳的,所述记录单元51记录的存储单元的信息对应的存储单元发生的可修复故障,包括:
校验错误,和/或扇区标志出错。
较佳的,该设备还包括:
写请求处理单元,用于在每次接收到写入数据的请求时,确定将被写入数据的存储单元;查询记录的存储单元的信息对应的存储单元中是否包括所述将被写入数据的存储单元;如果是,删除对所述将被写入数据的存储单元的信息的记录,向所述将被写入数据的存储单元写入数据;否则,向所述将被写入数据的存储单元写入数据。
较佳的,该设备还包括:
指示单元,用于当确定向任一服务器发送数据时,查询记录的存储单元的信息对应的存储单元中是否存储有待发送数据中的部分或全部数据;如果是,向接收方服务器发送指示消息,指示所述待发送数据中的部分或全部数据所存储在的存储单元发生可修复故障但修复失败;否则,向接收方服务器发送所述待发送数据。
较佳的,该设备还包括:
指示接收单元,用于当确定将要接收任一服务器发送的数据时,若接收到发送方服务器指示的部分或全部数据所存储在的发送方服务器的存储单元发生可修复故障但修复失败的消息,则在本地记录与所述部分或全部数据对应的存储单元的信息。
需要说明的是,该实施例的服务器设备是为实现上述步骤S101-S102的,上述的对方法的解释和限定同样适用于本实施例的服务器设备。
参见图7,本发明实施例提供的服务器设备,包括:
处理器71,用于针对至少一个用于存储数据的存储单元,记录发生可修复故障但修复失败的存储单元的信息;在每次接收到读取数据的请求时,查询记录的存储单元的信息对应的存储单元中是否存储有所述数据中的部分或全部数据;如果是,向发送所述请求的请求方返回读取所述数据失败的消息;否则,在存储有所述数据的存储单元中读取所述数据,并反馈给发送所述请求的请求方。
较佳的,所述设备还包括传输模块72;
所述处理器用于记录发生可修复故障但修复失败的存储单元的信息时,具体用于:
确定本地发生可修复故障的存储单元;
通过所述传输模块72向其它服务器发送消息,用以请求所述其它服务器读取所述发生可修复故障的存储单元中存储的数据的备份数据;
通过所述传输模块72接收所述其它服务器返回的消息;
当接收到所述其它服务器在读取所述备份数据失败时返回的消息后,确定所述发生可修复故障的存储单元修复失败;
记录所述发生可修复故障的存储单元的信息。
较佳的,所述处理器71用于确定本地发生可修复故障的存储单元时,具体用于:
接收读取数据的请求;
通过操作系统输入输出OS IO通道访问请求读取的数据所在的存储单元;
根据所述OS IO上报的消息,确定所述请求读取的数据所在的存储单元中发生可修复故障的存储单元。
较佳的,所述处理器71接收的OS IO通道上报的消息,包括:
所述发生可修复故障的存储单元对应的位图bitmap,以及所述可修复故障的错误码。
较佳的,该设备还包括内存73;
所述处理器用于记录发生可修复故障但修复失败的存储单元的信息时,具体用于:
将内存73的坏分区表BST中对应于所述发生可修复故障但修复失败的存储单元的比特bit位设置为1。
较佳的,该设备还包括硬盘74;
所述处理器71还用于将内存73的BST存储至硬盘74。
较佳的,所述处理器71记录的存储单元的信息对应的存储单元发生的可修复故障,包括:
校验错误,和/或扇区标志出错。
较佳的,所述处理器71还用于在每次接收到写入数据的请求时,确定将被写入数据的存储单元;查询记录的存储单元的信息对应的存储单元中是否包括所述将被写入数据的存储单元;如果是,删除对所述将被写入数据的存储单元的信息的记录,向所述将被写入数据的存储单元写入数据;否则,向所述将被写入数据的存储单元写入数据。
较佳的,所述处理器71还用于当确定向任一服务器发送数据时,查询记录的存储单元的信息对应的存储单元中是否存储有待发送数据中的部分或全部数据;如果是,向接收方服务器发送指示消息,指示所述待发送数据中的部分或全部数据所存储在的存储单元发生可修复故障但修复失败;否则,向接收方服务器发送所述待发送数据。
较佳的,所述处理器71还用于当确定将要接收任一服务器发送的数据时,若接收到发送方服务器指示的部分或全部数据所存储在的发送方服务器的存储单元发生可修复故障但修复失败的消息,则在本地记录与所述部分或全部数据对应的存储单元的信息。
参见图8,本发明实施例提供的一种分布式存储系统包括:
第一服务器81,用于针对至少一个用于存储数据的存储单元,记录发生可修复故障但修复失败的存储单元的信息;在每次接收到读取数据的请求时,查询记录的存储单元的信息对应的存储单元中是否存储有所述数据中的部分或全部数据;如果是,向发送所述请求的请求方返回读取所述数据失败的消息;否则,在存储有所述数据的存储单元中读取所述数据,并反馈给发送所述请求的请求方。
较佳的,所述系统中,对于每一第一服务器,存在与该第一服务器对应的第二服务器82;
第一服务器81用于记录发生可修复故障但修复失败的存储单元的信息时,具体用于:
向第二服务器82发送消息,用以请求第二服务器82读取第一服务器81内发生可修复故障的存储单元中存储的数据的备份数据;
当接收到第二服务器82在读取所述备份数据失败时返回的消息后,确定所述发生可修复故障的存储单元修复失败;
记录所述发生可修复故障的存储单元的信息。
较佳的,第一服务器81记录的存储单元的信息对应的存储单元发生的可修复故障,包括:校验错误,和/或扇区标志出错。
较佳的,第一服务器81还用于:
当确定向任一服务器发送数据时,查询记录的存储单元的信息对应的存储单元中是否存储有待发送数据中的部分或全部数据;如果是,向接收方服务器发送指示消息,指示所述待发送数据中的部分或全部数据所存储在的存储单元发生可修复故障但修复失败;否则,向接收方服务器发送所述待发送数据。
较佳的,第一服务器81还用于:
当确定将要接收任一服务器发送的数据时,若接收到发送方服务器指示的部分或全部数据所存储在的发送方服务器的存储单元发生可修复故障但修复失败的消息,则在本地记录与所述部分或全部数据对应的存储单元的信息。
综上所述,本发明实施例提供了一种存储单元的数据处理方法、设备及系统,改进了存储单元的数据读、写、传输机制,避免了对存储单元数据的重复修复,节省了系统资源,以及,避免了发生故障的存储单元的数据被其它设备使用。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (22)

1.一种存储单元的数据处理方法,其特征在于,该方法包括:
第一服务器针对至少一个用于存储数据的存储单元,记录发生可修复故障但修复失败的存储单元的信息;
所述第一服务器在接收到读取数据的第一请求时,查询记录的存储单元的信息对应的存储单元中是否存储有所述第一请求所请求的数据中的部分或全部数据;
如果是,向发送所述第一请求的请求方返回读取所述第一请求所请求的数据失败的消息;
否则,在存储有所述第一请求所请求的数据的存储单元中读取所述第一请求所请求的数据,并反馈给发送所述第一请求的请求方;
其中,所述第一服务器记录发生可修复故障但修复失败的存储单元的信息,包括:
所述第一服务器向第二服务器发送消息,用以请求所述第二服务器读取所述第一服务器内发生可修复故障的存储单元中存储的数据的备份数据;
当所述第一服务器接收到所述第二服务器在读取所述备份数据失败时返回的消息后,确定所述发生可修复故障的存储单元修复失败;
所述第一服务器记录所述发生可修复故障的存储单元的信息。
2.如权利要求1所述的方法,其特征在于,所述第一服务器通过下述方式确定发生可修复故障的存储单元:
所述第一服务器接收读取数据的第二请求;
所述第一服务器通过操作系统输入输出OS IO通道访问所述第二请求读取的数据所在的存储单元;
所述第一服务器根据所述OS IO上报的消息,确定所述第二请求读取的数据所在的存储单元中发生可修复故障的存储单元。
3.如权利要求2所述的方法,其特征在于,所述OS IO通道上报的消息,包括:
所述发生可修复故障的存储单元对应的位图bitmap,以及所述可修复故障的错误码。
4.如权利要求1所述的方法,其特征在于,所述第一服务器记录发生可修复故障但修复失败的存储单元的信息,包括:
所述第一服务器将内存的坏分区表BST中对应于所述发生可修复故障但修复失败的存储单元的比特bit位设置为1。
5.如权利要求4所述的方法,其特征在于,该方法还包括:
所述第一服务器将内存的BST存储至硬盘。
6.如权利要求1-5任一权项所述的方法,其特征在于,所述可修复故障,包括:
校验错误,和/或扇区标志出错。
7.如权利要求1所述的方法,其特征在于,该方法还包括:
所述第一服务器在每次接收到写入数据的请求时,确定将被写入数据的存储单元的信息;
当所述第一服务器确定记录的存储单元的信息中包括所述将被写入数据的存储单元的信息时,删除记录的所述将被写入数据的存储单元的信息;
向所述将被写入数据的存储单元写入数据。
8.如权利要求1所述的方法,其特征在于,该方法还包括:
当所述第一服务器确定向任一服务器发送数据时,查询记录的存储单元的信息对应的存储单元中是否存储有待发送数据中的部分或全部数据;
如果是,所述第一服务器向接收方服务器发送指示消息,指示所述待发送数据中的部分或全部数据所存储在的存储单元发生可修复故障但修复失败;
否则,所述第一服务器向接收方服务器发送所述待发送数据。
9.如权利要求1所述的方法,其特征在于,该方法还包括:
当所述第一服务器确定将要接收任一服务器发送的数据时,若接收到发送方服务器指示的部分或全部数据所存储在的发送方服务器的存储单元发生可修复故障但修复失败的消息,则确定用于存储所述部分或全部数据的存储单元,在本地记录用于存储所述部分或全部数据的存储单元的信息。
10.一种服务器设备,其特征在于,该设备包括:
记录单元,用于针对至少一个用于存储数据的存储单元,记录发生可修复故障但修复失败的存储单元的信息;
读请求处理单元,用于在每次接收到读取数据的第一请求时,查询记录的存储单元的信息对应的存储单元中是否存储有所述第一请求所请求的数据中的部分或全部数据;如果是,向发送所述请求的请求方返回读取所述第一请求所请求的数据失败的消息;否则,在存储有所述第一请求所请求的数据的存储单元中读取所述第一请求所请求的数据,并反馈给发送所述请求的请求方;
其中,所述记录单元,包括:
故障确定单元,用于确定本地发生可修复故障的存储单元;
消息发送单元,用于向其它服务器发送消息,用以请求所述其它服务器读取所述发生可修复故障的存储单元中存储的数据的备份数据;
消息处理单元,用于当接收到所述其它服务器在读取所述备份数据失败时返回的消息后,确定所述发生可修复故障的存储单元修复失败;
信息记录单元,用于记录所述发生可修复故障的存储单元的信息。
11.如权利要求10所述的设备,其特征在于,所述故障确定单元具体用于:
接收读取数据的第二请求;
通过操作系统输入输出OS IO通道访问所述第二请求读取的数据所在的存储单元;
根据所述OS IO上报的消息,确定所述第二请求读取的数据所在的存储单元中发生可修复故障的存储单元。
12.如权利要求11所述的设备,其特征在于,所述故障确定单元接收的OS IO通道上报的消息,包括:
所述发生可修复故障的存储单元对应的位图bitmap,以及所述可修复故障的错误码。
13.如权利要求10所述的设备,其特征在于,所述记录单元用于记录发生可修复故障但修复失败的存储单元的信息时,具体用于:
将内存的坏分区表BST中对应于所述发生可修复故障但修复失败的存储单元的比特bit位设置为1。
14.如权利要求13所述的设备,其特征在于,该设备还包括:
BST存储单元,用于将内存的BST存储至硬盘。
15.如权利要求10-14任一权项所述的设备,其特征在于,所述记录单元记录的存储单元的信息对应的存储单元发生的可修复故障,包括:
校验错误,和/或扇区标志出错。
16.如权利要求10所述的设备,其特征在于,该设备还包括:
写请求处理单元,用于在每次接收到写入数据的请求时,确定将被写入数据的存储单元的信息;当确定记录的存储单元的信息中包括所述将被写入数据的存储单元的信息时,删除记录的所述将被写入数据的存储单元的信息;向所述将被写入数据的存储单元写入数据。
17.如权利要求10所述的设备,其特征在于,该设备还包括:
指示单元,用于当确定向任一服务器发送数据时,查询记录的存储单元的信息对应的存储单元中是否存储有待发送数据中的部分或全部数据;如果是,向接收方服务器发送指示消息,指示所述待发送数据中的部分或全部数据所存储在的存储单元发生可修复故障但修复失败;否则,向接收方服务器发送所述待发送数据。
18.如权利要求10所述的设备,其特征在于,该设备还包括:
指示接收单元,用于当确定将要接收任一服务器发送的数据时,若接收到发送方服务器指示的部分或全部数据所存储在的发送方服务器的存储单元发生可修复故障但修复失败的消息,则确定用于存储所述部分或全部数据的存储单元,在本地记录所述用于存储所述部分或全部数据的存储单元的信息。
19.一种分布式存储系统,其特征在于,至少包括:
第一服务器,用于针对至少一个用于存储数据的存储单元,记录发生可修复故障但修复失败的存储单元的信息;在每次接收到读取数据的第一请求时,查询记录的存储单元的信息对应的存储单元中是否存储有所述第一请求所请求的数据中的部分或全部数据;如果是,向发送所述请求的请求方返回读取所述第一请求所请求的数据失败的消息;否则,在存储有所述第一请求所请求的数据的存储单元中读取所述第一请求所请求的数据,并反馈给发送所述请求的请求方;
所述系统中,对于每一第一服务器,存在与该第一服务器对应的第二服务器;
所述第一服务器用于记录发生可修复故障但修复失败的存储单元的信息时,具体用于:
向所述第二服务器发送消息,用以请求所述第二服务器读取所述第一服务器内发生可修复故障的存储单元中存储的数据的备份数据;
当接收到所述第二服务器在读取所述备份数据失败时返回的消息后,确定所述发生可修复故障的存储单元修复失败;
记录所述发生可修复故障的存储单元的信息。
20.如权利要求19所述的系统,其特征在于,所述第一服务器记录的存储单元的信息对应的存储单元发生的可修复故障,包括:
校验错误,和/或扇区标志出错。
21.如权利要求19所述的系统,其特征在于,所述第一服务器还用于:
当确定向任一服务器发送数据时,查询记录的存储单元的信息对应的存储单元中是否存储有待发送数据中的部分或全部数据;如果是,向接收方服务器发送指示消息,指示所述待发送数据中的部分或全部数据所存储在的存储单元发生可修复故障但修复失败;否则,向接收方服务器发送所述待发送数据。
22.如权利要求19所述的系统,其特征在于,所述第一服务器还用于:
当确定将要接收任一服务器发送的数据时,若接收到发送方服务器指示的部分或全部数据所存储在的发送方服务器的存储单元发生可修复故障但修复失败的消息,则确定用于存储所述部分或全部数据的存储单元,在本地记录用于存储所述部分或全部数据的存储单元的信息。
CN201310600884.XA 2013-11-22 2013-11-22 一种存储单元的数据处理方法、设备及系统 Active CN103647804B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201310600884.XA CN103647804B (zh) 2013-11-22 2013-11-22 一种存储单元的数据处理方法、设备及系统
EP14864210.1A EP3054626B1 (en) 2013-11-22 2014-05-22 Data processing method and device for storage unit
PCT/CN2014/078079 WO2015074392A1 (zh) 2013-11-22 2014-05-22 一种存储单元的数据处理方法、设备及系统
US15/160,129 US10049024B2 (en) 2013-11-22 2016-05-20 Data processing method, device, and system for storage unit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310600884.XA CN103647804B (zh) 2013-11-22 2013-11-22 一种存储单元的数据处理方法、设备及系统

Publications (2)

Publication Number Publication Date
CN103647804A CN103647804A (zh) 2014-03-19
CN103647804B true CN103647804B (zh) 2017-04-26

Family

ID=50252957

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310600884.XA Active CN103647804B (zh) 2013-11-22 2013-11-22 一种存储单元的数据处理方法、设备及系统

Country Status (4)

Country Link
US (1) US10049024B2 (zh)
EP (1) EP3054626B1 (zh)
CN (1) CN103647804B (zh)
WO (1) WO2015074392A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103647804B (zh) 2013-11-22 2017-04-26 华为技术有限公司 一种存储单元的数据处理方法、设备及系统
WO2015196365A1 (zh) * 2014-06-24 2015-12-30 华为技术有限公司 一种故障处理方法、相关装置及计算机
CN106326285B (zh) * 2015-06-30 2019-11-12 华为技术有限公司 一种存储数据的方法及装置
WO2018176388A1 (en) * 2017-03-31 2018-10-04 Intel Corporation Techniques to maintain memory confidentiality through power state changes
CN107395416A (zh) * 2017-07-20 2017-11-24 郑州云海信息技术有限公司 一种数据发送方法及服务器集群
CN109426576B (zh) * 2017-08-30 2022-03-29 华为技术有限公司 容错处理方法以及容错组件
CN108173672B (zh) * 2017-12-04 2021-06-08 华为技术有限公司 检测故障的方法和装置
CN112911185B (zh) * 2021-01-18 2022-10-18 浙江大华技术股份有限公司 一种双控设备故障处理方法及装置

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5913927A (en) * 1995-12-15 1999-06-22 Mylex Corporation Method and apparatus for management of faulty data in a raid system
US6854071B2 (en) * 2001-05-14 2005-02-08 International Business Machines Corporation Method and apparatus for providing write recovery of faulty data in a non-redundant raid system
US7069465B2 (en) * 2002-07-26 2006-06-27 International Business Machines Corporation Method and apparatus for reliable failover involving incomplete raid disk writes in a clustering system
US7007191B2 (en) * 2002-08-23 2006-02-28 Lsi Logic Corporation Method and apparatus for identifying one or more devices having faults in a communication loop
US7251743B2 (en) * 2003-11-20 2007-07-31 International Business Machines Corporation Method, system, and program for transmitting input/output requests from a primary controller to a secondary controller
CN100444276C (zh) * 2004-09-15 2008-12-17 威盛电子股份有限公司 平顺播放光盘的方法与系统
CN100504795C (zh) * 2006-06-28 2009-06-24 联想(北京)有限公司 一种计算机raid阵列预警系统及方法
CN101276302B (zh) * 2007-03-29 2010-10-06 中国科学院计算技术研究所 一种磁盘阵列系统中磁盘故障处理和数据重构方法
US8140922B2 (en) * 2008-05-20 2012-03-20 International Business Machines Corporation Method for correlating an error message from a PCI express endpoint
JP5486793B2 (ja) * 2008-11-07 2014-05-07 株式会社日立製作所 リモートコピー管理システム、方法及び装置
US8381059B2 (en) * 2010-02-17 2013-02-19 Micron Technology, Inc. Error correction and recovery in chained memory architectures
US8958429B2 (en) * 2010-12-22 2015-02-17 Juniper Networks, Inc. Methods and apparatus for redundancy associated with a fibre channel over ethernet network
CN102761566B (zh) * 2011-04-26 2015-09-23 国际商业机器公司 迁移虚拟机的方法和装置
JP5699852B2 (ja) * 2011-08-12 2015-04-15 富士通株式会社 情報処理装置、ストレージ制御方法およびプログラム
CN103064759B (zh) * 2012-12-18 2016-02-03 华为技术有限公司 数据修复的方法及装置
CN103647804B (zh) * 2013-11-22 2017-04-26 华为技术有限公司 一种存储单元的数据处理方法、设备及系统

Also Published As

Publication number Publication date
EP3054626B1 (en) 2017-10-11
EP3054626A4 (en) 2016-11-23
WO2015074392A1 (zh) 2015-05-28
CN103647804A (zh) 2014-03-19
EP3054626A1 (en) 2016-08-10
US20160266988A1 (en) 2016-09-15
US10049024B2 (en) 2018-08-14

Similar Documents

Publication Publication Date Title
CN103647804B (zh) 一种存储单元的数据处理方法、设备及系统
US20170052842A1 (en) Using reason codes to determine how to handle memory device error conditions
US20150234716A1 (en) Variable drive health determination and data placement
CN101916173B (zh) 一种基于raid的数据读写方法及其系统
JP4764909B2 (ja) Raidレベルマイグレーション方法とシステム
CN103246478B (zh) 一种基于软raid支持无分组式全局热备盘的磁盘阵列系统
WO2019001521A1 (zh) 数据存储方法、存储设备、客户端及系统
CN101997911A (zh) 一种数据迁移的方法及系统
CN102833281B (zh) 一种分布式自增计数的实现方法、装置及系统
US20100083005A1 (en) Encryption device and encryption method
CN106446159A (zh) 一种存储文件的方法、第一虚拟机及名称节点
CN101526885A (zh) 一种提升独立磁盘冗余阵列性能的方法及其控制器
CN103699429A (zh) 虚拟机迁移方法及装置
US10176035B2 (en) System, information processing device, and non-transitory medium for storing program for migration of virtual machine
CN110147203A (zh) 一种文件管理方法、装置、电子设备及存储介质
EP3598289A1 (en) Data storage, distribution, reconstruction and recovery methods and devices, and data processing system
CN106294387A (zh) 数据迁移方法和装置
CN102222033B (zh) 一种保存小型计算机系统接口访问错误的方法及装置
CN102314322A (zh) 一种基于raid阵列的数据处理方法和设备
US20060083076A1 (en) Data management apparatus
CN106778369A (zh) 一种硬盘数据访问方法、税控服务器
CN102576294B (zh) 含有多个存储装置的存储系统和方法
CN109672544B (zh) 一种数据处理方法、装置及分布式存储系统
CN104407806B (zh) 独立磁盘冗余阵列组硬盘信息的修改方法和装置
US20130246710A1 (en) Storage system and data management method

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20220208

Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province

Patentee after: Huawei Cloud Computing Technology Co.,Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right