CN108153622B - 一种故障处理的方法、装置和设备 - Google Patents

一种故障处理的方法、装置和设备 Download PDF

Info

Publication number
CN108153622B
CN108153622B CN201611110928.0A CN201611110928A CN108153622B CN 108153622 B CN108153622 B CN 108153622B CN 201611110928 A CN201611110928 A CN 201611110928A CN 108153622 B CN108153622 B CN 108153622B
Authority
CN
China
Prior art keywords
hard disk
disk
raid
resource pool
hot spare
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
CN201611110928.0A
Other languages
English (en)
Other versions
CN108153622A (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
Priority to CN201611110928.0A priority Critical patent/CN108153622B/zh
Priority to PCT/CN2017/112358 priority patent/WO2018103533A1/zh
Publication of CN108153622A publication Critical patent/CN108153622A/zh
Priority to US16/362,196 priority patent/US20190220379A1/en
Application granted granted Critical
Publication of CN108153622B publication Critical patent/CN108153622B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/1608Error detection by comparing the output signals of redundant hardware
    • G06F11/1612Error detection by comparing the output signals of redundant hardware where the redundant component is persistent storage
    • 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/1088Reconstruction on already foreseen single or plurality of spare disks
    • 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
    • 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
    • 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
    • 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
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/82Solving problems relating to consistency

Abstract

本发明实施例涉及一种故障处理的方法、装置和设备,该方法包括:独立硬盘冗余阵列RAID控制器接收任一RAID组中故障硬盘的信息,故障硬盘的信息包括故障硬盘的容量和类型;在与该RAID组匹配的热备盘资源池中选择空闲硬盘对故障硬盘的数据进行恢复,热备盘资源池中空闲硬盘的容量大于或等于故障硬盘的容量,且热备盘资源池的空闲硬盘的类型与故障硬盘的类型相同,热备盘资源池是RAID控制器预先创建,热备盘资源池中包括至少一个存储节点中的一个或多个空闲硬盘。本发明实施例中通过跨节点的热备盘资源池方案解决现有技术中本地热备盘数量限制所导致的热备失效问题,以此提高整个系统的可靠性。

Description

一种故障处理的方法、装置和设备
技术领域
本发明涉及存储领域,尤其涉及一种故障处理的方法、装置和设备。
背景技术
独立硬盘冗余阵列(Redundant Array of Independent Disks,RAID)是一种将多个独立的硬盘按照不同配置策略组合起来形成一个硬盘组,该硬盘组也称为RAID组,以此提供比单个硬盘更高的存储性能和提供数据备份技术。RAID因具有速度快、安全性高两项优点,在存储领域得到越来越广泛的应用。
现有技术中,RAID组的管理通常由RAID控制器实现,RAID组的配置策略主要划分为RAID0、RAID1、RAID2、RAID3、RAID4、RAID5、RAID6、RAID7、RAID10、RAID50,其中,RAID3以上的配置策略中需要配置为N+M模式,N和M都是大于1的正整数,N表示数据盘的个数,M表示校验盘的个数。同时,RAID组中还配置了热备盘,当RAID组中出现硬盘故障时,RAID控制器可以根据校验盘中的校验数据和数据盘中的数据将故障硬盘上的数据恢复到热备盘上,以此提高系统可靠性。
通常采用服务器的本地硬盘作为热备盘,热备盘在正常情况下不存放数据,当RAID组中其他正在使用的物理硬盘有损坏时,热备盘会自动接管损坏硬盘的存储功能,用于承载损坏硬盘中的数据,保证数据存取不中断。但是,创建RAID组时需要预先指定服务器的本地硬盘作为热备盘,而且在同一服务器中RAID控制器可以同时创建多个RAID组,每个RAID组均需要配置各自的热备盘,由此导致同一存储设备中热备盘数量受限的问题,影响系统可靠性。
发明内容
本发明实施例提供了一种故障处理的方法、装置和设备,可以解决现有技术中同一存储设备的热备盘数量受限的问题,以此提高存储系统的可靠性。
第一方面,提供一种故障处理的方法,该方法应用于故障处理系统中,该系统中包括至少一个业务节点和至少一个存储节点,存储节点和业务节点之间通过网络进行通信,每个存储节点包括至少一个空闲硬盘,每个业务节点包括独立硬盘冗余阵列(RedundantArray of Independent Disks,RAID)控制器与RAID组,RAID控制器按照不同配置策略将多个硬盘组成硬盘组,该硬盘组也可以称为RAID组,并对RAID组进行监控管理。RAID控制器获取该RAID控制器所在业务节点中任一RAID组的故障硬盘的信息时,该故障硬盘的信息中包括故障硬盘的容量和类型,RAID控制器在与该RAID组匹配的热备盘资源池中选择空闲硬盘作为热备盘对故障硬盘的数据进行恢复,其中,热备盘资源池是RAID控制器预先创建,热备盘资源池中包括至少一个存储节点的一个或多个空闲硬盘;RAID控制器锁选择的空闲硬盘的容量大于或等于故障硬盘的容量,且该空闲硬盘的类型与故障硬盘的类型相同。
可选地,热备盘资源池可以由逻辑硬盘和物理硬盘中的至少一种组成。
具体地,存储节点中也可以包括RAID控制器,该RAID控制器利用存储节点中多个硬盘组成RAID组,并将该RAID组划分为多个逻辑硬盘,将未被使用的逻辑硬盘信息发送给业务节点的RAID控制器,其中,逻辑硬盘信息包括逻辑硬盘的容量、类型、逻辑硬盘标识、逻辑硬盘所归属的RAID组等信息。
RAID控制器可以按照以下方式中的任意一种确定第一热备盘资源池:
方式一:RAID控制器在与RAID组匹配的一个或多个热备盘资源池中,按照热备盘资源池的标识依次选择一个热备盘资源池作为第一热备盘资源池。
方式二:RAID控制器在与RAID组匹配的一个或多个热备盘资源池中随机选择一个热备盘资源池作为第一热备盘资源池。
其中,第一热备盘资源池中空闲硬盘的容量大于或等于故障硬盘的容量,且第一热备盘资源池中空闲硬盘的类型与故障硬盘的类型相同。
进一步地,在确定第一热备盘资源池后,RAID控制器可以按照如下方式中的任意一种确定第一空闲硬盘作为热备盘:
方式一:RAID控制器在第一热备盘资源池中按照硬盘的标识选择一个空闲硬盘作为第一空闲硬盘。
方式二:RAID控制器在第一热备盘资源池中随机选择一个空闲硬盘作为第一空闲硬盘。
在一种可能的实现方式中,存储节点还包括存储控制器,RAID控制器先获取存储控制器发送的空闲硬盘的信息,空闲硬盘的信息包括空闲硬盘的类型和容量,则RAID控制器按照空闲硬盘的信息创建至少一个热备盘资源池,每个热备盘资源池包括具有相同容量和/或相同类型的至少一个空闲硬盘;当RAID控制器创建RAID组时,根据RAID组中硬盘的类型和容量确定与RAID组匹配的一个或多个热备盘资源池,并记录该RAID组与该RAID组匹配的一个或多个热备盘资源池的映射关系,则当RAID控制器获取任一RAID组的故障硬盘的信息时,可以根据映射关系和故障硬盘的信息在与该RAID组匹配的热备盘资源池中选择一个热备盘资源池的空闲硬盘对故障硬盘进行数据恢复。
在一种可能的实现方式中,空闲硬盘的信息还包括硬盘的故障域的信息,所述RAID控制器所选择的空闲硬盘与所述RAID组中已使用的热备盘不在同一故障域,所述故障域的信息用于标识不同硬盘所在区域的关系,同一故障域内的不同硬盘同时故障时会导致数据丢失,不同故障域内的不同硬盘同时故障时不会导致数据丢失。
具体地,空闲硬盘的信息还包括硬盘的故障域的信息,该故障域用于标识不同硬盘所在的区域的关系,该区域可以是根据硬盘所在存储节点的物理位置划分的不同区域,物理位置可以是存储节点所在的机架、机柜、机框中的至少一种,当两个不同区域的存储节点或存储节点的部件同时发生故障时,不会导致数据丢失,则称这个两个区域中的硬盘属于不同故障域;当两个不同区域的存储节点或存储节点的部件同时发生故障时,会导致数据丢失,则称这两个区域中的硬盘属于同一故障域。
可选地,硬盘所在的区域也可以是逻辑区域。具体地,将硬盘所在存储节点按照预置策略划分成不同逻辑区域,以便于不同逻辑区域的存储节点或存储节点的部件(如网卡、硬盘等)故障时不影响应用程序正常运行,同一逻辑区域的存储节点或存储节点的部件故障会影响业务应用,其中,预置策略可以为根据业务需求将存储节点划分为不同逻辑区域。例如,将同一存储节点内的硬盘划分为一个逻辑区域,不同逻辑节点间的硬盘划分为不同逻辑区域,那么,当单个存储节点整体故障或存储节点的部件故障时,不影响其他存储节点的正常运行。
在一种可能的实现方式中,在RAID控制器在与RAID组匹配的热备盘资源池中选择空闲硬盘之后,RAID控制器需要与该空闲硬盘所对应的存储控制器确定该空闲硬盘的状态为未使用,才能启动故障硬盘的数据恢复过程,具体确认状态的过程如下:RAID控制器向存储控制器发送第一请求消息,第一请求消息用于确定所选择的空闲硬盘的状态;当接收用于指示RAID控制器所选择的空闲硬盘的状态为未使用的第一请求消息的响应结果时,RAID控制器将所选择的空闲硬盘挂载到本地,并执行所述RAID组的故障数据恢复处理。
在一种可能的实现方式中,RAID控制器根据RAID组中非故障的数据盘和校验盘中的数据,将故障硬盘数据重新写入所述RAID控制器所选择的热备盘,以此对故障硬盘的数据进行恢复。
通过上述内容的描述,本发明所提供的一种故障处理方法,业务节点的RAID控制器利用存储节点的空闲硬盘组成热备盘资源池,并建立RAID组和热备盘资源池的映射关系,当RAID组中出现故障硬盘时,即从与其匹配的热备盘资源池中选择热备盘完成故障硬盘的数据恢复,其中,存储节点的数量可以根据业务需求不断增加,以此保证热备盘资源池中硬盘的数量可以无限扩容,解决现有技术中热备盘数量受限的问题,提高系统的可靠性。另一方面,业务节点的本地硬盘均可以用于组建RAID组,提高本地硬盘使用率。
第二方面,本发明提供一种故障处理的装置,所述装置包括用于执行第一方面或第一方面任一种可能实现方式中的故障处理方法的各个模块。
第三方面,本发明提供一种故障处理的设备,所述设备包括处理器、存储器、通信接口、总线,所述处理器、存储器和通信接口之间通过总线连接并完成相互通信,所述处理器中用于存储计算机执行指令,所述设备运行时,所述处理器执行所述存储器中的计算机指令以利用所述设备中的硬件资源执行第一方面或第一方面的任意可能的实现方式中的所述的方法。
第四方面,本发明提供一种计算机可读介质,用于存储计算机程序,该计算机程序包括用于执行第一方面或第一方面的任意可能的实现方式中的方法的指令。
第五方面,本发明提供一种故障处理的设备,所述设备包括RAID卡、存储器、通信接口、总线,所述RAID卡中包括RAID控制器和存储器,所述RAID控制器和RAID卡的存储器通过总线相通信,所述RAID卡、存储器、通信接口通过总线相互通信,所述RAID卡的存储器中用于存储计算机执行指令,所述设备运行时,所述RAID控制器执行所述RAID卡的存储器中的计算机执行指令以利用所述设备中的硬件资源执行第一方面或第一方面的任意可能的实现方式中的所述的方法。
第六方面,提供了一种计算机可读介质,用于存储计算机程序,该计算机程序包括用于执行第一方面或第一方面的任意可能的实现方式中的方法的指令。
综上所述,通过本申请提供的数据处理方法、装置和设备,利用跨网络的存储节点的空闲硬盘实现热备盘资源池,并建立热备盘资源池与每个RAID组之间的映射关系,当任一RAID组出现故障硬盘时,可以在与该RAID组匹配的热备盘资源池中选择一个热备盘资源池中的一个空闲硬盘作为热备盘进行故障数据恢复,热备盘资源池中空闲硬盘的数量可以根据业务需求对存储节点中空闲硬盘的数量进行调整,以此解决现有技术中热备盘资源池中硬盘数量受限所导致的影响系统可靠性的问题。另一方面,业务节点的所有本地硬盘均可以用于RAID组的数据盘和校验盘,提高了本地硬盘的利用率。
本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍。
图1为本发明实施例提供的一种故障处理系统的逻辑框图;
图2为本发明实施例提供的一种故障处理的方法的流程示意图;
图3为本发明实施例提供的另一种故障处理的方法的流程示意图;
图3A为本发明实施例提供的另一种故障处理的方法的流程示意图;
图3B为本发明实施例提供的另一种故障处理的方法的流程示意图;
图4为本发明实施例提供的一种故障处理的装置示意图;
图5为本发明实施例提供的一种故障处理的设备示意图;
图6为本发明实施例提供的另一种故障处理的设备示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
图1为本发明实施例所提供的一种故障处理系统的示意图,如图所示,在该系统中包括至少一个业务节点和至少一个存储节点,业务节点和存储节点之间通过网络通信。
可选地,业务节点和存储节点之间可以通过以太网进行通信,也可以通过支持远程直接数据存取(Remote Direct Memory Access,RDMA)的无损以太网数据中心桥接(DataCenter Bridging,DCB)和无线带宽(InfiniBand,IB)进行通信。
可选地,RAID控制器与热备盘资源池之间通过标准的网络存储协议进行数据交互,例如存储协议可以是基于网络的非易失性存储标准(Non-Volatile Memory ExpressOver Fabric,NoF)协议,也可以是用于将小型计算机系统接口(Internet Small ComputerSystem Interface,iSCSI)协议的命令和数据通过RDMA的方式传输的iSER(iSCSIExtensions for RDMA,iSER)协议,或用于将SCSI协议的命令和数据通过RDMA的方式传输的小型计算机系统接口RDMA协议(Small Computer System Interface RDMA Protocol,SRP)。
业务节点可以为一个服务器,用于对用户的应用程序提供计算资源(如CPU和内存)、网络资源(如网卡)和存储资源(如硬盘)。每个业务节点中包括一个RAID控制器,RAID控制器可以将多个本地硬盘按照不同的配置策略组成一个或多个硬盘组,配置策略主要划分为RAID0、RAID1、RAID2、RAID3、RAID4、RAID5、RAID6、RAID7、RAID10、RAID50,其中,RAID3以上的配置策略中需要配置为N+M模式,N和M为大于1的正整数,N表示在该RAID组的成员硬盘中存储数据的数据盘的个数,M表示在该RAID组的成员硬盘中存储校验码的校验盘的个数。例如利用业务节点内的5个硬盘按照RAID5的配置策略创建RAID组。其中,本地硬盘是指与RAID控制器在同一服务器内的硬盘,如图1所示的硬盘11、…、硬盘1n可以称为业务节点1的本地硬盘。RAID控制器会将每个RAID组中成员硬盘信息记录到元数据信息中,元数据信息中包括每个RAID组的配置策略、成员硬盘的容量、类型等,且RAID控制器可以根据元数据信息对每个RAID组进行监控。
值得说明的是,RAID控制器可以由专用RAID卡实现,也可以由业务节点的处理器实现。当由RAID卡实现RAID控制器功能时,元数据信息存储在RAID卡的存储器中,当由业务节点的处理器实现RAID控制器功能时,元数据信息存储在业务节点的存储器中。该存储器可以是U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、磁碟或者光盘等各种可以存储程序代码的介质。处理器可以为是CPU,该处理器还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
还值得说明的是,业务节点的硬盘可以划分为固态硬盘(Solid State Disk,SSD)和机械硬盘(Hard Disk Drive,HDD)两大类,其中HDD按照数据接口不同又可以进一步细分为以下几种类型:高级技术附加装置(Advanced Technology Attachment,ATA)硬盘、小型机系统接口(Small Computer System Interface,SCSI)硬盘、SAS(Serial AttachedSCSI,SAS)硬盘、SATA(Serial ATA,SATA)硬盘。每种类型的硬盘的接口、尺寸、硬盘读写速率等属性各有不同。
存储节点可以为服务器或存储阵列,存储节点用于为用户的应用程序提供存储资源。在本申请中,存储节点还用于为业务节点的RAID组提供热备盘资源池,每个存储节点中包括存储控制器和至少一个硬盘,与业务节点相同,存储节点的硬盘类型也可以划分为SSD、ATA、SCSI、SAS和SATA几类。在故障处理系统中可以指定存储节点仅用于提供热备盘资源池的空闲硬盘,即被指定的存储节点中的所有硬盘均可用于提供热备盘资源池中的空闲硬盘。
可选地,同一存储节点的硬盘除了用于提供热备盘资源池的空闲硬盘外,还可以用于为指定应用程序提供存储资源,如存储节点的部分硬盘还用于作为存储ORACLE数据库的存储设备,此时,每个存储控制器可以收集其所在存储节点的空闲硬盘的信息,由业务节点的RAID控制器收集各个存储节点的空闲硬盘的信息,并将空闲硬盘组成热备盘资源池。
示例地,如图1所示,存储节点11中包括硬盘111、硬盘112、…、硬盘11n,存储节点12中包括硬盘121、硬盘122、…、硬盘12n,存储节点1N中包括硬盘1N1、硬盘1N2、…、硬盘1Nn,其中,N和n均为大于1的正整数。假设存储节点11为指定专门用于提供热备盘资源池中空闲硬盘的存储节点,而其他存储节点的硬盘则不仅用于为指定应用程序提供存储资源,同时还用于提供热备盘资源池中的空闲硬盘。具体地,存储节点12中空闲硬盘为硬盘121和硬盘122,存储节点13中空闲硬盘为硬盘1Nn。此时,故障处理系统中任一业务节点的RAID控制器均可以通过网络获取每个存储节点中空闲硬盘的信息,其中,空闲硬盘包括存储节点11的硬盘111、硬盘112、…、硬盘11n;及存储节点12的硬盘121和硬盘122;存储节点13的硬盘1Nn。空闲硬盘的信息包括每个硬盘的容量和类型,如硬盘111的类型为SAS盘,容量为300G。
可选地,热备盘资源池也可以由逻辑硬盘组成。具体地,存储节点中也可以包括RAID控制器,该RAID控制器利用存储节点中多个硬盘组成RAID组,并将该RAID组划分为多个逻辑硬盘,将未被使用的逻辑硬盘的信息发送给业务节点的RAID控制器,其中,逻辑硬盘的信息包括逻辑硬盘的容量、类型、逻辑硬盘标识、逻辑硬盘所归属的RAID组等信息。
可选地,热备盘资源池中也可以同时包括物理硬盘和逻辑硬盘,即部分存储节点提供的空闲硬盘为物理硬盘,部分存储节点提供的空闲硬盘为逻辑硬盘,业务节点的RAID控制器可以根据类型区分不同类型的硬盘,以便于创建不同的热备盘资源池。
值得说明的是,图1所示故障处理系统仅为一种示例,其中,故障处理系统中不同业务节点的硬盘数量和类型不构成对本发明的限制;不同存储节点的硬盘数量和类型也不构成对本发明的限制。而且,业务节点和存储节点的数量可以相等,也可以不相等。
可选地,图1所示故障处理系统中,空闲硬盘的信息还包括硬盘的故障域的信息,故障域用于标识不同硬盘所在的区域的关系,同一故障域内的不同硬盘同时故障时会导致数据丢失,不同故障域内的不同硬盘同时故障时不会导致数据丢失。该区域可以是物理区域,即根据硬盘所在存储节点的物理位置划分的不同区域,物理位置可以是存储节点所在的机架、机柜、机框中的至少一种,当两个不同区域的存储节点或存储节点的部件同时发生故障时,不会导致数据丢失,则称这个两个区域中的硬盘属于不同故障域;当两个不同区域的存储节点或存储节点的部件同时发生故障时,会导致数据丢失,则称这两个区域中的硬盘属于同一故障域。
示例地,表1为一种存储节点物理位置标识的示例,如表所示,若同一机柜的存储节点共用一套电源设备,当电源设备故障时,同一机柜的所有存储节点均发生故障,那么物理位置在同一机柜的不同存储节点的硬盘属于同一故障域,不在同一机柜的不同存储节点的硬盘属于不同故障域,则存储节点1和存储节点2位于同一个机架的同一个机柜的不同机框中,那么存储节点1和存储节点2的硬盘属于同一个故障域中,即当电源设备故障时,存储节点1和存储节点2的内的节点均无法正常工作,运行在存储节点1和存储节点2上的应用程序会受到影响,那么,存储节点1和存储节点2的硬盘属于同一故障域;而存储节点1和存储节点3分别位于同一机架的不同机柜和机框中,当机架1中的机柜1电源设备故障时,存储节点1无法正常工作,存储节点3无影响,那么,存储节点1和存储节点3的硬盘属于不同故障域。
表1
机架 机柜 机框
存储节点1 1 1 1
存储节点2 1 1 2
存储节点3 1 2 1
可选地,图1所示故障处理系统中,硬盘所在的区域也可以是逻辑区域。具体地,将硬盘所在存储节点按照预置策略划分成不同逻辑区域,以便于不同逻辑区域的存储节点或存储节点的部件(如网卡、硬盘等)故障时不影响应用程序正常运行,同一逻辑区域的存储节点或存储节点的部件故障会影响业务应用,其中,预置策略可以为根据业务需求将存储节点划分为不同逻辑区域。例如,将同一存储节点内的硬盘划分为一个逻辑区域,不同逻辑节点的硬盘划分为不同逻辑区域,那么,当单个存储节点整体故障或存储节点的部件故障时,不影响其他存储节点的正常运行。
接下来,结合上面的描述,具体介绍在图1所示的故障处理系统中热备盘资源池的创建方法。每个业务节点中RAID组由各自的RAID控制器管理,因此,每个业务节点的RAID控制器均会预先创建热备盘资源池。为简洁清晰的描述本发明所提供的故障处理方法,以故障处理系统中包括一个业务节点和一个专门用于提供空闲硬盘的存储节点为例,结合图2进一步解释本发明实施例提供的一种故障处理的方法,如图所示,所述方法包括:
S201、存储控制器获取存储节点中空闲硬盘的信息。
具体地,空闲硬盘的信息中包括存储控制器所在存储节点的空闲硬盘的类型和容量。其中,空闲硬盘的类型用于标识该硬盘的种类,如SAS、SATA等,当空闲硬盘同时包括逻辑硬盘和物理硬盘时,硬盘的种类还可以进一步区分为逻辑硬盘和物理硬盘;容量用于标识该硬盘的大小,如300G、600G。
可选地,空闲硬盘的信息还包括该硬盘的故障域的信息。一个故障域中包括一个或多个硬盘。当同一故障域中不同硬盘同时故障时,会导致业务应用中断或数据丢失;当不同故障域中不同硬盘同时故障时,对业务无影响。
可选地,每个存储节点的存储控制器可以利用指定文件记录其所在存储节点的空闲硬盘的信息,也可以利用数据库中的数据表记录存储控制器所在存储节点的空闲硬盘的信息。进一步地,存储控制器可以周期性查询其所在存储节点空闲硬盘的信息,并更新其保存的内容。
S202、RAID控制器获取空闲硬盘的信息。
具体地,业务节点的RAID控制器向存储控制器发送获取空闲硬盘的信息的请求消息,存储控制器向RAID控制器发送本存储节点的空闲硬盘的信息。
S203、RAID控制器根据空闲硬盘的信息创建至少一个热备盘资源池。
具体地,RAID控制器可以根据空闲硬盘的信息中空闲硬盘的类型和/或容量创建一个或多个热备盘资源池,如,RAID控制器可以按照空闲硬盘的类型创建热备盘资源池、或按照空闲硬盘的容量创建热备盘资源池、或按照空闲硬盘的类型和容量创建热备盘资源池,并记录热备盘资源池信息。
示例地,假设故障处理系统中存储节点1中空闲硬盘包括硬盘111和硬盘112,每个硬盘均为300G SAS盘;存储节点2中空闲硬盘包括硬盘121和硬盘122,每个硬盘均为600GSAS盘;存储节点3中空闲硬盘包括硬盘131和硬盘132,每个硬盘均为500G SATA盘。若按照硬盘的类型创建热备盘资源池,则RAID控制器可以按照空闲硬盘的类型创建2个热备盘资源池:热备盘资源池1包括硬盘包括硬盘111、硬盘112、硬盘121和硬盘122;热备盘资源池2包括硬盘131和132,其中,每个热备盘资源池中不同空闲硬盘的类型相同。可选地,RAID控制器也可以按照硬盘的容量创建热备盘资源池,则RAID控制器可以创建3个热备盘资源池:热备盘资源池1包括硬盘包括硬盘111、硬盘112;热备盘资源池2包括硬盘121和硬盘122;热备盘资源池3包括硬盘131和132,其中,每个热备盘资源池中不同空闲硬盘的容量相同。可选地,RAID控制器也可以按照硬盘的类型和容量创建3个热备盘资源池:热备盘资源池1包括硬盘111和硬盘112;热备盘资源池2包括硬盘121和硬盘122;热备盘资源池3包括硬盘131和硬盘132,其中,每个热备盘资源池中不同空闲硬盘的容量和类型均相同。
可选地,当存储节点所提供的空闲硬盘包括物理硬盘和逻辑硬盘时,即硬盘的类型还包括物理硬盘和逻辑硬盘,RAID控制器创建热备盘资源池时,可以先按照物理硬盘和逻辑硬盘对空闲硬盘进行分类,然后再按照硬盘的容量进一步细分,进而组成不同热备盘资源池。
可选地,当空闲硬盘的信息中还包括硬盘的故障域的信息时,RAID控制器还可以按照硬盘的容量、类型和故障域三个因素创建一个或多个热备盘资源池。每个热备盘资源池中空闲硬盘的容量和类型相同,且属于同一故障域;或者,每个热备盘资源池中空闲硬盘的容量和类型相同,且属于不同故障域。
示例地,若按照硬盘的类型、容量和故障域三者创建热备盘资源池,且存储节点1中空闲硬盘的信息如表2所示,将具有相同容量和类型,且在同一个故障域的硬盘创建为一个热备盘资源池,那么如表2所示的空闲硬盘的信息,RAID控制器可以创建3个热备盘资源池:热备盘资源池1包括硬盘11、硬盘12、硬盘21;热备盘资源池2包括硬盘31、硬盘32;热备盘资源池3包括硬盘43、硬盘45。可选地,将具有相同容量和类型,且在不同故障域的硬盘创建为一个热备盘资源池,那么如表2所示的空闲硬盘的信息,RAID控制器可以创建3个热备盘资源池:热备盘资源池1包括硬盘11、硬盘31、硬盘43;热备盘资源池2包括硬盘12、硬盘32、硬盘45;热备盘资源池3包括硬盘21,其中,每个热备盘资源池中空闲硬盘的容量和类型相同,且硬盘的故障域不同。
表2
Figure BDA0001172506850000111
Figure BDA0001172506850000121
在RAID控制器创建热备盘资源池后,会利用指定文件或数据库记录该热备盘资源池信息,该热备盘资源池信息中包括热备盘标识、硬盘类型和容量、硬盘所在存储节点。
可选地,热备盘资源池也可以包括空闲硬盘所在区域信息。
示例地,表3为RAID控制器根据表2所示的空闲硬盘的信息创建的热备盘资源池信息的一种示例,如表所示,RAID控制器记录热备盘资源池信息,其中,包括热备盘资源池标识、空闲硬盘标识、硬盘容量、硬盘类型、硬盘所在存储节点、硬盘所在区域。
表3
Figure BDA0001172506850000122
S204、RAID控制器创建RAID组时,根据热备盘资源池中空闲硬盘的信息确定与该RAID组相匹配的至少一个热备盘资源池,并记录与该RAID组匹配的至少一个热备盘资源池的映射关系。
具体地,RAID控制器创建RAID组时,根据热备盘资源池中空闲硬盘的类型和容量确定与RAID组匹配的热备盘资源池,热备盘资源池与RAID组匹配是指热备盘资源池中空闲硬盘的容量大于或等于RAID组中成员硬盘的容量,且热备盘资源池中空闲硬盘的类型与RAID组中成员硬盘的类型相同。其中,热备盘资源池和RAID组的映射关系可以利用指定文件记录,也可以利用数据库中数据表进行记录。
示例地,可以在表3所示的热备盘资源池信息中添加与RAID组的映射关系,具体如表4所示,热备盘资源池1与RAID5相匹配。
表4
Figure BDA0001172506850000131
值得说明的是,对于同一个业务节点中存在多个按照相同配置策略组成的RAID组时,例如业务节点1中存在2个RAID5时,还可以对RAID组添加其他标识字段用于区分不同RAID组,如第一RAID5和第二RAID5。
可选地,也可以新建一个如表5所示的映射关系,该映射关系仅用于记录热备盘资源池标识和匹配RAID组的对应关系。
表5
热备盘资源池标识 匹配RAID组
热备盘资源池1 RAID5
当RAID控制器接收到故障硬盘的信息时,RAID控制器可以根据故障硬盘的信息(故障硬盘的类型和容量)和映射关系快速确定与故障硬盘所在RAID组相匹配的热备盘资源池,并选择空闲硬盘作为热备盘完成数据恢复处理,其中,故障硬盘的信息中包括故障硬盘的类型和容量。
值得说明的是,当RAID控制器由业务节点的处理器实现时,热备盘资源池和RAID组的映射关系存储在业务节点的存储器中;当RAID控制器由RAID卡中的RAID控制器实现时,热备盘资源池和RAID组的映射关系存储在RAID卡的存储器中。
还值得说明的是,图2所示方法为以一个存储节点和一个业务节点为例进行的说明,在具体实施过程中,当故障处理系统中包括多个存储节点时,每个存储节点的存储控制器均会获取其所在的存储节点的空闲硬盘的信息,并将空闲硬盘的信息发送给业务节点的RAID控制器,RAID控制器会根据所获取的每个存储节点的空闲硬盘的信息创建热备盘资源池。而且,存储节点的个数可以根据具体业务需求进行调整,即空闲硬盘的数量可以根据业务需求进行无限扩容,以此解决了现有技术中热备盘数量受限的问题。
通过上述内容的描述,每个业务节点中的RAID控制器可以获取存储控制器确定的存储资源池中空闲硬盘的信息,根据该空闲硬盘的信息创建热备盘资源池,在创建RAID组时,将热备盘资源池与RAID组进行匹配,当RAID组中出现故障硬盘时,RAID控制器即可以在匹配的热备盘资源池中选择一个热备盘资源池中的空闲硬盘对故障硬盘进行数据恢复。与现有技术中利用业务节点的本地硬盘作为热备盘的技术方案相比,本发明通过跨网络的存储节点的空闲硬盘组成热备盘资源池,且存储节点可以无限扩充,相应的,热备盘资源池中空闲硬盘也可以作对应扩充,解决了现有技术中热备盘数量受限的问题,提高了整个系统的可靠性。另一方面,业务节点的RAID控制器在创建RAID组时,可以将业务节点的本地硬盘全部用于RAID组的数据盘或校验盘,不用再预留本地硬盘作为热备盘,提高了本地硬盘利用率。
进一步地,结合图3详细介绍本发明所提供的一种热备盘管理的方法,如图所示,所述方法包括:
S301、RAID控制器获取RAID控制器所在的业务节点中任一RAID组的故障硬盘的信息。
具体地,RAID控制器可以通过元数据信息获知该业务节点中所有RAID组,并可以对该RAID控制器所在的业务节点中每个RAID组的硬盘进行监控,当出现硬盘故障时,RAID控制器可以根据故障硬盘的信息确定故障硬盘的容量和类型。
S302、RAID控制器在与该RAID组匹配的热备盘资源池中选择一个空闲硬盘对所述故障硬盘的数据进行恢复。
具体地,RAID控制器根据其记录的热备盘资源池信息,选择与故障硬盘所在的RAID组匹配的热备盘资源池,该热备盘资源池中硬盘的容量大于或等于故障硬盘的容量,且热备盘资源池的硬盘的类型与故障硬盘的类型相同。
其中,RAID控制器选择热备盘资源池和热备盘的过程如图3A所示,所述方法包括:
S302a、RAID控制器判断本次硬盘故障是否为该RAID组中首次硬盘故障。
具体地,RAID控制器的元数据信息中还包括每个RAID组的成员硬盘和故障处理信息,其中,故障处理信息包括故障硬盘的标识、容量和类型,以及恢复该故障硬盘所使用的热备盘信息,热备盘信息包括热备盘的容量、类型、热备盘所在区域和其所归属的热备盘资源池。当业务节点中任一RAID组出现硬盘故障时,RAID控制器可以根据元数据信息确定本次硬盘故障是否为该RAID组中首次硬盘故障,当元数据信息中无该RAID组的故障处理信息时,表示该RAID组为首次硬盘故障,则执行步骤S303;当元数据信息中已记录该RAID组的故障处理信息时,表示该RAID组为非首次硬盘故障,则执行步骤S304。
S302b、当本次硬盘故障为该RAID组中首次硬盘故障时,RAID控制器在与该RAID组中相匹配的热备盘资源池中选择第一热备盘资源池中的第一空闲硬盘作为热备盘。
具体地,RAID控制器可以按照以下方式中的任意一种确定第一热备盘资源池:
方式一:RAID控制器在与RAID组匹配的一个或多个热备盘资源池中,按照热备盘资源池的标识依次选择一个热备盘资源池,作为第一热备盘资源池。
方式二:RAID控制器在与RAID组匹配的一个或多个热备盘资源池中随机选择一个热备盘资源池作为第一热备盘资源池。
其中,第一热备盘资源池中空闲硬盘的容量大于或等于故障硬盘的容量,且第一热备盘资源池中空闲硬盘的类型与故障硬盘的类型相同。
进一步地,在确定第一热备盘资源池后,RAID控制器可以按照如下方式中的任意一种确定第一空闲硬盘作为热备盘:
方式一:RAID控制器在第一热备盘资源池中按照硬盘的标识依次选择一个空闲硬盘作为第一空闲硬盘。
方式二:RAID控制器在第一热备盘资源池中随机选择一个空闲硬盘作为第一空闲硬盘。
S302c、当本次硬盘故障为该RAID组中非首次硬盘故障时,RAID控制器判断第一热备盘资源池剩余空闲硬盘是否与该RAID组中已使用的热备盘属于同一故障域。
具体地,当故障硬盘为该RAID组中非首次硬盘故障时,RAID控制器需要判断第一热备盘资源池中剩余的空闲硬盘是否与该RAID组中已使用的热备盘属于同一个故障域,若为同一个故障域,则执行步骤S302d;若不为同一个故障域,则执行步骤S302e。
S302d、当第一热备盘资源池剩余空闲硬盘与该RAID组中已使用的热备盘属于同一个故障域时,RAID控制器在与该RAID组匹配的热备盘资源池中选择第二热备盘资源池中的第一空闲硬盘作为热备盘。
具体地,第二热备盘资源池是与该RAID匹配的热备盘资源池中,除第一热备盘资源池外的任一热备盘资源池,第二热备盘资源池和第二热备盘资源池中第一空闲硬盘的选择方法与步骤S302b相同,在此不再赘述。其中,第二热备盘资源池的第一空闲硬盘的类型与故障硬盘的类型相同,且第二热备盘资源池的第一空闲硬盘的容量大于或等于故障硬盘的容量,以及第二热备盘资源池的第一空闲硬盘与第一热备盘资源池的第一空闲硬盘属于不同故障域。
S302e、当第一热备盘资源池剩余空闲硬盘与该RAID组中已使用的热备盘不属于同一个故障域时,RAID控制器在第一热备盘资源池中选择第二空闲硬盘作为热备盘。
具体地,RAID控制器可以按照容量、类型和故障域中的至少一种创建的资源池,当RAID控制器仅考虑容量和/或类型创建热备盘资源池时,同一热备盘资源池可能包括同一故障域的不同空闲硬盘,也可能包括不同故障域的空闲硬盘,为减少同一RAID组中已使用的同一区域的两个或两个以上热备盘再次故障所导致的数据丢失问题,RAID控制器可以在已使用的第一热备盘资源池中选择不同故障域的空闲硬盘作为热备盘,如选择第一热备盘资源池中选择第二空闲硬盘作为热备盘,第一热备盘资源池的第二空闲硬盘的容量大于或等于故障硬盘的容量,且第一热备盘资源池的第二空闲硬盘的类型与故障硬盘相同,及第一热备盘资源池中第一空闲硬盘和第二空闲硬盘属于不同故障域。当第一热备盘资源池剩余空闲硬盘与该RAID组中已使用的热备盘不属于同一个故障域时,第一热备盘资源池的第二空闲硬盘的选法与步骤S302b相同,在此不再赘述。
可选地,当第一热备盘资源池中不存在与第一热备盘资源池的第一空闲硬盘属于同一区域的空闲硬盘时,RAID控制器还可以在与该RAID组匹配的其他热备盘资源池中选择空闲硬盘作为热备盘,选择的热备盘资源池和空闲硬盘的方法与步骤S302b相同,在此不再赘述。
通过步骤S302a至S302e的描述,在同一RAID组中出现多次硬盘故障时,RAID控制器还可以根据空闲硬盘的容量、类型和故障域选择热备盘,以避免当同一RAID组中多次出现硬盘故障,且热备盘属于同一故障域时,两个热备盘再次出现故障所导致的数据丢失问题,提高应用的可靠性。
可选地,如图3B所示,RAID控制器在与RAID组匹配的热备盘资源池中选择热备盘之后,所述方法还包括:
S311、RAID控制器向存储控制器发送第一请求消息。
具体地,在如图1所示的故障管理系统中,每个业务节点的RAID控制器均会创建热备盘资源池,并建立其对应的业务节点中RAID组与热备盘资源池的映射关系,不同业务节点的RAID控制器创建的热备盘资源池中所包含的空闲硬盘可能相同,当任一业务节点的RAID控制器选择一个空闲硬盘作为热备盘时,为避免所选择的空闲硬盘已被其他RAID控制器使用,需要向所选择的空闲硬盘所在的存储节点的存储控制器发送第一请求消息,第一请求消息用于确定所选择的空闲硬盘的状态为未使用。
S312、当RAID控制器接收用于指示RAID控制器所选择的空闲硬盘的状态为未使用的第一请求消息的响应结果时,将所选择的空闲硬盘挂载到该RAID控制器所在业务节点的本地目录中,并执行故障硬盘的数据恢复处理。
具体地,当RAID控制器所选择的空闲硬盘所在的存储控制器确定该空闲硬盘的状态为“未使用“时,存储控制器向RAID控制器发送第一请求消息的响应结果指示该空闲硬盘的状态为未使用。相应的,RAID控制器在接收到第一请求消息的响应结果后,将第一空闲硬盘挂载到该RAID控制器所在业务节点的本地目录中,如在Linux系统中执行mount命令(如mount存储节点IP:空闲硬盘盘符)将存储节点的目录挂载在本地目录中,并执行故障硬盘的数据恢复处理。
其中,RAID控制器将所选择的空闲硬盘挂载到本地后,会更新本地保存的记录RAID组关系的元数据信息中故障处理信息,主要更新故障处理信息中用于恢复该故障硬盘所使用的热备盘信息,其中,热备盘信息包括热备盘的容量、类型、热备盘所在区域和其所归属的热备盘资源池。RAID控制器根据元数据信息中其他非故障的数据盘中的数据和校验盘中的数据,将故障硬盘的数据重新写入热备盘中,以此完成故障硬盘的数据恢复处理。
通过上述内容的描述,当故障处理系统中任一业务节点的RAID控制器接收到该业务节点中任一RAID组的故障硬盘的信息时,可以根据故障硬盘的信息在与该RAID组相匹配的热备盘资源池中选择一个热备盘资源池,并在该热备盘资源池中选择一个空闲硬盘作为热备盘进行数据恢复,而且,热备盘可以由存储节点的空闲硬盘以热备盘资源池形式提供,存储节点的数量可以根据业务需求不断增加,相应的,热备盘资源池中硬盘也可以不断扩充,与现有技术相比热备盘的数量不受限制,解决了现有技术中热备盘受限的问题。进一步地,考虑空闲硬盘的故障域,RAID控制器可以根据空闲硬盘的容量、类型和故障域选择空闲硬盘,避免在同一RAID组中利用同一个故障域的空闲硬盘进行数据恢复后,再次出现热备盘故障所导致的数据丢失,以此提高业务应用和整个系统的可靠性。
值得说明的是,对于上述方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制。本领域的技术人员根据以上描述的内容,能够想到的其他合理的步骤组合,也属于本发明的保护范围内。
上文中结合图1至图3B,详细描述了根据本发明实施例所提供的一种故障处理系统的方法,下面将结合图4至图6,描述根据本发明实施例所提供的故障处理的装置和设备。
图4为本发明提供的一种故障处理的装置示意图,如图所示,所述装置400包括获取单元401、处理单元402;
所述获取单元401,用于获取RAID组中故障硬盘的信息,所述故障硬盘的信息包括所述故障硬盘的容量和类型;
所述处理单元402,用于在与所述RAID组匹配的热备盘资源池中选择空闲硬盘对所述故障硬盘的数据进行恢复,所述热备盘资源池是所述RAID控制器预先创建,所述热备盘资源池中包括所述至少一个存储节点中的一个或多个空闲硬盘,所述RAID控制器所选择的空闲硬盘的容量大于或等于所述故障硬盘的容量,且所述RAID控制器所选择的空闲硬盘的类型与所述故障硬盘的类型相同。
应理解的是,本发明实施例的装置400可以通过专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)实现,或可编程逻辑器件(Programmable LogicDevice,PLD)实现,上述PLD可以是复杂程序逻辑器件(Complex Programmable LogicDevice,CPLD),现场可编程门阵列(Field-Programmable Gate Array,FPGA),通用阵列逻辑(Generic Array Logic,GAL)或其任意组合。也可以通过软件实现图2至图3B所示的数据处理方法时,装置400及其各个模块也可以为软件模块。
可选地,获取单元401,还用于获取所述存储控制器发送的空闲硬盘的信息,所述空闲硬盘的信息包括所述空闲硬盘的类型和容量;
所述处理单元402,还用于创建至少一个热备盘资源池,每个热备盘资源池包括具有相同容量和相同类型的至少一个存储节点的至少一个空闲硬盘;
所述处理单元402,还用于在创建所述RAID组时,根据所述RAID组中硬盘的类型和容量确定与所述RAID组匹配的一个或多个热备盘资源池,并记录所述RAID组与所述RAID组匹配的一个或多个热备盘资源池的映射关系;
则所述处理单元402在与所述RAID组匹配的热备盘资源池中选择空闲硬盘对所述故障硬盘的数据进行恢复具体为:
根据所述映射关系和所述获取单元401获取的故障硬盘的信息,在与所述RAID组匹配的热备盘资源池中选择空闲硬盘对所述故障硬盘的数据进行恢复。
可选地,所述空闲硬盘的信息中还包括所述空闲硬盘的故障域的信息,所述处理单元402所选择的空闲硬盘与所述RAID组中已使用的热备盘不在同一故障域,所述故障域的信息用于标识不同硬盘所在区域的关系,同一故障域内的不同硬盘同时故障时会导致数据丢失,不同故障域内的不同硬盘同时故障时不会导致数据丢失。
可选地,所述处理单元所选择的空闲硬盘的状态为未使用。
具体地,所述装置400中处理单元402,还用于向所述存储控制器发送第一请求消息,所述第一请求消息用于确定所述控制器所选择的空闲硬盘的状态;
所述获取单元401,还用于接收用于指示所述控制器所选择的空闲硬盘的状态为未使用的所述第一请求消息的响应结果;
所述处理单元402,还用于将所选择的空闲硬盘挂载到本地,并执行所述RAID组的故障数据恢复处理。
可选地,所述处理单元选择空闲硬盘作为热备盘对所述故障硬盘的数据进行恢复具体为:
根据所述RAID组中非故障的数据盘和校验盘的数据,将所述故障硬盘数据重新写入所述RAID控制器所选择的热备盘。
根据本发明实施例的装置400可对应于执行本发明实施例中描述的方法,并且装置400中的各个单元的上述和其它操作和/或功能分别为了实现图2至图3B中的各个方法的相应流程,为了简洁,在此不再赘述。
通过以上内容的描述,本发明提供的一种装置400提供一种跨节点的热备盘实现方式,利用存储节点的空闲硬盘创建热备盘资源池,并建立热备盘资源池和RAID组的映射关系,当任一RAID组出现故障硬盘时,可以在与故障硬盘所在RAID组匹配的热备盘资源池中选择一个空闲硬盘作为热备盘,对故障硬盘数据进行恢复,其中,存储节点及存储节点中空闲硬盘的数量可以根据业务需求扩容,相应的,热备盘资源池的数量也可以不受限制,解决现有技术中利用业务节点的本地硬盘作热备盘数量受限问题,而且,对于同一RAID组中多次出现故障硬盘的情况,可以通过热备盘资源池提供多个热备盘,提高了整个系统的可靠性。另一方面,业务节点的所有本地硬盘均可以用于RAID组的数据盘或校验盘,提高了本地硬盘的利用率。
图5为本发明实施例提供的一种故障处理的设备500的示意图,如图所示,所述设备500包括处理器501、存储器502、通信接口503和总线504。其中,处理器501、存储器502、通信接口503通过总线504进行通信,也可以通过无线传输等其他手段实现通信。该存储器502用于存储指令,该处理器501用于执行该存储器502存储的指令。该存储器502存储程序代码,且处理器501可以调用存储器502中存储的程序代码执行以下操作:
获取RAID组中故障硬盘的信息,所述故障硬盘的信息包括所述故障硬盘的容量和类型;
在与所述RAID组匹配的热备盘资源池中选择空闲硬盘对所述故障硬盘的数据进行恢复,所述热备盘资源池是所述设备500预先创建,所述热备盘资源池中包括所述至少一个存储节点中的一个或多个空闲硬盘,所述设备500所选择的空闲硬盘的容量大于或等于所述故障硬盘的容量,且所述设备500所选择的空闲硬盘的类型与所述故障硬盘的类型相同。
应理解,在本发明实施例中,该处理器501可以是CPU,该处理器501还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
该存储器502可以包括只读存储器和随机存取存储器,并向处理器501提供指令和数据。存储器502的一部分还可以包括非易失性随机存取存储器。例如,存储器502还可以存储设备类型的信息。
该总线504除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线504。
应理解,根据本发明实施例的存储设备500对应于本发明实施例图1中所述的业务节点。根据本发明实施例的故障处理的设备500可对应于本发明实施例中的故障处理的装置400,并可以对应于执行根据本发明实施例图2至图3A中的相应主体,并且设备500中的各个模块的上述和其它操作和/或功能分别为了实现图2至图3B中的各个方法的相应流程,为了简洁,在此不再赘述。
图6为本发明实施例提供的另一种故障处理的设备600的示意图,如图所示,所述设备600包括处理器601、存储器602、通信接口603、RAID卡604和总线607,处理器601、存储器602、通信接口603和RAID卡604通过总线607进行通信,也可以通过无线传输等其他手段实现通信。其中,RAID卡604中包括处理器605、存储器606、总线608,处理器605和存储器606通过总线608进行通信。该存储器606用于存储指令,该处理器605用于执行该存储器606存储的指令。该存储器606存储程序代码,且处理器605可以调用存储器606中存储的程序代码执行以下操作:
获取RAID组中故障硬盘的信息,所述故障硬盘的信息包括所述故障硬盘的容量和类型;
在与所述RAID组匹配的热备盘资源池中选择空闲硬盘对所述故障硬盘的数据进行恢复,所述热备盘资源池是所述设备500预先创建,所述热备盘资源池中包括所述至少一个存储节点中的一个或多个空闲硬盘,所述设备600所选择的空闲硬盘的容量大于或等于所述故障硬盘的容量,且所述设备600所选择的空闲硬盘的类型与所述故障硬盘的类型相同。
应理解,在本发明实施例中,该处理器605可以是CPU,该处理器605还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
该存储器606可以包括只读存储器和随机存取存储器,并向处理器601提供指令和数据。存储器606的一部分还可以包括非易失性随机存取存储器。例如,存储器606还可以存储设备类型的信息。
该总线608和总线607除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线608和总线607。
应理解,根据本发明实施例的存储设备600对应于本发明实施例图1中所述的业务节点。根据本发明实施例的故障处理的设备600可对应于本发明实施例中的故障处理的装置400,并可以对应于执行根据本发明实施例图2至图3A中的相应主体,并且设备600中的各个模块的上述和其它操作和/或功能分别为了实现图2至图3B中的各个方法的相应流程,为了简洁,在此不再赘述。
可选地,设备600还可以是图6所示的RAID卡604。
综上所述,通过本申请提供的设备500和设备600,利用跨网络的存储节点的空闲硬盘实现热备盘资源池,并建立热备盘资源池与每个RAID组之间的映射关系,当任一RAID组出现故障硬盘时,可以在与该RAID组匹配的热备盘资源池中选择一个热备盘资源池中的一个空闲硬盘作为热备盘进行故障数据恢复,热备盘资源池中空闲硬盘的数量可以根据业务需求对存储节点中空闲硬盘的数量进行调整,以此解决现有技术中热备盘资源池中硬盘数量受限所导致的影响系统可靠性的问题。另一方面,业务节点的所有本地硬盘均可以用于RAID组的数据盘和校验盘,提高了本地硬盘的利用率。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (10)

