CN109542342B - 元数据管理与数据重构方法、设备及存储介质 - Google Patents

元数据管理与数据重构方法、设备及存储介质 Download PDF

Info

Publication number
CN109542342B
CN109542342B CN201811333066.7A CN201811333066A CN109542342B CN 109542342 B CN109542342 B CN 109542342B CN 201811333066 A CN201811333066 A CN 201811333066A CN 109542342 B CN109542342 B CN 109542342B
Authority
CN
China
Prior art keywords
hard disk
physical hard
storage
domain
physical
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201811333066.7A
Other languages
English (en)
Other versions
CN109542342A (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.)
Ruijie Networks Co Ltd
Original Assignee
Ruijie Networks 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 Ruijie Networks Co Ltd filed Critical Ruijie Networks Co Ltd
Priority to CN201811333066.7A priority Critical patent/CN109542342B/zh
Publication of CN109542342A publication Critical patent/CN109542342A/zh
Application granted granted Critical
Publication of CN109542342B publication Critical patent/CN109542342B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • 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

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

本申请实施例提供一种元数据管理与数据重构方法、设备及存储介质。在本申请实施例中,采用RAID技术对存储***中的存储资源进行组织管理,针对存储***中的硬盘域,将硬盘域中的元数据按照RAID技术进行组织管理,在创建硬盘域时,将硬盘域的ID和该硬盘域下各物理硬盘的ID存储在各硬盘的属性描述区中;在组建存储池时,将存储池与硬盘域的所属关系以及存储池与其包含的分块组之间的映射关系存储至各硬盘的属性描述区。基于这样的元数据组织结构,当硬盘域下的物理硬盘出现硬盘故障时,可根据属性描述区中存储的信息,快速索引出与故障物理硬盘中的分块属于同一分块组的其他分块,有助于提高对故障物理硬盘中存储的数据的重构速度。

Description

