CN110309012A - 一种数据处理方法及其装置 - Google Patents

一种数据处理方法及其装置 Download PDF

Info

Publication number
CN110309012A
CN110309012A CN201810259318.XA CN201810259318A CN110309012A CN 110309012 A CN110309012 A CN 110309012A CN 201810259318 A CN201810259318 A CN 201810259318A CN 110309012 A CN110309012 A CN 110309012A
Authority
CN
China
Prior art keywords
tkg
target
trunk
data
data write
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201810259318.XA
Other languages
English (en)
Other versions
CN110309012B (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.)
Hangzhou Hikvision Digital Technology Co Ltd
Original Assignee
Hangzhou Hikvision Digital Technology 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 Hangzhou Hikvision Digital Technology Co Ltd filed Critical Hangzhou Hikvision Digital Technology Co Ltd
Priority to CN201810259318.XA priority Critical patent/CN110309012B/zh
Priority to US16/976,190 priority patent/US11841762B2/en
Priority to PCT/CN2019/078582 priority patent/WO2019184758A1/zh
Priority to EP19778407.7A priority patent/EP3742297A4/en
Publication of CN110309012A publication Critical patent/CN110309012A/zh
Application granted granted Critical
Publication of CN110309012B publication Critical patent/CN110309012B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0709Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • 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/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • 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
    • 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
    • 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
    • G06F3/0617Improving the reliability of storage systems in relation to availability
    • 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
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/87Regeneration of colour television signals

Abstract

本申请提供一种数据处理方法及其装置,该方法包括:当需要对目标TKG进行数据写入时,判断所述目标TKG是否可用;若可用,则对所述目标TKG进行数据写入;否则,对所述目标TKG进行修复,并对修复后的目标TKG进行数据写入。该方法可以提高业务稳定性。

Description

