CN103049400B - 一种磁盘重构方法及其装置 - Google Patents

一种磁盘重构方法及其装置 Download PDF

Info

Publication number
CN103049400B
CN103049400B CN201210580816.7A CN201210580816A CN103049400B CN 103049400 B CN103049400 B CN 103049400B CN 201210580816 A CN201210580816 A CN 201210580816A CN 103049400 B CN103049400 B CN 103049400B
Authority
CN
China
Prior art keywords
disk
data
raid group
target
recovery
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
CN201210580816.7A
Other languages
English (en)
Other versions
CN103049400A (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.)
Guangdong Gaohang Intellectual Property Operation Co ltd
Haining hi tech Zone Science and Innovation Center 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 CN201210580816.7A priority Critical patent/CN103049400B/zh
Publication of CN103049400A publication Critical patent/CN103049400A/zh
Priority to PCT/CN2013/080582 priority patent/WO2014101412A1/zh
Application granted granted Critical
Publication of CN103049400B publication Critical patent/CN103049400B/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/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
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/1092Rebuilding, e.g. when physically replacing a failing disk

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)

Abstract

本发明实施例提供一种磁盘重构方法及装置,涉及存储领域,能够减少数据的丢失,甚至实现不丢失,并且能够快速恢复用户的业务。其方法为:当独立磁盘冗余阵列RAID组中第一成员磁盘存在故障时,根据RAID组中第一成员磁盘以外的第二成员磁盘的数据恢复第一成员磁盘的数据,并将恢复的数据存储到目标磁盘;在第一成员磁盘的故障恢复前,用包含恢复的数据的目标磁盘替换第一成员磁盘作为RAID组的成员磁盘;在第一成员磁盘故障恢复后,根据恢复的第一成员磁盘进行相应的重构处理。本发明实施例用于磁盘阵列中故障磁盘的重构。

Description

