CN111949210A - 分布式存储***中元数据存储方法、***及存储介质 - Google Patents

分布式存储***中元数据存储方法、***及存储介质 Download PDF

Info

Publication number
CN111949210A
CN111949210A CN202010648620.1A CN202010648620A CN111949210A CN 111949210 A CN111949210 A CN 111949210A CN 202010648620 A CN202010648620 A CN 202010648620A CN 111949210 A CN111949210 A CN 111949210A
Authority
CN
China
Prior art keywords
data storage
metadata
node
storage node
check
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
Application number
CN202010648620.1A
Other languages
English (en)
Inventor
饶蓉
魏明昌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202010648620.1A priority Critical patent/CN111949210A/zh
Publication of CN111949210A publication Critical patent/CN111949210A/zh
Pending legal-status Critical Current

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/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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/14Error detection or correction of the data by redundancy in operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments

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)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

公开了一种分布式存储***中元数据存储方法,在分布式存储***中,在EC算法组成的元数据分条实现数据可靠性的场景下,主数据存储节点备份元数据分条中其他元数据块,因为只需要将数据存储节点上的元数据块在主数据存储节点上备份,相比现有技术中所有元数据块多副本,减少了存储空间,同时在客户端访问元数据时,只需要从主数据存储节点访问所有元数据块,提高了元数据访问速度。

Description