1.一种故障处理的方法,其特征在于,所述方法应用于故障处理系统中,所述故障处理系统中包括至少一个业务节点和至少一个存储节点,所述至少一个业务节点和所述至少一个存储节点之间通过网络进行通信,所述网络包括以太网、支持远程直接数据存取RDMA的无损以太网数据中心桥接DCB和无线带宽IB中任意一种,每个存储节点包括至少一个空闲硬盘,每个业务节点中设置独立硬盘冗余阵列RAID控制器与RAID组,所述RAID组的校验盘和数据盘为所述业务节点的硬盘,所述RAID控制器管理所述RAID组,所述方法包括:
所述RAID控制器获取所述RAID组中故障硬盘的信息,所述故障硬盘的信息包括所述故障硬盘的容量和类型;
所述RAID控制器在与所述RAID组匹配的热备盘资源池中选择空闲硬盘对所述故障硬盘的数据进行恢复,所述热备盘资源池是所述RAID控制器预先创建,所述热备盘资源池中包括所述至少一个存储节点中的一个或多个空闲硬盘,所述热备盘资源池用于根据所述RAID组的校验盘和数据盘中的数据进行所述故障硬盘的数据恢复,所述RAID控制器所选择的空闲硬盘的容量大于或等于所述故障硬盘的容量,且所述RAID控制器所选择的空闲硬盘的类型与所述故障硬盘的类型相同。
2.根据权利要求1所述方法,其特征在于,所述存储节点还包括存储控制器,所述方法还包括:
所述RAID控制器获取所述存储控制器发送的空闲硬盘的信息,所述空闲硬盘的信息包括所述空闲硬盘的类型和容量;
所述RAID控制器创建至少一个热备盘资源池,每个热备盘资源池包括具有相同容量和/或相同类型的至少一个空闲硬盘;
所述RAID控制器创建所述RAID组时,根据所述RAID组中硬盘的类型和容量确定与所述RAID组匹配的一个或多个热备盘资源池,并记录所述RAID组与所述RAID组匹配的一个或多个热备盘资源池的映射关系;
则所述RAID控制器在与所述RAID组匹配的热备盘资源池中选择空闲硬盘作为热备盘对所述故障硬盘的数据进行恢复具体为:
所述RAID控制器根据所述映射关系和所述故障硬盘的信息,在与所述RAID组匹配的热备盘资源池中选择空闲硬盘对所述故障硬盘的数据进行恢复。
3.根据权利要求2所述方法,其特征在于,所述空闲硬盘的信息中还包括硬盘的故障域的信息,所述RAID控制器所选择的空闲硬盘与所述RAID组中已使用的热备盘不在同一故障域,所述故障域的信息用于标识不同硬盘所在的区域的关系,同一故障域内的不同硬盘同时故障时会导致数据丢失,不同故障域内的不同硬盘同时故障时不会导致数据丢失。
4.根据权利要求1至3中任一所述方法,其特征在于,所述RAID控制器所选择的空闲硬盘的状态为未使用。
5.一种故障处理的装置,其特征在于,所述装置包括获取单元和处理单元;
所述获取单元,用于获取RAID组中故障硬盘的信息,所述故障硬盘的信息包括所述故障硬盘的容量和类型,所述RAID组的校验盘和数据盘为业务节点的硬盘,所述装置和所述业务节点通过网络连接,所述网络包括以太网、支持远程直接数据存取RDMA的无损以太网数据中心桥接DCB和无线带宽IB中任意一种;
所述处理单元,用于在与所述RAID组匹配的热备盘资源池中选择空闲硬盘对所述故障硬盘的数据进行恢复,所述热备盘资源池是所述RAID控制器预先创建,所述热备盘资源池中包括至少一个存储节点中的一个或多个空闲硬盘,所述热备盘资源池用于根据所述RAID组的校验盘和数据盘中的数据进行所述故障硬盘的数据恢复,所述RAID控制器所选择的空闲硬盘的容量大于或等于所述故障硬盘的容量,且所述RAID控制器所选择的空闲硬盘的类型与所述故障硬盘的类型相同。
6.根据权利要求5所述装置,其特征在于,
所述获取单元,还用于获取所述存储控制器发送的空闲硬盘的信息,所述空闲硬盘的信息包括所述空闲硬盘的类型和容量;
所述处理单元,还用于创建至少一个热备盘资源池,每个热备盘资源池包括具有相同容量和相同类型的至少一个存储节点的至少一个空闲硬盘;创建所述RAID组时,根据所述RAID组中硬盘的类型和容量确定与所述RAID组匹配的一个或多个热备盘资源池,并记录所述RAID组与所述RAID组匹配的一个或多个热备盘资源池的映射关系;
则所述处理单元在与所述RAID组匹配的热备盘资源池中选择空闲硬盘对所述故障硬盘的数据进行恢复具体为:
根据所述映射关系和所述获取单元获取的故障硬盘的信息,在与所述RAID组匹配的热备盘资源池中选择空闲硬盘对所述故障硬盘的数据进行恢复。
7.根据权利要求6所述装置,其特征在于,所述空闲硬盘的信息中还包括所述空闲硬盘的故障域的信息,所述RAID控制器所选择的空闲硬盘与所述RAID组中已使用的热备盘不在同一故障域,所述故障域的信息用于标识不同硬盘所在区域的关系,同一故障域内的不同硬盘同时故障时会导致数据丢失,不同故障域内的不同硬盘同时故障时不会导致数据丢失。
8.根据权利要求6至7中任一所述装置,其特征在于,所述处理单元所选择的空闲硬盘的状态为未使用。
9.一种故障处理的设备,其特征在于,所述设备包括处理器、存储器、通信接口、总线,所述处理器、存储器和通信接口之间通过总线连接并完成相互间的通信,所述存储器中用于存储计算机执行指令,所述设备运行时,所述处理器执行所述存储器中的计算机执行指令以利用所述设备中的硬件资源执行权利要求1至4中任一所述的方法。
10.一种故障处理的设备,其特征在于,所述设备包括RAID卡、存储器、通信接口、总线,所述RAID卡中包括处理器和存储器,所述RAID卡的处理器和RAID卡的存储器通过总线相通信,所述RAID卡、存储器、通信接口通过所述总线相互通信,所述RAID卡的存储器中用于存储计算机执行指令,所述设备运行时,所述RAID卡的处理器执行所述RAID卡的存储器中的计算机执行指令以利用所述设备中的硬件资源执行权利要求1至4中任一所述的方法。
CN201611110928.0A 2016-12-06 2016-12-06 一种故障处理的方法、装置和设备 Active CN108153622B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201611110928.0A CN108153622B (zh) 2016-12-06 2016-12-06 一种故障处理的方法、装置和设备
PCT/CN2017/112358 WO2018103533A1 (zh) 2016-12-06 2017-11-22 一种故障处理的方法、装置和设备
US16/362,196 US20190220379A1 (en) 2016-12-06 2019-03-22 Troubleshooting Method, Apparatus, and Device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611110928.0A CN108153622B (zh) 2016-12-06 2016-12-06 一种故障处理的方法、装置和设备