元数据管理与数据重构方法、设备及存储介质
技术领域
本申请涉及存储技术领域,尤其涉及一种元数据管理与数据重构方法、设备及存储介质。
背景技术
独立冗余磁盘阵列(Redundant Array of Independent Disks,RAID),是一种把多块独立的物理硬盘按不同的方式组合起来形成一块逻辑硬盘,从而提供比单个物理硬盘更大的存储容量或更高的存储性能,同时又能提供不同级别数据冗余备份的一种技术。在采用RAID技术的存储***中,存储资源经过了复杂的组织,需要大量的元数据对存储资源之间的组织结构进行描述。
在现有技术中,一般是将存储***中几块物理硬盘设置为保险盒,将元数据集中式的存放在保险盒中。但是,若保险盒硬盘出现故障,则元数据可能大面积丢失。这种元数据管理方式很难实现对故障物理硬盘中元数据的重构。
发明内容
本申请的多个方面提供一种元数据管理与数据重构方法、设备及存储介质,用以在物理硬盘的属性描述区保存同一硬盘域下的各物理硬盘的标识(Identity,ID),可实现对故障物理硬盘数据的快速索引和重构,有助于提高对元数据的重构速度。
本申请实施例提供一种元数据管理方法,应用于存储***中,所述存储***包括至少两个存储节点,每个存储节点包括若干块物理硬盘,所述方法包括:
当在所述至少两个存储节点上创建硬盘域时,在所述硬盘域包含的每个物理硬盘的属性描述区内分别记录所述硬盘域的标识ID以及所述硬盘域包含的各物理硬盘的ID,所述硬盘域包括每个存储节点中的至少一块物理硬盘;
将所述硬盘域包含的每个物理硬盘中除所述属性描述区之外的区域划分为大小相同的分块并形成分块组,其中,一个分块组包括每个存储节点中的一个分块;
当在所述硬盘域包含的分块组上组建存储池时,在所述硬盘域包含的每个物理硬盘的属性描述区内,记录所述存储池与所述硬盘域的所属关系及所述存储池与其包含的分块组之间的映射关系。
本申请实施例还提供一种数据重构方法,应用于存储***中,所述存储***包括至少两个存储节点,每个存储节点包括若干块物理硬盘,所述方法包括:
当所述至少两个存储节点中出现故障物理硬盘时,确定所述故障物理硬盘上的故障区域;
若所述故障区域包含所述故障物理硬盘上的分块,则根据可用物理硬盘的属性描述区内所记录的硬盘域中各存储池与其包含的分块组之间的映射关系,确定所述故障区域中包含的分块所属的目标分块组所述可用物理硬盘为所述故障物理硬盘所属的硬盘域下的物理硬盘;
根据所述目标分块组中其它分块存储的数据重构出所述故障区域中包含的分块中存储的数据。
本申请实施例还提供一种电子设备,应用于存储***中,所述存储***包括至少两个存储节点,每个存储节点包括若干块物理硬盘;所述电子设备包括:内存和处理器;其中,所述内存,用于存储计算机程序;
所述处理器耦合至所述存储器,用于执行所述计算机程序以用于:
当在所述至少两个存储节点上创建硬盘域时,在所述硬盘域包含的每个物理硬盘的属性描述区内分别记录所述硬盘域的ID以及所述硬盘域包含的各物理硬盘的ID,所述硬盘域包括每个存储节点中的至少一块物理硬盘;
将所述硬盘域包含的每个物理硬盘中除所述属性描述区之外的区域划分为大小相同的分块并形成分块组,其中,一个分块组包括每个存储节点中的一个分块;
当在所述硬盘域包含的分块组上组建存储池时,在所述硬盘域包含的每个物理硬盘的属性描述区内,记录所述存储池与所述硬盘域的所属关系及所述存储池与其包含的分块组之间的映射关系。
本申请实施例还提供一种电子设备,用于对存储***中的数据进行重构,存储***包括至少两个存储节点,每个存储节点包括若干块物理硬盘,所述电子设备包括:内存和处理器;其中,所述内存,用于存储计算机程序;
所述处理器耦合至所述内存,用于执行所述计算机程序以用于:
当所述至少两个存储节点中出现故障物理硬盘时,确定所述故障物理硬盘上的故障区域;
若所述故障区域包含所述故障物理硬盘上的分块,则根据可用物理硬盘的属性描述区内所记录的硬盘域中各存储池与其包含的分块组之间的映射关系,确定所述故障区域中包含的分块所属的目标分块组,所述可用物理硬盘为所述故障物理硬盘所属的硬盘域下的物理硬盘;
根据所述目标分块组中其它分块存储的数据重构出所述故障区域中包含的分块中存储的数据。
本申请实施例还提供一种存储有计算机指令的计算机可读存储介质,当所述计算机指令被一个或多个处理器执行时,致使所述一个或多个处理器执行上述元数据管理方法中的步骤。
本申请实施例还提供一种存储有计算机指令的计算机可读存储介质,当所述计算机指令被一个或多个处理器执行时,致使所述一个或多个处理器执行上述数据重构方法中的步骤。
在本申请实施例中,采用RAID技术对存储***中的存储资源进行组织管理,针对存储***中的硬盘域,将硬盘域中的元数据按照RAID技术进行组织管理,在创建硬盘域时,将硬盘域的ID和该硬盘域下各物理硬盘的ID存储在各硬盘的属性描述区中;在组建存储池时,将存储池与硬盘域的所属关系以及存储池与其包含的分块组之间的映射关系存储至各硬盘的属性描述区。基于这样的元数据组织结构,当硬盘域下的物理硬盘出现硬盘故障时,可根据属性描述区中存储的信息,快速索引出与故障物理硬盘中的分块属于同一分块组的其他分块,有助于提高对故障物理硬盘中存储的数据的重构速度。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例提供的一种存储***的结构示意图;
图2a为本申请实施例提供的一种对物理硬盘的存储空间进行管理的结构示意图;
图2b为本申请实施例提供的一种属性描述区的存储结构示意图;
图2c为本申请实施例提供的一种元数据分块组索引列表的存储结构示意图;
图2d为本申请实施例提供的一种对条带进行资源管理的结构示意图;
图3为本申请实施例提供一种元数据管理方法的流程示意图;
图4为本申请实施例提供一种数据重构方法的流程示意图;
图5为本申请实施例提供的一种电子设备的结构示意图;
图6为本申请实施例提供的另一种电子设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
针对现有元数据管理方式对元数据进行重构的速度较慢的技术问题,本申请实施例提供一种解决方案,基本思路是:在对存储***的元数据进行存储时,不仅将硬盘域的ID和该硬盘域下各物理硬盘的ID存储在各硬盘的属性描述区中,而且将存储池与硬盘域的所属关系以及存储池与其包含的分块组之间的映射关系存储至各硬盘的属性描述区。基于这样的元数据存储结构,当硬盘域下的物理硬盘出现硬盘故障时,可根据属性描述区中存储的信息,快速索引出与故障物理硬盘中的分块属于同一分块组的其他分块,并利用该分块组中其他分块中存储的数据对故障分块中的数据进行重构,有助于提高对故障物理硬盘中存储的数据的进行重构的速度。
以下结合附图,详细说明本申请各实施例提供的技术方案。
图1为本申请实施例提供的一种存储***的结构示意图。如图1所示,该存储***S10包括:至少两个存储节点100,且每个存储节点100包括若干个物理硬盘101。物理硬盘101包括但不局限于:固态硬盘、机械硬盘、混合硬盘等。
其中,存储***S10是指由存放程序和数据的各种存储设备、控制部件及管理信息调度的设备(硬件)和算法(软件)所组成的***。存储***S10可以对存储节点100的存储资源(如物理硬盘)进行集中管理。
存储节点100,是一个连接到网络的有源电子设备,能够通过通信通道发送、接收或转发信息,且其上存在一块或多块物理硬盘。存储节点100可以是服务器、工作站等,但不限于此。
在本申请实施例中,该存储***S10采用RAID2.0技术进行存储资源的管理。RAID2.0技术的基本思想如下:
第1步:在每个存储节点100包括的物理硬盘101中各选择至少一块物理硬盘101组建成一个硬盘域。
在一可选实施方式中,可在每个存储节点100包含的物理硬盘101中各选择其中的一部分组成一个硬盘域。其中,一个硬盘域所包含的同一个存储节点的物理硬盘的数量可根据实际需求进行灵活设置。
在另一可选实施方式中,可将所有存储节点100包含的所有物理硬盘101组建成一个硬盘域。
第2步:在组建硬盘域之后,将硬盘域中的各物理硬盘101按照固定的存储空间切割成若干个更小的分块(chunk)。其中,分块的大小可根据实际需求进行灵活设置。
第3步:在所组建的硬盘域下,从每个存储节点100中各选择一个分块,这些分块便组成一个分块组(chunk group)。例如,如图1所示,假设存储***包括3个存储节点,其中存储节点0包括硬盘D0和D1两块硬盘;存储节点1包括硬盘D2、D3和D4三块硬盘;存储节点2包括硬盘D5和D6两块硬盘。则,可将存储节点0中的硬盘D0上的chunk0、存储节点1中的硬盘D2上的chunk2和存储节点2中的硬盘D5上的chunk1组成一个分块组chunk group0;将存储节点0中的硬盘D1上的chunk0、存储节点1中的硬盘D3上的chunk2和存储节点2中的硬盘D6上的chunk1组成一个分块组chunk group1等等。
第4步:在所组建的硬盘域下,进一步可以选择若干个分块组组建成存储池。若干个可以是一个,也可以是多个,具体根据应用需求而定,对此不做限定。一个硬盘域下,存储池可以有一个,也可以有多个。
根据上述存储***对存储资源的管理方式可知,对于一个硬盘域,其下可以组建形成一个或多个存储池,而每个存储池包括一个或多个分块组,而一个分块组又包括各个存储节点中的一个分块。对于不同存储池来说,还可采用不同的RAID级别进行管理。基于这种存储资源管理方式,存储资源经过了复杂的组织,因此需要大量的元数据对存储资源进行管理。
针对上述对存储资源进行管理所需的元数据,本申请提供一种新的管理方式,其大致原理是:将硬盘域中的元数据按照RAID技术进行组织管理,并存储到硬盘域中各个物理硬盘上,达到备份目的。主要包括:在至少两个存储节点100上创建硬盘域时,将硬盘域的ID和该硬盘域下各物理硬盘的ID存储在各硬盘的属性描述区中;在组建存储池时,将存储池与硬盘域的所属关系以及存储池与其包含的分块组之间的映射关系存储至各硬盘的属性描述区。
进一步,当用户向存储池中写入待写入数据时,还可以采用RAID2.0技术离散地将该待写入数据对应的逻辑地址和物理地址的映射树以及该映射树对应的冗余检查信息,存储在同一分块组的各分块上,进而实现了这部分元数据在存储***上的离散分布。
基于上述元数据管理方式,当硬盘域下的某一块或几块硬盘出现故障时,便可结合上述硬盘域下的可用物理硬盘的属性描述区内存储的元数据信息,快速索引出与故障物理硬盘中的故障分块属于同一分块组的其他分块,并利用该分块组中其他分块中存储的数据对故障分块中的数据进行重构,有助于提高对故障物理硬盘中存储的数据的进行重构的速度。
下面结合上述图1中所述的对存储资源进行管理的方式,对元数据的存储结构进行详细描述。
对于同一个硬盘域下的任一块物理硬盘,如图2a所示,在该物理硬盘上设置固定容量的空间,作为属性描述区,用以填写其所属的硬盘域的部分元数据信息。其中,属性描述区所占物理硬盘的空间的大小,可根据实际需求进行灵活设置,在本申请实施例中不进行限制。
图2b为本申请实施例提供的一种属性描述区的存储结构示意图。如图2b所示,硬盘域的信息包括但不局限于:硬盘域的ID(dd-id)、硬盘域名字(Name[])、硬盘域的健康状态(state)、属于同一个硬盘域下的硬盘ID链表即各硬盘的ID(vdav-tree)、硬盘域下存储池的个数(vdav-pool-number)以及硬盘域下所有存储池的描述信息(storage-res[])等。其中,存储池的描述信息用于描述各存储池与其包含的分块组之间的映射关系以及该各存储池所采用的RAID类型,RAID类型包括采用的RAID等级,例如RAID0、RAID1、RAID5等,但不限于此。其中,RAID等级为本领域的公知技术,在此不再赘述。如图2b所示,硬盘域下所有存储池的描述信息还包括:快速启动区数据的校验信息(Checksum)、硬盘的逻辑ID号(Disk-id)、各chunk在分块组中的逻辑位置(Rl-id)以及各chunk在硬盘上的偏移位置(offest)等,但不限于此。其中,快速启动区保存的是一个存储池下所拥有的分块组中的分块与其物理地址的映射表,即下文的元数据分块组索引列表。当存储***重新启动时,快速启动区可将该映射表读取出来,进而可快速得到该存储池的分块组中各分块的物理地址。
可选地,对于同一块物理硬盘,其上的属性描述区可以为1个也可为多个。为了提高属性描述区所存储信息的可靠性,优选地,可设置多个属性描述区,各属性描述区中存储的信息相同,可用于属性描述区之间相互备份。例如,一块物理硬盘可有2个属性描述区,2个属性描述区中的信息相同,用于相互备份。这样,一旦某个属性描述区损坏时,还可利用其它属性描述区进行硬盘域信息的存储。
如图2a所示,对于同一个硬盘域下的任一块物理硬盘,可以将除上述属性描述区之外的区域划分为大小相同的分块。每一个分块用于与其他各存储节点下的物理硬盘中的一个分块,组成一个分块组,用以存储其它元数据和用户数据。
可选地,针对一个硬盘域下的任一块物理硬盘,为了便于对物理硬盘存储资源的管理,可将该物理硬盘中的每2n个分块划分为一个分块队列,其中,n是正整数。例如,每1024个分块作为一个分块队列。
进一步,每一个分块队列中的2n个分块可分别划分到2n个分块组中,也就是说这2n个分块属于不同的分块组。进一步,可在每一个分块队列的头部记录该分块队列中的2n个分块分别属于的分块组的描述信息;其中分块组的描述信息包括该分块队列中的2n个分块分别所属的分块组与该分块组包含的分块之间的映射关系,即分块组ID与该分块组包含的各分块所属硬盘的ID以及在所属硬盘中的偏移地址等信息。这样,当一块或多块硬盘发生故障时,也可从非故障物理硬盘上的分块队列的头部记录的信息,确定与故障物理硬盘中的故障分块属于同一分块组的其他分块,可进一步提高对故障物理硬盘进行重构的可靠性。
进一步,在本申请实施例中,属性描述区中所存储的硬盘域的描述信息还包括该物理硬盘所属的硬盘域下的存储池的描述信息。其中,一个存储池的描述信息表示该存储池与其包含的分块组之间的映射关系,可存储在一张元数据分块组索引列表(Metadatachunk group)中。其中,元数据分块组索引列表的结构示意图,如图2c所示。其中,Chunk-g0-Chunk-gN是对该存储池所包含的分块组中的各分块进行重新编号而形成的,且同一分块组中的各分块相邻。例如,Chunk-g0可以为图1中的硬盘D5中编号为2的分块chunk2,Chunk-g1可以为图1中的硬盘D0中编号为0的分块chunk1等。例如,存储池包括3个分块组,每个分块组包含3个分块,则Chunk-g0-Chunk-g2表示一个分块组;Chunk-g3-Chunk-g5表示另一个分块组等等。该元数据分块组索引列表中用于存储该存储池所包含的分块组中的各分块分别所属的物理硬盘的硬盘ID(Disk-id)以及该分块在此物理硬盘上的地址偏移(Chunk-offset),通俗地讲为,该分块为此物理硬盘的第几个分块。
再进一步,在本申请实施例中,针对任一个分块,每个分块进一步划分为若干个大小相等的条带,其中每个条带的大小可根据实际需求,进行灵活设置。如图2d所示,对于任一个条带,又可划分为若干个超级块(uberblk),用以存储用户写入的待写入数据以及写入待写入数据时产生的各种元数据,例如,待写入数据对应的逻辑地址和物理地址的映射树以及该映射树对应的冗余检查信息等。其中,物理地址表示实际存储待写入数据时的分块组的信息。
值得说明的是,在本申请实施例中,图2a-图2c所示的属性描述区中存储的硬盘域描述信息以及用户访问待访问空间(例如,向某个存储池写入待写入数据)时所产生的各种元数据等都属于硬盘域中的元数据。
基于图1所示的存储***的资源组织结构划分以及图2a-图2d所示的对元数据进行组织管理的格式,本申请实施例提供一种元数据管理方法,应用于图1所示的存储***中,可对图1所示的存储***中的元数据进行存储。该存储***包括至少两个存储节点,每个存储节点包括若干块物理硬盘。如图3所示,该方法包括:
301、当在至少两个存储节点上创建硬盘域时,在该硬盘域包含的每个物理硬盘的属性描述区内分别记录该硬盘域的ID以及该硬盘域包含的各物理硬盘的ID,其中,硬盘域包括每个存储节点中的至少一块物理硬盘。
302、将硬盘域包含的每个物理硬盘中除属性描述区之外的区域划分为大小相同的分块并形成分块组,其中,一个分块组包括每个存储节点中的一个分块。
303、当在硬盘域包含的分块组上组建存储池时,在该硬盘域包含的每个物理硬盘的属性描述区内记录存储池与硬盘域的所属关系及存储池与其包含的分块组之间的映射关系。
在本实施例中,硬盘域是基于上述实施例中的第1步建立的,该硬盘域包括存储***中每个存储节点上的至少一块物理硬盘,其组建过程可见上述实施例中第1步的相关描述,在此不再赘述。在步骤301中,基于图2a所示的硬盘组织结构,在硬盘域下每个物理硬盘的属性描述区内分别记录硬盘域的ID以及该硬盘域包含的各物理硬盘的ID。可选地,也可在每个物理硬盘的属性描述区记录该硬盘域包含的除自身外的其他各物理硬盘的ID。这样,当某一块或多块硬盘故障时,便可根据其他非故障物理硬盘的属性描述区记录的各物理硬盘的ID和硬盘域的ID,确定故障物理硬盘所属的硬盘域以及该硬盘域包含的各物理硬盘。可选地,可遍历所有非故障物理硬盘的属性描述区中的各物理硬盘ID,查找出包含有故障物理硬盘ID的物理硬盘,进而确定包含有故障物理硬盘ID的物理硬盘与故障物理硬盘属于同一硬盘域,并根据包含有故障物理硬盘ID的物理硬盘的属性描述区记录的硬盘域ID,确定包含有该硬盘域的ID的其他物理硬盘。至此,便可确定出故障物理硬盘所属的硬盘域以及该硬盘域包含的各物理硬盘。
在步骤302中,形成分块组的具体实施形式可参见上述实施例中第3步的相关描述,在此不再赘述。
进一步,在步骤303中,当用户向存储***中写入待写入数据时,需要预先创建存储池,其中,一个存储池包括若干个分块组。其中分块组的数量可根据用户实际需求进行灵活设置,在此不做限定。进一步,在创建存储池时,在硬盘域包含的每个物理硬盘的属性描述区内记录该存储池与其包含的分块组之间的映射关系以及该存储池与硬盘域的所属关系。这样,当某块或某些硬盘出现故障时,便可在上述确定出的硬盘域的基础上,根据存储池与硬盘域的所属关系,确定出故障物理硬盘所属的存储池;进一步,根据存储池与其包含的分块组之间的映射关系,确定出与故障物理硬盘中的故障分块属于同一分块组的其他分块,进而可根据确定出的其他分块中存储的数据,重构出该分块组中的故障分块中存储的数据。
可选地,在创建存储池时,还可将该存储池采用的RAID等级记录在该存储池包含的各分块组中的各分块分别属于的物理磁盘的属性描述区。这样,当用户向该存储池中写入待写入数据时,可根据其采用的RAID等级对各分块组灵活设置冗余检查位,即设置几位冗余检查位、各冗余检查位设置于同一分块组的哪个分块上。
除上述硬盘域的ID、该硬盘域下各物理硬盘的ID、存储池与所述硬盘域的所属关系及存储池与其包含的分块组之间的映射关系之外,物理硬盘的属性描述区中还可以记录下述至少一种信息:该硬盘的容量、所属的硬盘域名字、所属的硬盘域的健康状态、所属的硬盘域包含的硬盘的数量、用于组建分块组的算法的变量、每个分块组中的热备策略、每个分块组的硬盘数量、所属硬盘域下存储池的个数以及该硬盘域下所有存储池的描述信息等,但不限于此。其中,用于组建分块组的算法表示如何组建一个分块组,其目的是使用户数据以及用户数据写入时产生的元数据均衡地分布到每个存储节点上。每个分块组中的热备策略是指每个分块组可以保留多少个分块作为冗余块。
在本实施例中,采用RAID技术对存储***中的存储资源进行组织管理,针对存储***中的硬盘域,将硬盘域中的元数据按照RAID技术进行组织管理,在创建硬盘域时,将硬盘域的ID和该硬盘域下各物理硬盘的ID存储在各硬盘的属性描述区中;在组建存储池时,将存储池与硬盘域的所属关系以及存储池与其包含的分块组之间的映射关系存储至各硬盘的属性描述区。基于这样的元数据组织结构,当硬盘域下的物理硬盘出现硬盘故障时,可根据属性描述区中存储的信息,快速索引出与故障物理硬盘中的分块属于同一分块组的其他分块,并利用该分块组中其他分块中存储的数据对故障分块中的数据进行重构,有助于提高对故障物理硬盘中存储的数据的进行重构的速度。
在一可选实施例中,在上述步骤303中创建的存储池时,在硬盘域包含的每个物理硬盘的属性描述区内创建该存储池对应的元数据分块组索引列表。其中,元数据分块组索引列表存放该存储池包含的各分块组中各分块所属物理硬盘的ID及各分块在所属物理硬盘中的地址偏移。其中,元数据分块组索引列表以及相关描述可参见上述图2c以及对图2c的相关描述,在此不再赘述。
在一可选实施例中,基于图2a所示的将物理硬盘除上述属性描述区之外的区域划分为大小相同的分块的划分结构,为了便于对物理硬盘存储资源的管理,步骤302的一种可选实施方式为:将硬盘域包含的每个物理硬盘中的每2n个分块划分为一个分块队列,其中,n是正整数。例如,n=10时,每1024个分块作为一个分块队列。
进一步,将每一个分块队列中的2n个分块分别划分到2n个分块组中,也就是说这2n个分块属于不同的分块组。进一步,可在每一个分块队列的头部记录该分块队列中的2n个分块分别属于的分块组的描述信息;其中分块组的描述信息包括:该分块队列中的2n个分块分别所属的分块组、该分块组包含的分块之间的映射关系,即分块组ID、该分块组包含的各分块所属硬盘的ID以及在所属硬盘中的偏移地址等信息。这样,当一块或多块硬盘发生故障时,也可从非故障物理硬盘的每个分块队列的头部,确定与故障物理硬盘中的故障分块属于同一分块组的其他分块,可进一步提高对故障物理硬盘进行重构的可靠性。
进一步,当向存储池中写入待写入数据时,不仅需要存储待写入数据,还需要记录写入待写入数据所产生的元数据。元数据包括去重域查询树、逻辑地址映射查询树、逻辑段使用情况等。其中,去重域查询树是指在一个存储池下,与已写入过的数据相同的数据就不再写入,而是增加一个对应的索引。例如,用户的逻辑地址0写入数据块A,之后又对逻辑地址5写入数据块A。由于这两个数据块的内容是相同的,存储池就不会再重复写入,而是增加逻辑地址5和数据块A的物理地址的索引;逻辑地址映射查询树主要描述一个逻辑地址、数据存放的物理地址或去重域查询树上的指纹,如上例,映射树描述的就是逻辑地址0对应的数据块的指纹,其中数据块的指纹为可以唯一标识该数据块的信息;逻辑段使用情况是指:存储池下的各分块组中的各分块上的条带使用情况,也就是描述某条带是否已被写入数据,或者该条带是空闲的。此外,元数据还包括:待写入数据对应的逻辑地址和物理地址的映射树、将该映射树记录在分块组时,根据该存储池的RAID等级和预设的冗余检查算法产生的冗余检查信息等。其中,对用户写入的数据的存储属于现有技术,在本申请实施例中不再赘述。下面以记录待写入数据对应的逻辑地址和物理地址的映射树和相应的冗余检查信息为例,对向存储池中写入待写入数据时产生的元数据的管理方式进行示例性说明。
可选地,当向存储池中写入待写入数据时,在存储池中选择一个空闲的目标分块组,并在该目标分块组中存储待写入数据对应的逻辑地址和物理地址的映射树的根地址、该根地址对应的冗余检查信息,其中,物理地址为实际存储待写入数据的分块组的信息。其中,对于空闲的目标分块组的选取,可选择任一个空闲的分块组作为目标分块组,也可指定某个空闲的分块组作为目标分块组,例如指定存储池的第一个分块组(chunk group0)作为目标分块组,用以记录各种元数据的根地址。
需要说明的是,在本申请实施例中,空闲的目标分块组是指分块组中的各分块的条带尚有空闲的分块组,其可以指分块组中的各分块中的全部条带是空闲的,也可以为分块组中的各分块中的部分条带是空闲的。
进一步,考虑到逻辑地址映射查询树的根地址的大小一般较小,可将空闲的条带进一步划分为若干个超级块(uberblk),用以存放根地址,其中条带划分的结构示意图见上图2d。基于此,在将待写入数据对应的逻辑地址和物理地址的映射树的根地址、该根地址对应的冗余检查信息存储在目标分块组时,可从目标分块组包含的条带中选择空闲的条带作为目标条带;并将从目标条带包含的超级块中,选择空闲的超级块作为目标超级块;将逻辑地址和物理地址的映射树的根地址、该根地址对应的冗余检查信息写入所述目标超级块。
如图2d所示,根地址至少包括以下至少一种信息:目标超级块的检查信息(checksum)、目标超级块的魔数(magic)、目标超级块的版本号信息(version)、写入该目标超级块的时间戳(ts)、目标超级块写入的检查点(Cpn)、该检查点下逻辑地址查询树的物理地址(ipl-root)、该检查点下的检查点查询树的物理地址(cppdl-root)、该检查点下的去重域查询树的物理地址(fppdl-root)以及该检查点下的条带使用情况查询树的物理地址(supdl-root)等。其中,一个超级块可以看做一个检查点,目标超级块的检查信息用于检查该超级块中的数据是否正确。进一步,对于待写入数据对应的逻辑地址和物理地址的映射树除根地址之外的其他信息,例如该映射树的各分支、各分支的叶结点等将其依次存放在其他空闲的目标分块组中。相应地,当存放这些信息时,同一分块组中作为冗余检查的分块记录相应的冗余检查信息。
其中,冗余检查信息是根据预设的冗余检查算法,对同一分块组中除作为冗余检查的分块中其他分块中记录的元数据进行计算获得的。其中,冗余检查算法包括:异或检查、奇偶检查、循环冗余检查等,但不限于此。
相应地,本申请实施例还提供一种存储有计算机指令的计算机可读存储介质。当该计算机指令被一个或多个处理器执行时,致使一个或多个处理器执行上述对存储***中的元数据进行存储的方法中的各步骤。
基于图1所示的存储***的结构划分以及图2a-图2d所示的存储***中的物理硬盘对元数据进行存储的格式,本申请实施例还提供一种数据重构方法,应用于存储***中,可对存储***中的数据进行重构,其中存储***中的数据包括用户数据和元数据。该方法适用于对图1所示的存储***中的元数据进行存储。该存储***包括至少两个存储节点,每个存储节点包括若干块物理硬盘。如图4所示,该方法包括:
401、当至少两个存储节点中出现故障物理硬盘时,确定故障物理硬盘上的故障区域。
402、若故障区域包含故障物理硬盘上的分块,则根据可用物理硬盘的属性描述区内所记录的硬盘域中各存储池与其包含的分块组之间的映射关系,确定故障区域中包含的分块所属的目标分块组,可用物理硬盘为所述故障物理硬盘所属的硬盘域下的物理硬盘。
403、根据故障分块所属的目标分块组中其它分块存储的数据,重构出故障区域中包含的分块中存储的数据。
在本实施例中,首先确定出故障物理硬盘上的故障区域,并根据硬盘域下的可用物理硬盘的属性描述区内所记载的硬盘域中各存储池与其包含的分块组之间的映射关系,快速确定出故障区域中包含的分块分别所属的目标分块组。其中,可用物理硬盘指的是属性描述区没有损坏的硬盘,可以为该硬盘域下的除故障物理硬盘之外的其他物理硬盘,也可为该硬盘域下属性描述区没有损坏的故障物理硬盘。接着,便可根据目标分块组中其他分块存储的数据重构出故障区域中包含的分块中存储的数据,进而提高对故障区域中所存储的数据的重构,减小数据丢失的风险。
值得说明的是,在本实施例中,不限定可以同时重构的故障物理硬盘的数量,其数量可以根据对数据进行存储时所采用的RAID等级进行确定。一般故障物理硬盘的故障区域所属的存储池采用的RAID等级需要几个冗余检查位,则可同时对几块硬盘进行重构。例如,如果故障物理硬盘的故障区域所属的存储池采用的RAID等级允许一个冗余检查位,则本实施例所提供的数据重构方法可对1块故障物理硬盘中的故障区域进行重构。
还值得说明的是,本申请实施例所提供的数据重构方法不仅适用于对整块硬盘损坏的情况进行重构,也同样适用于对某块或某些硬盘的部分区域故障的情况。对于整块硬盘损坏的情况,例如,该物理硬盘被拆离存储节点、该物理硬盘被电击而导致内部硬件烧坏等,该故障物理硬盘所属的存储节点会向所隶属的存储***输出该物理硬盘的报错信息。基于此,在步骤401之前,可根据存储***管辖下的至少两个存储节点在无法识别到物理硬盘时输出的报错信息,确定无法被识别到的物理硬盘为故障物理硬盘。
而对于某块或某些硬盘的部分区域故障的情况,如果不对该故障区域进行访问,存储***则无法识别到该物理硬盘存在故障。而当用户访问到该故障区域时,用户无法正常访问,存储***则会识别到该物理硬盘使用异常。基于此,在步骤401之前,还可检测存储***管辖下的至少两个存储节点上的物理硬盘的使用状态,确定使用状态异常的物理硬盘作为故障物理硬盘。其中,使用状态异常是指用户无法正常向该物理硬盘进行访问,即无法正常的向该物理硬盘进行数据的读写。
进一步,由于用户访问物理硬盘的存储空间,是以存储池为单位,即是向存储池写入待写入数据或从待访问存储池中读取数据的。对于存储***来说,用户当前访问是针对哪个存储池进行访问是已知确定的。基于此,若确定故障物理硬盘为使用状态异常的物理硬盘,则步骤402中确定故障区域中包含的分块所属的目标分块组的一种可选实施方式为:根据故障物理硬盘对应的访问指令确定待访问存储池;根据硬盘域下的非故障物理硬盘的属性描述区内所记录的硬盘域中各存储池与其包含的分块组之间的映射关系,确定待访问存储池包含的分块组;从待访问存储池包含的分块组中,识别出故障区域中包含的分块所属的分块组,作为目标分块组。
进一步,可根据硬盘域下的非故障物理硬盘的属性描述区内所记录的硬盘域中各存储池的元数据分块组索引列表,确定待访问存储池的元数据分块组索引列表;根据待访问存储池的元数据分块组索引列表,确定待访问存储池包含的分块组。
需要说明的是,在本实施例中,如果故障物理硬盘的故障区域不包含该故障物理硬盘的属性描述区,则也可根据故障物理硬盘的属性描述区中记载的硬盘域中各存储池与其包含的分块组之间的映射关系,确定待访问存储池包含的分块组。进一步,还可根据故障物理硬盘的属性描述区内所记录的所述硬盘域中各存储池的元数据分块组索引列表,确定待访问存储池的元数据分块组索引列表。
考虑到故障区域可能为待访问存储池中属于该故障物理硬盘的部分分块,为了防止对没有损坏的分块中的数据进行重构,可从待访问存储池包含的分块组中,识别出故障区域中包含的分块所属的分块组,作为目标分块组。在一可选实施方式中,可设置一个读指令,并分别读取故障物理硬盘在该存储池中的各分块,若能够正常读取该分块中的数据,则说明该分块正常;若不能读取该分块中的数据,则说明该分块故障。在另一可选实施方式中,可根据存储池中包含的分块组所采用的冗余检查算法对该分块组是否故障进行检查,进而确定出故障区域中包含的分块所属的分块组。具体实施方式为:若故障物理硬盘在待访问存储池中的分块为冗余检查位,则根据对应的冗余检查算法,将对待访问存储池中的各分块组中的其他分块中的数据代入相应的公式,进行正向冗余检查计算,若得到的结果与冗余检查位中的冗余检查信息相同,则说明该分块组正常;若得到的结果无法与该分块组中的作为冗余检查位的分块进行比较,即无法读取冗余检查位信息,则说明该分块组故障。进一步,若故障物理硬盘在待访问存储池中的分块为非冗余检查位,则根据对应的冗余检查算法,将对待访问存储池中的各分块组中的其他分块中的数据(包括冗余检查信息)代入相应的公式,进行正向冗余检查逆计算,若得到的结果与故障物理硬盘位于该分块组中的分块存储的数据相同,则说明该分块组正常;若得到的结果无法与故障物理硬盘位于该分块组中的分块进行比较,即无法读取该分块组中的故障物理硬盘的分块,则说明该分块组故障。
然而,对于故障物理硬盘是无法识别到的物理硬盘的情况,也就不存在用户对故障物理硬盘的访问。若故障物理硬盘是无法被识别到的物理硬盘,则步骤402中确定故障区域中包含的分块所属的目标分块组的一种可选实施方式为:确定故障物理硬盘所属的硬盘域;根据该硬盘域下的非故障物理硬盘的属性描述区内所记录的硬盘域中各存储池与其包含的分块组之间的映射关系,确定硬盘域包含的各存储池中故障物理硬盘的分块的分块组,分别作为目标分块组。在此类情况下,包含有故障物理硬盘的分块的所有分块组都可为目标分块组。
进一步,可遍历所有非故障物理硬盘的属性描述区中的各物理硬盘ID,查找出包含有故障物理硬盘ID的物理硬盘,进而确定包含有故障物理硬盘ID的物理硬盘与故障物理硬盘属于同一硬盘域,并根据包含有故障物理硬盘ID的物理硬盘的属性描述区记录的硬盘域的ID,确定包含有该硬盘域的ID的其他物理硬盘。至此,便可确定出故障物理硬盘所属的硬盘域以及该硬盘域包含的各物理硬盘。
进一步,基于图2c所示的元数据分块组索引列表,可根据确定的硬盘域下的非故障物理硬盘的属性描述区内所记录的该硬盘域中各存储池的元数据分块组索引列表,确定包含有故障物理硬盘分块的存储池的元数据分块组索引列表;根据包含有故障物理硬盘分块的元数据分块组索引列表,确定包含有故障物理硬盘分块的分块组。
值得说明的是,在本申请实施例中,无论故障物理硬盘是无法被识别到的物理硬盘,还是使用状态异常的物理硬盘,对于分块组中的故障分块中存储的数据的重构的方法是相同的,都可根据目标分块组中其它分块存储的数据重构出故障区域中包含的分块中存储的数据。具体实施方式为:若故障区域中包含的分块中存储的数据是冗余检查信息,则按照目标分块组中其它分块存储的数据,对预设的冗余检查算法进行正向运算,以重构出故障区域中包含的分块中存储的冗余检查信息;若故障区域中包含的分块中存储的数据是非冗余检查信息,则按照目标分块组中其它分块存储的数据,对预设的冗余检查算法进行逆向运算,以重构出故障区域中包含的分块中存储的非冗余检查信息。
还值得说明的是,在本申请实施例中,如果物理硬盘的属性描述区出现故障,还可对属性描述区的存储数据进行重构。由于同一硬盘域下的各物理硬盘中存储有所属硬盘域的ID、硬盘域中的各物理硬盘的ID以及其他相同的信息。基于此,可根据故障物理硬盘所属硬盘域下的非故障物理硬盘的属性描述区中的内容,对故障物理硬盘的属性描述区中的内容进行重构。
相应地,本申请实施例还提供一种存储有计算机指令的计算机可读存储介质。当该计算机指令被一个或多个处理器执行时,致使一个或多个处理器执行上述对存储***中的数据进行重构的方法中的各步骤。
需要说明的是,上述实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤401和402的执行主体可以为设备A;又比如,步骤401的执行主体可以为设备A,步骤402的执行主体可以为设备B;等等。
另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如401、402等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。
图5为本申请实施例提供的一种电子设备的结构示意图。该电子设备可应用在存储***中,用于对存储***中的元数据进行存储,该存储***包括至少两个存储节点,每个存储节点包括若干块物理硬盘。如图5所示,电子设备包括:内存50a和处理器50b。
其中,50a内存,用于存储计算机程序。
处理器50b耦合至内存50a,用于执行所述计算机程序以用于:当在至少两个存储节点上创建硬盘域时,在该硬盘域包含的每个物理硬盘的属性描述区内分别记录该硬盘域的ID以及该硬盘域包含的各物理硬盘的ID,其中,硬盘域包括每个存储节点中的至少一块物理硬盘;将该硬盘域包含的每个物理硬盘中除属性描述区之外的区域划分为大小相同的分块并形成分块组,其中,一个分块组包括每个存储节点中的一个分块;当在该硬盘域包含的分块组上组建存储池时,在硬盘域包含的每个物理硬盘的属性描述区内记录该存储池与硬盘域的所属关系及该存储池与其包含的分块组之间的映射关系。
在一可选实施例中,处理器50a在将该硬盘域包含的每个物理硬盘中除属性描述区之外的区域划分为大小相同的分块时,还用于:将硬盘域包含的每个物理硬盘中每2n个分块划分为一个分块队列,将各个分块队列中的2n个分块分别划分到2n个分块组中,并在各个分块队列的头部中记录2n个分块组的描述信息;其中,2n个分块组的描述信息包括该2n个分块组分别与其包含的分块之间的映射关系;其中,n是正整数。
在另一可选实施例中,处理器50b在硬盘域包含的每个物理硬盘的属性描述区内记录存储池与其包含的分块组之间的映射关系时,具体用于:在硬盘域包含的每个物理硬盘的属性描述区内创建存储池对应的元数据分块组索引列表,该元数据分块组索引列表存放存储池包含的各分块组中各分块所属物理硬盘的ID及各分块在所属物理硬盘中的地址偏移。
在又一可选实施例中,处理器50b还用于:当向存储池中写入待写入数据时,在存储池中选择一个空闲的目标分块组,并在该目标分块组中存储待写入数据对应的映射树的根地址以及该根地址对应的冗余检查信息,其中,映射树为待写入数据对应的逻辑地址和物理地址的映射树;物理地址为实际存储所述待写入数据的分块组的信息。
进一步,处理器50b在在目标分块组中存储待写入数据对应的逻辑地址和物理地址的映射树的根地址和冗余检查信息时,具体用于:从目标分块组包含的条带中选择空闲的条带作为目标条带;从该目标条带包含的超级块中,选择空闲的超级块作为目标超级块;将逻辑地址和物理地址的映射树的根地址、该根地址对应的冗余检查信息写入目标超级块。
在一些可选实施方式中,如图5所示,该电子设备还可以包括:通信组件50c、电源组件50d、显示器50e以及音频组件50f等可选组件。图5中仅示意性给出部分组件,并不意味着电子设备必须包含图5所示全部组件,也不意味着电子设备只能包括图5所示组件。
本实施例提供的电子设备采用RAID技术对存储***中的存储资源进行组织管理,针对存储***中的硬盘域,将硬盘域中的元数据按照RAID技术进行组织管理,在创建硬盘域时,将硬盘域的ID和该硬盘域下各物理硬盘的ID存储在各硬盘的属性描述区中;在组建存储池时,将存储池与硬盘域的所属关系以及存储池与其包含的分块组之间的映射关系存储至各硬盘的属性描述区。基于这样的元数据组织结构,当硬盘域下的物理硬盘出现硬盘故障时,可根据属性描述区中存储的信息,快速索引出与故障物理硬盘中的分块属于同一分块组的其他分块,并利用该分块组中其他分块中存储的数据对故障分块中的数据进行重构,有助于提高对故障物理硬盘中存储的数据的进行重构的速度。
图6为本申请实施例提供的另一种电子设备的结构示意图。该电子设备应用于存储***中,可用于对存储***中的数据进行重构,该存储***包括至少两个存储节点,每个存储节点包括若干块物理硬盘。如图6所示,电子设备包括:内存60a和处理器60b。
其中,60a内存,用于存储计算机程序。
处理器60b耦合至内存60a,用于执行所述计算机程序以用于:当至少两个存储节点中出现故障物理硬盘时,确定故障物理硬盘上的故障区域;若故障区域包含故障物理硬盘上的分块,则根据可用物理硬盘的属性描述区内所记录的硬盘域中各存储池与其包含的分块组之间的映射关系,确定故障区域中包含的分块所属的目标分块组,可用物理硬盘为故障物理硬盘所属的硬盘域下的物理硬盘;根据目标分块组中其它分块存储的数据重构出故障区域中包含的分块中存储的数据。
在一可选实施例中,处理器60b还用于:监测至少两个存储节点上物理硬盘的使用状态,确定使用状态异常的物理硬盘作为故障物理硬盘;和/或根据至少两个存储节点在无法识别到物理硬盘时输出的报错信息,确定无法被识别到的物理硬盘作为故障物理硬盘。
进一步,若故障物理硬盘是使用状态异常的物理硬盘,则处理器60b在确定故障区域中包含的分块所属的目标分块组时,具体用于:根据故障物理硬盘对应的访问指令确定待访问存储池;根据硬盘域下的非故障物理硬盘的属性描述区内所记录的该硬盘域中各存储池与其包含的分块组之间的映射关系,确定待访问存储池包含的分块组;从待访问存储池包含的分块组中,识别出故障区域中包含的分块所属的分块组,作为目标分块组。
进一步,处理器60b在确定待访问存储池包含的分块组时,具体用于:根据硬盘域下的非故障物理硬盘的属性描述区内所记录的该硬盘域中各存储池的元数据分块组索引列表,确定待访问存储池的元数据分块组索引列表;根据待访问存储池的元数据分块组索引列表,确定待访问存储池包含的分块组。
在另一可选实施例中,若故障物理硬盘是无法被识别到的物理硬盘,则处理器60b在确定故障区域中包含的分块所属的目标分块组时,具体用于:确定故障物理硬盘所属的硬盘域;根据该硬盘域下的非故障物理硬盘的属性描述区内所记录的该硬盘域中各存储池与其包含的分块组之间的映射关系,确定该硬盘域包含的各存储池中包含有故障物理硬盘的分块的分块组,分别作为目标分块组。
在又一可选实施例中,若故障区域包括故障物理硬盘的属性描述区,处理器60b还用于:根据故障物理硬盘所属硬盘域下的非故障物理硬盘的属性描述区中的内容,对故障物理硬盘的属性描述区中的内容进行重构。
在再一可选实施例中,处理器60b在根据目标分块组中其它分块存储的数据重构出故障区域中包含的分块中存储的数据时,具体用于:若故障区域中包含的分块中存储的数据是冗余检查信息,则按照目标分块组中其它分块存储的数据,对预设的冗余检查算法进行正向运算,以重构出故障区域中包含的分块中存储的冗余检查信息;若故障区域中包含的分块中存储的数据是非冗余检查信息,则按照目标分块组中其它分块存储的数据,对预设的冗余检查算法进行逆向运算,以重构出故障区域中包含的分块中存储的非冗余检查信息。
在一些可选实施方式中,如图6所示,该电子设备还可以包括:通信组件60c、电源组件60d、显示器60e以及音频组件60f等可选组件。图6中仅示意性给出部分组件,并不意味着电子设备必须包含图6所示全部组件,也不意味着电子设备只能包括图6所示组件。
在本实施例中,电子设备可确定出故障物理硬盘上的故障区域,并根据硬盘域下的可用物理硬盘的属性描述区内所记载的硬盘域中各存储池与其包含的分块组之间的映射关系,快速确定出故障区域中包含的分块分别所属的目标分块组。之后,便可根据目标分块组中其他分块存储的数据重构出故障区域中包含的分块中存储的数据,进而提高对故障区域中所存储的数据的重构,减小数据丢失的风险。
在图5和图6中,内存用于存储计算机程序,并可被配置为存储其它各种数据以支持在电子设备上的操作。其中,处理器、可执行内存中存储的计算机程序,以实现相应控制逻辑。内存可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
在图5和图6中,通信组件被配置为便于电子设备和其他设备之间有线或无线方式的通信。电子设备可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播管理***的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件还可基于近场通信(NFC)技术,基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在图5和图6中,电源组件被配置为电子设备的各种组件提供电力。电源组件可以包括电源管理***,一个或多个电源,及其他与为电源组件所在设备生成、管理和分配电力相关联的组件。
在图5和图6中,显示器包括屏幕,其屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。
在图5和图6中,音频组件可被配置为输出和/或输入音频信号。例如,音频组件包括一个麦克风(MIC),当音频组件所在设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器或经由通信组件发送。在一些实施例中,音频组件还包括一个扬声器,用于输出音频信号。
需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (15)