分布式存储***中元数据存储方法、***及存储介质
本案是专利申请号为201710508014.8,申请日为2017年6月28日,发明名称为“分布式存储***中元数据存储方法、***及存储介质”的分案申请。
技术领域
本发明涉及数据存储技术领域,尤其涉及一种分布式存储***中元数据存储方法、***及存储介质。
背景技术
在分布式存储***中,管理节点将用户数据存储到存储节点后,会产生记录数据的逻辑地址,物理地址等的元数据,元数据也要存储到存储节点。常见的元数据存储方式是将元数据分条中的块打散到各存储节点,读取该元数据时,需要从各存储节点读取元数据分条中的块,拼凑成元数据分条,但存储节点间数据转发量大,影响性能。另外一种方式元数据在存储节点以多副本形式存储,但会增加存储空间开销。
发明内容
第一方面,本发明实施例提供了一种分布式存储***中元数据存储方案,在所述分布式存储***中包含管理节点和(M+N)个存储节点,所述管理节点和(M+N)个存储节点均存储有元数据分条的分区视图;所述元数据分条的分区视图包含主数据存储节点DSA、数据存储节点DSi和校验存储节点CSr;其中,N为不小于2的自然数,M为不小于1的自然数,A为自然数1至N中的一个,i为自然数1至N中的除A外的每一个,r为自然数1至M中的每一个;在所述存储方案中:所述管理节点根据所述元数据分条的分区视图为所述元数据分条确定主数据存储节点DSA、数据存储节点DSi和校验存储节点CSr;所述元数据分条包含元数据块DA、Di以及校验块Cr,将Di发送到所述数据存储节点DSi,将DA发送到所述主数据存储节点DSA,将Cr发送到所述校验存储节点CSr;所述校验存储节点CSr接收并存储Cr;所述数据存储节点DSi接收并存储Di,并根据所述元数据分条的分区视图将Di发送到所述主数据存储节点DSA;所述主数据存储节点DSA接收并存储DA和Di。在本方案中,在实现元数据使用纠删码(ErasureCoding,EC)保护机制下,主数据存储节点DSA备份元数据分条中其他元数据块Di,因为只需要将数据存储节点DSi上的元数据块Di在主数据存储节点DSA上备份,相比现有技术中所有元数据块多副本,不需要校验块副本,减少了存储空间,同时在客户端访问元数据时,可以从主数据存储节点DSA访问所有元数据块,提高了元数据访问速度。本方案的分布式存储***可以为分布式文件***、分布式对象存储***或分布式块设备存储。
可选的,所述管理节点根据所述元数据分条的分区视图为所述元数据分条确定主数据存储节点DSA、数据存储节点DSi和校验存储节点CSr,具体包括:所述管理节点根据产生所述元数据分条中的元数据的写请求确定所述元数据分条对应的分区;所述管理节点根据所述元数据分条对应的分区查询所述元数据分条的分区视图确定所述主数据存储节点DSA、所述数据存储节点DSi和所述校验存储节点CSr
可选的,所述管理节点根据所述写请求携带的地址确定所述元数据分条对应的分区。
可选的,所述校验存储节点CSr存储Cr具体包括:所述校验存储节点CSr为所述Cr分配分片Sr,并且建立所述Cr的标识与所述分片Sr的映射关系;所述数据存储节点DSi存储Di具体包括:所述数据存储节点DSi为所述Di分配分片SDi,并且建立所述Di的标识与所述分片SDi的映射关系;所述主数据存储节点DSA存储DA和Di,具体包括:所述主数据存储节点DSA为所述DA分配分片SDA,并且建立所述DA的标识与所述分片SDA的映射关系,为所述Di分配分片SDi,并且建立所述Di的标识与所述分片SDi的映射关系。
进一步地,管理节点建立Di的标识与数据存储节点DSi和主数据存储节点DSA的映射关系。在对元数据分条进行垃圾回收时,管理节点可以根据元数据分条中元数据块的标识与存储节点的映射关系,将元数据块在数据存储节点以及主数据存储节点中的数据均回收,提高了元数据回收的效率。
第二方面,相应地,本发明实施例还提供了一种分布式存储***,在所述分布式存储***中包含管理节点和(M+N)个存储节点,所述管理节点和(M+N)个存储节点均存储有元数据分条的分区视图;所述元数据分条的分区视图包含主数据存储节点DSA、数据存储节点DSi和校验存储节点CSr;其中,N为不小于2的自然数,M为不小于1的自然数,A为自然数1至N中的一个,i为自然数1至N中的除A外的每一个,r为自然数1至M中的每一个;所述分布式存储***用于实现第一方面各种实现方案。
相应地,本发明还提供了非易失性计算机可读存储介质和计算机程序产品,当本发明实施例提供的存储设备的存储器加载非易失性计算机可读存储介质和计算机程序产品中包含的计算机程序指令,所述计算机程序指令可运行于分布式存储***中,分布式存储***包含管理节点和(M+N)个存储节点,所述管理节点和(M+N)个存储节点均存储有元数据分条的分区视图;所述元数据分条的分区视图包含主数据存储节点DSA、数据存储节点DSi和校验存储节点CSr;其中,N为不小于2的自然数,M为不小于1的自然数,A为自然数1至N中的一个,i为自然数1至N中的除A外的每一个,r为自然数1至M中的每一个;当一个或多个计算机执行所述计算机程序指令分别作为所述分布式存储***中的管理节点、主数据存储节点DSA、数据存储节点DSi和校验存储节点CSr用于实现第一方面各种实现方案。
在第一方面公开的各种分布式存储***中元数据存储方案也可以适用元数据对应的数据的存储。相应的,第二方面方向的分布式存储***以及第三方面的非易失性计算机可读存储介质和计算机程序产品同样也适用于数据存储。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。
图1为本发明实施例提供的一种分布式块设备存储架构示意图;
图2为本发明实施例提供的一种分布式块设备中服务器结构示意图;
图3为本发明实施例提供的一种数据分条与分区视图关系示意图;
图4为本发明实施例提供的一种数据分条示意图;
图5为本发明实施例提供的分区视图示意图;
图6为本发明实施例提供的一种元数据分条与分区视图关系示意图;
图7为本发明实施例元数据存储流程图;
图8为本发明实施例提供的一种元数据分条示意图;
图9为本发明实施例提供的元数据存储示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述。
分布式存储***主要有分布式文件***存储、分布式对象存储和分布式块设备存储等几种形式,例如
Figure BDA0002574079420000031
Figure BDA0002574079420000032
系列产品。本发明实施例以分布式块设备存储为例进行说明。示例性的如图1所示,分布式块设备存储包括多台服务器1、服务器2、服务器3、服务器4、服务器5和服务器6,服务器间互相通信。在实际应用当中,分布式块设备存储中服务器的数量可以根据实际需求增加,本发明实施例对此不作限定。分布式块设备存储的服务器中包含如图2所示的结构。
如图2所示,分布式块设备存储中的每台服务器包含中央处理单元(CentralProcessing Unit,CPU)201、内存202、硬盘1、硬盘2和硬盘3,内存202中存储计算机指令,CPU201执行内存202中的程序指令执行相应的操作。硬盘可以为机械硬盘和固态硬盘中的至少一种。另外,为节省CPU201的计算资源,现场可编程门阵列(Field Programmable GateArray,FPGA)或其他硬件也可以用于CPU201上述相应的操作,或者,FPGA或其他硬件与CPU201共同完成上述相应的操作。为方便描述,本发明实施例统一描述为处理器用于实现上述相应的操作。
在图2所示的结构中,内存202中加载应用程序,CPU201执行内存202中的应用程序指令,则服务器作为客户端。其中,应用程序可以为虚拟机(Virtual Machine,VM),也可以为某一个特定应用,如办公软件等。客户端向分布式块设备存储写入数据或从分布式块设备存储中读取数据。内存202中加载存储管理程序,CPU201执行内存202中的作为虚拟块存储管理程序的存储管理程序指令,则服务器作为管理节点,负责卷元数据的管理,用于向客户端提供块协议访问接口,为客户端提供分布式存储接入点服务,使客户端能够通过管理节点访问分布式块设备存储的存储资源。内存202中加载存储对象程序,CPU201执行内存202中的存储对象程序指令,则服务器作为存储节点,用于执行具体的输入输出(Input/Output,I/O)操作。在每个服务器上可以运行多个存储对象程序的进程,示例性的,一块硬盘默认对应运行一个存储对象程序进程,每个存储对象程序进程会管理一块硬盘,则服务器运行每一个存储对象程序的进程作为一个存储节点。具体实现,也可以一个服务器上运行一个存储对象程序的进程对应服务器上的所有硬盘。本发明实施例以一个存储对象程序进程会管理一块硬盘为例进行描述。分布式块设备存储初始化时,每个存储对象程序的进程会按照1MB为单位对硬盘进行分片管理,并在硬盘的元数据管理区域记录每个1MB分片的分配信息,硬盘的分片组成存储资源池。存储管理程序与其所能访问的资源池的所有存储对象程序的进程点对点通信,即管理节点与其所能访问的资源池的所有存储节点进行通信,从而管理节点能并发访问资源池的所有硬盘。
在分布式块设备存储初始化时,将哈希空间(如0-2^32,)划分为N等份,每1等份是1个分区(Partition),这N等份按照硬盘数量进行均分。例如,分布式块存储设备存储中N默认为3600,即分区分别为P1,P2,P3…P3600。如图3所示,假设当前分布式块设备存储有18块硬盘(存储节点),则每块存储节点承载200个分区。上述分区与存储节点对应关系,即分区视图,在分布式块设备存储初始化时会分配好,后续会随着分布式块设备存储中硬盘数量的变化进行调整。分布式块设备存储的服务器会在内存202中保存该分区视图,管理节点使用该分区视图进行快速路由。每一个存储节点中也保存有分布式块设备存储***的所有分区视图,即每一个分区与存储节点的对应关系。同时根据分布式块设备存储的可靠性要求,可以使用纠删码(Erasure Coding,EC)算法提高数据可靠性,如使用3+1模式,即3个数据块和1个校验块组成数据分条,如图4所示,则分区视图为“分区-主数据存储节点-数据存储节点1-数据存储节点2-校验存储节点,示例性的,分区视图如图5所示。该分区视图表示分区对应主数据节点以及用于存储数据分条的其他数据块的数据存储节点1和数据节点2,以及存储校验数据的校验存储节点,存储在数据存储节点1和数据存储节点2的数据块的备份数据存储节点为主数据存储节点。
分布式块设备存储会对每个逻辑单元号(Logical Unit Number,LUN)在逻辑上按照1MB大小进行切片,例如1GB的LUN则会被切成1024*1MB分片。如图3所示,客户端通过管理节点向LUN发送写请求的时候,在小型计算机***接口(Small Computer SystemInterface,SCSI)命令中会带LUN标识(Identifier,ID)、逻辑块地址(Logical BlockAddress,LBA)ID以及待写数据,客户端所在的管理节点接收写请求,根据LUN ID和LBA ID组成一个键key,该key会包含LBA ID对1MB的取整计算信息。通过分布式哈希表(Distributed Hash Table,DHT)Hash计算出一个整数(范围在0-2^32内),并落在指定分区中;客户端所在的管理节点根据内存202中记录的分区视图确定主数据存储节点、数据存储节点1、数据存储节点2和校验存储节点,管理节点将EC数据分条中的数据块1、数据块2、数据块3和校验块4分别发送到主数据存储节点1、数据存储节点2、数据存储节点3和校验存储节点4。主数据存储节点存储数据块1,数据存储节点1存储数据块2,数据存储节点2存储数据块3,校验存储节点存储校验块1。数据存储节点1和2根据分区视图分别确定主数据存储节点,数据存储节点1将数据块2备份到主数据存储节点,数据存储节点2将数据块3备份到主数据存储节点,主数据存储节点分别存储数据块2和数据块3。具体实现中,主数据存储节点为数据块1从其管理的硬盘中分配分片1,建立数据块1的标识与分片1的映射关系;数据存储节点1从其管理的硬盘中为数据块2分配分片2,建立数据块2的标识与分片2的映射关系;数据存储节点2从其管理的硬盘中为数据块3分配分片3,建立数据块3的标识与分片3的映射关系;校验存储节点从其管理的硬盘中为校验块1分配分片4,建立校验块1的标识与分片4的映射关系。主数据存储节点接收数据存储节点1发送的数据块2和数据存储节点2发送的数据块3,主数据存储节点从其管理的硬盘中分配分片5和分片6,主数据存储节点建立数据块2的标识与分片5的映射关系,以及数据块3的标识与分片6的映射关系。本发明实施例中,以数据块的标识与分片的映射关系为例,当存储对象程序的1个进程对应1个硬盘时,也即存储节点即为硬盘本身,则数据块的标识与分片的映射关系为数据块的标识与分片物理地址的映射关系;当存储对象程序的1个进程对应多个硬盘时,也即存储节点管理多个硬盘,则数据块的标识与分片的映射关系为包括数据块的标识与存储该数据块的硬盘的映射,以及存储该数据块的硬盘到分片的映射。分片物理地址的映射关系当。进一步地,数据块2分别存储到分片2和分片5,数据块3分别存储在分片3和6,管理节点建立并保存数据块2的标识与数据存储节点1和主数据存储节点的映射,建立并保存数据块3的标识与数据存储节点2和主数据存储节点的映射关系。进一步地,数据存储节点1保存保存数据块2的标识与数据存储节点1和主数据存储节点的映射,数据存储节点2保存数据块3的标识与数据存储节点2和主数据存储节点的映射关系。在对数据分条进行垃圾回收时,管理节点可以根据数据分条中数据块的标识与存储节点的映射关系,将数据块在数据存储节点以及主数据存储节点中的数据均回收,提高了数据回收的效率。
本发明实施例中,客户端向分布式块设备存储发送写请求写入数据时,会产生元数据,用于记录数据的逻辑地址和物理地址等。本发明实施例中,数据对应的元数据存储与数据存储使用相同的EC算法。基于EC算法组成的元数据分条与上述基于EC算法的组成数据分条具有相同的分区视图,如图6所示。
在分布式存储***存储元数据,其中分布式存储***包含管理节点和(M+N)个存储节点,管理节点和(M+N)个存储节点均存储有元数据分条的分区视图;元数据分条的分区视图包含主数据存储节点DSA、数据存储节点DSi和校验存储节点CSr;其中,N为不小于2的自然数,M为不小于1的自然数,A为自然数1至N中的一个,i为自然数1至N中的除A外的每一个,r为自然数1至M中的每一个;在该分布式存储***存储执行如图7所示的流程:
步骤701:管理节点根据所述元数据分条的分区视图为所述元数据分条确定主数据存储节点DSA、数据存储节点DSi和校验存储节点CSr;所述元数据分条包含元数据块DA、Di以及校验块Cr。
具体的,所述管理节点根据所述元数据分条的分区视图为所述元数据分条确定主数据存储节点DSA、数据存储节点DSi和校验存储节点CSr,具体包括:所述管理节点根据产生所述元数据分条中的元数据的写请求确定所述元数据分条对应的分区;所述管理节点根据所述元数据分条对应的分区查询所述元数据分条的分区视图确定所述主数据存储节点DSA、所述数据存储节点DSi和所述校验存储节点CSr
具体的,所述管理节点根据所述写请求携带的地址确定所述元数据分条对应的分区。具体可参见分布式块设备存储在存储客户端发送的写请求时的方案,在此不再赘述。
步骤702:所述管理节点将Di发送到所述数据存储节点DSi,将DA发送到所述主数据存储节点DSA,将Cr发送到所述校验存储节点CSr
步骤703:所述校验存储节点CSr接收并存储Cr
步骤704:所述数据存储节点DSi接收并存储Di,并根据所述元数据分条的分区视图将Di发送到所述主数据存储节点DSA
步骤705:所述主数据存储节点DSA接收并存储DA和Di
具体的,所述校验存储节点CSr存储Cr具体包括:所述校验存储节点CSr为所述Cr分配分片Sr,并且建立所述Cr的标识与所述分片Sr的映射关系;所述数据存储节点DSi存储Di具体包括:所述数据存储节点DSi为所述Di分配分片SDi,并且建立所述Di的标识与所述分片SDi的映射关系;所述主数据存储节点DSA存储DA和Di,具体包括:所述主数据存储节点DSA为所述DA分配分片SDA,并且建立所述DA的标识与所述分片SDA的映射关系,为所述Di分配分片SDi,并且建立所述Di的标识与所述分片SDi的映射关系。进一步地,管理节点建立Di的标识与数据存储节点DSi和主数据存储节点DSA的映射关系。进一步地,进一步地,数据存储节点1保存保存Di的标识与数据存储节点DSi和主数据存储节点DSA的映射关系。在对元数据分条进行垃圾回收时,管理节点可以根据元数据分条中元数据块的标识与存储节点的映射关系,将元数据块在数据存储节点以及主数据存储节点中的数据均回收,提高了元数据回收的效率。
本发明实施例中,结合前面所述的分布式块设备存储及数据存储方式,如图8所示,使用EC算法的元数据分条中元数据块为D1,D2和D3,校验块为C1。客户端所在的管理节点根据内存202中记录的分区视图“分区-主数据存储节点-数据存储节点1-数据存储节点2-校验存储节点”确定主数据存储节点、数据存储节点1、数据存储节点2和校验存储节点。该分区视图表示分区对应主数据节点以及用于存储元数据分条的其他数据块的数据存储节点1和数据节点2,以及存储校验数据的校验存储节点,存储在数据存储节点1和数据存储节点2的元数据块的备份数据存储节点为主数据存储节点。管理节点将基于EC算法的元数据分条中的D1、D2、D3和C1分别发送到主数据存储节点、数据存储节点1、数据存储节点2和校验存储节点4。主数据存储节点接收并存储D1,数据存储节点1接收并存储D2,数据存储节点2接收并存储D3,校验存储节点接收并存储C1。数据存储节点1和2根据分区视图分别确定主数据存储节点,数据存储节点1将D2备份到主数据存储节点,数据存储节点2将D3备份到主数据存储节点,主数据存储节点接收并存储D2和D3。具体实现中,如图9所示,主数据存储节点为D1从其管理的硬盘中分配分片7,建立D1的标识与分片7的映射关系;数据存储节点1从其管理的硬盘中为D2分配分片8,建立D2的标识与分片8的映射关系;数据存储节点2从其管理的硬盘中为D3分配分片9,建立D3的标识与分片9的映射关系;校验存储节点从其管理的硬盘中为C1分配分片10,建立C1的标识与分片10的映射关系。主数据存储节点接收数据存储节点1发送的D2和数据存储节点2发送的D3,主数据存储节点从其管理的硬盘中分配分片11和分片12,主数据存储节点建立D2的标识与分片11的映射关系,以及D3的标识与分片12的映射关系。本发明实施例中,以元数据块的标识与分片的映射关系为例,当存储对象程序的1个进程对应1个硬盘时,也即存储节点即为硬盘本身,则元数据块的标识与分片的映射关系为元数据块的标识与分片物理地址的映射关系;当存储对象程序的1个进程对应多个硬盘时,也即存储节点管理多个硬盘,则元数据块的标识与分片的映射关系为包括元数据块的标识与存储该元数据块的硬盘的映射,以及存储该元数据块的硬盘到分片的映射。进一步地,D2分别存储到分片8和分片11,D3分别存储在分片9和12,管理节点建立并保存D2的标识与数据存储节点1和主数据存储节点的映射,建立并保存D3的标识与数据存储节点2和主数据存储节点的映射关系。进一步地,数据存储节点1保存保存D2的标识与数据存储节点1和主数据存储节点的映射,数据存储节点2保存D3的标识与数据存储节点2和主数据存储节点的映射关系。在对元数据分条进行垃圾回收时,管理节点可以根据元数据分条中元数据块的标识与存储节点的映射关系,将元数据块在数据存储节点以及主数据存储节点中的数据均回收,提高了元数据回收的效率。
因此,在使用EC算法组成的元数据分条实现数据可靠性的场景下,主数据存储节点备份元数据分条中其他元数据块,因为只需要将数据存储节点上的元数据块在主数据存储节点上备份,相比现有技术中所有元数据块多副本,减少了存储空间,同时在客户端访问元数据时,只需要从主数据存储节点访问所有元数据块,提高了元数据访问速度。
本发明实施例,还提供了非易失性计算机可读存储介质和计算机程序产品,非易失性计算机可读存储介质和计算机程序产品中包含的计算机程序指令,CPU执行内存中加载的该计算机程序指令用于实现本发明各实施中管理节点和存储节点(主数据存储节点、数据存储节点和校验存储节点)对应的功能。
本发明实施例中给出的示例性描述。本发明实施例中的“分片1”、“分片2”。。。“分片12”等并不是用于严格限定先后关系,只是用于区分不同的分片。本发明实施例中的分片可以为硬盘中的物理块等。本发明实施例中的硬盘,如前所述,可以为机械盘和固态硬盘中的至少一种。本发明实施例中存储对象程序的进程对应的硬盘还可以为存储阵列等,本发明实施例对此不作限定。
在本发明所提供的几个实施例中,应该理解到,所公开的装置、方法,可以通过其它的方式实现。例如,以上所描述的装置实施例所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