一种磁盘重构方法及其装置
技术领域
本发明涉及存储领域,尤其涉及一种磁盘重构方法及其装置。
背景技术
独立磁盘冗余阵列(RedundantArrayofIndependentDisks,RAID),旧称廉价磁盘冗余阵列(RedundantArrayofInexpensiveDisks,RAID),是一种把多块独立的磁盘或硬盘组合起来形成的一个磁盘组或硬盘组,也可以称为逻辑硬盘。一个磁盘组中的多个磁盘互为成员磁盘。
RAID技术为存储领域最常用的技术之一,它将多块磁盘或硬盘虚拟成一个大容量的磁盘或硬盘,可以通过并行读写来加快整体存储速度,并可以利用冗余纠错技术实现一定的容错能力,从而提供比同等容量的单个磁盘或硬盘更高的存储性能与数据备份能力。
在现有技术当中,在某一磁盘出现故障之后,可以利用磁盘组中剩余磁盘上的内容恢复故障磁盘的内容,并将恢复的内容写到一个空闲盘中,这个过程称作磁盘重构。
磁盘重构过程中,如果遇到剩余磁盘上有不可读的区域,则在该空闲磁盘上与不可读的区域对应的空闲区域标记为坏块,继续利用剩余磁盘的其它区域进行重构,重构完成后将故障磁盘替换为空闲磁盘投入使用。然而,现有的这种处理方式,故障磁盘上部分数据会丢失,例如故障磁盘上与不可读的区域对应的区域的数据会丢失,导致重构后的磁盘数据不完整。
发明内容
本发明的实施例提供一种磁盘重构方法及装置,能够减少磁盘在重构之后数据丢失。
第一方面,提供一种磁盘重构方法,包括:
当RAID组中第一成员磁盘存在故障时,所述方法:
根据RAID组中第一成员磁盘以外的第二成员磁盘的数据恢复第一成员磁盘的数据,并将恢复的数据存储到目标磁盘;
在第一成员磁盘的故障恢复前,用包含恢复的数据的目标磁盘替换第一成员磁盘作为RAID组的成员磁盘;
在第一成员磁盘故障恢复后,根据恢复的第一成员磁盘进行相应的重构处理。
在第一种可能实现的方式中,结合第一方面,用恢复的第一成员磁盘替换包含恢复的数据的目标磁盘作为RAID组的成员磁盘。
在第二种可能实现的方式中,结合第一方面,所述方法还包括:根据RAID组中第一成员磁盘以外的第二成员磁盘可读区域的数据恢复第一成员磁盘的第一区域的数据,并将恢复的数据存储到目标磁盘,其中,在目标磁盘上与第一成员磁盘的第二区域对应的区域不写入数据,第一区域对应第二成员磁盘的区域可读,第二区域对应第二成员磁盘的不可读区域。进一步的,在第一磁盘成员的故障恢复后,可以将恢复的第一成员磁盘的第二区域的数据存储到目标磁盘。
第二方面,提供一种用于实现磁盘重构的装置,包括:
数据获取单元,用于根据RAID组中第一成员磁盘以外的第二成员磁盘的数据恢复第一成员磁盘的数据,第一成员磁盘为RAID组中发生故障的成员磁盘;
写处理单元,用于将数据获取单元恢复的数据写入目标磁盘。
重构控制单元,用于在第一成员磁盘故障恢复前,将RAID组的成员磁盘从第一成员磁盘切换到包含恢复的数据的目标磁盘,并在第一成员磁盘故障恢复后,根据恢复的第一成员磁盘完成重构处理。
在第一种可能实现的方式中,结合第二方面,在第一成员磁盘故障恢复后,重构控制单元将RAID组的成员磁盘从包含恢复的数据的目标磁盘切换到恢复的第一成员磁盘。
在第二种可能实现的方式中,结合第二方面,重构控制单元在判断第一成员磁盘的故障可恢复的情况选择在第一成员磁盘故障恢复后,将RAID组的成员磁盘从包含恢复的数据的目标磁盘切换到恢复的第一成员磁盘的重构方式。
第三方面,提供一种存储装置,包括:第三方面以及各种可能实现涉及的用于实现磁盘重构的装置,以及耦合到用于实现磁盘重构的装置的一个或多个RAID组和/或目标磁盘。
第四方面,提供一种磁盘重构装置,包括:
磁盘适配器,用作独立磁盘冗余阵列RAID组和目标磁盘的接口;
存储控制器,用于判断第一成员磁盘的故障是否可恢复,如果第一成员磁盘的故障可恢复,按第一重构方式处理,如果第一成员磁盘的故障不可恢复,按第二重构方式处理;
其中,在第一重构方式下,根据RAID组中第一成员磁盘以外的第二成员磁盘的数据恢复第一成员磁盘的数据,并将恢复的数据存储到目标磁盘;在第一成员磁盘的故障恢复前,用包含恢复的数据的目标磁盘替换第一成员磁盘作为RAID组的成员磁盘;在第一成员磁盘故障恢复后,根据恢复的第一成员磁盘完成重构处理;
其中,在第二重构方式下,根据第二成员磁盘的数据恢复第一成员磁盘的数据,并将恢复的数据存储到目标磁盘;在完成第一成员磁盘到目标磁盘重构后,用包含恢复的数据的目标磁盘替换第一成员磁盘作为RAID组的成员磁盘,将第一成员磁盘从RAID组移除以完成磁盘重构。
在第二种可能实现的方式中,结合第四方面,根据恢复的第一成员磁盘完成重构处理的操作包括:用恢复的第一成员磁盘替换包含恢复的数据的目标磁盘作为RAID组的成员磁盘以完成重构处理。
在第三种可能实现的方式中,结合第四方面,根据恢复的第一成员磁盘完成重构处理的操作包括:将恢复的第一成员磁盘上与第二成员磁盘的不可读区域对应的区域的数据存储到目标磁盘以完成重构处理。
第五方面,提供一种存储装置,包括:
第四方面以及各种可能实现涉及的磁盘重构装置,以及耦合到磁盘重构装置的一个或多个RAID组和/或目标磁盘。
本发明实施例提供的各种方法和装置,能够减少磁盘重构之后数据的丢失,甚至实现不丢失,并且能够快速恢复用户的业务。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的磁盘重构方法流程示意图;
图2A为本发明另一实施例提供的磁盘重构方法流程示意图;
图2B为本发明另一实施例提供的磁盘重构方法流程示意图;
图3为本发明另一实施例提供的磁盘重构方法流程示意图;
图4为本发明另一实施例提供的磁盘重构方法流程示意图;
图5为本发明另一实施例提供的磁盘重构方法流程示意图;
图6A为本发明实施例提供的RAID组数据存储示意图;
图6B为本发明另一实施例提供的磁盘重构示意图;
图6C为本发明另一实施例提供的磁盘重构示意图;
图7为本发明又一实施例提供的装置示意图;
图8为本发明又一实施例提供的装置示意图;
图9A为本发明实施例提供的应用系统框图;
图9B为本发明实施例提供的应用系统框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例涉及的术语“磁盘”和“硬盘”具有基本相同含义。磁盘是通过磁性进行读写功能的设备磁盘,其可为非易失性存储介质,断电后保存的文件不会丢失。硬盘是将磁盘的储存片装到硬质金属盒子里可以得到更好的保护。
本发明实施例涉及的磁盘重构,是对磁盘上数据的重建或恢复。恢复的数据可以被写入目标磁盘。目标磁盘可以是指定的备份磁盘或任何可用的空闲磁盘。本发明实施例提供的各种磁盘重构方法和装置,可应用于包含多个成员磁盘的磁盘组,例如RAID组。该磁盘组用于分布存储整数个数据块以及这些数据块形成的整数个校验数据。在该磁盘组中,如果需要对某磁盘进行重构,可以利用磁盘组中剩余磁盘的数据恢复该磁盘的数据,从而实现磁盘重构。
本发明实施例提供的“磁盘组”,又称作磁盘阵列,可以是基于软件的阵列也可以是基于硬件的阵列。特别的,软阵列通过软件程序并由计算机的中央处理单元(CenterProcessingUnit,CPU)提供运行能力所成。例如,基于软件的阵列通过网络操作系统自身提供的磁盘管理功能将连接的普通小型计算机系统接口(SmallComputerSystemInterface,SCSI)卡上的多块硬盘配置成逻辑盘,组成阵列。基于软件的阵列可以提供数据冗余功能。基于硬件的阵列是使用专门的磁盘阵列卡来实现的。基于硬件的阵列能够提供在线扩容、动态修改阵列级别、自动数据恢复、驱动器漫游、超高速缓冲等功能。它能提供性能、数据保护、可靠性、可用性和可管理性的解决方案。阵列卡专用的处理单元来进行操作,它的性能远远高于常规非阵列硬盘,并且更安全更稳定。
本发明各实施例提供的磁盘组或磁盘阵列可以采用RAID技术,RAID可以是基于软件的也可以是基于硬件的。本发明实施例可以应用于各种RAID组合方式,用RAID级别标识,例如RAID-0,RAID-1,RAID-1E,RAID-5,RAID-6,RAID-7,RAID-10,RAID-50。不同的RAID级别可以满足性能和安全的多种需要。各种RAID级别所需磁盘的数目和存储方式为公众所知,不再赘述。
RAID组中,每一个成员磁盘包含数量相等的区块,跨越RAID组中所有成员磁盘的对齐区块称为条带。如图4所示为一种RAID组数据存储形式。图6A中RAID组划分成N个条带,每一个条带对应4个区块,3个区块存储3个数据块的数据,1个区块存储该条带3个区块的校验数据。每个数据块承载数据比特或字节的大小可以根据存储装置或系统设置,可以通过本地或远程控制接口进行设置。如图6A所示,一组数据块D1,D2,......,D3N+3以及这些数据块形成的校验数据P1,P2,......,PN分布存储到RAID组600的多个成员磁盘601-604中。值得注意的是,RAID组包含的成员磁盘数不仅限于图示的4个,成员磁盘的数量可以根据RAID级别的基本需要以及客户需要确定。本发明实施例数据存储方式不仅限于图6A所示,可以包括现有各种RAID级别的存储方式。
在本发明的一个实施例中,当RAID组中第一成员磁盘故障,如成员磁盘604发生故障,步骤S101中,确定RAID组中第一成员磁盘之外的第二成员磁盘存在不可读区域。步骤S103中,可以根据RAID组中该成员磁盘604以外的第二成员磁盘601-603的数据恢复第一成员磁盘的数据,并将恢复的数据存储到目标磁盘605。步骤S105中,在第一成员磁盘的故障恢复前,用包含恢复的数据的目标磁盘替换第一成员磁盘作为RAID组的成员磁盘。步骤S107中,在第一成员磁盘故障恢复后,用恢复的第一成员磁盘完成相应的重构处理。
如果发现第二成员磁盘存在不可读区域,对第一成员磁盘的第一区域进行重构操作,可以不对第一成员磁盘的第二区域进行重构操作。第一区域对应第二成员磁盘的区域可读,第二区域对应第二成员磁盘的不可读区域。这里的重构操作包括数据恢复处理。在目标磁盘上可以为第二区域预留磁盘空间,保证目标磁盘和第二成员磁盘之间的区块对应关系和第一成员磁盘与第二成员磁盘之间区块对应关系保持一致,即不改变区块对应关系,以降低目标磁盘作为成员磁盘使用过程中存储和数据处理复杂性。在为第二区域预留的磁盘空间上可以不进行坏块标记。
在第一成员磁盘故障恢复后,可以用恢复的第一成员磁盘替换目标磁盘作为RAID组的成员磁盘。采用这种方式,可以不考虑第二成员磁盘是否存在不可读区域,即不管第二成员磁盘是否存在不可读区域,在故障恢复后都能保证系统数据的完整性和安全性。当然这种方式在第二成员磁盘存在不可读区域的情况,可以有效解决目标磁盘上存在部分数据丢失的问题。
在本发明一个实施例中,在第二成员磁盘存在不可读区域的情况,第一成员磁盘故障恢复后可以不需要将目标磁盘替换回恢复的第一成员磁盘。相应的,可以将恢复的第一成员磁盘上与第二成员磁盘不可读区域对应的第二区域的数据存储到目标磁盘。这样,可以实现重构后磁盘数据的完整性,而且可以进一步减少磁盘切换带来的时间延迟。
图2A所示为故障恢复后需要切换回原来磁盘的一个实现过程。图2A所示的磁盘重构方法应用于包含多个成员磁盘的RAID组的存储装置或存储系统。对RAID组中存在故障的第一成员磁盘进行重构的处理包括:
S201a、确定RAID组中第一成员磁盘之外的第二成员磁盘存在不可读区域。
S203a、根据第二成员磁盘的数据恢复第一磁盘的第一区域的数据,并将恢复的数据存储到目标磁盘,其中,所述第一区域对应的第二成员磁盘的区域可读。
S205a、在第一成员磁盘故障恢复前,用包含恢复的数据的目标磁盘替换第一成员磁盘作为RAID组的成员磁盘。
S207a、在第一成员磁盘故障恢复后,用恢复后的第一成员磁盘替换目标磁盘作为RAID组的成员磁盘。
步骤S201a中,可以根据第二成员磁盘的状态检测结果确定第二成员磁盘是否存在不可读区域,状态检测结果用于指示条带和/或区块的可读性检测结果。步骤S203a中,可以根据状态检测结果确定第一区域。状态检测结果可以包含可读区域和/或不可读区域的记录,知道可读区域即可确定不可读区域。
状态检测结果可以用条带标识符和/或区块标识符来识别。具体的,条带标识符和/或区块标识符也可以用存储地址表示,例如,条带标识符可以是条带编号或条带地址(条带的首地址和/或尾地址),区块标识符可以是区块编号或区块地址(区块的首地址和/或尾地址)。状态检测结果可以是存储在存储器中的历史数据,例如包含该不可读区域记录的日志;也可以是通过对第二成员磁盘执行状态检测获得。
状态检测结果可以是故障发生前已经获得的历史数据,也可以是故障发生后对第二成员磁盘启动磁盘状态检测获得的数据。可以按区域扫描,如果第二成员磁盘均可读,其所对应的第一成员磁盘的区域可读。或者是,先确定了第二成员磁盘上存在不可读区域,根据第二成员磁盘的不可读区域确定第一成员磁盘的第二区域,第一成员磁盘剩下的区域即为第一区域。在本发明的实施例中,可以包括对第一成员磁盘的故障是否可恢复的判断操作,该操作可以通过检测磁盘故障原因实现。磁盘故障原因包括磁盘离线、磁盘物理介质故障等一个或多个原因。例如,可以检测RAID组中第一成员磁盘所在槽位的槽位状态,在步骤S201a之前对第一成员磁盘执行槽位状态检测,如果槽位状态检测结果指示该第一成员磁盘不在位,则判断第一成员磁盘可恢复。
在本发明的实施例中,还可以包括对第一成员磁盘的故障是否已恢复的判断操作,该操作可以通过检测磁盘在位状态、磁盘的身份信息、磁盘物理介质完整性等一个或多个内容实现。在重构的过程中,第一成员磁盘是否可恢复的判断操作可以通过检测第一成员磁盘的槽位状态、第一成员磁盘的身份等确定,另外,还可以结合第一成员磁盘的物理介质完整性进行判断。这样可以有效解决故障磁盘误操作拔出或接触不良导致磁盘无法被检测。例如,通过磁盘诊断确定某磁盘的故障是由于物理介质故障导致的,则判定该故障磁盘不可恢复。通常,在某个磁盘所在槽位没有接入新盘,该磁盘被插回的可能性较大,则可以判定该磁盘可恢复。
图2B所示为故障恢复后不需要切换回原来磁盘的一个实现过程。图2B所示的磁盘重构方法应用于包含多个成员磁盘的RAID组的存储装置或存储系统。当RAID组中第一磁盘存在故障时,重构处理方法包括:
S201b、确定RAID组中第一成员磁盘之外的第二成员磁盘存在不可读区域。
S203b、利用第二成员磁盘的数据恢复第一成员磁盘的第一区域的数据,并将恢复的数据保存到目标磁盘,其中,第一成员磁盘的第一区域对应的第二成员磁盘的区域可读。
S205b、在第一成员磁盘故障恢复前,用包含恢复的数据的目标磁盘替换第一成员磁盘作为RAID组的成员磁盘。
S207b、在第一成员磁盘故障恢复后,将恢复的第一成员磁盘的第二区域的数据存储到目标磁盘,第二区域对应第二成员磁盘的不可读区域。
步骤S201b中确定第二成员磁盘是否存在不可读区域的操作可以采用和步骤S201a相同或类似操作,步骤S203b中确定第一区域的操作可以采用和步骤S203a相同或类似操作,不再赘述。
本发明另一实施例提供一种磁盘重构方法,应用于包含多个成员磁盘的RAID组的存储装置或存储系统。如图3所示,当RAID组中第一成员磁盘存在故障时,重构处理方法包括:
S301、判断第一成员磁盘是否可恢复,若第一成员磁盘可恢复,执行S303;若第一成员磁盘不可恢复,执行S306。
其中,第一成员磁盘是否可恢复的判断操作可以通过检测磁盘故障原因实现,该操作可以通过检测磁盘故障原因实现。磁盘故障原因包括磁盘离线、磁盘物理介质故障等一个或多个原因。例如,对第一成员磁盘执行槽位状态检测,如果槽位状态检测结果指示该第一成员磁盘不在位,则判断第一成员磁盘可恢复。若第一成员磁盘是由于误操作导致盘被拔出,且该第一成员磁盘所在槽位没有接入新盘,该第一成员磁盘被插回的可能性较大,则可以判定第一成员磁盘可恢复;或第一成员磁盘是被拔出,且该第一成员磁盘所在槽位接入了新盘,则判定该第一成员磁盘不可恢复;或该第一成员磁盘是由于物理介质故障导致的,则判定该第一成员磁盘不可恢复。
S303、根据RAID组中第一成员磁盘以外的第二成员磁盘的数据恢复第一成员磁盘的数据,将恢复的数据存储到目标磁盘。
该目标磁盘可以是任意可用的空闲磁盘。在存储数据前,可以对目标磁盘的磁盘空间划分成多个区域,划分的多个区域保持和第一成员磁盘的多个区域对应,以保证恢复的每一个区域的数据能够存储到目标磁盘相应的区域。当然,划分区域不是必须的,例如,可以按照数据块分布规则顺序存储。
具体的,如图6A所示,一组连续的数据块和这些数据块形成的校验块分布存储于RAID组的多个成员磁盘。这些存储数据块和校验块的磁盘区域被称为区块,至少一组跨越多个成员磁盘的区块可以形成条带。
示例性的,利用第二成员磁盘上数据块和校验块的分布关系恢复出第一成员磁盘的数据。当第二成员磁盘上存在不可读区域,如存在坏道,第一成员磁盘上与不可读区域对应的区域的数据不可恢复,不对该对应的区域进行重构处理,例如在目标磁盘不进行坏块标记。如图6B所示,第一成员磁盘(磁盘4)发生故障,当检测到的第二成员磁盘(磁盘1-3)中磁盘1的区域j不可读,其对应第一成员磁盘的区域m,不对区域m进行重构处理,即不进行数据恢复计算处理;在目标磁盘上对应的区域n也不进行坏块标记。区域j、区域m和区域n可用区块标识符和/或条带标识符识别。
S304、在第一成员磁盘故障恢复前,用包含恢复的数据的目标磁盘替换第一成员磁盘作为RAID组的成员磁盘。
在本实施例中,目标磁盘作为RAID组临时的成员磁盘,可以在RAID组成员磁盘表和RAID组区域映射关系表中新增一条记录,暂时不删除第一成员磁盘的记录,可以用解激活状态表示。或者创建临时的RAID组成员磁盘表和临时的RAID组区域映射表。把原来的RAID组成员磁盘表和原来的RAID组区域映射关系表解激活,待故障恢复后重新激活。
示例性的,RAID可以应用于通过存储区域网络(StorageAreaNetwork,SAN)将高速服务器与高速存储设备的高速互联的网络环境中。其中,高速存储设备可以为基于RAID的存储装置或系统,这就使得物理上的远距离存储变得容易便捷,提高了数据的可靠性和安全性。例如,可以应用在对数据安全性和存储性能要求很高的企业当中。
譬如在企业商务数据或运营商数据的存储和备份管理的网络环境中,目标磁盘接替故障磁盘后,目标磁盘可以为其他设备提供业务访问服务,从而实现数据的快速备份,快速地恢复用户的业务,以保证企业商务数据远程传输和远程存储的安全性和稳定性。
S305、在第一成员磁盘故障恢复后,用恢复的第一成员磁盘完成磁盘重构处理。步骤S305可以有多种实现方式,例如,在第一成员磁盘故障恢复后,用恢复的第一成员磁盘替换目标磁盘作为RAID组的成员磁盘以完成磁盘重构处理。
完成磁盘重构处理后,删除或解激活目标磁盘作为RIAD组的成员磁盘的记录。另一方面,恢复第一成员磁盘作为RAID组成员的记录,即重新激活该第一成员磁盘。如果步骤S304中是在RAID组成员磁盘表和RAID组区域映射关系表中新增一条记录,在步骤S305中将新增的记录删除,重新激活原来地第一成员磁盘的记录。如果步骤S304中是创建临时的RAID组成员磁盘表和临时的RAID组区域映射表,在步骤S305中将临时的RAID组成员磁盘表和临时的RAID组区域映射表删除,重新使用原来的RAID组成员磁盘表和原来的RAID组区域映射关系表。
在步骤S303中,如果第二成员磁盘存在不可读区域,能够恢复的数据包含第一成员磁盘的第一区域的数据,第一区域对应第二成员磁盘的区域均可读。在第一成员磁盘故障恢复后,将恢复的第一成员磁盘的第二区域的数据存储到目标磁盘,第二区域对应第二成员磁盘的不可读区域。参考图6B所示,将恢复的第一成员磁盘的区域m的数据存储到目标磁盘的区域n。
第一成员磁盘故障是否恢复可参照上文所述。当该第一成员磁盘的故障恢复后,如第一成员磁盘插回其所在RAID组的槽位,将目标磁盘替换为恢复后的第一成员磁盘。这样防止了在重构时由于第二成员盘数据存在不可读区域而引起第一成员磁盘的数据丢失,在第一成员磁盘故障恢复后可以保证第一成员磁盘数据的完整性,进而保证RAID组的数据完整性和安全性。另一方面,用恢复后的第一成员磁盘替换目标磁盘,可以保持RAID组原有的数据处理模式,恢复该RAID组出现故障之前的数据存储状态。
S306、根据RAID组中第一成员磁盘之外的第二成员磁盘的数据恢复第一成员磁盘的数据,并将恢复的数据存储到目标磁盘。
在步骤S306执行的过程中,第二成员磁盘可能存在不可读区域,在目标磁盘上与不可读区域对应的区域可以被标记为坏块,也可以保持空闲,不写入任何数据,或者是可以用固定的值进行填充以便于系统识别。
如图6C所示,第一成员磁盘(磁盘4)发生故障,当检测到的第二成员磁盘(磁盘1-3)中磁盘1的区域j不可读,其对应第一成员磁盘的区域m;在目标磁盘上对应的区域n进行坏块标记。区域j、区域m和区域n可用区块标识符和/或条带标识符识别。当然,区域n上也可以采用固定值填充或保持空闲。
具体的,步骤S306可以包括如下几个子步骤:
S306a、判断第二成员磁盘是否存在不可读区域;如果第二成员磁盘存在不可读区域,执行步骤S306b,如果第二成员磁盘不存在不可读区域,执行步骤S306c。
S306b、根据第二成员磁盘的数据恢复第一成员磁盘的第一区域的数据,并将恢复的数据存储到目标磁盘,其中,在目标磁盘上与第一成员磁盘的第二区域对应的区域标记坏块或不写入数据,第一区域对应的第二成员的区域可读,第二区域对应的第二成员磁盘的不可读区域。
S306c、根据第二成员磁盘的数据恢复第一成员磁盘的数据,并将恢复的数据存储到目标磁盘。
S307、用包含恢复的数据的目标磁盘替换第一成员磁盘作为RAID组的成员磁盘。可以将第一成员磁盘从RAID组移除,不考虑第一成员磁盘的故障是否恢复。
将该第一成员磁盘从该RAID组中移除,如删除第一成员磁盘作为RAID组的成员磁盘的记录,用目标磁盘的信息刷新RAID组区域映射关系表,这样,可以防止后续其他成员盘出现故障,成员信息不准确带来的失效。
这样,当第一成员磁盘的故障可恢复时,RAID组可以保持其原有的数据存储状态,RAID组数据不丢失;当第一成员磁盘的故障不可恢复,根据第二成员磁盘可读区域的数据恢复第一成员磁盘的第一区域的数据,至多丢失第一成员磁盘第二区域的数据,其中,第一区域对应的第二成员磁盘的区域均可能,第二区域对应第二成员的不可读区域。通过RAID组中成员磁盘的状态智能选择重构方式,可以平衡RAID组数据完整性和不可读区域导致重构时间浪费的问题,能够减少RAID组重构后数据的丢失,甚至实现不丢失,并且能够快速恢复用户的业务。
图4为本发明另一实施例的方法流程图。图4所示方法与图3类似,主要区别在于,根据第一成员磁盘的故障是否可恢复以及第二成员磁盘是否存在不可读区域的判断结果选择不同的重构方式:
第一重构方式,应用于在第一成员磁盘的故障可恢复以及第二成员磁盘存在不可读区域的情况。第一重构方式的处理包括:步骤S403中,根据第二成员磁盘的数据恢复第一成员磁盘的数据,将恢复的数据存储到目标磁盘;步骤S404中,在第一成员磁盘故障恢复前,用包含恢复的数据的目标磁盘替换第一成员磁盘作为RAID组的成员磁盘;步骤S405中,在第一成员磁盘故障恢复后,用恢复的第一成员磁盘完成磁盘重构处理。
步骤S405中,在第一成员磁盘故障恢复后,可以用恢复后的第一成员磁盘替换目标磁盘作为RAID组的成员磁盘以完成磁盘重构处理。
步骤S403中恢复的数据包括第一成员磁盘第一区域的数据,第一区域对应的第二成员磁盘的区域均可读。步骤S405中,在第一成员磁盘故障恢复后,可以将第一成员磁盘第二区域的数据存储到目标磁盘以完成磁盘重构处理,第二区域对应第二成员磁盘的不可读区域。
第二重构方式,应用于第一成员磁盘的故障不可恢复以及第二成员磁盘存在不可读区域的情况。第二重构方式的处理包括:步骤S406b中,根据第二成员磁盘的数据恢复第一成员磁盘的第一区域的数据,将恢复的数据存储到目标磁盘,其中,在目标磁盘上与第一成员磁盘的第二区域对应的区域标记坏块或不写入数据,第一区域对应的第二成员磁盘的区域可读,第二区域对应第二成员磁盘的不可区域。步骤S407中,用包含恢复的数据的目标磁盘替换第一成员磁盘作为RAID组的成员磁盘。
第三重构方式,应用于第二成员磁盘不存在不可读区域的情况。第三重构方式的处理包括:步骤S406c中,根据第二成员磁盘的数据恢复第一成员磁盘的数据,并将恢复的数据存储到目标磁盘。步骤S407中,用包含恢复的数据的目标磁盘替换第一成员磁盘作为RAID组的成员磁盘。
图5为本发明另一实施例的方法流程图,图5所示的方法和图4类似。当RAID组中第一成员磁盘故障时,具体处理过程包括:
S501、判断RAID组中第二成员磁盘是否存在不可读区域,如果存在不可读区域,执行步骤S502,如果不存在不可读区域,执行步骤S506c。第二成员磁盘为RAID组中发生故障的第一成员磁盘以外的其他成员磁盘。
S502、判断第一成员磁盘的故障是否可恢复,如果可恢复,执行步骤S503,如果不可恢复,执行步骤S506b。
S503、根据第二成员磁盘的数据恢复第一成员磁盘的数据,将恢复的数据存储到目标磁盘。
S504、在第一成员磁盘故障恢复前,用包含恢复的数据的目标磁盘替换第一成员磁盘作为RAID组的成员磁盘。
S505、在第一成员磁盘故障恢复后,用恢复的第一成员磁盘完成磁盘重构处理。
一方面,在第一成员磁盘故障恢复后,可以用恢复的第一成员磁盘替换目标磁盘作为RAID组的成员磁盘以完成磁盘重构处理。
另一方面,在第一成员磁盘故障恢复后,可以将用恢复的第一成员磁盘的第二区域的数据存储到目标磁盘相应区域以完成磁盘重构处理。其中,第二区域对应第二成员磁盘的不可读区域。
S506b、根据第二成员磁盘的数据恢复第一成员磁盘的第一区域的数据,将恢复的数据存储到目标磁盘,其中,在目标磁盘上与第一成员磁盘的第二区域对应的区域标记坏块或不写入数据,第一区域对应的第二成员磁盘的区域可读。完成S506b的操作后,执行步骤S507。
S506c、根据第二成员磁盘的数据恢复第一成员磁盘的数据,并将恢复的数据存储到目标磁盘。完成S506c的操作后,执行步骤S507。
S507、用包含恢复的数据的目标磁盘替换第一成员磁盘作为RAID组的成员磁盘。
如图7所示为本发明实施例提供一种装置700,用于实现磁盘重构。装置700耦合到包含一个或多个RAID组,每一个RAID组包含多个成员磁盘。装置700包括:
数据获取单元703,用于根据RAID组中第一成员磁盘以外的第二成员磁盘的数据恢复第一成员磁盘的数据。
写处理单元704,用于将数据获取单元703恢复的数据写入目标磁盘。
重构控制单元702,用于在第一成员磁盘故障恢复前,将RAID组的成员磁盘从第一成员磁盘切换到包含恢复的数据的目标磁盘,并在第一成员磁盘故障恢复后,根据恢复的第一成员磁盘完成重构处理。
重构控制单元702可以在第一成员磁盘故障恢复后,将RAID组的成员磁盘从包含恢复的数据的目标磁盘切换到恢复的第一成员磁盘。重构控制单元702也可以指示数据获取单元703在第一成员磁盘故障恢复后,获取第一成员磁盘的第二区域的数据,以及指示写处理单元704将第二区域的数据存储到目标磁盘对应区域。第二区域对应第二成员磁盘的不可读区域。
重构控制单元702在判断第一成员磁盘的故障可恢复的情况选择在第一成员磁盘故障恢复后,将RAID组的成员磁盘从包含恢复的数据的目标磁盘切换到恢复的第一成员磁盘的第一重构方式。
重构控制单元702在判断第一成员磁盘的故障不可恢复的情况选择不考虑故障是否恢复的情况,在完成第一成员磁盘到目标磁盘的重构后将第一成员磁盘从RAID组删除的第二重构方式。
重构控制单元702还可以结合第一成员磁盘的故障可恢复性检测结果和第二成员磁盘是否存在不可读区域的检测结果进行重构方式选择。
具体的,重构控制单元702可以包含故障状态管理单元7022,其用于实现第一成员磁盘的故障状态管理。故障状态管理单元7022可以获得第一成员磁盘的故障原因,故障是否已恢复等信息,故障原因可以包含不在位、磁盘介质故障等一个或多个。
重构控制单元702还可以包含磁盘可读性检测单元7021,用于获得RAID组成员磁盘的可读性检测结果,包括获得第二成员磁盘的可读性检测结果。
重构控制单元702可以包含磁盘管理单元7023,用于管理RAID组成员磁盘,包括维护成员磁盘信息、负责成员磁盘变更或切换管理、磁盘可读区域和/或不可读区域管理、磁盘重构方式选择等一个或多个方面。
重构控制单元702还可以包含处理单元7024,负责根据故障管理单元7022、磁盘可读性检测单元7021、磁盘管理单元7023等一个或多个单元的信息或指令控制数据获取单元703和写入控制单元704的操作。例如,处理单元7024根据第二成员磁盘的可读性检测结果控制数据获取单元703的数据恢复过程,以便于数据获取单元703根据第二成员磁盘可读区域的数据恢复第一成员磁盘第一区域的数据,第一区域对应第二成员磁盘的区域可读,阻止数据获取单元703对第一成员磁盘的第二区域进行重构,第二区域对应第二成员磁盘的不可读区域。处理单元7024还可以根据磁盘可读性检测结果指示写处理单元704不在目标磁盘上与第二区域对应的区域写入数据或标记坏块。具体的,处理单元7024可以根据需要执行上述方法流程的一个或多个操作。
如图8所示为本发明实施例提供一种装置800,包括:
重构方式选择单元801,用于判断RAID组中发生故障的第一成员磁盘是否可恢复,如果第一成员磁盘的故障可恢复选择软重构方式,如果第一成员磁盘的故障不可恢复选择硬重构方式。
软重构单元802,用于在软重构方式下,根据RAID组中第一成员磁盘以外的第二成员磁盘的数据恢复第一成员磁盘的数据,并将恢复的数据存储到目标磁盘,在第一成员磁盘故障恢复前,用包含恢复的数据的目标磁盘替换第一成员磁盘作为RAID组的成员磁盘,在第一成员磁盘故障恢复后,用恢复后的第一成员磁盘替换包含恢复的数据的目标磁盘作为RAID组的成员磁盘。其中,如果第二成员磁盘存在不可读区域,可以仅恢复第一成员磁盘的第一区域的数据,而对第一成员磁盘的第二区域不进行重构或数据恢复处理。其中,第一区域对应的第二成员磁盘的区域均可读,第二区域对应第二成员磁盘的不可读区域。
硬重构单元805,用于在硬重构方式下,根据RAID组中第一成员磁盘以外的第二成员磁盘的数据恢复第一成员磁盘的数据,并将恢复的数据存储到目标磁盘,在完成恢复的数据存储后,用包含恢复的数据的目标磁盘替换第一成员磁盘作为RAID组的成员磁盘,将第一成员磁盘从RAID组移除以完成磁盘重构。第一成员磁盘故障恢复后维持目标磁盘作为RAID组的成员磁盘。其中,如果第二成员磁盘存在不可读区域,可以仅恢复第一成员磁盘的第一区域的数据,而对第一成员磁盘的第二区域不进行重构或数据恢复处理。其中,第一区域对应的第二成员磁盘的区域均可读,第二区域对应第二成员磁盘的不可读区域。。
软重构单元802可以包括:
数据获取单元8021,用于根据第二成员磁盘的数据恢复第一成员磁盘的数据。在第二成员磁盘存在不可读区域时,数据获取单元8021可以根据第二成员磁盘可读区域的数据获取第一成员磁盘的第一区域的数据,第一区域对应的第二成员磁盘的区域均可读。数据获取单元8021获取的数据可以缓存到与装置800耦合的缓存器中,该缓存器可以是外部连接到装置800,也可以是集成到装置800中。
写处理单元8023,用于控制将恢复的数据存储到目标磁盘相应区域
重构控制单元8024,用于在目标磁盘中完成对第一成员磁盘的所有可恢复数据的存储后,用包含恢复的数据的目标磁盘替换第一成员磁盘作为RAID组的成员磁盘;以及在第一成员磁盘故障恢复后,用恢复后的第一成员磁盘替换包含恢复的数据的目标磁盘作为RAID组的成员磁盘。
硬重构单元805可以包括:
数据获取单元8051,用于根据第二成员盘的数据恢复第一成员磁盘的数据。恢复数据的方式可以采用第二成员磁盘中数据块和校验块的分布进行冗余计算获得。如果第第二成员磁盘存在不可读区域,数据获取单元8051可以仅根据第二成员磁盘可读区域的数据获取第一成员磁盘的第一区域的数据,第一区域对应第二成员磁盘的区域均可读,而对第一成员磁盘的第二区域不进行数据恢复处理,第二区域对应第二成员磁盘的不可读区域。
写处理单元8053,用于将数据获取单元8051恢复的数据存储到目标磁盘相应区域。
硬重构单元805可以包括坏块标记单元8052,用于在第二成员磁盘存在不可读区域时,在目标磁盘中将与第二成员盘的不可读区域对应的区域标记为坏块,目标磁盘中标记坏块处不写入数据。
硬重构单元805也可以不包含坏块标记单元8052,而是采用一个固定值作为第一成员磁盘的第二区域的数据写入目标磁盘中与第二区域对应的区域。当然,与第二区域对应的区域也可以不写入任何数据。
重构控制单元8054还可以在目标磁盘中完成对第一成员磁盘所有可恢复数据的存储后,将目标盘作为成员磁盘加入RAID组中,并将第一成员磁盘从RAID组中移除。重构控制单元8054可以更新RAID组磁盘成员信息。
图9A和9B为本发明实施例提供的应用系统910a和910b的架构示意图。
图9A中,系统900a包括一个或多个存储装置或存储系统,如图装置910a,其通过光纤通道(FiberChannel,FC)网络或网际互联协议(InternetProtocol,IP)网络或IP网络905连接到主机901a、901b,数据库902等网络设备。图9A示意性显示了2个主机901a和901b,实际系统中可以包括更多类似主机,这些主机可以是完成各种功能的服务器,如网络服务器(webserver)、文件服务器、业务服务器等。数据库902提供存储文件的内容索引、访问地址信息、用户信息等。
装置910a能够实现磁盘重构功能,提供磁盘重构功能的部件主要包括:
存储控制器912a,通过一个或多个磁盘适配器913a连接到多个磁盘。其中,至少部分磁盘可以形成RAID组,如RAID组915a和915b。至少部分磁盘用作空闲磁盘,如磁盘916a和916b,其可以用作磁盘重构的目标磁盘。RAID组可以是基于软件的RAID组,也可以是基于硬件的RAID组。
磁盘适配器913a是独立磁盘冗余阵列RAID组和目标磁盘的接口,提供输入和输出适配功能,其可以作为RAID组和其它组件(如存储控制器912、缓存器)的中介。
存储控制器912a,耦合到RAID组,用于完成RAID组的控制,能够完成的控制操作包括磁盘重构控制操作。
存储控制器912a可执行如下操作:当RAID组中第一成员磁盘故障,根据RAID组中第一成员磁盘以外的第二成员磁盘恢复第一成员磁盘的数据,并将恢复的数据存储到目标磁盘;在第一成员磁盘的故障恢复前,用包含恢复的数据的目标磁盘替换第一成员磁盘作为RAID组的成员磁盘;在第一成员磁盘故障恢复后,根据恢复后的第一成员磁盘进行相应的处理。
本发明实施例至少提供两种重构方式。第一成员磁盘故障恢复后,需要从目标磁盘切换回恢复的第一成员磁盘的重构方式被称作第一重构方式。第一成员磁盘故障恢复后,不需要从目标磁盘切换回恢复的第一成员磁盘的重构方式被称作第二重构方式。当然,在实施例中,也可以包含其他重构方式。
存储控制器912a可在第一成员磁盘故障恢复后,用恢复的第一成员磁盘替换包含恢复的数据的目标磁盘作为RAID组的成员磁盘。
存储控制器912a可在第一成员磁盘故障恢复后,将恢复的第一成员磁盘的第二区域的数据存储到目标磁盘相应区域,第二区域对应第二成员磁盘的不可读区域。该操作可以在第二成员磁盘存在不可读区域情况下执行。
第一重构方式和第二重构方式可以由存储控制器912a选择。存储控制器912a可以基于第一成员磁盘的故障是否可恢复的判断结果进行选择,如果可以恢复选择第一重构方式,即需要切换回恢复的第一成员磁盘,如果不可以恢复选择第二重构方式,即不需要切换回恢复的第一成员磁盘。
存储控制器912a可以获得磁盘成员信息、磁盘区域信息、指示磁盘状态是否可恢复的信息、指示磁盘可读性检测结果的信息、指示数据块和校验块分布的信息或规则等至少部分信息,用作磁盘重构控制处理。存储控制器912a可以从自身包含的存储器获得上述信息,也可以从连接其上的存储器获得上述信息。
存储控制器912a可基于指示磁盘状态是否可恢复的信息判断发生故障的第一成员磁盘的故障是否可恢复。存储控制器912a可基于指示磁盘可读性检测结果的信息判断第二成员磁盘是否存在不可读区域。存储控制器912a可以基于RAID组中第二成员磁盘的数据恢复第一成员磁盘的数据,并将恢复的数据存储到目标磁盘的操作。磁盘区域信息可以包括磁盘条带或磁盘区块信息。数据恢复处理可基于指示数据块和校验块分布的信息或规则进行。
存储控制器912a典型的是一个RAID控制器,通过执行存储于一计算机可读取存储介质中的程序,执行本发明上述各种磁盘重构的方法。
如图9A示例,装置910a还可以包括如下部件:
一个或多个通信适配器,如通信适配器911a和911b,这些通信适配器作为FC网络或IP网络的网络适配器,通过FC网络或IP网络与网络设备,如主机901和数据库902等通信。
一个或多个缓存器,如缓存器914,可以作为缓存RAID组(RAID组915a或915b)与空闲磁盘(磁盘916a或916b)中间的数据,也可以缓存RAID组和其他网络设备之间的数据。
管理控制器917,可以通过用户的管理接口对装置910a实现管理。
存储器918,可以负责装置910b的系统参数的存储。
总线桥接器919a,可以提供一系列数据总线、控制总线,分别实现部件之间的数据和控制指令交互。总线桥接器919a也可以包含功率总线,通过功率总线为各部件供电。
具体的,存储控制器912可以对图1到图3所示方法部分和全部处理步骤实现控制。
图9B提供的系统900b和900a类似,包括装置910b,其与装置910a类似的存储装置或存储系统,其通过FC网络905a和/或IP网络905b连接到主机901a、901b,数据库902等网络设备。
装置910b包括如下部件:
存储控制器912b,通过一个或多个磁盘适配器913b连接到多个磁盘。其中,至少部分磁盘可以形成RAID组,如RAID组915a和915b。至少部分磁盘用作空闲磁盘,如磁盘916a和916b,其可以用作磁盘重构的目标磁盘。RAID组可以是基于软件的RAID组,也可以是基于硬件的RAID组。
磁盘适配器913b是独立磁盘冗余阵列RAID组和目标磁盘的接口,提供输入和输出适配功能,其可以作为RAID组和存储控制器912b的中介。
存储控制器912a的基本功能和图9A的存储控制器912a完成的基本功能相同,不再赘述。
如图9B示例,还可以包括如下至少一个部件:
一个或多个缓存器,如缓存器914,可以作为缓存RAID组(RAID组915a或915b)与空闲磁盘(磁盘916a或916b)中间的数据,也可以缓存RAID组和其他网络设备的之间的数据。
管理控制器917,可以通过用户的管理接口对装置910a实现管理。
耦合到存储控制器912b的一个或多个存储器,如存储器918a和918b。存储器918a主要负责装置910b的系统参数的存储,存储器918b可以提供RAID组控制所需的信息,具体参见存储控制器912a控制涉及的信息。
总线桥接器919b,可以提供一系列数据总线、控制总线,分别实现部件之间的数据和控制指令交互。总线桥接器919b也可以包含功率总线,通过功率总线为各部件供电。
在图9B的图示中,存储控制器912a、磁盘适配器913a可以集成到一起,形成磁盘重构装置920。磁盘重构装置920还可以集成存储器918b。存储器918b可以用于存储磁盘成员信息、磁盘区域信息、指示磁盘状态是否可恢复的信息、指示磁盘可读性检测结果的信息等至少部分信息。存储器918b中以RAID组成员磁盘表形式存储磁盘成员信息,以RAID组区域映射表形式存储磁盘区域信息。存储器918b可以存储执行完成本发明至少一种方法的计算机可读程序,以便于装置910b中的一个或多个处理器(未示出)能够执行该计算机可读程序完成磁盘重构,这些处理器可以集成在控制器920内部,也可以通过接口连接到控制器920。
一个或多个通信适配器,如通信适配器911a和911b。在图9B中,通信适配器911a和911b分别是FC通信适配器和IP通信适配器。
在本申请所提供的几个实施例中,应该理解到,所揭露方法和设备,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,在本发明各个实施例中的中,各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。且上述的各单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:U盘、移动硬盘、只读存储器(ReadOnlyMemory,简称ROM)、随机存取存储器(RandomAccessMemory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (5)

1.一种磁盘重构方法,其特征在于,当独立磁盘冗余阵列RAID组中第一成员磁盘存在故障时,所述方法包括:
根据RAID组中第一成员磁盘以外的第二成员磁盘可读区域的数据恢复第一成员磁盘的第一区域的数据,并将恢复的数据存储到目标磁盘,其中,在目标磁盘上与第一成员磁盘的第二区域对应的区域不写入数据,并在目标磁盘不进行坏块标记,第一区域对应第二成员磁盘的区域可读,第二区域对应第二成员磁盘的不可读区域;
在第一成员磁盘的故障恢复前,用包含恢复的数据的目标磁盘替换第一成员磁盘作为RAID组的成员磁盘;
在第一成员磁盘故障恢复后,将恢复的第一成员磁盘的第二区域的数据存储到目标磁盘。
2.一种用于实现磁盘重构的装置,其特征在于,包括:
数据获取单元,用于根据独立磁盘冗余阵列RAID组中第一成员磁盘以外的第二成员磁盘的数据恢复第一成员磁盘的数据,第一成员磁盘为RAID组中发生故障的成员磁盘;
写处理单元,用于将数据获取单元恢复的数据写入目标磁盘;
重构控制单元,用于在第一成员磁盘故障恢复前,将RAID组的成员磁盘从第一成员磁盘切换到包含恢复的数据的目标磁盘,并在第一成员磁盘故障恢复后,根据恢复的第一成员磁盘完成重构处理;
其中,重构控制单元指示数据获取单元在第一成员磁盘故障恢复后,获取第一成员磁盘的第二区域的数据,以及指示写处理单元将第二区域的数据存储到目标磁盘对应区域,第二区域对应第二成员磁盘的不可读区域。
3.一种存储装置,其特征在于,包括:
如权利要求2所述的用于实现磁盘重构的装置;
耦合到所述用于实现磁盘重构的装置的一个或多个独立磁盘冗余阵列RAID组和/或目标磁盘。
4.一种磁盘重构装置,其特征在于,包括:
磁盘适配器,用作独立磁盘冗余阵列RAID组和目标磁盘的接口;
存储控制器,用于判断第一成员磁盘的故障是否可恢复,如果第一成员磁盘的故障可恢复,按第一重构方式处理,如果第一成员磁盘的故障不可恢复,按第二重构方式处理;
其中,在第一重构方式下,根据RAID组中第一成员磁盘以外的第二成员磁盘的数据恢复第一成员磁盘的数据,并将恢复的数据存储到目标磁盘;在第一成员磁盘的故障恢复前,用包含恢复的数据的目标磁盘替换第一成员磁盘作为RAID组的成员磁盘;在第一成员磁盘故障恢复后,根据恢复的第一成员磁盘完成重构处理,将恢复的第一成员磁盘的第二区域的数据存储到目标磁盘相应区域,第二区域对应第二成员磁盘的不可读区域,并在目标磁盘不进行坏块标记;
其中,在第二重构方式下,根据第二成员磁盘的数据恢复第一成员磁盘的数据,并将恢复的数据存储到目标磁盘;在完成第一成员磁盘到目标磁盘重构后,用包含恢复的数据的目标磁盘替换第一成员磁盘作为RAID组的成员磁盘,将第一成员磁盘从RAID组移除以完成磁盘重构。
5.一种存储装置,其特征在于,包括:
如权利要求4所述的磁盘重构装置;
耦合到所述磁盘重构装置的一个或多个独立磁盘冗余阵列RAID组和/或目标磁盘。
CN201210580816.7A 2012-12-27 2012-12-27 一种磁盘重构方法及其装置 Active CN103049400B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201210580816.7A CN103049400B (zh) 2012-12-27 2012-12-27 一种磁盘重构方法及其装置
PCT/CN2013/080582 WO2014101412A1 (zh) 2012-12-27 2013-08-01 一种磁盘重构方法及其装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210580816.7A CN103049400B (zh) 2012-12-27 2012-12-27 一种磁盘重构方法及其装置

Publications (2)

Publication Number Publication Date
CN103049400A CN103049400A (zh) 2013-04-17
CN103049400B true CN103049400B (zh) 2015-12-23

Family

ID=48062047

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210580816.7A Active CN103049400B (zh) 2012-12-27 2012-12-27 一种磁盘重构方法及其装置

Country Status (2)

Country Link
CN (1) CN103049400B (zh)
WO (1) WO2014101412A1 (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103049400B (zh) * 2012-12-27 2015-12-23 华为技术有限公司 一种磁盘重构方法及其装置
CN104679623A (zh) * 2013-11-29 2015-06-03 中国移动通信集团公司 一种服务器硬盘的维护方法、系统及服务器监控设备
CN105094684B (zh) * 2014-04-24 2018-03-09 国际商业机器公司 磁盘阵列系统中问题磁盘的重用方法和系统
CN104461791B (zh) * 2014-11-28 2017-02-01 华为技术有限公司 一种信息处理方法及处理装置
CN106126378A (zh) 2016-06-29 2016-11-16 华为技术有限公司 一种触发磁盘阵列进行重构的方法及装置
CN106371947B (zh) * 2016-09-14 2019-07-26 郑州云海信息技术有限公司 一种用于raid的多故障盘数据恢复方法及其系统
CN107315662A (zh) * 2017-07-05 2017-11-03 郑州云海信息技术有限公司 一种防止硬盘数据丢失的方法及系统
CN108874312B (zh) * 2018-05-30 2021-09-17 郑州云海信息技术有限公司 数据存储方法以及存储设备
WO2020077534A1 (zh) * 2018-10-16 2020-04-23 深圳市锐明技术股份有限公司 一种磁盘管理方法、磁盘管理装置及电子设备
CN111124263B (zh) * 2018-10-31 2023-10-27 伊姆西Ip控股有限责任公司 用于管理多个盘的方法、电子设备以及计算机程序产品
CN109871186B (zh) * 2019-03-12 2021-12-07 北京计算机技术及应用研究所 面向可重组raid的多目标快速重构系统
CN112800493A (zh) * 2021-02-07 2021-05-14 联想(北京)有限公司 一种信息处理方法及设备
CN113391941B (zh) * 2021-06-18 2022-07-22 苏州浪潮智能科技有限公司 一种raid的读写超时处理方法、装置、设备及介质
CN114063929B (zh) * 2021-11-25 2023-10-20 北京计算机技术及应用研究所 基于双控制器硬盘阵列的局部raid重构系统及方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101276302A (zh) * 2007-03-29 2008-10-01 中国科学院计算技术研究所 一种磁盘阵列系统中磁盘故障处理和数据重构方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102081559B (zh) * 2011-01-11 2013-06-05 华为数字技术(成都)有限公司 一种独立磁盘冗余阵列的数据恢复方法和装置
CN102207895B (zh) * 2011-05-27 2012-11-14 杭州华三通信技术有限公司 一种独立磁盘冗余阵列数据重建方法和装置
CN103049400B (zh) * 2012-12-27 2015-12-23 华为技术有限公司 一种磁盘重构方法及其装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101276302A (zh) * 2007-03-29 2008-10-01 中国科学院计算技术研究所 一种磁盘阵列系统中磁盘故障处理和数据重构方法

Also Published As

Publication number Publication date
WO2014101412A1 (zh) 2014-07-03
CN103049400A (zh) 2013-04-17

Similar Documents

Publication Publication Date Title
CN103049400B (zh) 一种磁盘重构方法及其装置
US11899932B2 (en) Storage system having cross node data redundancy and method and computer readable medium for same
US7904647B2 (en) System for optimizing the performance and reliability of a storage controller cache offload circuit
CN103136074B (zh) 多个磁盘阵列系统的数据储存方法及数据储存系统
CN100407121C (zh) 信息处理系统和一次存储装置
CN104956311A (zh) 存储系统以及存储控制方法
CN102024044A (zh) 分布式文件系统
KR100711165B1 (ko) 기억 제어 장치, 제어 방법 및 기록 매체
KR20160003657A (ko) 비휘발성 메모리 시스템에서의 동기 미러링
CN101567211A (zh) 一种提高磁盘可用性的方法和磁盘阵列控制器
CN104035830A (zh) 一种数据恢复方法和装置
CN103221925A (zh) 数据处理方法和存储设备
US20070101188A1 (en) Method for establishing stable storage mechanism
CN102177496A (zh) 用于针对当前数据和回放数据在不同raid数据存储类型之间转移数据的系统和方法
CN110750213A (zh) 一种硬盘管理方法及装置
CN111984365B (zh) 一种虚拟机虚拟磁盘双活实现方法及系统
CN101878470B (zh) 用于管理存储拷贝服务系统的装置以及方法
CN103034564A (zh) 数据容灾演练方法、数据容灾演练装置及系统
JP2001337792A (ja) ディスクアレイ装置
CN105138280A (zh) 数据写入方法、装置及系统
CN111240903A (zh) 数据恢复方法及相关设备
CN104133742A (zh) 一种数据保护的方法及装置
CN106681865A (zh) 业务恢复方法及装置
CN106776142B (zh) 一种数据存储方法以及数据存储装置
CN102147714B (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
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20191216

Address after: 314400 No.11, Weisan Road, Nongfa District, Chang'an Town, Haining City, Jiaxing City, Zhejiang Province

Patentee after: Haining hi tech Zone Science and Innovation Center Co.,Ltd.

Address before: 510000 unit 2414-2416, building, No. five, No. 371, Tianhe District, Guangdong, China

Patentee before: GUANGDONG GAOHANG INTELLECTUAL PROPERTY OPERATION Co.,Ltd.

Effective date of registration: 20191216

Address after: 510000 unit 2414-2416, building, No. five, No. 371, Tianhe District, Guangdong, China

Patentee after: GUANGDONG GAOHANG INTELLECTUAL PROPERTY OPERATION Co.,Ltd.

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

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.