CN113687790A - 数据重构方法、装置、设备及存储介质 - Google Patents
数据重构方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN113687790A CN113687790A CN202111039061.5A CN202111039061A CN113687790A CN 113687790 A CN113687790 A CN 113687790A CN 202111039061 A CN202111039061 A CN 202111039061A CN 113687790 A CN113687790 A CN 113687790A
- Authority
- CN
- China
- Prior art keywords
- storage
- data
- block
- disk
- reconstruction
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 60
- 238000013507 mapping Methods 0.000 claims abstract description 13
- 238000012545 processing Methods 0.000 claims description 26
- 238000004590 computer program Methods 0.000 claims description 23
- 238000001514 detection method Methods 0.000 claims description 15
- 230000003044 adaptive effect Effects 0.000 claims description 2
- 230000000875 corresponding effect Effects 0.000 description 65
- 230000008569 process Effects 0.000 description 17
- 230000006870 function Effects 0.000 description 16
- 230000001276 controlling effect Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 13
- 238000004891 communication Methods 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 9
- 230000007246 mechanism Effects 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 4
- 230000005236 sound signal Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000001066 destructive effect Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000012502 risk assessment Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- 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/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- 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/0631—Configuration or reconfiguration of storage systems by allocating resources to 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/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- 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/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- 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/0673—Single storage device
- G06F3/0674—Disk device
- G06F3/0676—Magnetic disk device
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供一种数据重构方法、装置、设备及存储介质。在本申请实施例中,将分布式系统中不同存储节点上的磁盘划分为多个存储块,将属于不同存储节点的一个存储块映射至第一块组中,存储至第一块组中的数据可被存储至不同存储节点的存储块中。当系统发生故障时,从故障磁盘中确定存储有数据的第一存储块;基于存储块与块组的映射关系,确定与第一存储块共同对应第一块组的第二存储块,并选择第三存储块;为第一块组创建数据重构任务,控制每个未故障的存储节点执行数据重构任务,将第一存储块中的数据重构至第三存储块中。这样,以块组为单位创建数据重构任务,参与数据重构任务的磁盘数更多,存储性能更高,有利于提升数据重构速度。
Description
技术领域
本申请涉及分布式存储技术领域,尤其涉及一种数据重构方法、装置、设备及存储介质。
背景技术
为了满足个人和企业对飞速增长数据的存储需求,分布式存储系统应运而生,一个分布式存储系统一般包括多个存储节点,每个存储节点上都会有多个存储磁盘。在使用过程中,存储节点和存储磁盘都不可避免的会发生故障,为了保证数据的可靠性,需要根据数据的冗余策略把故障节点或存储磁盘上的数据恢复到其他存储节点或存储磁盘上,这个恢复过程被称为数据重构。
在现有分布式存储系统中,通常会采用RAID技术进行数据重构,在该数据重构场景中,分布式存储系统预留有热备盘,数据通常会被存储至第一、第二磁盘以及校验磁盘中。其中,校验磁盘中存储的数据为第一、第二磁盘中的数据汇总,当第一、第二磁盘中有一个磁盘发生故障的情况下,可根据校验磁盘中存储的数据和第一、第二磁盘中未发生故障的磁盘中存储的数据得到发生故障的磁盘中存储的数据。基于此,对故障磁盘中的数据进行重构,并将重构后的数据存储至热备盘中,代替发生故障的磁盘。
然而,在上述数据重构过程中,参与数据重构的磁盘数量较少,重构数据的写入速度完全取决于热备盘的性能,若热备盘的写入速度较低,在重构大量数据时,耗时会非常长。因此,如何减少重构时间对于分布式存储系统具有重要意义。
发明内容
本申请的多个方面提供一种数据重构方法、装置、设备及存储介质,用以减少分布式存储系统在数据重构过程中的耗时,提升数据重构效率。
本申请实施例提供一种数据重构方法,适用于包括多个存储节点的分布式存储系统,每个存储节点中的磁盘包括多个存储块,不同存储节点中的一个存储块被映射到同一块组中,所述方法包括:在所述分布式存储系统发生需要数据重构的故障的情况下,根据故障信息确定所述分布式存储系统中的故障磁盘;根据所述故障磁盘上存储块的使用状态以及存储块与块组的映射关系,确定所述故障磁盘中待重构的第一存储块及其对应的第一块组,所述第一块组还对应多个第二存储块,所述第一块组对应的各存储块存储同一业务的数据;根据所述故障磁盘所在的第一存储节点,确定所述分布式存储系统中的候选磁盘,并从所述候选磁盘中选择第三存储块;控制每个未故障的存储节点基于第二存储块中的数据执行数据重构任务,以将所述第一存储块中的数据重构至所述第三存储块中。
本申请实施例还提供一种数据重构装置,应用于包括多个存储节点的分布式存储系统,每个存储节点中的磁盘包括多个存储块,不同存储节点中的一个存储块被映射到同一块组中,所述装置包括:故障检测单元、重构识别单元、重构控制单元和重构执行单元;所述重构执行单元部署在每个存储节点上;所述故障检测单元,用于检测所述分布式存储系统中是否发生故障,并在发生故障的情况下,将故障信息发送给所述重构识别单元和重构控制单元;
所述重构识别单元,用于根据所述故障信息确定所述故障是否为需要数据重构的故障,若是,则根据所述故障信息确定故障磁盘,并根据所述故障磁盘上存储块的使用状态以及存储块与块组的映射关系,确定所述故障磁盘中待重构的第一存储块及其对应的第一块组,并通知所述重构控制单元,所述第一块组还对应多个第二存储块,所述第一块组对应的各存储块存储同一业务的数据;
所述重构控制单元,用于在接收到所述通知时,根据所述故障磁盘所在的第一存储节点,确定所述分布式存储系统中的候选磁盘,并从所述候选磁盘中选择第三存储块;为所述第一块组创建数据重构任务,并向部署在每个未故障的存储节点上的重构执行单元发送执行通知,所述执行通知包括用于确定所述第二存储块的访问信息;
所述重构执行单元,用于根据所述执行通知中的访问信息确定所述第二存储块中的数据,并基于第二存储块中的数据执行所述数据重构任务,以将所述第一存储块中的数据重构至所述第三存储块中;所述第一块组对应的存储块存储同一业务的数据。
本申请实施例还提供一种数据处理设备,包括处理器以及存储有计算机程序的存储器;所述处理器,用于执行所述计算机程序,以用于:在分布式存储系统发生需要数据重构的故障的情况下,根据故障信息确定所述分布式存储系统中的故障磁盘;根据所述故障磁盘上存储块的使用状态以及存储块与块组的映射关系,确定所述故障磁盘中待重构的第一存储块及其对应的第一块组,所述第一块组还对应多个第二存储块,所述第一块组对应的各存储块存储同一业务的数据;根据所述故障磁盘所在的第一存储节点,确定所述分布式存储系统中的候选磁盘,并从所述候选磁盘中选择第三存储块;控制每个未故障的存储节点基于第二存储块中的数据执行数据重构任务,以将所述第一存储块中的数据重构至所述第三存储块中。
本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,当所述计算机程序被数据重构装置执行时,致使所述数据重构装置实现所述方法中的步骤。
在本申请实施例中,将分布式系统中不同存储节点上的磁盘划分为多个存储块,将属于不同存储节点的一个存储块映射至第一块组中,存储至第一块组中的数据可被存储至不同存储节点的存储块中。当系统发生故障时,从故障磁盘中确定存储有数据的第一存储块;基于存储块与块组的映射关系,确定与第一存储块共同对应第一块组的第二存储块,并选择第三存储块;为第一块组创建数据重构任务,并控制每个未故障的存储节点执行数据重构任务,以将第一存储块中的数据重构至第三存储块中。这样,以块组为单位创建数据重构任务,参与重构任务的磁盘数更多,存储性能更高,有利于提升数据重构速度。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1a为本申请实施例提供的一种分布式存储系统的结构示意图;
图1b为本申请实施例提供的包含有数据重构装置的分布式存储系统的结构示意图;
图2为本申请实施例提供的一种数据重构方法的流程图;
图3为本申请实施例提供的一种数据处理设备结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
针对现有分布式存储系统在数据重构过程中数据写入速度慢的问题,本申请实施例提供了一种数据重构方法,该方法可应用于分布式存储系统。其中,分布式存储系统至少包括2个存储节点,每个存储节点中包含若干个物理磁盘。在本申请实施例中,布式存储系统是指由存放程序和数据的各种存储设备、控制部件及管理信息调度的设备(硬件)和算法(软件)所组成的系统,可以对各存储节点的存储资源(如物理磁盘)进行集中管理。存储节点是一个连接到网络的有源电子设备,能够通过通信通道发送、接收或转发信息,且其上存在一块或多块物理磁盘。在本申请实施例中,存储节点包括但不限是服务器、工作站等;物理磁盘包括但不局限于固态磁盘、机械磁盘、混合磁盘等。
图1a为本申请实施例提供的一种分布式存储系统100的结构示意图,如图1a所示,分布式存储系统100至少两个存储节点110(图1a中以3个为例),且每个存储节点110包括若干个磁盘101,每个磁盘101被划分为多个存储块(chuank),且每个存储节点110中的一个存储块被映射到同一块组(chunk group)中。
在本申请实施例中,在创建存储块与块组之间的映射关系时,可先在每个存储节点110包括的若干个磁盘101中各选择至少一个磁盘101组建成一个磁盘域。例如,可在每个存储节点110包含的若干个磁盘101中各选择其中的一部分组成一个磁盘域,其中,一个磁盘域所包含的同一个存储节点110的磁盘101的数量可根据实际需求进行灵活设置。又例如,也可以将所有存储节点110包含的所有磁盘101组建成一个磁盘域,在此不做限定。
进一步,在组建磁盘域之后,可将磁盘域中的各磁盘101按照固定的存储空间切割成若干个更小的存储块。其中,存储块的大小可根据实际需求进行灵活设置。在所组建的磁盘域下,从每个存储节点110中各选择一个存储块,这些存储块可映射成一个块组。例如,如图1a所示,分布式存储系统100包括3个存储节点,其中存储节点A包括D0和D1两块磁盘;存储节点B包括D2、D3和D4三块磁盘;存储节点C包括D5和D6两块磁盘。进一步,可将存储节点A中的磁盘D0上的chunk0、存储节点B中的磁盘D2上的chunk2和存储节点C中的磁盘D5上的chunk1映射成一个块组chunk group0;将存储节点A中的磁盘D1上的chunk0、存储节点B中的磁盘D3上的chunk2和存储节点C中的磁盘D6上的chunk1映射成一个块组chunk group1等等。
根据上述实施例可知,对于一个块组而言,其中包括各个存储节点110中的一个存储块。基于这种存储资源管理方式,在向各存储节点110存储数据时,可按照对应的存储方式,可先从一磁盘域中选择一个块组,再将待存储数据分别存储到该块组中的各存储块中,以达到在各存储节点110上备份的目的。进一步可选地,分布式存储系统100还可以包括管理数据库,该数据库与分布式存储系统100中各存储节点110的数据的存储状态无关,其主要用于存储分布式存储系统100在管理存储资源过程中产生的数据。可选地,在至少两个存储节点110上创建磁盘域时,可以将磁盘域的标识、该磁盘域下各磁盘101的标识、各磁盘101中存储块的标识和存储块所属的块组的标识以及存储块与块组的映射关系,存储至管理数据库中。基于此端向分布式存储系统100中写入待写入数据时,可以根据管理数据库中的标识对应关系,将该待写入数据按照对应的存储方式存储在同一块组中的各存储块上,则该数据即被存储至不同存储节点110中的某一磁盘101中的某个存储块中,即实现了分布式存储。
在本申请实施例中,每个磁盘中的存储块在物理位置上并非具备真正的分组关系,只是在逻辑上映射为一个块组,将这种管理方式称为基于块虚拟化机制的管理方式。基于此,当磁盘域下的某一块或几块磁盘出现故障时,磁盘上存储有数据的存储块就需要进行数据重构。为了提高重构速度或效率,如图1b所示,本申请实施例提供的分布式存储系统100还包括:主控节点120和数据重构装置130,在本申请实施例中,数据重构装置130包括故障检测单元131、重构识别单元132、重构控制单元133、存储对象管控单元134和重构执行单元135。其中,故障检测单元131、重构识别单元132和存储对象管控单元134部署在主控节点120上;重构执行单元135部署在每个存储节点110上;重构控制单元133可以部署在主控节点120上,也可以部署在每个存储节点110上,图1b中以重构控制单元133部署在主控节点120上进行图示。
下面结合附图1b对数据重构装置130中各单元的功能进行详细说明。
1、故障检测单元131的功能:
在本申请实施例中,故障检测单元131用于检测分布式存储系统100中是否发生故障,其可检测的故障类型包括但不限于网络故障、磁盘故障、软件故障、操作系统故障、内存故障等。在本申请实施例中,不限定故障检测单元131检测故障的方式,可选地,故障检测单元131可以采用主动检测的方式,也可以采用被动检测的方式。其中,主动检测主要是对例如位反转、静默错误等无感知的故障进行检测,其可采用的方式包括但不限于主动进行数据巡检、网络检测、对读取存盘的介质控制信息进行检测等;被动检测是指在发生主存不在位、网卡故障、断电等可感知故障的情况下,可直接响应到发生故障的对象并识别故障信息。
在本申请实施例中,无论检测到哪种故障,故障识别单元131可根据发生故障的对象识别故障信息,并将故障类型划分为节点级故障或磁盘级故障,以及将故障信息发送给重构识别单元132和重构控制单元133,以供重构识别单元132确定受故障影响的数据以及是否需要重构数据,并在确定需要重构数据的情况下,指示重构控制单元133创建数据重构任务,以及由重构控制单元133控制重构执行单元135执行该数据重构任务,对受故障影响的数据进行重构。其中,故障信息包括但不限于故障类型、故障对象的标识(故障存储节点的标识或故障磁盘的标识)、故障对象中存储块的标识及其所属块组的标识等信息。
进一步可选地,在分布式存储系统100发生故障的情况下,故障识别单元131还可以按照预设时间间隔持续检测故障是否消除,并在确定故障消除的情况下通知重构识别单元132,以供重构识别单元132确定是否需要重构数据。
2、存储对象管控单元134的功能:
在本申请实施例中,存储对象管控单元134负责为分布式存储系统100中各存储节点110分配存储资源,以及基于块虚拟化机制对各存储节点110中各磁盘101的存储空间进行划分,将每个磁盘101分割成多个存储块并建立存储块与块组的映射关系。
基于此,在分布式存储系统100发生需要数据重构的故障之前,存储对象管控单元134可以接收来自目标业务的待存储数据,并在某一磁盘域中选择第一块组对应的各存储块存储待存储数据,这样,数据就被存储至不同存储节点110中的磁盘101上,实现数据备份。在本申请实施例中,存储对象管控单元134还可以根据待存储数据的重要度信息,为第一块组配置与待存储数据重要度信息适配的存储等级。可选地,在存储数据时,存储对象管控单元134可根据数据的重要度信息,确定磁盘域中是否存在存储等级与待存储数据的重要程度适配的块组,且该块组中有用于存储待存储数据的可用存储块。若存在,则该块组即为第一块组;若不存在,则存储对象管控单元134可从磁盘域中申请还未存储数据的块组作为第一块组,并为该第一块组配置与待存储数据重要度信息适配的存储等级,以及将待存储数据存储至该第一块组对应的各存储块中。
进一步可选地,本申请实施例不限定第一块组的个数,不同重要度信息的数据被存储至不同存储等级的块组中,而相同重要度信息的数据可被存储至多个第一块组中,则这多个第一块组对应相同的存储等级。进一步可选地,在为第一块组配置存储等级的情况下,还可以为第一块组对应的各存储块配置与第一块组对应的存储等级,则磁盘中不同位置的存储块可用于存储重要度信息不同的数据。
在本申请可选实施例中,待存储数据的重要度信息可以是待存储数据的应用类型或数据类型,在此不做限制。例如,元数据的重要度大于普通数据的重要度,则在存储数据时,可根据元数据与普通数据的重要度信息,分别将存储元数据和普通数据的块组配置与各自重要度信息适配的存储等级。关于需要数据重构的故障,详细说明可参见后续重构识别单元132的功能,在此在不详述。
在本申请实施例中,为了提高分布式存储系统100的可靠性,降低各磁盘达到存储性能瓶颈的概率,存储对象管控单元134在对各存储节点110中各磁盘101分割时,可采用资源均衡策略,从各存储节点110中选择存储空间相同或相近的磁盘101组建一个磁盘域,以使一个磁盘域中的各磁盘101具备相当的存储性能。进一步可选地,在对每个磁盘101分割存储块时,仍然可采用资源均衡策略对每个磁盘101按照相同的数量分割存储块,使每个磁盘101中分割出的各存储块具备相同或相近的存储空间。这样,在向某个块组中的存储块存储数据后,该块组中的存储块所在各磁盘101中存储的数据量相同,各磁盘101之间的存储性能不会产生明显差异。
在本申请实施例中,为了进一步提高分布式存储系统100的可靠性,存储对象管控单元134在组建磁盘域时,还可以预留热备磁盘,避免在数据重构过程中,因无可用磁盘导致重构失败。在本实施例中,不限定存储对象管控单元134确定热备磁盘的方式,可选地,可以将某个或某些存储节点中的全部磁盘作为热备磁盘,也可以将某个或某些存储节点中的部分自盘作为热备磁盘。进一步可选地,在将某个或某些存储节点中的部分磁盘作为热备磁盘的情况下,热备磁盘可以与上述实施例中用于存储数据的磁盘101属于同一存储节点,也可分别属于不同的存储节点,在此不做限定。进一步可选地,存储对象管控单元134在预留热备磁盘时,可以根据分布式存储系统100所包含的存储空间的百分比预留一定比例的存储空间作为热备磁盘,也可以根据磁盘的数量预留一定数量的磁盘作为热备磁盘。例如,可将总存储空间容量的10%作为热备磁盘,这些存储空间可来自一块或多块磁盘;在为多个磁盘的情况下,这些磁盘可属于一个存储节点也可以属于不同的存储节点。又例如,在有10块磁盘的情况下,可选择其中的一块磁盘作为热备磁盘。
在上述实施例中,存储对象管控单元134主要负责对分布式存储系统100中存储空间的管理和存储业务端发送的数据。除此之外,在数据重构过程中,存储对象管控单元134还可以根据各存储节点110中部署的重构执行单元135发送的请求,为待重构数据分配存储空间。在本申请实施例中,在分布式存储系统100中不同存储节点110中的磁盘容量、磁盘数量可能会不同,存储对象管控单元134为待重构数据分配存储空间时,不限定其采用的分配方式。可选地,可采用随机分配、基于各磁盘存储空间权重等方式进行分配;或者,可采用资源均衡策略为待重构数据分配与第一存储块一致的存储空间,以保证分布式存储系统100整体存储性能稳定,避免某个或某些磁盘、某个或某些存储节点中存储数据量过大,达到存储性能瓶颈,降低使用寿命。
3、重构识别单元132的功能:
在分布式存储系统100发生故障的情况下,有些故障可能会造成数据丢失,而有些故障可能不会造成数据丢失。本申请实施例中,将会造成数据丢失的故障成为损坏型故障,将不会造成数据丢失的故障成为非损坏型故障。例如,存储节点或磁盘损坏会导致损坏的存储节点或损坏的磁盘中存储的数据丢失,这类故障属于损坏型故障;而像系统管理员误拔主存或突然断定等情况,被拔掉的主存在被拔掉前存储的数据或磁盘在断电前存储的数据不会丢失,这类故障属于非损坏型故障。
因此,在本申请实施例中,并不是对所有故障都进行数据重构,重构识别单元132在接收到故障检测单元131发送的故障信息的情况下,可根据故障信息确定故障是否为需要数据重构的故障。可选地,重构识别单元132可根据故障信息识别故障的类型,若故障为数据损坏型故障,则确定分布式存储系统100发生需要数据重构的故障;若故障为非数据损坏型故障,则延迟指定时间后,根据故障识别单元131的检测结果判断故障是否消除;若故障没有消除,则确定分布式存储系统100发生需要数据重构的故障。
例如,系统管理员误拔主存或突然断定等情况在短时间内即可恢复,对于这类故障,可在延迟指定时间后判断是否需要数据重构,若在指定时间之内上述情况恢复,则确定无需数据重构;若在指定时间之内上述情况没有恢复,则确定需要对故障发生期间待存储的数据进行重构。在本实施例中,不限定预设的指定时间对应的具体数值,可以根据分布式存储系统100的整体存储性能确定,也可以针对不同存储节点或不同磁盘的存储性能设置对应的延迟时间。
进一步,在确定发生需要数据重构的故障的情况下,重构识别单元132可根据故障信息确定故障磁盘,并根据故障磁盘上存储块的使用状态以及存储块与块组的映射关系,确定故障磁盘中待重构的第一存储块及其对应的第一块组,其中,第一块组还对应多个第二存储块,并且,在第一块组中的各存储块存储同一业务端的数据。在确定待重构数据的情况下,重构识别单元132可向重构控制单元133发送通知,以通知重构控制单元133根据待重构的数据创建数据重构任务,并控制部署在每个未故障的存储节点上的重构执行单元135基于第二储块中的数据执行重构,对第一存储块中的数据进行重构。进一步可选地,在确定故障磁盘中待重构的第一存储块的情况下,重构识别单元132还可以对第一存储块作故障标记,以供重构执行单元135根据故障标记确定第一存储块中的数据需要被重构。
在申请实施例中,不限定故障磁盘的个数,可以为一个或多个。进一步,在故障磁盘是多个的情况下,也不限定多个故障磁盘之间的关系,其中,多个故障磁盘可以同属于一个存储节点,也可以分别属于不同的存储节点,或者,部分属于同一存储节点,部分属于不同的存储节点。基于此,根据第一存储块确定的第一块组也可以是一个或多个,关于存储块与块组的映射关系,可参见图1b。
在本申请实施例中,业务端在向分布式存储系统100存储数据时,可以指定使用的存储方式,例如,使用多副本方式或纠删码方式。重构识别单元132在确定待重构数据时,可根据第一块组对应业务端选择使用的存储方式,结合第一块组对应的第二存储块中的数据,生成待重构数据。例如,若业务端使用的是多副本方式,则第一块组对应的每个存储块中存储的数据内容相同,重构识别单元132可以根据第一块组对应的任一第二存储块中的数据,生成待重构数据。若业务端使用的是纠删码方式,则第一块组对应的每个存储块中存储有业务数据中的部分数据以及根据业务数据生成的纠删码,在确定第一存储块中的数据需要被重构的情况下,重构识别单元132可以根据第一块组对应的每个第二存储块中的数据和纠删码,确定第一存储块中存储的数据,并将该数据作为待重构数据。
在实际应用中,业务端可以对数据执行各种操作,例如,业务端可以执行新增操作,将数据存储在分布式存储系统100中,基于此,还可以对存储在系统中的数据执行删除、修改以及查询等操作。在本申请实施例中,存储在分布式存储系统100中的数据可以包含标识信息,用于标识数据当前的状态。当业务端对存储在系统中的数据执行各种操作时,系统可根据业务端执行的具体操作,更新数据对应的标识信息。例如,对于新增的数据,对应的标识信息可以为add;对于删除的数据,对应的标识信息可以为delete;对于修改的数据,对应的标识信息可以为update等,但不限于此,也可以用0、1、2等数值标识不同的状态。
对于被业务端执行删除操作的数据,在系统中多为逻辑删除,该部分数据仍然保存在对应的存储块中,在数据重构时,对这类数据重构是无意义的。因此,为了减少数据重构过程中存储资源的开销,重构识别单元132可将数据对应的标识信息作为业务端对第一存储块中数据的操作标记,基于此,确定第一存储块中的有效数据,并将有效数据作为待重构数据。可选地,重构识别单元132可以,生成有效数据中的多个部分数据,并将各部分数据作为待重构数据中的部分数据。进一步,在每个未故障的存储节点执行数据重构任务时,可由一个未故障的存储节点对其中的一个部分数据执行数据重构任务,这样,每个未故障的存储节点可分别针对待重构数据中的一部分数据进行数据重构,有助于升数据重构效率。
需要说明的是,上述对业务端删除的数据进行标识的方式仅为示例性说明并不限于此,例如,还可通过写入删除文件、记录操作日志等方式进行标识,根据分布式存储系统100中存储资源类型的不同,具体的实现方式也可以不同。相应地,对业务端删除的数据进行标识的方式不同,则基于标识判断有效数据的方式也会不同,具体可根据标识方式确定,在此不做限定。
在执行数据重构任务期间,分布式存储系统100仍然可能发生故障,例如突然断电、系统重启等故障。以存储节点110发生故障为例,当分布式存储系统100在数据重构期间发生故障,重构识别单元132还可以从故障存储节点切换到其他存储节点上执行识别任务。进一步,当分布式存储系统100供电恢复或重启后,重构识别单元132还可以切换到原来的存储节点继续对未重构完成的数据进行识别,并根据识别结果通知重构控制单元133,发起新的一轮数据重构任务。
在本实施例中,不限定重构识别单元132切回到原来存储节点确定上一次识别的位置的方式。可选地,重构识别单元132在每识别一个存储块时,可记录存储块的标识,当重构识别单元132切回到原来存储节点时,可根据存储块标识确定上一次识别的位置。进一步可选地,重构识别单元132在确定有未重构完成的数据时,可将未重构完成的数据所在的存储块、该存储块所属的磁盘、存储节点以及与该存储块映射的块组等信息存储至管理数据库中,以供重构控制单元133根据该信息发起新的一轮数据重构任务。
4、重构控制单元133的功能:
在本申请实施例中,重构控制单元133根据接收到重构识别单元132发送的通知,可确定故障磁盘所在的第一存储节点,跟根据第一存储节点确定分布式存储系统100中的候选磁盘。进一步,可从候选磁盘中选择第三存储块,作为存储待重构数据的目标存储块。除此之外,重构控制单元133还可以为第一块组创建数据重构任务,并向部署在每个未故障的存储节点上的重构执行单元135发送执行通知,以控制每个重构执行单元135执行数据重构任务,将第一存储块中的待重构数据重构至第三存储块中;其中,执行通知中包括用于确定第二存储块的访问信息,在本申请实施例中,不限定访问信息的具体内容,也不限定根据访问信息确定第二存储块以及获取其中数据的方式,根据访问信息内容的不同,对应的获取方式也会不同,具体可参见后续实施例中对重构执行单元135功能的相关说明。
在本申请可选实施例中,不限定重构控制单元133确定候选磁盘的方式,根据故障磁盘所在的第一存储节点的状态,确定候选磁盘的方式也会不同。例如,若故障磁盘所在的第一存储节点发生故障,则从分布式存储系统100中其它未故障存储节点中的未故障磁盘中选择候选磁盘。若故障磁盘所在的第一存储节点未发生故障,则从第一存储节点中其它未故障的磁盘中选择候选磁盘。进一步可选地,在从分布式存储系统100中其它未故障存储节点中的未故障磁盘中选择候选磁盘时,可从其它未故障存储节点中选择尚未存储目标业务数据的候选存储节点,该目标业务是第一存储块中所存数据所属的业务。进一步,重构控制单元133可将候选存储节点中未故障磁盘作为候选磁盘,以及从候选磁盘中选择尚未存储数据的即空闲的存储块作为第三存储块。进一步可选地,在确定第三存储块的情况下,还可以为第三存储块配置与第一块组对应的存储等级,以及将第三存储块映射至第一块组中。
在本申请可选实施例中,受到磁盘容量的限制,可能存在候选磁盘的剩余存储空间无法满足待重构数据的存储要求,若多个存储节点中均没有候选磁盘,则在无法从多个存储节点中确定第三存储块的情况下,重构控制单元133还可根据第一块组对应的存储等级,从分布式存储系统100的热备磁盘中,选择候选磁盘,并从候选磁盘中选择用于存储待重构数据的第三存储块。其中,热备磁盘可以是预留的存储节点,也可以是预留的磁盘,具体可参见存储对象管控单元134功能说明的内容。
在本申请可选实施例中,业务端可以是某个或某些虚拟机、数据库等业务端。当分布式存储系统100发生故障的情况下,为了保护业务端的数据,需要尽快对受故障影响的业务端的数据进行重构。当受故障影响的业务端为多个时,不同业务端的数据重要程度可能不同,如果不进行区分,可能导致关键业务端的数据没有尽快执行重构,降低数据的可靠性,甚至导致数据的丢失,影响关键业务端对数据的访问和处理。因此,重构控制单元133在创建重构任务时,还可以根据多个业务端的待重构数据分别对应的存储等级,为分别存储不同业务端数据的多个块组分别创建对应等级的数据重构任务,并部署在未故障的存储节点上的重构执行单元135按照数据重构任务的优先级,优先执行高优先级的数据重构任务,以对关键业务端的数据进行优先重构。
在本申请可选实施例中,由于磁盘采用的电子元器件也有一定的概率出现故障,以硬盘驱动器(Hard Disk Drive,HDD)为例,可能发生磁盘上的数据位翻转等故障,当故障检测单元131还未检测到该类故障时,如果采用错误的数据进行重构,会导致重构后的数据依然是错误的。可选地,重构控制单元133在创建数据重构任务以及通知重构执行单元135执行数据重构任务之前,还可以先对与第一块组对应的第二存储块中的数据进行检测,当检测到错误数据时,对错误数据进行修复。可选地,可以根据第一块组对应业务端选择使用的存储方式,对第一块组对应的第二存储块中的数据进行检测和修正。进一步可选地,如过无法修正,例如,仅有副本数据也错误,则向系统管理员发送通知,以供系统管理员手动修正错误数据。
进一步可选地,若在数据重构过程中,执行数据重构任务的存储节点发生故障,重构控制单元133还可以将分发给该故障节点的数据重构任务安排给部署在其他非故障节点上的数据重构执行单元135执行该数据重构任务,以保证数据重构的可靠性。
在本申请可选实施例中,对于纠删码存储方式,在存储数据时,需要根据纠删码计算规则生纠删码;在确定待重构数据或检测数据时,也需要基于纠删码确定数据,这些计算过程都需要计算资源。为了提升计算速度,降低分布式存储系统100的开销,重构控制单元133还可提供硬件机制,提升分布式存储系统100的性能。例如,硬件的计算速度比cpu等处理器的计算速度快,则在需要计算时,重构控制单元133可在当前存储节点的硬件或其他计算速度更快的设备上实现上述计算过程,以提升计算速度。
在本申请可选实施例中,重构执行单元135执行重构任务需要消耗一定的网络带宽等流量资源,为了避免影响到其他业务端读写数据,重构控制单元133还提供流量资源控制机制。可选地,可采用的是服务质量(Quality of Service,QOS)控制机制,优先保证关键业务端的流量资源,避免在重构数据时影响到正常的业务读写。进一步,当分布式存储系统100中没有业务端占用流量资源时,重构控制单元133还可将全部流量资源提供给数据重构装置130使用,从而提升数据重构的性能。
5、重构执行单元135的功能:
在本申请实施例中,部署在每个未故障的存储节点上的重构执行单元135可以根据重构控制单元133发送的执行通知确定需要执行的数据重构任务。其中,重构控制单元133发送的执行通知中包含有用于确定第二存储块的访问信息,重构执行单元135根据访问标识可确定第二存储块以及获取第二存储块中的数据,并基于第二存储块中的数据确定待重构数据。可选地,重构控制单元134可控制部署在每个未故障存储节点上的重构执行单元135基于待重构数据中的部分数据,并行地执行数据重构任务,将第一存储块中的数据重构至第三存储块中。进一步可选地,在执行数据重构任务之前,重构执行单元135还可以向存储对象管控单元134发送请求,请求存储对象管控单元134为待重构数据分配对应的存储空间。
在本申请实施例中,不限定访问信息的具体内容,也不限定根据访问信息确定第二存储块以及获取其中数据的方式。在一可选实施例中,访问信息可以包括第一块组对应的标识,重构执行单元135根据第一块组对应的标识可从管理数据库中查询与第一块组对应的各存储块以及与各存储块对应的位置信息,根据各存储块的使用状态确定待重构的第一存储块以及用于确定待重构数据的第二存储块,并根据第二存储块对应的位置信息获取第二存储块中的数据,以及基于第二存储块中的数据执行数据重构任务,将第一存储块中的数据重构至第三存储块中。
在另一可选实施例中,访问信息还可以包括第一块组对应的每个存储块对应的位置信息,该位置信息包括但不限于每个存储块所在磁盘的标识、所在存储节点的标识以及每个存储块在磁盘中对应物理存储空间的起始地址中的一种或多种。基于此,重构执行单元135可直接根据访问信息确定与第一块组对应的各存储块,根据各存储块的使用状态确定待重构的第一存储块以及用于确定待重构数据的第二存储块,并根据第二存储块对应的位置信息获取第二存储块中的数据,以及基于第二存储块中的数据执行数据重构任务,将第一存储块中的数据重构至第三存储块中。
在另一可选实施例中,访问信息还可以包括第一块组对应的第一存储块对应的故障标记,重构执行单元135在确定第一块组对应的各存储块以及与各存储块及对应的位置信息的情况下,还可以直接根据故障标记确定待重构的第一存储块以及用于确定待重构数据的第二存储块,并根据第二存储块对应的位置信息获取第二存储块中的数据,以及基于第二存储块中的数据执行数据重构任务,将第一存储块中的数据重构至第三存储块中。
在本申请可选实施例中,当第一块组为多个且多个第一块组中的数据分别存储不同业务端的数据时,重构控制单元133可根据不同业务端的数据重要度信息,分别创建与多个业务端的数据重要度信息对应等级的重构任务。则重构执行单元135还可以根据提升计算速度指示的数据重构任务的优先级,依次执行多个数据重构任务,以优先对关键数据进行重构。进一步可选地,当第三存储块与第一存储块分别属于不同存储节点的情况下,重构执行单元135在执行数据重构任务时,还可以负责网络传输,以将待重构数据传输至第三存储块所在存储节点,并存储至第三存储块中。
在本申请实施例中,采用基于块虚拟化机制的方式对分布式存储系统中的存储资源进行管理以及数据存储,使得存储至分布式存储系统中的数据可以均衡的存储到不同存储节点下不同磁盘中与数据对应存储等级的存储块中。在系统发生故障并需要重构数据的情况下,结合磁盘域下的可用磁盘在管理数据库中与存储块及所属块组的对应关系,可快速索引出与故障磁盘中的故障存储块属于同一块组的第二存储块,并利用第二存储块中存储的数据对故障存储块中的数据进行重构。这样,参与数据重构的磁盘数量较多,写入速度更快,有助于提高对故障磁盘中存储的数据进行重构的速度。并且,数据重构任务是以块组为单位创建的,在对不同业务数据进行数据重构时,不同块组中的数据重构任务不会冲突,有利于重构过程中的管控和风险评估。
除了上述分布式存储系统实施例之外,本申请实施例还提供一种适用于分布式存储系统的数据重构方法,该方法可由上述实施例中的数据重构装置执行,但可执行该数据重构方法的装置的内部架构并不限于此。图2为该数据重构方法的流程图,如图2所示方法包括:
S1、在分布式存储系统发生需要数据重构的故障的情况下,根据故障信息确定分布式存储系统中的故障磁盘;
S2、根据故障磁盘上存储块的使用状态以及存储块与块组的映射关系,确定故障磁盘中待重构的第一存储块及其对应的第一块组,第一块组还对应多个第二存储块,第一块组对应的各存储块存储同一业务的数据;
S3、根据故障磁盘所在的第一存储节点,确定分布式存储系统中的候选磁盘,并从候选磁盘中选择第三存储块;
S4、控制每个未故障的存储节点基于第二存储块中的数据执行数据重构任务,以将第一存储块中的数据重构至第三存储块中。
在一可选实施例中,该方法还包括:检测分布式存储系统中是否发生故障,并在发生故障的情况下,识别故障的类型;若故障为数据损坏型故障,则确定分布式存储系统发生需要数据重构的故障;若故障为非数据损坏型故障,则延迟指定时间后,判断故障是否消除;若故障没有消除,则确定分布式存储系统发生需要数据重构的故障。
在一可选实施例中,在根据故障磁盘所在的第一存储节点,确定分布式存储系统中的可用磁盘时,若故障磁盘所在的第一存储节点发生故障,则从分布式存储系统中其它未故障存储节点中的未故障磁盘中选择候选磁盘;若故障磁盘所在的第一存储节点未发生故障,则从第一存储节点中其它未故障的磁盘中选择候选磁盘。
在一可选实施例中,在从分布式存储系统中其它未故障存储节点中的未故障磁盘中选择候选磁盘时,还可以从其它为故障存储节点中选择尚未存储目标业务的数据的候选存储节点;目标业务是第一存储块中所存数据所属的业务;将候选存储节点中的未故障磁盘作为候选磁盘。
在一可选实施例中,在分布式存储系统发生需要数据重构的故障之前,还包括:将各磁盘中的存储空间划分为多个存储块,以及接收来自目标业务的待存储数据,并根据待存储数据的重要度信息,为存储待存储数据的第一块组配置与重要度信息适配的存储等级,并将待存储数据存储至第一存储块中的各存储块中。
在一可选实施例中,在控制每个未故障的存储节点基于第二存储块中的数据执行数据重构任务,以将第一存储块中的数据重构至第三存储块中时,根据第一块组对应业务端选择使用的存储方式,结合第二存储块中的数据,生成待重构数据;为第一块组创建数据重构任务,并控制每个未故障的存储节点执行数据重构任务,以按照存储方式将第二存储块对应的待重构数据重构至第三存储块中。
在一可选实施例中,根据第一块组对应业务端选择使用的存储方式,结合第二存储块中的数据,生成待重构数据时,还可以根据业务端对第一存储块中数据的操作标记,确定第一存储块中的有效数据,并将该有效数据作为待重构数据。
在一可选实施例中,第一存储块为多个,则控制每个未故障的存储节点基于第二存储块中的数据执行数据重构任务,以将第一存储块中的数据重构至第三存储块中时,可以按照多个第一存储块对应的存储等级,依次控制每个未故障的存储节点基于第二存储块中的数据执行数据重构任务,以将所述第一存储块中的数据重构至所述第三存储块中。
在一可选实施例中,分布式存储系统还包括预留存储节点,方法还包括:在无法从多个存储节点中确定第三存储块的情况下,从预留存储节点中选择磁盘,并从候选磁盘中选择用于存储待重构数据的第三存储块。
需要说明的是,上述实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤S1至步骤S4的执行主体可以为设备A;又比如,步骤S1至步骤S3的执行主体可以为设备A,步骤S4的执行主体可以为设备B;等等。
另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如S1、S2等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
在本申请实施例中,脱离于上述数据重构装置的部署方式,本申请实施例还提供一种数据处理设备,该数据处理设备适用于上述分布式存储系统。图3为本申请实施例的数据处理设备的结构示意图,如图3所示,数据处理设备包括:处理器31以及存储有计算机程序的存储器32;其中,处理器31和存储器32可以是一个或多个。
存储器32,主要用于存储计算机程序,这些计算机程序可被处理器31执行,致使处理器31控制数据处理设备实现相应功能、完成相应动作或任务。除了存储计算机程序之外,存储器32还可被配置为存储其它各种数据以支持在数据处理设备上的操作。这些数据的示例包括用于在数据处理设备上操作的任何应用程序或方法的指令。
存储器32,可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
在本申请实施例中,并不限定处理器31的实现形态,例如可以是但不限于CPU、GPU或MCU等。处理器31可以看作是数据处理设备的控制系统,可用于执行存储器32中存储的计算机程序,以控制数据处理设备实现相应功能、完成相应动作或任务。值得说明的是,根据数据处理设备实现形态以及所处于场景的不同,其所需实现的功能、完成的动作或任务会有所不同;相应地,存储器32中存储的计算机程序也会有所不同,而处理器31执行不同计算机程序可控制数据处理设备实现不同的功能、完成不同的动作或任务。
在一些可选实施例中,如图3所示,数据处理设备还可包括:显示器33、电源组件34以及通信组件35等其它组件。图3中仅示意性给出部分组件,并不意味着数据处理设备只包括图3所示组件,针对不同的应用需求,数据处理设备还可以包括其他组件,例如,在存在语音交互需求的情况下,如图3所示,数据处理设备还可以包括音频组件36。关于数据处理设备可包含的组件,具体可视数据处理设备的产品形态而定,在此不做限定。
在本申请实施例中,当处理器31执行存储器32中的计算机程序时,以用于执行上述方法实施例中的各步骤。
相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被执行时能够实现上述方法实施例中可由数据处理设备执行的各步骤。
上实施例中的通信组件被配置为便于通信组件所在设备和其他设备之间有线或无线方式的通信。通信组件所在设备可以接入基于通信标准的无线网络,如WiFi,2G、3G、4G/LTE、5G等移动通信网络,或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
上述实施例中的显示器包括屏幕,其屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。
上述实施例中的电源组件,为电源组件所在设备的各种组件提供电力。电源组件可以包括电源管理系统,一个或多个电源,及其他与为电源组件所在设备生成、管理和分配电力相关联的组件。
上述实施例中的音频组件,可被配置为输出和/或输入音频信号。例如,音频组件包括一个麦克风(MIC),当音频组件所在设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器或经由通信组件发送。在一些实施例中,音频组件还包括一个扬声器,用于输出音频信号。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (12)
1.一种数据重构方法,适用于包括多个存储节点的分布式存储系统,每个存储节点中的磁盘包括多个存储块,不同存储节点中的一个存储块被映射到同一块组中,其特征在于,所述方法包括:
在所述分布式存储系统发生需要数据重构的故障的情况下,根据故障信息确定所述分布式存储系统中的故障磁盘;
根据所述故障磁盘上存储块的使用状态以及存储块与块组的映射关系,确定所述故障磁盘中待重构的第一存储块及其对应的第一块组,所述第一块组还对应多个第二存储块,所述第一块组对应的各存储块存储同一业务的数据;
根据所述故障磁盘所在的第一存储节点,确定所述分布式存储系统中的候选磁盘,并从所述候选磁盘中选择第三存储块;
控制每个未故障的存储节点基于第二存储块中的数据执行数据重构任务,以将所述第一存储块中的数据重构至所述第三存储块中。
2.根据权利要求1所述的方法,其特征在于,还包括:
检测所述分布式存储系统中是否发生故障,并在发生故障的情况下,识别所述故障的类型;
若所述故障为数据损坏型故障,则确定所述分布式存储系统发生需要数据重构的故障;
若所述故障为非数据损坏型故障,则延迟指定时间后,判断所述故障是否消除;若所述故障没有消除,则确定所述分布式存储系统发生需要数据重构的故障。
3.根据权利要求1所述的方法,其特征在于,根据所述故障磁盘所在的第一存储节点,确定所述分布式存储系统中的候选磁盘,包括:
若所述故障磁盘所在的第一存储节点发生故障,则从所述分布式存储系统中其它未故障存储节点中的未故障磁盘中选择候选磁盘;
若所述故障磁盘所在的第一存储节点未发生故障,则从所述第一存储节点中其它未故障的磁盘中选择候选磁盘。
4.根据权利要求3所述的方法,其特征在于,从所述分布式存储系统中其它未故障存储节点中的未故障磁盘中选择候选磁盘,包括:
从其它未故障存储节点中选择尚未存储目标业务的数据的候选存储节点;目标业务是所述第一存储块中所存数据所属的业务;
将所述候选存储节点中的未故障磁盘作为候选磁盘。
5.根据权利要求2所述的方法,其特征在于,在所述分布式存储系统发生需要数据重构的故障之前,还包括:
将各磁盘中的存储空间划分为多个存储块,以及接收来自目标业务的待存储数据,并根据所述待存储数据的重要度信息,为存储所述待存储数据的第一块组配置与所述重要度信息适配的存储等级,以及将所述待存储数据存储至第一块组对应的各存储块中。
6.根据权利要求1所述的方法,其特征在于,控制每个未故障的存储节点基于第二存储块中的数据执行数据重构任务,以将所述第一存储块中的数据重构至所述第三存储块中,包括:
根据所述第一块组对应业务端选择使用的存储方式,结合所述第二存储块中的数据,生成待重构数据;
为所述第一块组创建数据重构任务,并控制每个未故障的存储节点执行所述数据重构任务,以按照所述存储方式将所述待重构数据重构至所述第三存储块中。
7.根据权利要求6所述的方法,其特征在于,生成所述待重构数据,包括:
根据业务端对所述第一存储块中数据的操作标记,确定所述第一存储块中的有效数据,并将所述有效数据作为所述待重构数据。
8.根据权利要求1-7任一项所述的方法,其特征在于,所述分布式存储系统还包括预留存储节点,所述方法还包括:
在无法从所述多个存储节点中确定第三存储块的情况下,从所述预留存储节点中选择候选磁盘,并从候选磁盘中选择用于存储待重构数据的第三存储块。
9.一种数据重构装置,应用于包括多个存储节点的分布式存储系统,每个存储节点中的磁盘包括多个存储块,不同存储节点中的一个存储块被映射到同一块组中,其特征在于,所述装置包括:故障检测单元、重构识别单元、重构控制单元和重构执行单元;所述重构执行单元部署在每个存储节点上;
所述故障检测单元,用于检测所述分布式存储系统中是否发生故障,并在发生故障的情况下,将故障信息发送给所述重构识别单元和重构控制单元;
所述重构识别单元,用于根据所述故障信息确定所述故障是否为需要数据重构的故障;若是,则根据所述故障信息确定故障磁盘,并根据所述故障磁盘上存储块的使用状态以及存储块与块组的映射关系,确定所述故障磁盘中待重构的第一存储块及其对应的第一块组,以及通知所述重构控制单元;所述第一块组还对应多个第二存储块,所述第一块组对应的各存储块存储同一业务的数据;
所述重构控制单元,用于在接收到通知时,根据所述故障磁盘所在的第一存储节点,确定所述分布式存储系统中的候选磁盘,并从所述候选磁盘中选择第三存储块;为所述第一块组创建数据重构任务,并向部署在每个未故障的存储节点上的重构执行单元发送执行通知,所述执行通知包括用于确定所述第二存储块的访问信息;
所述重构执行单元,用于根据所述执行通知中的访问信息确定所述第二存储块中的数据,并基于第二存储块中的数据执行所述数据重构任务,以将所述第一存储块中的数据重构至所述第三存储块中;所述第一块组对应的存储块存储同一业务的数据。
10.根据权利要求9所述的数据重构装置,其特征在于,还包括:
存储对象管控单元,用于接收需要存储的数据,从多个块组中选择第一块组对应的存储块存储所述数据;以及根据所述数据的重要程度,确定第一块组对应的存储等级。
11.一种数据处理设备,其特征在于,包括处理器以及存储有计算机程序的存储器;所述处理器,用于执行所述计算机程序,以用于实现权利要求1-8任一项所述方法中的步骤。
12.一种存储有计算机程序的计算机可读存储介质,其特征在于,当所述计算机程序被数据重构装置执行时,致使所述数据重构装置实现权利要求1-8任一项所述方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111039061.5A CN113687790A (zh) | 2021-09-06 | 2021-09-06 | 数据重构方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111039061.5A CN113687790A (zh) | 2021-09-06 | 2021-09-06 | 数据重构方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113687790A true CN113687790A (zh) | 2021-11-23 |
Family
ID=78585352
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111039061.5A Pending CN113687790A (zh) | 2021-09-06 | 2021-09-06 | 数据重构方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113687790A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115629906A (zh) * | 2022-12-21 | 2023-01-20 | 北京铜牛信息科技股份有限公司 | 一种恢复云分布式存储数据故障的方法及系统 |
CN117149096A (zh) * | 2023-10-31 | 2023-12-01 | 苏州元脑智能科技有限公司 | 磁盘重构方法、装置、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107357689A (zh) * | 2017-08-02 | 2017-11-17 | 郑州云海信息技术有限公司 | 一种存储节点的故障处理方法及分布式存储系统 |
CN109542342A (zh) * | 2018-11-09 | 2019-03-29 | 锐捷网络股份有限公司 | 元数据管理与数据重构方法、设备及存储介质 |
US20200133811A1 (en) * | 2018-10-31 | 2020-04-30 | EMC IP Holding Company LLC | Method, device, and computer program product for rebuilding data |
-
2021
- 2021-09-06 CN CN202111039061.5A patent/CN113687790A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107357689A (zh) * | 2017-08-02 | 2017-11-17 | 郑州云海信息技术有限公司 | 一种存储节点的故障处理方法及分布式存储系统 |
US20200133811A1 (en) * | 2018-10-31 | 2020-04-30 | EMC IP Holding Company LLC | Method, device, and computer program product for rebuilding data |
CN109542342A (zh) * | 2018-11-09 | 2019-03-29 | 锐捷网络股份有限公司 | 元数据管理与数据重构方法、设备及存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115629906A (zh) * | 2022-12-21 | 2023-01-20 | 北京铜牛信息科技股份有限公司 | 一种恢复云分布式存储数据故障的方法及系统 |
CN117149096A (zh) * | 2023-10-31 | 2023-12-01 | 苏州元脑智能科技有限公司 | 磁盘重构方法、装置、设备及存储介质 |
CN117149096B (zh) * | 2023-10-31 | 2024-02-06 | 苏州元脑智能科技有限公司 | 磁盘重构方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10261853B1 (en) | Dynamic replication error retry and recovery | |
CN108287669B (zh) | 数据存储方法、装置及存储介质 | |
US8868726B1 (en) | Systems and methods for performing backups | |
US9477565B2 (en) | Data access with tolerance of disk fault | |
CN109542342B (zh) | 元数据管理与数据重构方法、设备及存储介质 | |
US11307776B2 (en) | Method for accessing distributed storage system, related apparatus, and related system | |
US20210405902A1 (en) | Rule-based provisioning for heterogeneous distributed systems | |
CN102088490B (zh) | 数据存储方法、设备和系统 | |
CN108733311B (zh) | 用于管理存储系统的方法和设备 | |
US20220057947A1 (en) | Application aware provisioning for distributed systems | |
CN109582213B (zh) | 数据重构方法及装置、数据存储系统 | |
CN113687790A (zh) | 数据重构方法、装置、设备及存储介质 | |
CN110096220B (zh) | 一种分布式存储系统、数据处理方法和存储节点 | |
CN113051104B (zh) | 基于纠删码的磁盘间数据恢复方法及相关装置 | |
JP2021524104A (ja) | マスター・スタンドバイコンテナシステム切替 | |
CN104424052A (zh) | 一种自动冗余的分布式存储系统及方法 | |
US10346269B2 (en) | Selective mirroring of predictively isolated memory | |
US9092396B2 (en) | Standby system device, a control method, and a program thereof | |
CN103810038A (zh) | 一种ha集群中虚拟机存储文件迁移方法及其装置 | |
CN110018986B (zh) | 异常快照识别方法及装置 | |
WO2023050665A1 (zh) | 一种存储卷跨节点克隆的方法、装置、设备及可读介质 | |
CN105159790A (zh) | 一种数据抢救方法及文件服务器 | |
US8935695B1 (en) | Systems and methods for managing multipathing configurations for virtual machines | |
US20230089663A1 (en) | Maintenance mode for storage nodes | |
CN108733753B (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 |