Claims (12)

1.一种分布式存储***中元数据存储方法,其特征在于,所述方法包括:
确定存储元数据分条中元数据块和校验块的存储节点;其中,所述存储节点包含数据存储节点和校验存储节点;所述数据存储节点中包含主数据存储节点;
将所述元数据块分别发送到确定出的相应的数据存储节点;将所述校验块发送到相应的校验存储节点;
所述数据存储节点接收并存储相应的元数据块;
从数据存储节点向所述主数据存储节点发送所述从数据存储节点接收的元数据块;
主存储节点接收并存储所述从数据存储节点发送的元数据块;其中,所述从数据存储节点为所述数据存储节点中除所述主存储节点外的其他数据存储节点。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:管理节点根据所述元数据分条的分区视图为所述元数据分条确定所述数据存储节点和所述校验存储节点。
3.根据权利要求2所述的方法,其特征在于,所述管理节点根据所述元数据分条的分区视图为所述元数据分条确定所述数据存储节点和所述校验存储节点,具体包括:
所述管理节点根据产生所述元数据分条中的元数据的写请求确定所述元数据分条对应的分区;
所述管理节点根据所述元数据分条对应的分区查询所述元数据分条的分区视图确定所述数据存储节点和所述校验存储节点。
4.根据权利要求3所述的方法,其特征在于,所述管理节点根据所述写请求携带的地址确定所述元数据分条对应的分区。
5.一种分布式存储***,其特征在于,所述分布式存储***包含存储节点和管理节点;
其中,所述管理节点用于确定存储元数据分条中元数据块和校验块的所述存储节点;其中,所述存储节点包含数据存储节点和校验存储节点;所述数据存储节点中包含主数据存储节点;
将所述元数据块分别发送到确定出的相应的数据存储节点;将所述校验块发送到相应的校验存储节点;
所述数据存储节点用于接收并存储相应的元数据块;
从数据存储节点用于向所述主数据存储节点发送所述从数据存储节点接收的元数据块;
主存储节点用于接收并存储所述从数据存储节点发送的元数据块;其中,所述从数据存储节点为所述数据存储节点中除所述主存储节点外的其他数据存储节点。
6.根据权利要求5所述的分布式存储***,其特征在于,所述管理节点还用于根据所述元数据分条的分区视图为所述元数据分条确定所述数据存储节点和所述校验存储节点。
7.根据权利要求6所述的分布式存储***,其特征在于,所述管理节点具体用于根据所述元数据分条对应的分区查询所述元数据分条的分区视图确定所述数据存储节点和所述校验存储节点。
8.根据权利要求7所述的分布式存储***,其特征在于,所述管理节点还用于根据所述写请求携带的地址确定所述元数据分条对应的分区。
9.一种非易失性可读存储介质,其特征在于,所述非易失性可读存储介质包含计算机程序指令,所述计算机程序指令可运行于分布式存储***中,分布式存储***包含管理节点和存储节点,当一个或多个计算机执行所述计算机程序指令时,所述一个或多个计算机中作为所述管理节点的计算机用于:
确定存储元数据分条中元数据块和校验块的所述存储节点;其中,所述存储节点包含数据存储节点和校验存储节点;所述数据存储节点中包含主数据存储节点;
将所述元数据块分别发送到确定出的相应的数据存储节点;将所述校验块发送到相应的校验存储节点;
所述一个或多个计算机中作为所述数据存储节点的计算机用于接收并存储相应的元数据块;
所述一个或多个计算机中作为从数据存储节点的计算机用于向所述主数据存储节点发送所述从数据存储节点接收的元数据块;
所述一个或多个计算机中作为主数据存储节点的计算机用于接收并存储所述从数据存储节点发送的元数据块;其中,所述从数据存储节点为所述数据存储节点中除所述主存储节点外的其他数据存储节点。
10.根据权利要求9所述的非易失性可读存储介质,其特征在于,所述一个或多个计算机中作为所述管理节点的计算机还用于根据所述元数据分条的分区视图为所述元数据分条确定所述数据存储节点和所述校验存储节点。
11.根据权利要求10所述的非易失性可读存储介质,其特征在于,所述一个或多个计算机中作为所述管理节点的计算机具体用于根据所述元数据分条对应的分区查询所述元数据分条的分区视图确定所述数据存储节点和所述校验存储节点。
12.根据权利要求11所述的非易失性可读存储介质,其特征在于,所述一个或多个计算机中作为所述管理节点的计算机还用于根据所述写请求携带的地址确定所述元数据分条对应的分区。
CN202010648620.1A 2017-06-28 2017-06-28 分布式存储***中元数据存储方法、***及存储介质 Pending CN111949210A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010648620.1A CN111949210A (zh) 2017-06-28 2017-06-28 分布式存储***中元数据存储方法、***及存储介质

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201710508014.8A CN109144406B (zh) 2017-06-28 2017-06-28 分布式存储***中元数据存储方法、***及存储介质
CN202010648620.1A CN111949210A (zh) 2017-06-28 2017-06-28 分布式存储***中元数据存储方法、***及存储介质

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201710508014.8A Division CN109144406B (zh) 2017-06-28 2017-06-28 分布式存储***中元数据存储方法、***及存储介质

