CN110321058A - 一种数据处理方法及其装置 - Google Patents
一种数据处理方法及其装置 Download PDFInfo
- Publication number
- CN110321058A CN110321058A CN201810272105.0A CN201810272105A CN110321058A CN 110321058 A CN110321058 A CN 110321058A CN 201810272105 A CN201810272105 A CN 201810272105A CN 110321058 A CN110321058 A CN 110321058A
- Authority
- CN
- China
- Prior art keywords
- band
- strip
- redundant ability
- redundancy
- chained list
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0632—Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Databases & Information Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Hardware Redundancy (AREA)
Abstract
本申请提供一种数据处理方法及其装置,该方法包括:当检测到第一条带的冗余能力下降,且无热备空间时,确定是否存在满足预设条件的第二条带;若存在,则将所述第二条带中第一数量的条块转移至所述第一条带。该方法可以提高阵列的稳定性和数据安全性。
Description
技术领域
本申请涉及计算机存储技术,尤其涉及一种数据处理方法及其装置。
背景技术
随着RAID2.0(Redundant Array of Independent Disks Version 2.0,独立磁盘冗余数组2.0)技术和EC(Erasure Coding,纠删码)算法的发展,多数产品采用二者技术结合,使RAID可以突破RAID6只能冗余2块磁盘的限制,RAID2.0技术将磁盘划分为若干的逻辑块实现RAID,结合EC算法,可以实现阵列N+M(N>=M且N>1)任意组合,能提供给用户更高的冗余和安全性。其中,N为数据块的数量,M为校验块的数量。
RAID2.0技术中构成阵列的空间来自不同的磁盘(可以为同一存储节点上的不同磁盘或不同存储节点上的不同磁盘),通过将磁盘划分成若干个虚拟的块(trunk),然后这些块(trunk)组成具有冗余的条带(stripe)。对于一个N+M的条带,该条带中的N+M个条块需要来自N+M个不同的磁盘,其冗余能力为M,即最多仅能容忍M个磁盘发生故障。
实践发现,当创建阵列时未预留热备空间时(可以称为无热备空间场景、零热备空间场景或零热备块场景),一旦由于磁盘故障等原因导致该阵列中的条带的冗余能力为0时,该阵列中的条带丢失数据的风险将大大增加。
发明内容
有鉴于此,本申请提供一种数据处理方法及其装置。
具体地,本申请是通过如下技术方案实现的:
根据本申请实施例的第一方面,提供一种数据处理方法,包括:
当检测到第一条带的冗余能力下降,且无热备空间时,确定是否存在满足预设条件的第二条带;
若存在,则将所述第二条带中第一数量的条块转移至所述第一条带。
可选的,所述确定是否存在满足预设条件的第二条带,包括:
确定是否存在冗余能力比第一条带下降后的冗余能力大2或2以上的第二条带;
若存在,则确定存在满足预设条件的第二条带。
可选的,所述确定是否存在满足预设条件的第二条带,包括:
确定是否存在优先级低于所述第一条带的第二条带;
若存在,则确定存在满足预设条件的第二条带。
可选的,所述将所述第二条带中第一数量的条块转移至所述第一条带,包括:
将所述第二条带中第一数量的校验块转移至所述第一条带。
可选的,所述检测到第一条带的冗余能力下降之前,还包括:
根据各条带的冗余能力将各条带加入到对应的冗余链表;其中,不同冗余链表对应的冗余能力不同;
所述检测到第一条带的冗余能力下降时,还包括:
当所述第一条带当前的冗余能力与所述第一条带当前所在冗余链表对应的冗余能力不一致时,将所述第一条带从其当前所在的冗余链表中删除,并将其加入到对应的冗余能力与所述第一条带当前的冗余能力一致的冗余链表;
所述将所述第二条带中第一数量的条块转移至所述第一条带之后,还包括:
当所述第一条带或/和所述第二条带当前的冗余能力与所述第一条带或/和所述第二条带当前所在冗余链表对应的冗余能力不一致时,将所述第一条带或/和所述第二条带从其当前所在的冗余链表中删除,并将其加入到对应的冗余能力与所述第一条带或/和所述第二条带当前的冗余能力一致的冗余链表。
可选的,同一冗余链表对应的冗余能力相同;
所述检测到第一条带的冗余能力下降时,还包括:
将所述第一条带从当前所在的冗余链表中删除,并将其加入到对应的冗余能力与所述第一条带当前的冗余能力一致的冗余链表;
所述将所述第二条带中第一数量的条块转移至所述第一条带之后,还包括:
将所述第一条带和第二条带从当前所在的冗余链表中删除,并分别将其加入到对应的冗余能力与所述第一条带和第二条带当前的冗余能力一致的冗余链表。
可选的,所述方法还包括:
当新增可用空间时,按照各条带冗余能力从低到高的顺序对发生冗余能力下降且冗余能力大于等于0的条带进行数据恢复。
根据本申请实施例的第二方面,提供一种数据处理装置,包括:
检测单元,用于检测条带的冗余能力;
确定单元,用于当所述检测单元检测到第一条带的冗余能力下降,且无热备空间时,确定是否存在满足预设条件的第二条带;其中,冗余能力下降后的第一条带的冗余能力大于等于0;
处理单元,用于若存在满足预设条件的第二条带,则将所述第二条带中第一数量的条块转移至所述第一条带。
可选的,所述确定单元,具体用于确定是否存在冗余能力比第一条带下降后的冗余能力大2或2以上的第二条带;若存在,则确定存在满足预设条件的第二条带。
可选的,所述确定单元,具体用于确定是否存在优先级低于所述第一条带的第二条带;若存在,则确定存在满足预设条件的第二条带。
可选的,所述处理单元,具体用于将所述第二条带中第一数量的校验块转移至所述第一条带。
可选的,所述装置包括:
链表管理单元,用于根据各条带的冗余能力将各条带加入到对应的冗余链表;其中,不同冗余链表对应的冗余能力不同;
所述链表管理单元,还用于当所述检测单元检测到第一条带的冗余能力下降时,若所述第一条带当前的冗余能力与所述第一条带当前所在冗余链表对应的冗余能力不一致,则将所述第一条带从其当前所在的冗余链表中删除,并将其加入到对应的冗余能力与所述第一条带当前的冗余能力一致的冗余链表;
所述链表管理单元,还用于当所述处理单元将所述第二条带中第一数量的条块转移至所述第一条带之后,当所述第一条带或/和所述第二条带当前的冗余能力与所述第一条带或/和所述第二条带当前所在冗余链表对应的冗余能力不一致时,将所述第一条带或/和所述第二条带从其当前所在的冗余链表中删除,并将其加入到对应的冗余能力与所述第一条带或/和所述第二条带当前的冗余能力一致的冗余链表。
可选的,同一冗余链表对应的冗余能力相同;
所述链表管理单元,用于当所述检测单元检测到第一条带的冗余能力下降时,将所述第一条带从当前所在的冗余链表中删除,并将其加入到对应的冗余能力与所述第一条带当前的冗余能力一致的冗余链表;
所述链表管理单元,还用于当所述处理单元将所述第二条带中第一数量的条块转移至所述第一条带之后,将所述第一条带和第二条带从当前所在的冗余链表中删除,并分别将其加入到对应的冗余能力与所述第一条带和第二条带当前的冗余能力一致的冗余链表。
可选的,所述处理单元,还用于当新增可用空间时,按照各条带冗余能力从低到高的顺序对发生冗余能力下降且冗余能力大于等于0的条带进行数据恢复。
根据本申请实施例的第三方面,提供一种数据处理装置,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:
当检测到第一条带的冗余能力下降,且无热备空间时,确定是否存在满足预设条件的第二条带;
若存在,则将所述第二条带中第一数量的条块转移至所述第一条带。
根据本申请实施例的第四方面,提供一种机器可读存储介质,存储有机器可执行指令,在被处理器调用和执行时,所述机器可执行指令促使所述处理器:
当检测到第一条带的冗余能力下降,且无热备空间时,确定是否存在满足预设条件的第二条带;
若存在,则将所述第二条带中第一数量的条块转移至所述第一条带
本申请实施例的数据处理方法,通过在检测到第一条带的冗余能力下降,且无热备空间时,确定是否存在满足预设条带的第二条带;若存在,则将第二条带中第一数量的条块转移至第一条带,提高了空间利用率,并提高了无热备空间场景下的阵列稳定性和数据安全性。
附图说明
图1是本申请一示例性实施例示出的一种数据处理方法的流程图;
图2是本申请又一示例性实施例示出的一种数据处理方法的流程图;
图3A和3C是本申请示例性实施例示出的应用场景的示意图;
图3B、3D和3E是本申请示例性实施例示出的冗余链表的示意图;
图4是本申请一示例性实施例示出的一种数据处理装置的结构示意图;
图5是本申请又一示例性实施例示出的一种数据处理装置的结构示意图;
图6是本申请一示例性实施例示出的一种数据处理装置的硬件结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
为了使本领域技术人员更好地理解本申请实施例提供的技术方案,并使本申请实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本申请实施例中技术方案作进一步详细的说明。
请参见图1,为本申请实施例提供的一种数据处理方法的流程示意图,其中,该数据处理方法可以应用于部署有RAID2.0阵列的存储节点(以下简称为存储节点),该RAID2.0阵列基于EC算法实现数据冗余,如图1所示,该方法可以包括以下步骤:
步骤S100、当检测到第一条带的冗余能力下降,且无热备空间时,确定是否存在满足预设条件的第二条带。若是,则转至步骤S110;否则,结束当前流程。
本申请实施例中,当构成RAID2.0阵列的逻辑块归属的磁盘中部分磁盘由于故障或掉电等原因不可用时,该RAID2.0阵列中的条带的冗余能力将会下降。
当存储节点检测到存在条带(本文中称为第一条带)的冗余能力下降,且无热备空间时,存储节点可以确定是否存在满足预设条件的条带(本文中称为第二条带)。
在本申请其中一个实施例中,上述确定是否存在满足预设条件的第二条带,可以包括:
确定是否存在冗余能力比第一条带下降后的冗余能力大2或2以上的第二条带;
若存在,则确定存在满足预设条件的第二条带。
在该实施例中,当存储节点检测到第一条带的冗余能力下降,且无热备空间时,存储节点可以确定是否存在冗余能力比第一条带下降后的冗余能力大于2或2以上的第二条带。
举例来说,假设构成4+2阵列的逻辑块归属的磁盘中有2块磁盘不可用,则该4+2阵列中的条带的冗余能力将会由2下降为0,此时,存储节点可以判断是否存在冗余能力大于等于2的第二条带。
又举例来说,假设构成16+4阵列的逻辑块归属的磁盘中有2块磁盘不可用,则该16+4阵列中的条带的冗余能力将会由4下降为2,此时,存储节点可以判断是否存在冗余能力大于等于4的第二条带。
在该实施例中,当存储节点确定存在冗余能力比第一条带下降后的冗余能力大2或2以上的第二条带时,确定存在满足预设条件的第二条带。
在本申请另一个实施例中,上述确定是否存在满足预设条件的第二条带,可以包括:
确定是否存在优先级低于第一条带的第二条带;
若存在,则确定存在满足预设条件的第二条带。
在该实施例中,考虑到实际应用场景中,不同阵列中的数据的重要性可能并不完全相同,因此,存储节点可以按照一定的策略(可以根据实际场景设定)为存储的数据设置不同的优先级。
例如,对于视频监控场景,其具有周期循环覆盖,旧数据可以释放的特点,因此可以将旧数据对应的条带的优先级设置为低于当前正在写的条带的优先级;或将数据写入时间与当前系统时间的差值超过预设阈值(可以根据实际场景设定)的数据所在条带的优先级设置为低于数据写入时间与当前系统的差值未超过预设阈值的数据所在条带的优先级。
或者,对于某些存储场景,存储的数据可以包括冷数据和热数据,在该场景中,可以将热数据所在条带的优先级设置为高于冷数据所在条带的优先级。
相应地,在该实施例中,当存储节点检测到第一条带的冗余能力下降,且无热备空间时,存储节点可以确定是否存在优先级比第一条带的优先级低的第二条带,若存在,确定存在满足预设条件的第二条件。
需要说明的是,在本申请实施例中,当存储节点检测到第一条带的冗余能力下降时,存储节点也可以先确定是否存在冗余能力比第一条带下降后的冗余能力大2或2以上的第二条带,并在不存在冗余能力比第一条带下降后的冗余能力大2或2以上的第二条带时,再进一步判断是否存在优先级低于第一条带的第二条带(其中,在该情况下,也可以将优先级低于第一条带的条带称为第三条带),其具体实现可以参见图2所示方法流程中的相关描述,本申请实施例在此不做赘述。
此外,在本申请实施例中,第一条带的数量可以为一个或多个。其中,当第一条带的数量为多个时,对于任一第一条带,可以按照步骤S100~步骤S110所描述的方式进行处理。
步骤S110、将第二条带中第一数量的条块转移至第一条带。
本申请实施例中,为了保证数据安全性,在无热备空间的情况下,当存在第一条带的冗余能力下降,且存在满足预设条件的第二条带时,可以从第二条带中转移一定数量(本文中称为第一数量)的条块到第一条带。
本申请实施例中,当第一条带的冗余能力下降,且第一条带下降后的冗余能力大于等于0时,存储节点将第二条带中第一数量的条块转移至第一条带之后,可以对第一条带进行数据恢复处理。
举例来说,当存储节点检测到第一条带冗余能力下降,且存在冗余能力比第一条带下降后的冗余能力大2或2以上的第二条带时,可以从第二条带中转移第一数量的条块到第一条带,用于第一条带进行数据恢复,其具体处理方式将在下文中结合具体示例进行说明。
优选地,当满足预设条件的第二条带为冗余能力比第一条带下降后的冗余能力大2或2以上的第二条带时,条块迁移后的第一条带的冗余能力小于等于条块迁移后的第二条带的冗余能力,且条块迁移后的第一条带的冗余能力小于等于第一条带的初始冗余能力。
举例来说,在无热备空间场景下,当第一条带的冗余能力由3下降为0,且存在冗余能力为3的第二条带时,可以从第二条带中转移1个条块至第一条带用于进行数据恢复。
又举例来说,在无热备空间场景下,当第一条带的冗余能力由4下降为0,且存在冗余能力为4的第二条带时,可以从第二条带中转移1个或2个条块至第一条带用于进行数据恢复。
但需要说明的是,在本申请实施例中,存储节点也可以通过条带之间的条块迁移实现条带的扩容,此时,条块迁移后的条带的冗余能力可以大于条带初始的冗余能力。
例如,假设第一条带为4+2条带(即初始冗余能力为2),当需要第一条带进行扩容时,可以从第二条带中转移一定数量的条块至第一条带,使第一条带扩容为6+3条带,在该情况下,条块迁移后的第一条带的冗余能力(3)大于第一条带的初始冗余能力。
此外,在本申请实施例中,当第一条带的冗余能力下降,且第一条带下降后的冗余能力小于0时,存储节点也可以通过将第二条带中的第一数量的条块转移至第一条带,以使第一条带的冗余能力达到0或0以上,从而使第一条带恢复为可以进行数据写入。
可见,在图1所示方法流程中,当存在冗余能力下降的第一条带,且无热备空间时,通过从满足预设条件的第二条带中转移一定数量的条块至第一条带,提高了空间利用率,并提高了无热备空间场景下的阵列稳定性和数据安全性。
请参见图2,为本申请实施例提供的另一种数据处理方法的流程示意图,如图2所示,该方法可以包括以下步骤:
步骤S200、当检测到第一条带的冗余能力下降,且无热备空间时,确定是否存在冗余能力比第一条带下降后的冗余能力大2或2以上的第二条带;其中,冗余能力下降后的第一条带的冗余能力大于等于0。若是,则转至步骤S210;否则,转至步骤S220。
步骤S210、将第二条带中第一数量的条块转移至第一条带,以使第一条带进行数据恢复;其中,条块迁移后的第一条带的冗余能力小于等于条块迁移后的第二条带的冗余能力,且条块迁移后的第一条带的冗余能力小于等于所述第一条带的初始冗余能力。
本申请实施例中,步骤S200~步骤S210的具体实现可以参见步骤S100~步骤S110中的相关描述,本申请实施例在此不再赘述。
步骤S220、确定是否存在优先级低于第一条带的第三条带。若是,转至步骤S230;否则,结束当前流程。
本申请实施例中,当存储节点确定不存在冗余能力比第一条带下降后的冗余能力大2或2以上的第二条带时,存储节点可以进一步确定是否存在优先级低于第一条带的第三条带。
步骤S230、将第三条带中第二数量的条块转移至第一条带,以使第一条带进行数据恢复;其中,第二数量小于等于第三条带的可用条块的数量,且条块迁移后的第一条带的冗余能力小于等于第一条带的初始冗余能力。
本申请实施例中,当存储节点确定存在优先级低于第一条带的第三条带时,存储节点可以从第三条带中转移一定数量(本文中称为第二数量)的条块转移至第一条带,用于第一条带进行数据恢复。
其中,第二数量小于等于第三条带的可用条块的数量(即第三条带中未损坏的数据块和校验块的数量),且条块迁移后的第一条带的冗余能力小于等于第一条带的初始冗余能力。
需要说明的是,在本申请实施例中,当存在多个第三条带时,可以优先选择冗余能力大于0的第三条带进行条块迁移,且优先选择转移不超过第三条带冗余能力内的数量的条块至第一条带,该条块优选选择校验块。
例如,假设第三条带的冗余能力为2,则优先选择1个或2个校验块转移至第一条带。
此外,本申请实施例中,当不存在第三条带时,存储节点可以不进行条块的迁移。
可见,在图2所示方法流程中,在无热备空间场景中,当存在冗余能力下降的第一条带时,通过从冗余能力比第一条带下降后的冗余能力大2或2以上的第二条带中转移一定数量的条块至第一条带,用于第一条带进行数据恢复;若不存在的第二条带,则通过从优先级较低的第三条带中转移一定数量的条块至第一条带,用于第一条带进行数据恢复,保证了高优先级数据安全性。
在本申请其中一个实施例中,上述将第二条带中第一数量的条块转移至第一条带,可以包括:
当存在多个冗余能力比第一条带下降后的冗余能力大2或2以上的第二条带时,将冗余能力最大的第二条带中第一数量的条块转移至第一条带。
在该实施例中,当存储节点确定存在多个冗余能力比第一条带下降后的冗余能力大2或2以上的第二条带时,存储节点可以从冗余能力最大的第二条带中转移第一数量的条块至第一条带,用于第一条带进行数据恢复。
需要说明的是,在该实施例中,当存在多个冗余能力最大的第二条带时,可以采用随机选择的方式或按照其它策略选择一个第二条带进行条块迁移,其具体实现在此不做限定。
同理,当存在多个优先级低于第一条带的第二条带时,可以将冗余能力最大或优先级最低的第二条带中第一数量的条块转移至第一条带。
在本申请其中一个实施例中,上述将第二条带中第一数量的条块迁移至第一条带,可以包括:
将第二条带中第一数量的校验块转移至第一条带。
在该实施例中,为了降低条块迁移对第二条带的影响,在进行条块迁移时,可以优先选择将第二条带中的校验块迁移至第一条带,用于第一条带进行数据恢复。
应该认识到,该实施例中的条块迁移方式仅仅是本申请实施例中条块迁移的一种具体示例,而不是对本申请保护范围的限定,也即本申请实施例中,也可以将第二条带中的数据块迁移至第一条带,用于第一条带进行数据恢复。
进一步地,在本申请实施例中,为了提高条带冗余能力查询的效率,可以预先创建多个不同的冗余链表,不同的冗余链表对应的冗余能力不同,存储节点可以根据各条带的冗余能力将各条带加入到对应的冗余链表,以便存储节点可以直接从相应的冗余链表中查找特定冗余能力的条带。
相应地,在本申请其中一个实施例中,上述检测到第一条带的冗余能力下降之前,还可以包括:
根据各条带的冗余能力将各条带加入到对应的冗余链表;其中,不同冗余链表对应的冗余能力不同;
上述检测到第一条带的冗余能力下降时,还包括:
当第一条带当前的冗余能力与第一条带当前所在冗余链表对应的冗余能力不一致时,将第一条带从其当前所在的冗余链表中删除,并将其加入到对应的冗余能力与第一条带当前的冗余能力一致的冗余链表;
将第二条带中第一数量的条块转移至第一条带之后,还包括:
当第一条带或/和第二条带当前的冗余能力与第一条带或/和第二条带当前所在冗余链表对应的冗余能力不一致时,将第一条带或/和第二条带从其当前所在的冗余链表中删除,并将其加入到对应的冗余能力与第一条带或/和第二条带当前的冗余能力一致的冗余链表。
在该实施例中,存储节点可以创建多个对应不同冗余能力的冗余链表,并将根据各条带的冗余能力分别将各条带加入到对应的冗余链表。
举例来说,存储节点可以创建N个不同的冗余链表(假设分别为冗余链表0~N-1),各冗余链表对应的冗余能力分别为0~N-1,其中,N-1为各条带的最大冗余能力,相应地,存储节点可以根据各条带的冗余能力将各条带加入到对应的冗余链表,如,冗余能力为0的条带加入到冗余链表0,冗余能力为1的条带加入到冗余链表1…冗余能力N-1的条带加入到冗余链表N-1。
又举例来说,假设各条带的最大冗余能力为3,则存储节点可以创建2个冗余链表(冗余链表0和冗余链表1),其中,冗余链表0对应冗余能力0和冗余能力1,冗余链表1对应冗余能力2和冗余能力3,相应地,存储节点可以将冗余能力为0和1的条带加入到冗余链表0,将冗余能力为2和3的加入到冗余链表1。
在该实施例中,当存储节点检测到第一条带的冗余能力下降时,存储节点需要判断第一条带当前所在的冗余链表对应的冗余能力是否包括第一条带冗余能力下降后的冗余能力,若包括,则确定第一条带当前的冗余能力(即第一条带冗余能力下降后的冗余能力)与该冗余链表的冗余能力一致;否则,确定第一条带当前的冗余能力与该冗余链表的冗余能力不一致,此时,存储节点可以将第一条带从该冗余链表中删除,并将其加入到对应的冗余能力与第一条带当前的冗余能力一致的冗余链表。
举例来说,假设第一条带的冗余能力由1下降为0,且第一条带当前所在的冗余链表对应的冗余能力为1,则存储节点需要将第一条带从该冗余链表中删除,并加入到对应的冗余能力为0的冗余链表。
又举例来说,假设第一条带的冗余能力由1下降为0,且第一条带当前所在的冗余链表对应的冗余能力为0和1,则存储节点不需要对第一条带进行冗余链表迁移。
同理,存储节点将第二条带中第一数量的条块转移第一条带之后,第一条带和第二条带的冗余能力均会发生变化,此时,存储节点可以判断第一条带(第二条带)当前的冗余能力与第一条带(第二条带)当前所在冗余链表对应的冗余能力是否一致,若一致,则不进行冗余链表迁移;否则,需要将第一条带(第二条带)从当前所在的冗余链表中删除,并加入到对应的冗余能力与第一条带(第二条带)当前的冗余能力一致的冗余链表。
在一个示例中,当同一冗余链表对应的冗余能力相同时,即冗余能力与冗余链表一一对应时,存储节点在检测到第一条带的冗余能力下降0时,需要将第一条带从当前所在的冗余链表中删除,并将其加入到对应的冗余能力与该第一条带当前的冗余能力一致的冗余链表。
同理,当存储节点将第二条带中第一数量的条块转移至第一条带之后,可以将第一条带和第二条带从当前所在的冗余链表中删除,并分别将其加入到对应的冗余能力与第一条带和第二条带当前的冗余能力一致的冗余链表。
进一步地,在本申请实施例中,当存储节点检测到新增可用空间时,例如,故障磁盘恢复或故障磁盘被可用磁盘替换,存储节点可以按照各条带冗余能力从低到高的顺序对发生冗余能力下降且冗余能力大于等于0的条带进行数据恢复。
例如,对于各条带的初始冗余能力相同的场景,存储节点可以根据各冗余链表对应的冗余能力从低到高的顺序,依次从各对应的冗余能力低于条带的初始冗余能力且冗余能力大于等于0的冗余链表中获取条带,并对获取到的条带进行数据恢复。
其中,存储节点对条带进行数据恢复之后,还需要对相应条带进行冗余链表迁移处理,其具体实现在此不做赘述。
需要说明的是,当新增可用空间时,若存在正在写的条带的冗余能力下降,则优先从新增可用空间中补充新的块给该正在写的条带,在保证正在写的条带的冗余能力的情况下,按照冗余能力从低到高的顺序对发生冗余能力下降且冗余能力大于等于0的其它条带进行数据恢复。
为了使本领域技术人员更好地理解本申请实施例提供的技术方案,下面结合具体应用场景对本申请实施例提供的技术方案进行说明。
请参见图3A,为本申请实施例提供的一种应用场景的示意图,如图3A所示,在该应用场景中,条带0(stripe0)和条带1(stripe1)为分别由3个存储节点(节点A、节点B和节点C)上的6个不同磁盘上的虚拟块组成的4+2冗余条带(初始冗余能力为2)。其中,阵列创建时未预留热备空间。
请参见图3B,为图3A所示应用场景下的冗余链表数组的示意图,如图3B所示,该冗余链表数组中包括冗余链表0~2,其对应的冗余能力分别为0~2,初始时,条带0和条带1均挂在冗余链表2上。
如图3C所示,假设某时刻,节点A上的磁盘A1和A2损坏,导致条带0上的D11和D12两块空间损坏。此时条带0冗余能力下降为0,而条带1无损失块,冗余能力不变。此时,可以将条带0从冗余链表2中删除,并加入到冗余链表0,其示意图可以如图3D所示。
为了降低条带0数据丢失的概率,可以通过查询冗余链表2(冗余能力为2,大于1),将冗余能力为2的条带1上的一个校验块转移至条带0,用于条带0进行数据恢复。
例如,将条带1上的校验块P21转移至条带0作为热备,进行数据恢复(假设作为D'12),以恢复条带0的冗余能力。
完成上述条块迁移后,条带0和条带1的冗余能力均为1,因此,需要将条带0从冗余链表0中删除,并加入冗余链表1;将条带1从冗余链表2中删除,并加入冗余链表1,其示意图可以如图3E所示。
本申请实施例中,通过在检测到第一条带的冗余能力下降,且无热备空间时,确定是否存在满足预设条带的第二条带;若存在,则将第二条带中第一数量的条块转移至第一条带,提高了空间利用率,并提高了无热备空间场景下的阵列稳定性和数据安全性。
以上对本申请提供的方法进行了描述。下面对本申请提供的装置进行描述:
请参见图4,为本申请实施例提供的一种数据处理装置的结构示意图,其中,该数据处理装置可以应用于上述方法实施例中的存储节点,如图4所示,该数据处理装置可以包括:
检测单元410,用于检测条带的冗余能力;
确定单元420,用于当所述检测单元410检测到第一条带的冗余能力下降,且无热备空间时,确定是否存在满足预设条件的第二条带;其中,冗余能力下降后的第一条带的冗余能力大于等于0;
处理单元430,用于若存在满足预设条件的第二条带,则将所述第二条带中第一数量的条块转移至所述第一条带。
在一种可选的实施方式中,所述确定单元420,具体用于确定是否存在冗余能力比第一条带下降后的冗余能力大2或2以上的第二条带;若存在,则确定存在满足预设条件的第二条带。
在一种可选的实施方式中,所述确定单元420,具体用于确定是否存在优先级低于所述第一条带的第二条带;若存在,则确定存在满足预设条件的第二条带。
在一种可选的实施方式中,所述处理单元430,具体用于将所述第二条带中第一数量的校验块转移至所述第一条带。
在一种可选的实施方式中,如图5所示,所述装置包括:
链表管理单元440,用于根据各条带的冗余能力将各条带加入到对应的冗余链表;其中,不同冗余链表对应的冗余能力不同;
所述链表管理单元440,还用于当所述检测单元410检测到第一条带的冗余能力下降时,若所述第一条带当前的冗余能力与所述第一条带当前所在冗余链表对应的冗余能力不一致,则将所述第一条带从其当前所在的冗余链表中删除,并将其加入到对应的冗余能力与所述第一条带当前的冗余能力一致的冗余链表;
所述链表管理单元440,还用于当所述处理单元430将所述第二条带中第一数量的条块转移至所述第一条带之后,当所述第一条带或/和所述第二条带当前的冗余能力与所述第一条带或/和所述第二条带当前所在冗余链表对应的冗余能力不一致时,将所述第一条带或/和所述第二条带从其当前所在的冗余链表中删除,并将其加入到对应的冗余能力与所述第一条带或/和所述第二条带当前的冗余能力一致的冗余链表。
在一种可选的实施方式中,同一冗余链表对应的冗余能力相同;
所述链表管理单元440,还用于当所述检测单元410检测到第一条带的冗余能力下降时,将所述第一条带从当前所在的冗余链表中删除,并将其加入到对应的冗余能力与所述第一条带当前的冗余能力一致的冗余链表;
所述链表管理单元440,还用于当所述处理单元430将所述第二条带中第一数量的条块转移至所述第一条带之后,将所述第一条带和第二条带从当前所在的冗余链表中删除,并分别将其加入到对应的冗余能力与所述第一条带和第二条带当前的冗余能力一致的冗余链表。
在一种可选的实施方式中,所述处理单元430,还用于当新增可用空间时,按照各条带冗余能力从低到高的顺序对发生冗余能力下降且冗余能力大于等于0的条带进行数据恢复
请参见图6,为本申请实施例提供的一种数据处理装置的硬件结构示意图。该数据处理装置可以包括处理器601、存储有机器可执行指令的机器可读存储介质602。处理器601与机器可读存储介质602可经由系统总线603通信。并且,通过读取并执行机器可读存储介质602中与数据处理逻辑对应的机器可执行指令,处理器601可执行上文描述的数据处理方法。
本文中提到的机器可读存储介质602可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(Radom Access Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
本申请实施例还提供了一种包括机器可执行指令的机器可读存储介质,例如图6中的机器可读存储介质602,所述机器可执行指令可由数据处理装置中的处理器601执行以实现以上描述的数据处理方法。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (16)
1.一种数据处理方法,其特征在于,包括:
当检测到第一条带的冗余能力下降,且无热备空间时,确定是否存在满足预设条件的第二条带;
若存在,则将所述第二条带中第一数量的条块转移至所述第一条带。
2.根据权利要求1所述的方法,其特征在于,所述确定是否存在满足预设条件的第二条带,包括:
确定是否存在冗余能力比第一条带下降后的冗余能力大2或2以上的第二条带;
若存在,则确定存在满足预设条件的第二条带。
3.根据权利要求1所述的方法,其特征在于,所述确定是否存在满足预设条件的第二条带,包括:
确定是否存在优先级低于所述第一条带的第二条带;
若存在,则确定存在满足预设条件的第二条带。
4.根据权利要求1-3所述的方法,其特征在于,所述将所述第二条带中第一数量的条块转移至所述第一条带,包括:
将所述第二条带中第一数量的校验块转移至所述第一条带。
5.根据权利要求1-3所述的方法,其特征在于,所述检测到第一条带的冗余能力下降之前,还包括:
根据各条带的冗余能力将各条带加入到对应的冗余链表;其中,不同冗余链表对应的冗余能力不同;
所述检测到第一条带的冗余能力下降时,还包括:
当所述第一条带当前的冗余能力与所述第一条带当前所在冗余链表对应的冗余能力不一致时,将所述第一条带从其当前所在的冗余链表中删除,并将其加入到对应的冗余能力与所述第一条带当前的冗余能力一致的冗余链表;
所述将所述第二条带中第一数量的条块转移至所述第一条带之后,还包括:
当所述第一条带或/和所述第二条带当前的冗余能力与所述第一条带或/和所述第二条带当前所在冗余链表对应的冗余能力不一致时,将所述第一条带或/和所述第二条带从其当前所在的冗余链表中删除,并将其加入到对应的冗余能力与所述第一条带或/和所述第二条带当前的冗余能力一致的冗余链表。
6.根据权利要求5所述的方法,其特征在于,同一冗余链表对应的冗余能力相同;
所述检测到第一条带的冗余能力下降时,还包括:
将所述第一条带从当前所在的冗余链表中删除,并将其加入到对应的冗余能力与所述第一条带当前的冗余能力一致的冗余链表;
所述将所述第二条带中第一数量的条块转移至所述第一条带之后,还包括:
将所述第一条带和第二条带从当前所在的冗余链表中删除,并分别将其加入到对应的冗余能力与所述第一条带和第二条带当前的冗余能力一致的冗余链表。
7.根据权利要求1-3所述的方法,其特征在于,所述方法还包括:
当新增可用空间时,按照各条带冗余能力从低到高的顺序对发生冗余能力下降且冗余能力大于等于0的条带进行数据恢复。
8.一种数据处理装置,其特征在于,包括:
检测单元,用于检测条带的冗余能力;
确定单元,用于当所述检测单元检测到第一条带的冗余能力下降,且无热备空间时,确定是否存在满足预设条件的第二条带;
处理单元,用于若存在满足预设条件的第二条带,则将所述第二条带中第一数量的条块转移至所述第一条带。
9.根据权利要求8所述的装置,其特征在于,
所述确定单元,具体用于确定是否存在冗余能力比第一条带下降后的冗余能力大2或2以上的第二条带;若存在,则确定存在满足预设条件的第二条带。
10.根据权利要求8所述的装置,其特征在于,
所述确定单元,具体用于确定是否存在优先级低于所述第一条带的第二条带;若存在,则确定存在满足预设条件的第二条带。
11.根据权利要求8-10所述的装置,其特征在于,
所述处理单元,具体用于将所述第二条带中第一数量的校验块转移至所述第一条带。
12.根据权利要求8-10所述的装置,其特征在于,所述装置还包括:
链表管理单元,用于根据各条带的冗余能力将各条带加入到对应的冗余链表;其中,不同冗余链表对应的冗余能力不同;
所述链表管理单元,还用于当所述检测单元检测到第一条带的冗余能力下降时,若所述第一条带当前的冗余能力与所述第一条带当前所在冗余链表对应的冗余能力不一致,则将所述第一条带从其当前所在的冗余链表中删除,并将其加入到对应的冗余能力与所述第一条带当前的冗余能力一致的冗余链表;
所述链表管理单元,还用于当所述处理单元将所述第二条带中第一数量的条块转移至所述第一条带之后,当所述第一条带或/和所述第二条带当前的冗余能力与所述第一条带或/和所述第二条带当前所在冗余链表对应的冗余能力不一致时,将所述第一条带或/和所述第二条带从其当前所在的冗余链表中删除,并将其加入到对应的冗余能力与所述第一条带或/和所述第二条带当前的冗余能力一致的冗余链表。
13.根据权利要求12所述的装置,其特征在于,同一冗余链表对应的冗余能力相同;
所述链表管理单元,还用于当所述检测单元检测到第一条带的冗余能力下降时,将所述第一条带从当前所在的冗余链表中删除,并将其加入到对应的冗余能力与所述第一条带当前的冗余能力一致的冗余链表;
所述链表管理单元,还用于当所述处理单元将所述第二条带中第一数量的条块转移至所述第一条带之后,将所述第一条带和第二条带从当前所在的冗余链表中删除,并分别将其加入到对应的冗余能力与所述第一条带和第二条带当前的冗余能力一致的冗余链表。
14.根据权利要求8-10所述的装置,其特征在于,
所述处理单元,还用于当新增可用空间时,按照各条带冗余能力从低到高的顺序对发生冗余能力下降且冗余能力大于等于0的条带进行数据恢复。
15.一种数据处理装置,其特征在于,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:
当检测到第一条带的冗余能力下降,且无热备空间时,确定是否存在满足预设条件的第二条带;
若存在,则将所述第二条带中第一数量的条块转移至所述第一条带。
16.一种机器可读存储介质,其特征在于,存储有机器可执行指令,在被处理器调用和执行时,所述机器可执行指令促使所述处理器:
当检测到第一条带的冗余能力下降,且无热备空间时,确定是否存在满足预设条件的第二条带;
若存在,则将所述第二条带中第一数量的条块转移至所述第一条带。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810272105.0A CN110321058B (zh) | 2018-03-29 | 2018-03-29 | 一种数据处理方法及其装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810272105.0A CN110321058B (zh) | 2018-03-29 | 2018-03-29 | 一种数据处理方法及其装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110321058A true CN110321058A (zh) | 2019-10-11 |
CN110321058B CN110321058B (zh) | 2023-08-25 |
Family
ID=68110854
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810272105.0A Active CN110321058B (zh) | 2018-03-29 | 2018-03-29 | 一种数据处理方法及其装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110321058B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101923441A (zh) * | 2009-06-17 | 2010-12-22 | 成都市华为赛门铁克科技有限公司 | 混合磁盘冗余阵列的写请求处理方法、控制器和存储系统 |
CN105094712A (zh) * | 2015-09-30 | 2015-11-25 | 浙江宇视科技有限公司 | 一种数据处理方法及装置 |
CN107291398A (zh) * | 2017-06-29 | 2017-10-24 | 郑州云海信息技术有限公司 | 一种数据存储的保护方法及装置 |
-
2018
- 2018-03-29 CN CN201810272105.0A patent/CN110321058B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101923441A (zh) * | 2009-06-17 | 2010-12-22 | 成都市华为赛门铁克科技有限公司 | 混合磁盘冗余阵列的写请求处理方法、控制器和存储系统 |
CN105094712A (zh) * | 2015-09-30 | 2015-11-25 | 浙江宇视科技有限公司 | 一种数据处理方法及装置 |
CN107291398A (zh) * | 2017-06-29 | 2017-10-24 | 郑州云海信息技术有限公司 | 一种数据存储的保护方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110321058B (zh) | 2023-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104809032B (zh) | 用于存储系统中服务感知的奇偶校验放置的方法和系统 | |
CN100392611C (zh) | 存储控制装置和方法 | |
US6393516B2 (en) | System and method for storage media group parity protection | |
CN105324765B (zh) | 选择用于去重复数据的存储区 | |
CN105824572B (zh) | 一种磁盘存储空间管理方法、装置及存储设备 | |
CN104965768B (zh) | 用于存储系统中的服务感知数据放置的方法和系统 | |
CN103502957A (zh) | 数据处理方法及装置 | |
CN110597655B (zh) | 迁移和基于纠删码的重构相耦合快速预知修复方法及装置 | |
CN103763383A (zh) | 一体化云存储系统及其存储方法 | |
CN102981927A (zh) | 分布式独立冗余磁盘阵列存储方法及分布式集群存储系统 | |
CN107436733A (zh) | 分片管理方法和分片管理装置 | |
CN106527993A (zh) | 一种分布式系统中的海量文件储存方法及装置 | |
CN103019614A (zh) | 分布式存储系统管理装置及方法 | |
US11442827B2 (en) | Policy-based hierarchical data protection in distributed storage | |
CN108037894B (zh) | 一种磁盘空间管理方法及装置 | |
CN111290699A (zh) | 数据迁移方法、装置及系统 | |
CN107850984A (zh) | 使用通过电力丢失数据保护技术存储的写入数据来进行恢复 | |
US10540103B1 (en) | Storage device group split technique for extent pool with hybrid capacity storage devices system and method | |
CN106027638A (zh) | 一种基于混合编码的hadoop数据分发方法 | |
CN105359107B (zh) | 报告针对分布式对象取回的数据的降级状态 | |
CN117075821B (zh) | 一种分布式存储方法、装置、电子设备及存储介质 | |
CN110321058A (zh) | 一种数据处理方法及其装置 | |
CN116339644B (zh) | 一种独立磁盘冗余阵列创建方法、装置、设备及介质 | |
CN110032338B (zh) | 一种面向纠删码的数据副本放置方法及系统 | |
CN115543697B (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 |