一种数据处理方法及其装置
技术领域
本申请涉及计算机存储技术,尤其涉及一种数据处理方法及其装置。
背景技术
随着RAID2.0(Redundant Array of Independent Disks Version 2.0,独立磁盘冗余数组2.0)技术和EC(Erasure Coding,纠删码)算法的发展,多数产品采用二者技术结合,使RAID可以突破RAID6只能冗余2块磁盘的限制,RAID2.0技术将磁盘划分为若干的逻辑块(Trunk)实现RAID,结合EC算法,可以实现阵列N+M(N>=M且N>1)任意组合,能提供给用户更高的冗余和安全性。其中,N为原始数据块的数量,M为校验数据块的数量。
然而实践发现,现有RAID2.0实现中,当由于磁盘或存储节点异常引起阵列不可用时,会导致业务中断,业务稳定性较差。
发明内容
有鉴于此,本申请提供一种数据处理方法及其装置。
具体地,本申请是通过如下技术方案实现的:
根据本申请实施例的第一方面,提供一种数据处理方法,包括:
当需要对目标逻辑块组TKG进行数据写入时,判断所述目标TKG是否可用;
若可用,则对所述目标TKG进行数据写入;
否则,对所述目标TKG进行修复,并对修复后的目标TKG进行数据写入。
可选的,所述对所述目标TKG进行修复,包括:
根据可用Trunk资源判断是否存在使目标TKG恢复为具有N+M个可用Trunk,且任意M个Trunk归属于至少K个存储节点的修复方案;
若存在,则按照该恢复方案对所述目标TKG进行修复。
可选的,所述方法还包括:
若不存在使目标TKG恢复为具有N+M个可用Trunk,且任意M个Trunk归属于至少K个存储节点的修复方案,且K>0,则令K=K-1,并重复上述判断步骤,直至存在使目标TKG恢复为具有N+M个可用Trunk,且任意M个Trunk归属于至少K个存储节点的修复方案,或,K=0;
若存在使目标TKG恢复为具有N+M个可用Trunk,且任意M个Trunk归属于至少K个存储节点的修复方案,则根据该修复方案对所述目标TKG进行修复;
若K=0,则根据可用Trunk资源判断是否存在使目标TKG具有N+M个可用Trunk的修复方案;
若存在,则根据该修复方案对所述目标TKG进行修复;否则,当M>0时,令M=M-1,并重复判断是否存在使目标TKG具有N+M个可用Trunk的修复方案,直至存在使目标TKG具有N+M个可用Trunk的修复方案,或M=0;
若存在使目标TKG具有N+M个可用Trunk的修复方案,则根据该修复方案对所述目标TKG进行修复;
若M=0,则确定所述目标TKG修复失败。
可选的,所述数据为视频数据,所述方法还包括:
当需要对目标TKG中的视频数据进行视频回放,且所述目标TKG不可用时,对所述目标TKG中包括的可用Trunk进行读取;
若读取到的视频数据中包括I帧数据,则根据所读取的视频数据进行视频回放。
可选的,所述方法还包括:
当目标磁盘异常后恢复时,对于目标磁盘关联的任一TKG,判断该TKG在所述目标磁盘异常时是否发生过数据写入;
若是,则对该TKG进行重构;
否则,拒绝对该TKG进行重构。
可选的,若所述目标TKG可用,则所述对所述目标TKG进行数据写入之前,还包括:
判断所述目标TKG是否发生降级;
若是,则对所述目标TKG进行修复,并对修复后的目标TKG进行数据写入;
否则,确定执行所述对所述目标TKG进行数据写入的步骤。
根据本申请实施例的第二方面,提供一种数据处理装置,包括:
判断单元,用于当数据写入单元需要对目标逻辑块组TKG进行数据写入时,判断所述目标TKG是否可用;
数据写入单元,用于若目标TKG可用,则对目标TKG进行数据写入;
修复单元,用于若数据写入单元需要对目标TKG进行数据写入,且目标TKG不可用,则对目标TKG进行修复;
所述数据写入单元,还用于对修复后的目标TKG进行数据写入。
可选的,所述判断单元,还用于根据可用Trunk资源判断是否存在使目标TKG恢复为具有N+M个可用Trunk,且任意M个Trunk归属于至少K个存储节点的修复方案;
所述修复单元,具体用于若存在使目标TKG恢复为具有N+M个可用Trunk,且任意M个Trunk归属于至少K个存储节点的修复方案,则按照该恢复方案对所述目标TKG进行修复。
可选的,所述判断单元,还用于若不存在使目标TKG恢复为具有N+M个可用Trunk,且任意M个Trunk归属于至少K个存储节点的修复方案,且K>0,则令K=K-1,并重复判断是否存在使目标TKG恢复为具有N+M个可用Trunk,且任意M个Trunk归属于至少K个存储节点的修复方案,直至存在使目标TKG恢复为具有N+M个可用Trunk,且任意M个Trunk归属于至少K个存储节点的修复方案,或,K=0;
所述修复单元,还用于若存在使目标TKG恢复为具有N+M个可用Trunk,且任意M个Trunk归属于至少K个存储节点的修复方案,则根据该修复方案对所述目标TKG进行修复;
所述判断单元,还用于若K=0,且不存在使目标TKG恢复为具有N+M个可用Trunk,且任意M个Trunk归属于至少K个存储节点的修复方案,则根据可用Trunk资源判断是否存在使目标TKG具有N+M个可用Trunk的修复方案;
所述修复单元,还用于若存在使目标TKG具有N+M个可用Trunk的修复方案,则根据该修复方案对所述目标TKG进行修复;
所述判断单元,还用于若不存在使目标TKG具有N+M个可用Trunk的修复方案,且M>0,则令M=M-1,并重复判断是否存在使目标TKG具有N+M个可用Trunk的修复方案,直至存在使目标TKG具有N+M个可用Trunk的修复方案,或M=0;
所述修复单元,还用于若存在使目标TKG具有N+M个可用Trunk的修复方案,则根据该修复方案对所述目标TKG进行修复;若M=0,且不存在使目标TKG具有N+M个可用Trunk的修复方案,则确定所述目标TKG修复失败。
可选的,所述数据为视频数据,
所述装置还包括:
数据读取单元,用于当需要对目标TKG中的视频数据进行视频回放,且所述目标TKG不可用时,对所述目标TKG中包括的可用Trunk进行读取;
视频回放单元,用于若读取到的视频数据中包括I帧数据,则根据所读取的视频数据进行视频回放。
可选的,所述判断单元,还用于当目标磁盘异常后恢复时,对于目标磁盘关联的任一TKG,判断该TKG在所述目标磁盘异常时是否发生过数据写入;
所述装置还包括:
重构单元,用于若该TKG在所述目标磁盘异常时是否发生过数据写入,则对该TKG进行重构;否则,拒绝对该TKG进行重构。
可选的,所述判断单元,还用于若所述目标TKG可用,则判断所述目标TKG是否发生降级;
所述修复单元,还用于若所述目标TKG发生降级,对所述目标TKG进行修复;
所述数据写入单元,还用于对修复后的目标TKG进行数据写入;若所述目标TKG未发生降级,对所述目标TKG进行数据写入。
根据本申请实施例的第三方面,提供一种数据处理装置,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:
当需要对目标逻辑块组TKG进行数据写入时,判断所述目标TKG是否可用;其中,初始状态下,一个TKG包括N个用于存储原始数据的Trunk,以及M个用于存储校验数据的Trunk,该N+M个Trunk中任意M个Trunk归属于至少K个存储节点,N≥M,N>1,0≤K≤M;
若可用,则对所述目标TKG进行数据写入;
否则,对所述目标TKG进行修复,并对修复后的目标TKG进行数据写入。
根据本申请实施例的第四方面,提供一种机器可读存储介质,存储有机器可执行指令,在被处理器调用和执行时,所述机器可执行指令促使所述处理器:
当需要对目标逻辑块组TKG进行数据写入时,判断所述目标TKG是否可用;其中,初始状态下,一个TKG包括N个用于存储原始数据的Trunk,以及M个用于存储校验数据的Trunk,该N+M个Trunk中任意M个Trunk归属于至少K个存储节点,N≥M,N>1,0≤K≤M;
若可用,则对所述目标TKG进行数据写入;
否则,对所述目标TKG进行修复,并对修复后的目标TKG进行数据写入。
本申请实施例的数据处理方法,通过在需要对目标TKG进行数据写入时,判断目标TKG是否可用,若可用,则对目标TKG进行数据写入;否则,对目标TKG进行修复,并对修复后的目标TKG进行数据写入,避免了由磁盘或存储节点异常引起的TKG不可用导致的业务中断,提高了业务稳定性。
附图说明
图1是本申请一示例性实施例示出的一种数据处理方法的流程图;
图2是本申请一示例性实施例示出的一种目标TKG修复的方法流程图;
图3是本申请又一示例性实施例示出的一种数据处理方法的流程图;
图4是本申请一示例性实施例示出的应用场景的示意图;
图5是本申请一示例性实施例示出的一种数据处理装置的结构示意图;
图6是本申请又一示例性实施例示出的一种数据处理装置的结构示意图;
图7是本申请又一示例性实施例示出的一种数据处理装置的结构示意图;
图8是本申请一示例性实施例示出的一种数据处理装置的硬件结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
为了使本领域技术人员更好地理解本申请实施例提供的技术方案,并使本申请实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本申请实施例中技术方案作进一步详细的说明。
请参见图1,为本申请实施例提供的一种数据处理方法的流程示意图,其中,该数据处理方法可以应用于分布式存储系统中的任一存储节点,如图1所示,该方法可以包括以下步骤:
步骤S100、当需要对目标TKG进行数据写入时,判断目标TKG是否可用。若是,则转至步骤S110;否则,转至步骤S120。
本申请实施例中,可以从分布式存储系统中的多个存储节点中选取多个磁盘形成磁盘资源池,按照预设大小对磁盘资源池中各磁盘进行Trunk划分,由这些Trunk组件TKG(Trunk Group,逻辑块组),进而,组件RAID2.0阵列。
其中,一个RAID2.0阵列包括一个或多个(优选为多个)TKG(可以称为一个TKG组),初始状态下,一个TKG包括N+M个Trunk(包括N个用于存储原始数据的Trunk和M个用于存储校验数据的Trunk),且其中任意M个Trunk归属于至少K个存储节点,因而,一个TKG可以具有M个Trunk的冗余度,以及K个存储节点的冗余度,即最后可以容忍M个Trunk不可用(如由Trunk所在磁盘或存储节点不可用导致的Trunk不可用),最多可以容忍K个存储节点不可用(如掉电、故障等)。
其中,N≥M,N>1,0≤K≤M。
优选地,一个TKG中包括的N+M个Trunk归属于N+M个不同的磁盘,进而,一个TKG可以具有M个磁盘的冗余度,即最多可以容忍M个磁盘不可用(如故障、被拔出等)。
本申请实施例中,目标TKG并不特指某一固定的TKG,而是可以指代任一TKG组中的任一TKG,本申请实施例后续对此不再复述。
本申请实施例中,可以预先配置数据源与TKG组的对应关系,对于任一TKG组,当存储节点接收到的来自对应的数据源的数据达到一个TKG的存储大小时,存储节点可以将接收到的数据等分为N个原始数据块,并根据该N个原始数据块利用EC算法,计算出M个校验数据块,并将该N+M个数据块分别写入该TKG组中某一TKG的N+M个Trunk中。
其中,每个Trunk中每次进行数据写入的大小可以一个Chunk(块)的大小,一个Trunk可以被划分为多个Chunk。
本申请实施例中,当存储节点需要对目标TKG进行数据写入时,存储节点可以判断目标TKG是否可用。
其中,当目标TKG中不可用的Trunk的数量超过M个时,则目标TKG不可用(disable)。
步骤S110、对目标TKG进行数据写入。
本申请实施例中,若存储节点确定目标TKG可用,则存储节点可以直接对目标TKG进行数据写入。
其中,若目标TKG为正常(normal)状态,即目标TKG包括的N+M个Trunk均可用,则存储节点可以分别将N个原始数据块和M个校验数据块分别写入目标TKG的N+M个Trunk。
若目标TKG为降级(degrade)状态,即目标TKG包括的可用Trunk的数量大于等于N,且小于N+M,则存储节点可以分别将N个原始数据块和M个校验数据块中与可用Trunk数量相等的数据块分别写入各可用Trunk。
优选地,存储节点可以优先将原始数据块写入目标TKG的可用Trunk。
步骤S120、对目标TKG进行修复,并对修复后的目标TKG进行数据写入。
本申请实施例中,为了避免磁盘或节点不可用对业务的影响,当需要数据写入的TKG由于磁盘或节点不可用而导致不可用时,并不会中断业务,而是可以先对该TKG进行修复,并在修复成功后对修复后的TKG进行数据写入。
相应地,在本申请实施例中,当存储节点确定目标TKG不可用时,存储节点可以对目标TKG进行修复。
如图2所示,在本申请其中一个实施例中,对目标TKG进行修复可以包括以下步骤:
步骤200、根据可用Trunk资源判断是否存在使目标TKG恢复为具有N+M个可用Trunk,且任意M个Trunk归属于至少K个存储节点的修复方案。若是,则转至步骤S210;否则,转至步骤S220。
在该实施例中,当需要写入数据的TKG不可用,即TKG中不可用的Trunk的数量超过M个时,存储节点可以根据可用Trunk资源对目标TKG进行重新组织构建,并更新内存以及元数据中的信息的方式对该Trunk进行修复。
其中,进行TKG修复时的可用Trunk资源可以包括磁盘资源池中的空闲可用Trunk。
在该实施例中,存储设备对TKG进行重新组织构建时,可以按照“最优冗余比”的原则进行构建,即先判断当前的可用Trunk资源是否满足K个存储节点的冗余度(即使修复后的TKG在满足M个Trunk的冗余度的同时满足K个存储节点的冗余度,本文中可以称为JUDGE_K),然后再判断是否满足M个Trunk的冗余度(即使修复后的TKG满足M个Trunk的冗余度)。
相应地,在该实施例中,当存储节点需要对目标TKG进行修复时,存储节点可以先根据可用Trunk资源判断是否存在使目标TKG恢复为具有N+M个可用Trunk,且任意M个Trunk归属于至少K个存储节点的修复方案。
步骤S210、按照该修复方案对目标TKG进行修复。
在该实施例中,当存储节点确定存在使目标TKG恢复为具有N+M个可用Trunk,且任意M个Trunk归属于至少K个存储节点的修复方案时,存储节点可以根据该修复方案对目标TKG进行修复。
步骤S220、若K>0,则令K=K-1并转至步骤S200;若K=0,则转至步骤S230。
在该实施例中,若存储节点确定不存在使目标TKG恢复为具有N+M个可用Trunk,且任意M个Trunk归属于至少K个存储节点的修复方案,且K>0,则存储节点可以令K=K-1并转至步骤S200;否则,存储节点可以执行步骤S230。
步骤S230、根据可用Trunk资源判断是否存在使目标TKG具有N+M个可用Trunk的修复方案。若存在,转至步骤S240;否则,转至步骤S250。
在该实施例中,当不存在满足存储节点冗余的修复方案时,存储节点可以仅考虑Trunk冗余。
相应地,存储节点可以根据可用Trunk资源判断是否存在使目标TKG具有N+M个可用Trunk的修复方案,即是否存在使目标TKG具有M个Trunk冗余的修复方案。
步骤S240、根据该修复方案对目标TKG进行修复。
在该实施例中,当存储节点确定存在使目标TKG具有N+M个可用Trunk的修复方案时,存储节点可以根据该修复方案对目标TKG进行修复。
步骤S250、若M>0,则令M=M-1,并转至步骤S230;若M=0,转至步骤S260。
在该实施例中,若存储节点确定不存在使目标TKG恢复为具有N+M个可用Trunk的修复方案,且M>0,则存储节点可以令K=K-1并转至步骤S230;否则,存储节点可以执行步骤S250。
步骤S260、确定目标TKG修复失败。
在该实施例中,若M=0时,仍不存在使目标TKG恢复为具有N+M个可用Trunk的修复方案,即无法将目标TKG恢复为具有N个可用Trunk的修复方案(也即无法将目标TKG恢复为可用状态),则存储节点可以确定目标TKG修复失败。
本发明实施例中,存储节点对目标TKG修复成功后,可以对修复后的目标TKG进行数据写入。
可见,在图1所示方法流程中,当由于磁盘或节点不可用导致部分TKG不可用时,并不会直接中断业务,而是可以根据TKG组中各TKG的可用状态,对可用TKG直接进行数据写入,对不可用TKG进行修复后再进行数据写入,提高了业务稳定性。
请参见图3,为本申请实施例提供的另一种数据处理方法的流程示意图,其中,该数据处理方法可以应用于分布式存储系统中的任一存储节点,如图3所示,该方法可以包括以下步骤:
步骤S300、当需要对目标TKG进行数据写入时,判断目标TKG是否可用。若是,则转至步骤S310;否则,转至步骤S340。
本申请实施例中,步骤S300的具体实现可以参见步骤S100中的相关描述,本申请实施例在此不再赘述。
骤S310、判断目标TKG是否发生降级。若是,转至步骤S320;否则转至步骤S330。
本申请实施例中,考虑到对于因磁盘或节点不可用而发生降级的TKG,在磁盘或节点恢复为可用状态时,会存在重构的需求,而系统较为繁忙时,重构带来的资源消耗会对系统外部业务造成影响。因此,存储节点在对TKG进行数据写入前,可以先判断TKG是否发生降级,并当发生降级时,先对TKG进行修复,然后再进行数据写入。
相应地,在本申请实施例中,当存储节点确定目标TKG可用时,存储节点可以进一步判断目标TKG是否发生降级。若发生降级,则转至步骤S320;否则,转至步骤S330。
步骤S320、对目标TKG进行修复,并对修复后的目标TKG进行数据写入。
本申请实施例中,当存储节点确定目标TKG可用,但发生了降级时,存储节点可以先对目标TKG进行修复。
需要说明的是,在步骤S320中,存储节点对目标TKG进行修复的具体实现可以参见图2所示修复流程,但应该认识到,由于在步骤S320中,目标TKG虽然发生了降级,但仍是可用的,即目标TKG包括的可用Trunk的数量大于等于N(即M≥0),而图2所示修复流程中不可用的目标TKG包括的可用Trunk的数量小于N(即M=0),因此,在步骤S320中,对目标TKG进行修复时,需要保证修复后的目标TKG中包括的可用Trunk的数量需要大于修复前的目标TKG中包括的可用Trunk的数量。
其中,步骤S320中修复前的目标TKG包括的可用Trunk的数量为N+M1(M1≥0),则修复后的目标TKG包括的可用Trunk的数量为N+M2(M1≤M2≤M)。
优选地,在步骤S320中,存储节点可以按照步骤S200~步骤S220中描述的方式对目标TKG进行修复,当K=0,且不存在使目标TKG恢复为具有N+M个可用Trunk,且任意M个Trunk归属于至少K个存储节点的修复方案时,不对目标TKG进行修复,而是直接对降级状态的目标TKG进行数据写入。
本申请实施例中,存储节点对目标TKG进行修复之后,可以对修复后的目标TKG进行数据写入。
可见,在本申请实施例中,通过在对降级状态的TKG进行数据写入之前,先对该TKG进行修复,然后对修复后的TKG进行数据写入,在有足够可用Trunk资源的情况下,通过写前修复替代了写后重构,避免了重构带来的系统资源消耗,节省了系统资源。
步骤S330、对目标TKG进行数据写入。
本申请实施例中,步骤S330的具体实现可以参见步骤S110中的相关描述,本申请实施例对此不再赘述。
步骤S340、对目标TKG进行修复,并对修复后的目标TKG进行数据写入。
本申请实施例中,步骤S340的具体实现可以参见步骤S120中的相关描述,本申请实施例对此不再赘述。
可见,在图3所示方法流程中,当由于磁盘或节点不可用导致部分TKG不可用时,并不会直接中断业务,而是可以根据TKG组中各TKG的可用状态,对可用TKG直接进行数据写入,对不可用TKG进行修复后再进行数据写入,提高了业务稳定性;此外,对于发生降级的TKG,在进行数据写入之前,先对该TKG进行修复,然后对修复后的TKG进行数据写入,在有足够可用Trunk资源的情况下,通过写前修复替代了写后重构,避免了重构带来的系统资源消耗,节省了系统资源。
进一步地,在本申请实施例其中一个实施例中,当目标磁盘异常后恢复时,对于目标磁盘关联的任一TKG,判断该TKG在目标磁盘异常时是否发生过数据写入;
若是,则对该TKG进行重构;
否则,拒绝对该TKG进行重构。
在该实施例中,目标磁盘并不特指某一固定的磁盘,而是可以指代磁盘资源池中的任一磁盘,本申请实施例后续不再复述。
在该实施例中,考虑到传统RAID2.0技术中,当磁盘发生异常后恢复时,需要通过重构的方式对整个磁盘关联的RAID2.0阵列进行数据恢复,这样会造成系统资源浪费,因此,对于异常后恢复的磁盘关联的TKG,可以引入增量重构机制,来减少重构工作量。
其中,磁盘异常后恢复可以包括但不限于旧磁盘恢复(如磁盘由于被误拔出而导致异常,后被重新插入)、克隆磁盘恢复(通过对发生异常的磁盘中的正常数据进行克隆,并使用克隆磁盘替代该发生异常的磁盘)或新盘顶替(使用新的磁盘替代发生异常的磁盘)等。
相应地,在该实施例中,当目标磁盘异常后恢复时,对于目标磁盘关联的任一TKG(即组成该TKG的Trunk包括归属于目标磁盘的Trunk),存储节点可以判断该TKG在目标磁盘异常时是否发生过数据写入。
其中,对于目标磁盘关联的任一TKG,当目标TKG异常时,该TKG会处于降级状态,因此,上述判断该TKG在目标磁盘异常时是否发生过数据写入可以为判断该TKG在降级状态时是否发生过数据写入。
在该实施例中,若目标磁盘关联的TKG在目标磁盘异常时发生过数据写入,则存储节点可以在目标磁盘恢复时,对TKG进行重构(本文中称为增量重构)。若目标磁盘关联的TKG在目标磁盘异常时未发生过数据写入,则存储节点可以在目标磁盘恢复时,拒绝对该TKG进行重构(本文中称为免重构)。
需要说明的是,在本申请实施例中,为了实现增量重构,对于降级状态的TKG,当发生数据写入时,可以对该TKG进行标记(Mark);进而,当磁盘异常后恢复时,对于该磁盘关联的TKG,可以根据其是否携带上述标记确定其降级状态时是否发生过数据写入,并当携带有上述标记时,进行重构。
此外,在本申请实施例中,对于降级状态的TKG,还可以按照图3所示方法流程中的相关实现,以写前修复的方式来避免写后重构,进一步减少重构的工作量,其具体实现在此不再赘述。
为了使本领域技术人员更好地理解本申请实施例提供的技术方案,下面结合具体应用场景对本申请实施例提供的技术方案进行说明。
请参见图4,为本申请实施例提供的一种应用场景的架构示意图,如图4所示,该应用场景中包括前端视频采集设备(如IPC(Internet Protocol Camera,网络摄像机),下文中简称前端设备)和以及视频存储节点(如NVR(Network Video Recorder,网络硬盘录像机),下文中简称存储节点)。
在该应用场景中,通过分布式RAID将多个存储节点上的磁盘,按照一定的关系组织,构建一个虚拟块设备。来自前端设备的视频数据,通过该虚拟块设备被写到不同的存储节点的不同磁盘上。
其中,每个存储节点包含一定数量的磁盘,我们将所有存储节点的磁盘集中管理,并赋予每块磁盘两种属性:1)磁盘id、用于标识不同的磁盘;2)节点id、用于标识磁盘所属存储节点。
基于以上两种磁盘属性,可以将所有磁盘划分成固定大小的逻Trunk,每个Trunk继承其所在磁盘的两点属性,然后利用Trunk构建具有N+M模式的基本存储单元(即TKG),该TKG具备N个数据块(用于存储原始数据的Trunk)和M个冗余块(用于存储校验数据的Trunk)。在构建TKG时,可以限制该TKG中的任意M个Trunk至少分散在K个不同存储节点,此时,该TKG在具备M个Trunk冗余度的同时,还具备K个存储节点的冗余,即该TKG可容忍K个存储节点离线。
优选地,在磁盘资源足够的情况下,优先保证TKG中N+M个Trunk归属于不同的磁盘,进而保证TKG具有M个磁盘的冗余度。
其中,为便于描述,下文中以N+M:K表示该TKG的模式。
基于图4所示应用场景,本申请实施例提供的数据处理方案可以包括:
一、磁盘(存储节点)超冗余录像业务不中断实现方案
基于以上分布式RAID的设计方式,每个TKG都具有M个Trunk的冗余度,且当磁盘资源充足时,TKG中各Trunk归属的磁盘不同,因此,在磁盘坏盘个数不超过M或者离线存储节点个数不超过K的情况下,每个TKG都处于正常或者降级状态。当磁盘坏盘个数超过M或离线存储节点个数超过K时,会存在部分超冗余(disable)的TKG,但由于每组TKG中各TKG的磁盘组成方式可能并不完全相同,没有用到坏盘的TKG仍是可用的状态。此时如果录像通道写在可用的TKG上,不会影响业务;但如果写到不可用的TKG上,可能会导致该通道业务中断。
相应地,在该实施例中,为了避免坏盘对业务的影响,可以将每个TKG组只提供给一路通道使用。例如,此时有100路录像写,对应会写到100个TKG组上。由于每个TKG组之间相互独立,因此修改一个TKG组不会对其他TKG组造成影响。
当对任一TKG组中任一TKG进行数据写入时,可以先判断该TKG是否可用;若可用,则业务继续;若不可用,则对该TKG进行修复。
其中,对TKG进行修复的具体实现可以参见图2所示方法流程中的相关描述。
基于上述业务写时修复TKG的逻辑,可以突破RAID坏盘超过冗余后录像业务无法进行的限制。
进一步地,当写入录像数据的TKG由于坏盘而变为不可用时,该TKG中可能仍会存在部分可用Trunk(正常磁盘对应的Trunk),对于该部分可用Trunk,仍可以读出数据。对于传统的数据存储,可能由于数据丢失,这1个TKG数据就完全不可用了。但结合视频数据与RAID存储的特点:1)RAID的中数据存储是以Chunk为单位,且Chunk大小可调;2)在视频存储中,如果在读取的数据中存在I帧数据,就可以解析出I帧之后的视频数据,反之为无效的数据文件。因此,可以通过调整RAID的Chunk大小,控制异常后的回放效果,例如,让完整的I帧在一个Chunk中,以便在多磁盘或多存储节点异常的情况下能够有较好的回放效果,这样即使在超冗余的情况下,业务层仍可以从正常的Trunk读到数据,且读到的数据如果包含I帧数据就用于回放。只是回放不可用的TKG上的数据时,由于数据的不连续,表现为视频跳秒回放。
二、免重构和增量重构实现方案
在该实施例中,可以记录每个TKG在降级状态下是否发生过数据写入,对于发生过数据写入的TKG,可以通过重构进行数据恢复;对于未发生过数据写入的TKG,该TKG免重构。
对于录像业务,当写过一个区域后,需要等待一个录像周期后才能再写这一块区域。而一个录像周期可能需要一个月之久。也就是说,对某一个TKG而言,大部分时间是处于一个不会被写的状态。这样对于整个TKG组而言,需要重构的只是在磁盘离线期间发生过数据写入的的TKG(可以称为增量区域),大大的减少了重构的数据量,进而减少了系统性能消耗。
为了进一步减少重构工作量,对于降级状态的TKG,在进行数据写入之前,可以先进行修复,并在修复完成后进行数据写入。
本申请实施例中,通过在需要对目标TKG进行数据写入时,判断目标TKG是否可用,若可用,则对目标TKG进行数据写入;否则,对目标TKG进行修复,并对修复后的目标TKG进行数据写入,避免了由磁盘或存储节点异常引起的TKG不可用导致的业务中断,提高了业务稳定性。
以上对本申请提供的方法进行了描述。下面对本申请提供的装置进行描述:
请参见图5,为本申请实施例提供的一种数据处理装置的结构示意图,其中,该数据处理装置可以应用于上述方法实施例中的存储节点,如图5所示,该数据处理装置可以包括:
判断单元510,用于当数据写入单元需要对目标逻辑块组TKG进行数据写入时,判断所述目标TKG是否可用;
数据写入单元520,用于若目标TKG可用,则对目标TKG进行数据写入;
修复单元530,用于若数据写入单元需要对目标TKG进行数据写入,且目标TKG不可用,则对目标TKG进行修复;
所述数据写入单元520,还用于对修复后的目标TKG进行数据写入。
在一种可选的实施方式中,所述判断单元510,还用于根据可用Trunk资源判断是否存在使目标TKG恢复为具有N+M个可用Trunk,且任意M个Trunk归属于至少K个存储节点的修复方案;
所述修复单元530,具体用于若存在使目标TKG恢复为具有N+M个可用Trunk,且任意M个Trunk归属于至少K个存储节点的修复方案,则按照该恢复方案对所述目标TKG进行修复。
在一种可选的实施方式中,所述判断单元510,还用于若不存在使目标TKG恢复为具有N+M个可用Trunk,且任意M个Trunk归属于至少K个存储节点的修复方案,且K>0,则令K=K-1,并重复判断是否存在使目标TKG恢复为具有N+M个可用Trunk,且任意M个Trunk归属于至少K个存储节点的修复方案,直至存在使目标TKG恢复为具有N+M个可用Trunk,且任意M个Trunk归属于至少K个存储节点的修复方案,或,K=0;
所述修复单元530,还用于若存在使目标TKG恢复为具有N+M个可用Trunk,且任意M个Trunk归属于至少K个存储节点的修复方案,则根据该修复方案对所述目标TKG进行修复;
所述判断单元510,还用于若K=0,且不存在使目标TKG恢复为具有N+M个可用Trunk,且任意M个Trunk归属于至少K个存储节点的修复方案,则根据可用Trunk资源判断是否存在使目标TKG具有N+M个可用Trunk的修复方案;
所述修复单元530,还用于若存在使目标TKG具有N+M个可用Trunk的修复方案,则根据该修复方案对所述目标TKG进行修复;
所述判断单元510,还用于若不存在使目标TKG具有N+M个可用Trunk的修复方案,且M>0,则令M=M-1,并重复判断是否存在使目标TKG具有N+M个可用Trunk的修复方案,直至存在使目标TKG具有N+M个可用Trunk的修复方案,或M=0;
所述修复单元530,还用于若存在使目标TKG具有N+M个可用Trunk的修复方案,则根据该修复方案对所述目标TKG进行修复;若M=0,且不存在使目标TKG具有N+M个可用Trunk的修复方案,则确定所述目标TKG修复失败。
在一种可选的实施方式中,所述数据为视频数据,
相应地,如图6所示,所述装置还包括:
数据读取单元540,用于当需要对目标TKG中的视频数据进行视频回放,且所述目标TKG不可用时,对所述目标TKG中包括的可用Trunk进行读取;
视频回放单元550,用于若读取到的视频数据中包括I帧数据,则根据所读取的视频数据进行视频回放。
在一种可选的实施方式中,所述判断单元510,还用于当目标磁盘异常后恢复时,对于目标磁盘关联的任一TKG,判断该TKG在所述目标磁盘异常时是否发生过数据写入;
相应地,如图7所示,所述装置还包括:
重构单元560,用于若该TKG在所述目标磁盘异常时是否发生过数据写入,则对该TKG进行重构;否则,拒绝对该TKG进行重构。
在一种可选的实施方式中,所述判断单元510,还用于若所述目标TKG可用,则判断所述目标TKG是否发生降级;
所述修复单元530,还用于若所述目标TKG发生降级,对所述目标TKG进行修复;
所述数据写入单元520,还用于对修复后的目标TKG进行数据写入;若所述目标TKG未发生降级,对所述目标TKG进行数据写入
请参见图8,为本申请实施例提供的一种数据处理装置的硬件结构示意图。该数据处理装置可以包括处理器801、存储有机器可执行指令的机器可读存储介质802。处理器801与机器可读存储介质802可经由系统总线803通信。并且,通过读取并执行机器可读存储介质802中与数据处理逻辑对应的机器可执行指令,处理器801可执行上文描述的数据处理方法。
本文中提到的机器可读存储介质802可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(Radom Access Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
本申请实施例还提供了一种包括机器可执行指令的机器可读存储介质,例如图8中的机器可读存储介质802,所述机器可执行指令可由数据处理装置中的处理器801执行以实现以上描述的数据处理方法。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

Claims (14)

1.一种数据处理方法,其特征在于,包括:
当需要对目标逻辑块组TKG进行数据写入时,判断所述目标TKG是否可用;其中,初始状态下,一个TKG包括N个用于存储原始数据的Trunk,以及M个用于存储校验数据的Trunk,该N+M个Trunk中任意M个Trunk归属于至少K个存储节点,N≥M,N>1,0≤K≤M;
若可用,则对所述目标TKG进行数据写入;
否则,对所述目标TKG进行修复,并对修复后的目标TKG进行数据写入。
2.根据权利要求1所述的方法,其特征在于,所述对所述目标TKG进行修复,包括:
根据可用Trunk资源判断是否存在使目标TKG恢复为具有N+M个可用Trunk,且任意M个Trunk归属于至少K个存储节点的修复方案;
若存在,则按照该恢复方案对所述目标TKG进行修复。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
若不存在使目标TKG恢复为具有N+M个可用Trunk,且任意M个Trunk归属于至少K个存储节点的修复方案,且K>0,则令K=K-1,并重复上述判断步骤,直至存在使目标TKG恢复为具有N+M个可用Trunk,且任意M个Trunk归属于至少K个存储节点的修复方案,或,K=0;
若存在使目标TKG恢复为具有N+M个可用Trunk,且任意M个Trunk归属于至少K个存储节点的修复方案,则根据该修复方案对所述目标TKG进行修复;
若K=0,则根据可用Trunk资源判断是否存在使目标TKG具有N+M个可用Trunk的修复方案;
若存在,则根据该修复方案对所述目标TKG进行修复;否则,当M>0时,令M=M-1,并重复判断是否存在使目标TKG具有N+M个可用Trunk的修复方案,直至存在使目标TKG具有N+M个可用Trunk的修复方案,或M=0;
若存在使目标TKG具有N+M个可用Trunk的修复方案,则根据该修复方案对所述目标TKG进行修复;
若M=0,则确定所述目标TKG修复失败。
4.根据权利要求1所述的方法,其特征在于,所述数据为视频数据,所述方法还包括:
当需要对目标TKG中的视频数据进行视频回放,且所述目标TKG不可用时,对所述目标TKG中包括的可用Trunk进行读取;
若读取到的视频数据中包括I帧数据,则根据所读取的视频数据进行视频回放。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当目标磁盘异常后恢复时,对于目标磁盘关联的任一TKG,判断该TKG在所述目标磁盘异常时是否发生过数据写入;
若是,则对该TKG进行重构;
否则,拒绝对该TKG进行重构。
6.根据权利要求1所述的方法,其特征在于,若所述目标TKG可用,则所述对所述目标TKG进行数据写入之前,还包括:
判断所述目标TKG是否发生降级;
若是,则对所述目标TKG进行修复,并对修复后的目标TKG进行数据写入;
否则,确定执行所述对所述目标TKG进行数据写入的步骤。
7.一种数据处理装置,其特征在于,包括:
判断单元,用于当数据写入单元需要对目标逻辑块组TKG进行数据写入时,判断所述目标TKG是否可用;其中,初始状态下,一个TKG包括N个用于存储原始数据的Trunk,以及M个用于存储校验数据的Trunk,该N+M个Trunk中任意M个Trunk归属于至少K个存储节点,N≥M,N>1,0≤K≤M;
数据写入单元,用于若目标TKG可用,则对目标TKG进行数据写入;
修复单元,用于若数据写入单元需要对目标TKG进行数据写入,且目标TKG不可用,则对目标TKG进行修复;
所述数据写入单元,还用于对修复后的目标TKG进行数据写入。
8.根据权利要求7所述的装置,其特征在于,
所述判断单元,还用于根据可用Trunk资源判断是否存在使目标TKG恢复为具有N+M个可用Trunk,且任意M个Trunk归属于至少K个存储节点的修复方案;
所述修复单元,具体用于若存在使目标TKG恢复为具有N+M个可用Trunk,且任意M个Trunk归属于至少K个存储节点的修复方案,则按照该恢复方案对所述目标TKG进行修复。
9.根据权利要求8所述的装置,其特征在于,
所述判断单元,还用于若不存在使目标TKG恢复为具有N+M个可用Trunk,且任意M个Trunk归属于至少K个存储节点的修复方案,且K>0,则令K=K-1,并重复判断是否存在使目标TKG恢复为具有N+M个可用Trunk,且任意M个Trunk归属于至少K个存储节点的修复方案,直至存在使目标TKG恢复为具有N+M个可用Trunk,且任意M个Trunk归属于至少K个存储节点的修复方案,或,K=0;
所述修复单元,还用于若存在使目标TKG恢复为具有N+M个可用Trunk,且任意M个Trunk归属于至少K个存储节点的修复方案,则根据该修复方案对所述目标TKG进行修复;
所述判断单元,还用于若K=0,且不存在使目标TKG恢复为具有N+M个可用Trunk,且任意M个Trunk归属于至少K个存储节点的修复方案,则根据可用Trunk资源判断是否存在使目标TKG具有N+M个可用Trunk的修复方案;
所述修复单元,还用于若存在使目标TKG具有N+M个可用Trunk的修复方案,则根据该修复方案对所述目标TKG进行修复;
所述判断单元,还用于若不存在使目标TKG具有N+M个可用Trunk的修复方案,且M>0,则令M=M-1,并重复判断是否存在使目标TKG具有N+M个可用Trunk的修复方案,直至存在使目标TKG具有N+M个可用Trunk的修复方案,或M=0;
所述修复单元,还用于若存在使目标TKG具有N+M个可用Trunk的修复方案,则根据该修复方案对所述目标TKG进行修复;若M=0,且不存在使目标TKG具有N+M个可用Trunk的修复方案,则确定所述目标TKG修复失败。
10.根据权利要求7所述的装置,其特征在于,所述数据为视频数据,
所述装置还包括:
数据读取单元,用于当需要对目标TKG中的视频数据进行视频回放,且所述目标TKG不可用时,对所述目标TKG中包括的可用Trunk进行读取;
视频回放单元,用于若读取到的视频数据中包括I帧数据,则根据所读取的视频数据进行视频回放。
11.根据权利要求7所述的装置,其特征在于,
所述判断单元,还用于当目标磁盘异常后恢复时,对于目标磁盘关联的任一TKG,判断该TKG在所述目标磁盘异常时是否发生过数据写入;
所述装置还包括:
重构单元,用于若该TKG在所述目标磁盘异常时是否发生过数据写入,则对该TKG进行重构;否则,拒绝对该TKG进行重构。
12.根据权利要求7所述的装置,其特征在于,
所述判断单元,还用于若所述目标TKG可用,则判断所述目标TKG是否发生降级;
所述修复单元,还用于若所述目标TKG发生降级,对所述目标TKG进行修复;
所述数据写入单元,还用于对修复后的目标TKG进行数据写入;若所述目标TKG未发生降级,对所述目标TKG进行数据写入。
13.一种数据处理装置,其特征在于,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:
当需要对目标逻辑块组TKG进行数据写入时,判断所述目标TKG是否可用;其中,初始状态下,一个TKG包括N个用于存储原始数据的Trunk,以及M个用于存储校验数据的Trunk,该N+M个Trunk中任意M个Trunk归属于至少K个存储节点,N≥M,N>1,0≤K≤M;
若可用,则对所述目标TKG进行数据写入;
否则,对所述目标TKG进行修复,并对修复后的目标TKG进行数据写入。
14.一种机器可读存储介质,其特征在于,存储有机器可执行指令,在被处理器调用和执行时,所述机器可执行指令促使所述处理器:
当需要对目标逻辑块组TKG进行数据写入时,判断所述目标TKG是否可用;其中,初始状态下,一个TKG包括N个用于存储原始数据的Trunk,以及M个用于存储校验数据的Trunk,该N+M个Trunk中任意M个Trunk归属于至少K个存储节点,N≥M,N>1,0≤K≤M;
若可用,则对所述目标TKG进行数据写入;
否则,对所述目标TKG进行修复,并对修复后的目标TKG进行数据写入。
CN201810259318.XA 2018-03-27 2018-03-27 一种数据处理方法及其装置 Active CN110309012B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201810259318.XA CN110309012B (zh) 2018-03-27 2018-03-27 一种数据处理方法及其装置
US16/976,190 US11841762B2 (en) 2018-03-27 2019-03-19 Data processing
PCT/CN2019/078582 WO2019184758A1 (zh) 2018-03-27 2019-03-19 数据处理
EP19778407.7A EP3742297A4 (en) 2018-03-27 2019-03-19 DATA PROCESSING

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810259318.XA CN110309012B (zh) 2018-03-27 2018-03-27 一种数据处理方法及其装置

Publications (2)

Publication Number Publication Date
CN110309012A true CN110309012A (zh) 2019-10-08
CN110309012B CN110309012B (zh) 2021-01-26

Family

ID=68062236

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810259318.XA Active CN110309012B (zh) 2018-03-27 2018-03-27 一种数据处理方法及其装置

Country Status (4)

Country Link
US (1) US11841762B2 (zh)
EP (1) EP3742297A4 (zh)
CN (1) CN110309012B (zh)
WO (1) WO2019184758A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113051428A (zh) * 2019-12-28 2021-06-29 浙江宇视科技有限公司 一种摄像机前端存储备份的方法及装置

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110309012B (zh) 2018-03-27 2021-01-26 杭州海康威视数字技术股份有限公司 一种数据处理方法及其装置

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010033644A1 (en) * 2008-09-16 2010-03-25 File System Labs Llc Matrix-based error correction and erasure code methods and apparatus and applications thereof
CN103699337A (zh) * 2013-12-04 2014-04-02 华为技术有限公司 一种基于独立磁盘冗余阵列raid的写控制方法及系统
CN103729151A (zh) * 2014-01-16 2014-04-16 中国人民解放军国防科学技术大学 一种基于改进型纠删码的失效数据修复方法
CN103970487A (zh) * 2014-05-23 2014-08-06 浙江宇视科技有限公司 一种独立磁盘冗余阵列及实现方法
CN103984607A (zh) * 2013-02-08 2014-08-13 华为技术有限公司 分布式存储的方法、装置和系统
US20160011939A1 (en) * 2014-07-09 2016-01-14 Qualcomm Incorporated Systems and methods for reliably storing data using liquid distributed storage
CN106227617A (zh) * 2016-07-15 2016-12-14 乐视控股(北京)有限公司 自修复方法和基于纠删码算法的存储系统
CN107748702A (zh) * 2015-06-04 2018-03-02 华为技术有限公司 数据存储方法、恢复方法、相关装置以及系统

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6971042B2 (en) * 2002-04-18 2005-11-29 Huge Systems, Inc. Media server with single chip storage controller
US7523381B2 (en) * 2005-09-01 2009-04-21 Micron Technology, Inc. Non-volatile memory with error detection
US8429630B2 (en) * 2005-09-15 2013-04-23 Ca, Inc. Globally distributed utility computing cloud
CN103544995B (zh) * 2013-08-27 2016-09-21 华为技术有限公司 一种坏道修复方法及装置
CN104516679B (zh) * 2013-09-30 2017-10-17 杭州宏杉科技股份有限公司 一种raid数据处理方法及装置
US9405626B1 (en) * 2013-12-20 2016-08-02 Emc Corporation At risk data caching (ARDC)
JP2015225603A (ja) * 2014-05-29 2015-12-14 富士通株式会社 ストレージ制御装置、ストレージ制御方法およびストレージ制御プログラム
CN104035840B (zh) * 2014-06-12 2017-10-31 浙江宇视科技有限公司 一种恢复条带读错误的方法和装置
US9652321B2 (en) * 2014-09-23 2017-05-16 Intel Corporation Recovery algorithm in non-volatile memory
CN106062721B (zh) * 2014-12-31 2018-11-16 华为技术有限公司 一种将数据写入存储系统的方法和存储系统
CN107870731B (zh) * 2016-09-23 2021-07-27 伊姆西Ip控股有限责任公司 独立盘冗余阵列系统的管理方法和电子设备
CN106407033A (zh) * 2016-09-30 2017-02-15 郑州云海信息技术有限公司 一种磁盘故障处理方法及装置
US10210062B2 (en) * 2017-06-08 2019-02-19 International Business Machines Corporation Data storage system comprising an array of drives
CN110309012B (zh) 2018-03-27 2021-01-26 杭州海康威视数字技术股份有限公司 一种数据处理方法及其装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010033644A1 (en) * 2008-09-16 2010-03-25 File System Labs Llc Matrix-based error correction and erasure code methods and apparatus and applications thereof
CN103984607A (zh) * 2013-02-08 2014-08-13 华为技术有限公司 分布式存储的方法、装置和系统
CN103699337A (zh) * 2013-12-04 2014-04-02 华为技术有限公司 一种基于独立磁盘冗余阵列raid的写控制方法及系统
CN103729151A (zh) * 2014-01-16 2014-04-16 中国人民解放军国防科学技术大学 一种基于改进型纠删码的失效数据修复方法
CN103970487A (zh) * 2014-05-23 2014-08-06 浙江宇视科技有限公司 一种独立磁盘冗余阵列及实现方法
US20160011939A1 (en) * 2014-07-09 2016-01-14 Qualcomm Incorporated Systems and methods for reliably storing data using liquid distributed storage
CN107748702A (zh) * 2015-06-04 2018-03-02 华为技术有限公司 数据存储方法、恢复方法、相关装置以及系统
CN106227617A (zh) * 2016-07-15 2016-12-14 乐视控股(北京)有限公司 自修复方法和基于纠删码算法的存储系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113051428A (zh) * 2019-12-28 2021-06-29 浙江宇视科技有限公司 一种摄像机前端存储备份的方法及装置
CN113051428B (zh) * 2019-12-28 2024-04-05 浙江宇视科技有限公司 一种摄像机前端存储备份的方法及装置

Also Published As

Publication number Publication date
CN110309012B (zh) 2021-01-26
US11841762B2 (en) 2023-12-12
US20210004286A1 (en) 2021-01-07
WO2019184758A1 (zh) 2019-10-03
EP3742297A1 (en) 2020-11-25
EP3742297A4 (en) 2021-08-18

Similar Documents

Publication Publication Date Title
US10705932B2 (en) Method, device and computer program product for managing a storage system
CN109213618B (zh) 用于管理存储系统的方法、设备和计算机程序产品
CN108170555B (zh) 一种数据恢复方法及设备
CN102945201B (zh) 已验证数据集合的非易失性介质日志记录
CN103136074B (zh) 多个磁盘阵列系统的数据储存方法及数据储存系统
CN100390745C (zh) 在处理数据时检验数据完整性的装置及方法
US20160217040A1 (en) Raid parity stripe reconstruction
CN103513942B (zh) 独立冗余磁盘阵列的重构方法及装置
CN101916173B (zh) 一种基于raid的数据读写方法及其系统
JP5285611B2 (ja) グローバルホットスペアディスクが存在するときに、切断されたドライブを復元、及びコピーバックする最適化された方法
US20070088990A1 (en) System and method for reduction of rebuild time in raid systems through implementation of striped hot spare drives
CN102508733B (zh) 一种基于磁盘阵列的数据处理方法及磁盘阵列管理器
US8782428B2 (en) Encryption device and encryption method
CN104809032A (zh) 用于存储系统中服务感知的奇偶校验放置的方法和系统
US7496785B2 (en) Enclosure-based raid parity assist
CN103810058A (zh) 虚拟机备份方法、设备及系统
JP2006252126A (ja) ディスクアレイ装置及びその再構築方法
RU2011136622A (ru) Распределенное хранение восстанавливаемых данных
CN103780638A (zh) 数据同步方法及系统
JP2005276196A (ja) ドライブ故障に続いてドライブリカバリを行うためのシステムおよび方法
CN103761058A (zh) Raid1和raid4混合结构网络存储系统及方法
US10922201B2 (en) Method and device of data rebuilding in storage system
CN104503781A (zh) 硬盘的固件升级方法和存储系统
CN101960429A (zh) 视频媒体数据存储系统以及相关方法
CN110309012A (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