Publications (1)

Publication Number Publication Date
CN111949210A true CN111949210A (zh) 2020-11-17

Family

ID=64740945

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201710508014.8A Active CN109144406B (zh) 2017-06-28 2017-06-28 分布式存储***中元数据存储方法、***及存储介质
CN202010648620.1A Pending CN111949210A (zh) 2017-06-28 2017-06-28 分布式存储***中元数据存储方法、***及存储介质

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201710508014.8A Active CN109144406B (zh) 2017-06-28 2017-06-28 分布式存储***中元数据存储方法、***及存储介质

Country Status (2)

Country Link
CN (2) CN109144406B (zh)
WO (1) WO2019000949A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023020114A1 (zh) * 2021-08-18 2023-02-23 华为技术有限公司 一种数据处理方法及装置

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020180291A1 (en) * 2019-03-04 2020-09-10 Hitachi Vantara Llc Metadata routing in a distributed system
WO2021046693A1 (zh) * 2019-09-09 2021-03-18 华为技术有限公司 存储***中数据处理方法、装置以及存储***
CN111444274B (zh) * 2020-03-26 2021-04-30 上海依图网络科技有限公司 数据同步方法、数据同步***及其装置、介质和***
WO2022094895A1 (en) * 2020-11-05 2022-05-12 Alibaba Group Holding Limited Virtual data copy supporting garbage collection in distributed file systems
CN112947864B (zh) * 2021-03-29 2024-03-08 南方电网数字平台科技(广东)有限公司 元数据的存储方法、装置、设备和存储介质
CN115268801B (zh) * 2022-09-30 2023-01-10 天津卓朗昆仑云软件技术有限公司 块设备的备份***和方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102937964A (zh) * 2012-09-28 2013-02-20 无锡江南计算技术研究所 基于分布式***的智能数据服务方法
CN103729436A (zh) * 2013-12-27 2014-04-16 中国科学院信息工程研究所 一种分布式元数据管理方法及***
US20140310489A1 (en) * 2013-04-16 2014-10-16 International Business Machines Corporation Managing metadata and data for a logical volume in a distributed and declustered system
CN106662983A (zh) * 2015-12-31 2017-05-10 华为技术有限公司 分布式存储***中的数据重建的方法、装置和***

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7051155B2 (en) * 2002-08-05 2006-05-23 Sun Microsystems, Inc. Method and system for striping data to accommodate integrity metadata
CN102411637B (zh) * 2011-12-30 2013-07-24 创新科软件技术(深圳)有限公司 分布式文件***的元数据管理方法
CN103399823B (zh) * 2011-12-31 2016-03-30 华为数字技术(成都)有限公司 业务数据的存储方法、设备和***
US8914668B2 (en) * 2012-09-06 2014-12-16 International Business Machines Corporation Asynchronous raid stripe writes to enable response to media errors
CN103699494B (zh) * 2013-12-06 2017-03-15 北京奇虎科技有限公司 一种数据存储方法、数据存储设备和分布式存储***
US9772787B2 (en) * 2014-03-31 2017-09-26 Amazon Technologies, Inc. File storage using variable stripe sizes
CN106471461B (zh) * 2014-06-04 2020-10-30 净睿存储股份有限公司 自动重新配置存储装置存储器拓扑
CN106599308B (zh) * 2016-12-29 2020-01-31 郭晓凤 一种分布式元数据管理方法及***

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102937964A (zh) * 2012-09-28 2013-02-20 无锡江南计算技术研究所 基于分布式***的智能数据服务方法
US20140310489A1 (en) * 2013-04-16 2014-10-16 International Business Machines Corporation Managing metadata and data for a logical volume in a distributed and declustered system
CN103729436A (zh) * 2013-12-27 2014-04-16 中国科学院信息工程研究所 一种分布式元数据管理方法及***
CN106662983A (zh) * 2015-12-31 2017-05-10 华为技术有限公司 分布式存储***中的数据重建的方法、装置和***

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023020114A1 (zh) * 2021-08-18 2023-02-23 华为技术有限公司 一种数据处理方法及装置