1.一种元数据管理方法,应用于存储***中,其特征在于,所述存储***包括至少两个存储节点,每个存储节点包括若干块物理硬盘,所述方法包括:
当在所述至少两个存储节点上创建硬盘域时,在所述硬盘域包含的每个物理硬盘的属性描述区内分别记录所述硬盘域的标识ID以及所述硬盘域包含的各物理硬盘的ID,所述硬盘域包括每个存储节点中的至少一块物理硬盘;
将所述硬盘域包含的每个物理硬盘中除所述属性描述区之外的区域划分为大小相同的分块并形成分块组,其中,一个分块组包括每个存储节点中的一个分块;
当在所述硬盘域包含的分块组上组建存储池时,在所述硬盘域包含的每个物理硬盘的属性描述区内,记录所述存储池与所述硬盘域的所属关系及所述存储池与其包含的分块组之间的映射关系。
2.根据权利要求1所述的方法,其特征在于,还包括:
将所述硬盘域包含的每个物理硬盘中每2n个分块划分为一个分块队列;
将各个分块队列中的2n个分块分别划分到2n个分块组中;
在各个分块队列的头部中记录2n个分块组的描述信息;所述2n个分块组的描述信息包括所述2n个分块组分别与其包含的分块之间的映射关系;其中,n是正整数。
3.根据权利要求1所述的方法,其特征在于,在所述硬盘域包含的每个物理硬盘的属性描述区内记录所述存储池与其包含的分块组之间的映射关系,包括:
在所述硬盘域包含的每个物理硬盘的属性描述区内创建所述存储池对应的元数据分块组索引列表,所述元数据分块组索引列表存放所述存储池包含的各分块组中各分块所属物理硬盘的ID及各分块在所属物理硬盘中的地址偏移。
4.根据权利要求1-3任一项所述的方法,其特征在于,还包括:
当向所述存储池中写入待写入数据时,在所述存储池中选择一个空闲的目标分块组;
在所述目标分块组中存储所述待写入数据对应的映射树的根地址和所述根地址对应的冗余检查信息,所述映射树为所述待写入数据对应的逻辑地址和物理地址的映射树,所述物理地址为实际存储所述待写入数据的分块组的信息。
5.根据权利要求4所述的方法,其特征在于,在所述目标分块组中存储所述待写入数据对应的映射树的根地址和所述根地址对应的冗余检查信息,包括:
从所述目标分块组包含的条带中选择空闲的条带作为目标条带;
从所述目标条带包含的超级块中,选择空闲的超级块作为目标超级块;
将所述映射树的根地址和所述冗余检查信息写入所述目标超级块。
6.一种数据重构方法,应用在存储***中,其特征在于,所述存储***包括至少两个存储节点,每个存储节点包括若干块物理硬盘,所述方法包括:
当所述至少两个存储节点中出现故障物理硬盘时,确定所述故障物理硬盘上的故障区域;
若所述故障区域包含所述故障物理硬盘上的分块,则根据可用物理硬盘的属性描述区内所记录的硬盘域中各存储池与其包含的分块组之间的映射关系,确定所述故障区域中包含的分块所属的目标分块组,所述可用物理硬盘为所述故障物理硬盘所属的硬盘域下的物理硬盘;
根据所述目标分块组中其它分块存储的数据,重构出所述故障区域中包含的分块中存储的数据。
7.根据权利要求6所述的方法,其特征在于,还包括:
监测所述至少两个存储节点上物理硬盘的使用状态,确定使用状态异常的物理硬盘作为所述故障物理硬盘;和/或
根据所述至少两个存储节点在无法识别到物理硬盘时输出的报错信息,确定无法被识别到的物理硬盘作为所述故障物理硬盘。
8.根据权利要求7所述的方法,其特征在于,若所述故障物理硬盘是使用状态异常的物理硬盘,则所述确定所述故障区域中包含的分块所属的目标分块组,包括:
根据所述故障物理硬盘对应的访问指令确定待访问存储池;
根据所述硬盘域下的非故障物理硬盘的属性描述区内所记录的所述硬盘域中各存储池与其包含的分块组之间的映射关系,确定所述待访问存储池包含的分块组;
从所述待访问存储池包含的分块组中,识别出所述故障区域中包含的分块所属的分块组,作为所述目标分块组。
9.根据权利要求8所述的方法,其特征在于,所述根据所述硬盘域下的非故障物理硬盘的属性描述区内所记录的所述硬盘域中各存储池与其包含的分块组之间的映射关系,确定所述待访问存储池包含的分块组,包括:
根据所述硬盘域下的非故障物理硬盘的属性描述区内所记录的所述硬盘域中各存储池的元数据分块组索引列表,确定所述待访问存储池的元数据分块组索引列表;
根据所述待访问存储池的元数据分块组索引列表,确定所述待访问存储池包含的分块组。
10.根据权利要求7所述的方法,其特征在于,若所述故障物理硬盘是无法被识别到的物理硬盘,则所述确定所述故障区域中包含的分块所属的目标分块组,包括:
确定所述故障物理硬盘所属的硬盘域;
根据所述硬盘域下的非故障物理硬盘的属性描述区内所记录的所述硬盘域中各存储池与其包含的分块组之间的映射关系,确定所述硬盘域包含的各存储池中包含有所述故障物理硬盘的分块的分块组,分别作为所述目标分块组。
11.根据权利要求7-10任一项所述的方法,其特征在于,还包括:
若所述故障区域包括所述故障物理硬盘的属性描述区,根据所述故障物理硬盘所属硬盘域下的非故障物理硬盘的属性描述区中的内容,对所述故障物理硬盘的属性描述区中的内容进行重构。
12.一种电子设备,应用于存储***中,所述存储***包括至少两个存储节点,每个存储节点包括若干块物理硬盘,其特征在于,所述电子设备包括:内存和处理器;其中,所述内存,用于存储计算机程序;
所述处理器耦合至所述内存,用于执行所述计算机程序以用于:
当在所述至少两个存储节点上创建硬盘域时,在所述硬盘域包含的每个物理硬盘的属性描述区内分别记录所述硬盘域的ID以及所述硬盘域包含的各物理硬盘的ID,所述硬盘域包括每个存储节点中的至少一块物理硬盘;
将所述硬盘域包含的每个物理硬盘中除所述属性描述区之外的区域划分为大小相同的分块并形成分块组,其中,一个分块组包括每个存储节点中的一个分块;
当在所述硬盘域包含的分块组上组建存储池时,在所述硬盘域包含的每个物理硬盘的属性描述区内记录所述存储池与所述硬盘域的所属关系及所述存储池与其包含的分块组之间的映射关系。
13.一种电子设备,应用于存储***中,其特征在于,所述存储***包括至少两个存储节点,每个存储节点包括若干块物理硬盘,所述电子设备包括:内存和处理器;其中,所述内存,用于存储计算机程序;
所述处理器耦合至所述内存,用于执行所述计算机程序以用于:
当所述至少两个存储节点中出现故障物理硬盘时,确定所述故障物理硬盘上的故障区域;
若所述故障区域包含所述故障物理硬盘上的分块,则根据可用物理硬盘的属性描述区内所记录的硬盘域中各存储池与其包含的分块组之间的映射关系,确定所述故障区域中包含的分块所属的目标分块组,所述可用物理硬盘为所述故障物理硬盘所属的硬盘域下的物理硬盘;
根据所述目标分块组中其它分块存储的数据,重构出所述故障区域中包含的分块中存储的数据。
14.一种存储有计算机指令的计算机可读存储介质,其特征在于,当所述计算机指令被一个或多个处理器执行时,致使所述一个或多个处理器执行权利要求1-5任一项所述的方法。
15.一种存储有计算机指令的计算机可读存储介质,其特征在于,当所述计算机指令被一个或多个处理器执行时,致使所述一个或多个处理器执行权利要求6-11任一项所述的方法。
CN201811333066.7A 2018-11-09 2018-11-09 元数据管理与数据重构方法、设备及存储介质 Active CN109542342B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811333066.7A CN109542342B (zh) 2018-11-09 2018-11-09 元数据管理与数据重构方法、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811333066.7A CN109542342B (zh) 2018-11-09 2018-11-09 元数据管理与数据重构方法、设备及存储介质