Publications (2)

Publication Number Publication Date
CN108153622A CN108153622A (zh) 2018-06-12
CN108153622B true CN108153622B (zh) 2021-08-31

Family

ID=62468352

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611110928.0A Active CN108153622B (zh) 2016-12-06 2016-12-06 一种故障处理的方法、装置和设备

Country Status (3)

Country Link
US (1) US20190220379A1 (zh)
CN (1) CN108153622B (zh)
WO (1) WO2018103533A1 (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110737924B (zh) * 2018-07-20 2021-07-27 中移(苏州)软件技术有限公司 一种数据保护的方法和设备
CN109189338B (zh) * 2018-08-27 2021-06-18 郑州云海信息技术有限公司 一种热备盘添加的方法、系统及设备
CN111381770B (zh) * 2018-12-30 2021-07-06 浙江宇视科技有限公司 一种数据存储切换方法、装置、设备及存储介质
US11138042B2 (en) * 2019-04-05 2021-10-05 Grass Valley Canada System and method of identifying equivalents for task completion
CN110989923A (zh) * 2019-10-30 2020-04-10 烽火通信科技股份有限公司 一种分布式存储系统的部署方法及装置
CN110928724B (zh) * 2019-11-29 2023-04-28 重庆紫光华山智安科技有限公司 一种全局热备盘管理方法、装置、存储介质及电子设备
CN113254276A (zh) * 2021-06-10 2021-08-13 苏州浪潮智能科技有限公司 消除独立磁盘冗余阵列异常的方法、系统、设备及介质
CN113259474B (zh) * 2021-06-10 2021-10-08 苏州浪潮智能科技有限公司 一种存储管理方法、系统、存储介质及设备
US11604611B2 (en) * 2021-06-14 2023-03-14 EMC IP Holding Company LLC Variable sparing of disk drives in storage array
CN113656208B (zh) * 2021-08-17 2023-06-16 北京神州新桥科技有限公司 分布式存储系统数据处理方法、装置、设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105335256A (zh) * 2014-08-15 2016-02-17 中国电信股份有限公司 在整机柜服务器中切换备份磁盘的方法、装置和系统

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5666512A (en) * 1995-02-10 1997-09-09 Hewlett-Packard Company Disk array having hot spare resources and methods for using hot spare resources to store user data
US7975104B2 (en) * 2008-12-19 2011-07-05 Lsi Corporation Method for preserving data integrity by breaking the redundant array of independent disks level 1(RAID1)
JP4842334B2 (ja) * 2009-02-12 2011-12-21 富士通株式会社 ディスクアレイ制御装置
US8086893B1 (en) * 2009-07-31 2011-12-27 Netapp, Inc. High performance pooled hot spares
CN101625627B (zh) * 2009-08-05 2012-03-21 成都市华为赛门铁克科技有限公司 写入数据的方法、磁盘冗余阵列的控制器及磁盘冗余阵列
CN102053801A (zh) * 2010-12-29 2011-05-11 成都市华为赛门铁克科技有限公司 一种磁盘热备方法及装置、存储系统
CN105843557B (zh) * 2016-03-24 2019-03-08 天津书生云科技有限公司 冗余存储系统、冗余存储方法和冗余存储装置
US8959389B2 (en) * 2011-11-23 2015-02-17 International Business Machines Corporation Use of a virtual drive as a hot spare for a raid group
CN103246478B (zh) * 2012-02-08 2015-11-25 北京同有飞骥科技股份有限公司 一种基于软raid支持无分组式全局热备盘的磁盘阵列系统
US20140115579A1 (en) * 2012-10-19 2014-04-24 Jonathan Kong Datacenter storage system
CN103019618A (zh) * 2012-11-29 2013-04-03 浪潮电子信息产业股份有限公司 一种多控器间的全局热备方法
US9372752B2 (en) * 2013-12-27 2016-06-21 Intel Corporation Assisted coherent shared memory

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105335256A (zh) * 2014-08-15 2016-02-17 中国电信股份有限公司 在整机柜服务器中切换备份磁盘的方法、装置和系统

Also Published As

Publication number Publication date
WO2018103533A1 (zh) 2018-06-14
US20190220379A1 (en) 2019-07-18
CN108153622A (zh) 2018-06-12

Similar Documents

Publication Publication Date Title
CN108153622B (zh) 一种故障处理的方法、装置和设备
US7565567B2 (en) Highly available computing platform
US10126806B2 (en) Systems and methods for determining the state of health of a capacitor module
US8458398B2 (en) Computer-readable medium storing data management program, computer-readable medium storing storage diagnosis program, and multinode storage system
US9170888B2 (en) Methods and apparatus for virtual machine recovery
US9690663B2 (en) Allocation of replica-sets in a storage cluster
CN102402395B (zh) 基于仲裁磁盘的高可用系统不间断运行方法
JP5523468B2 (ja) 直接接続ストレージ・システムのためのアクティブ−アクティブ・フェイルオーバー
US20030135782A1 (en) Fail-over storage system
US11221935B2 (en) Information processing system, information processing system management method, and program thereof
US9507664B2 (en) Storage system including a plurality of storage units, a management device, and an information processing apparatus, and method for controlling the storage system
CN102622279B (zh) 冗余控制系统、方法及管理控制器
US9223658B2 (en) Managing errors in a raid
CN107870731B (zh) 独立盘冗余阵列系统的管理方法和电子设备
CN111176888B (zh) 云存储的容灾方法、装置及系统
US9047247B2 (en) Storage system and data processing method
EP4036735A1 (en) Method, apparatus and readable storage medium
US8782465B1 (en) Managing drive problems in data storage systems by tracking overall retry time
CN103136075A (zh) 磁盘系统、数据保存装置以及磁盘设备
WO2017220013A1 (zh) 业务处理方法及装置、存储介质
CN110837444A (zh) 一种存储器故障处理方法及装置
CN104052799B (zh) 一种利用资源环实现高可用存储的方法
CN105159846A (zh) 一种支持虚拟化磁盘双控切换的方法和存储系统
CN104699564A (zh) 一种采用Raid0磁盘组服务器的自动恢复方法及装置
CN110502496A (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