Also Published As

Publication number Publication date
CN109144406B (zh) 2020-08-07
WO2019000949A1 (zh) 2019-01-03
CN109144406A (zh) 2019-01-04

Similar Documents

Publication Publication Date Title
US11082206B2 (en) Layout-independent cryptographic stamp of a distributed dataset
US11379142B2 (en) Snapshot-enabled storage system implementing algorithm for efficient reclamation of snapshot storage space
CN106708425B (zh) 分布式多模存储管理
CN109144406B (zh) 分布式存储***中元数据存储方法、***及存储介质
EP3188449B1 (en) Method and system for sharing storage resource
TWI710900B (zh) 儲存裝置及方法
US9582198B2 (en) Compressed block map of densely-populated data structures
US20160179581A1 (en) Content-aware task assignment in distributed computing systems using de-duplicating cache
US11061594B1 (en) Enhanced data encryption in distributed datastores using a cluster-wide fixed random tweak
US9529538B1 (en) Virtual accounting container for supporting small volumes of data
US11199990B2 (en) Data reduction reporting in storage systems
WO2021017782A1 (zh) 分布式存储***访问方法、客户端及计算机程序产品
US20190114076A1 (en) Method and Apparatus for Storing Data in Distributed Block Storage System, and Computer Readable Storage Medium
US20210326207A1 (en) Stripe reassembling method in storage system and stripe server
US11573711B2 (en) Enhanced data encryption in distributed datastores using random tweaks stored in data blocks
US11775194B2 (en) Data storage method and apparatus in distributed storage system, and computer program product
CN112714910B (zh) 分布式存储***及计算机程序产品
CN112988034B (zh) 一种分布式***数据写入方法及装置
US12032849B2 (en) Distributed storage system and computer program product
JP7313458B2 (ja) ストレージシステム、ストレージノード及びデータ記憶方法
CN114697349A (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