Publications (2)

Publication Number Publication Date
CN109542342A CN109542342A (zh) 2019-03-29
CN109542342B true CN109542342B (zh) 2022-04-26

Family

ID=65846603

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811333066.7A Active CN109542342B (zh) 2018-11-09 2018-11-09 元数据管理与数据重构方法、设备及存储介质

Country Status (1)

Country Link
CN (1) CN109542342B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110703988B (zh) * 2019-08-31 2022-07-22 苏州浪潮智能科技有限公司 一种分布式存储的存储池创建方法、***、终端及存储介质
WO2021046693A1 (zh) * 2019-09-09 2021-03-18 华为技术有限公司 存储***中数据处理方法、装置以及存储***
CN110781166B (zh) * 2019-10-12 2022-07-12 苏州浪潮智能科技有限公司 存储***中数据管理方法和装置
CN111143580B (zh) * 2019-12-26 2024-04-09 惠州Tcl移动通信有限公司 多媒体数据存储方法、装置、存储介质及电子设备
CN111857592A (zh) * 2020-07-21 2020-10-30 星辰天合(北京)数据科技有限公司 基于对象存储***的数据存储方法及装置、电子设备
CN112486407B (zh) * 2020-10-29 2023-01-10 苏州浪潮智能科技有限公司 一种独立冗余磁盘阵列重构元数据查询的方法、装置
CN112445801B (zh) * 2020-11-27 2024-06-14 杭州海康威视数字技术股份有限公司 数据表的元信息管理方法、装置及存储介质
CN113515233A (zh) * 2021-05-24 2021-10-19 锐捷网络股份有限公司 分块组组建方法、装置及电子设备
CN113687790A (zh) * 2021-09-06 2021-11-23 锐捷网络股份有限公司 数据重构方法、装置、设备及存储介质
CN115657965B (zh) * 2022-11-16 2023-04-07 苏州浪潮智能科技有限公司 一种元数据的配置方法、装置及介质

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8185715B1 (en) * 2007-03-30 2012-05-22 Qlogic, Corporation Method and system for managing metadata in storage virtualization environment
CN103534688A (zh) * 2013-05-29 2014-01-22 华为技术有限公司 数据恢复方法、存储设备和存储***
CN103617006A (zh) * 2013-11-28 2014-03-05 曙光信息产业股份有限公司 存储资源的管理方法与装置
CN103631535A (zh) * 2013-11-20 2014-03-12 华为技术有限公司 一种实现存储池内空间分配的方法及装置
CN103823641A (zh) * 2014-03-13 2014-05-28 深圳市迪菲特科技股份有限公司 一种在线扩容的虚拟卷***及其实现方法
CN104317742A (zh) * 2014-11-17 2015-01-28 浪潮电子信息产业股份有限公司 一种优化空间管理的自动精简配置方法
CN104731517A (zh) * 2013-12-19 2015-06-24 ***通信集团四川有限公司 一种存储池容量分配方法和装置
CN105893188A (zh) * 2014-09-30 2016-08-24 伊姆西公司 用于加速磁盘阵列的数据重构的方法和装置
CN106933496A (zh) * 2015-12-31 2017-07-07 华为技术有限公司 管理raid的方法及装置
CN107250975A (zh) * 2014-12-09 2017-10-13 清华大学 数据存储***和数据存储方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140325146A1 (en) * 2013-04-29 2014-10-30 Lsi Corporation Creating and managing logical volumes from unused space in raid disk groups

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8185715B1 (en) * 2007-03-30 2012-05-22 Qlogic, Corporation Method and system for managing metadata in storage virtualization environment
CN103534688A (zh) * 2013-05-29 2014-01-22 华为技术有限公司 数据恢复方法、存储设备和存储***
CN103631535A (zh) * 2013-11-20 2014-03-12 华为技术有限公司 一种实现存储池内空间分配的方法及装置
CN103617006A (zh) * 2013-11-28 2014-03-05 曙光信息产业股份有限公司 存储资源的管理方法与装置
CN104731517A (zh) * 2013-12-19 2015-06-24 ***通信集团四川有限公司 一种存储池容量分配方法和装置
CN103823641A (zh) * 2014-03-13 2014-05-28 深圳市迪菲特科技股份有限公司 一种在线扩容的虚拟卷***及其实现方法
CN105893188A (zh) * 2014-09-30 2016-08-24 伊姆西公司 用于加速磁盘阵列的数据重构的方法和装置
CN104317742A (zh) * 2014-11-17 2015-01-28 浪潮电子信息产业股份有限公司 一种优化空间管理的自动精简配置方法
CN107250975A (zh) * 2014-12-09 2017-10-13 清华大学 数据存储***和数据存储方法
CN106933496A (zh) * 2015-12-31 2017-07-07 华为技术有限公司 管理raid的方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
RAID2.0+全景图;xlhzly的个人随笔;《https://wenku.***.com/view/5f35a87bf8c75fbfc77db2ba.html》;20150913;第1-2页 *

Also Published As

Publication number Publication date
CN109542342A (zh) 2019-03-29

Similar Documents

Publication Publication Date Title
CN109542342B (zh) 元数据管理与数据重构方法、设备及存储介质
US11132256B2 (en) RAID storage system with logical data group rebuild
CN108287669B (zh) 数据存储方法、装置及存储介质
EP3617867B1 (en) Fragment management method and fragment management apparatus
US8429369B2 (en) Storage management program, storage management method, and storage management apparatus
CN102207897B (zh) 一种增量备份方法
US8959301B2 (en) Accessing data in a storage system
US20060161807A1 (en) System and method for implementing self-describing RAID configurations
US8838890B2 (en) Stride based free space management on compressed volumes
US20130103902A1 (en) Method and apparatus for implementing protection of redundant array of independent disks in file system
US11797387B2 (en) RAID stripe allocation based on memory device health
CN108037894B (zh) 一种磁盘空间管理方法及装置
US20140075111A1 (en) Block Level Management with Service Level Agreement
CN103699457A (zh) 基于条带化的磁盘阵列修复方法及装置
CN111309245B (zh) 一种分层存储写入方法和装置、读取方法和装置及***
CN108733326B (zh) 一种磁盘处理方法及装置
US11210183B2 (en) Memory health tracking for differentiated data recovery configurations
US8949528B2 (en) Writing of data of a first block size in a raid array that stores and mirrors data in a second block size
US7685377B1 (en) Piecewise logical data management
CN116339644B (zh) 一种独立磁盘冗余阵列创建方法、装置、设备及介质
US11513702B2 (en) Placement of metadata on data storage drives in a first storage enclosure of a data storage system
KR101679303B1 (ko) 비대칭 분산 파일 시스템 및 그 데이터 처리 방법
CN105242985B (zh) 数据修复方法及装置
US9262264B2 (en) Error correction code seeding
US9043544B2 (en) Writing of new data of a first block size in a raid array that stores both parity and data in a second block size

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