CN113055448B - 一种元数据管理方法及装置 - Google Patents
一种元数据管理方法及装置 Download PDFInfo
- Publication number
- CN113055448B CN113055448B CN202110222334.3A CN202110222334A CN113055448B CN 113055448 B CN113055448 B CN 113055448B CN 202110222334 A CN202110222334 A CN 202110222334A CN 113055448 B CN113055448 B CN 113055448B
- Authority
- CN
- China
- Prior art keywords
- mds
- directory
- node
- cluster
- determining
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols 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]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本说明书提供一种元数据管理方法及装置,涉及通信技术领域。一种元数据管理方法,应用于MDS集群,包括:接收MDS集群中其他的MDS节点所发送的心跳报文,其中,心跳报文中携带有负载特征信息;若接收到创建请求报文,则根据负载特征信息从MDS集群中确定出第一MDS节点;在第一MDS节点创建第一目录,并建立第一目录与第一MDS的对应关系;若接收到针对第一目录的写入操作,则根据对应关系将第一目录下的元数据写入到第一MDS。通过上述方法能够提升分布式文件系统的性能和文件访问效率。
Description
技术领域
本说明书涉及通信技术领域,尤其涉及一种元数据管理方法及装置。
背景技术
分布式文件系统可以对外提供大容量、高性能以及高可靠性的文件存储服务,满足了云计算、物联网和社交网络等新兴应用服务对于大规模数据存储的需求。在分布式文件系统中,文件的元数据和数据分开进行存储和管理,元数据用于对文件进行描述,通过元数据可以确定文件的存储位置等,以实现对于文件的访问。
因此,在分布式文件系统中,如何高效地访问元数据将会影响到系统的性能和可靠性。在对元数据进行存储和管理时,可以通过多级目录的形式实现,这些目录整体称为一个目录树,一个目录的下级目录称为该目录的目录子树。在分布式文件系统中设置有多个MDS(元数据服务器,Meta Data Server)形成MDS集群,每个MDS可以负责缓存一部分目录子树并处理相应的元数据操作。
针对MDS集群而言,需要维持MDS之间的负载均衡,在当前的实现中,通过平均负载和一个MDS的负载差值确定是否进行迁移,这使得MDS对于负载非常敏感,迁移被频繁的触发。在迁移的过程中,这些被迁移的目录子树是无法被访问的,与其相关的访问请求被挂起直至迁移结束,这样一来,将会导致用户对于文件的访问阻塞,降低了分布式文件系统的文件访问效率。
发明内容
为克服相关技术中存在的问题,本说明书提供了一种元数据管理方法及装置。
结合本说明书实施方式的第一方面,本申请提供了一种元数据管理方法,应用于MDS集群,包括:
接收MDS集群中其他的MDS节点所发送的心跳报文,其中,心跳报文中携带有负载特征信息;
若接收到创建请求报文,则根据负载特征信息从MDS集群中确定出第一MDS节点;
在第一MDS节点创建第一目录,并建立第一目录与第一MDS的对应关系;
若接收到针对第一目录的写入操作,则根据对应关系将第一目录下的元数据写入到第一MDS。
可选的,MDS集群所管理的目录配置有第一扩展属性,其中,第一扩展属性用于表示管理以第一目录为根目录的目录子树的MDS节点;
在第一MDS节点创建第一目录,并建立第一目录与第一MDS的对应关系,包括:
在第一MDS节点创建第一目录;
通过第一扩展属性建立第一目录和第一MDS的对应关系。
可选的,负载特征信息,包括MDS节点所管理的目录子树的最大值和MDS节点当前管理的目录子树的数量;
根据负载特征信息从MDS集群中确定出第一MDS节点,包括:
根据最大值和数量,确定出MDS集群中的各MDS节点的占用比例;
从MDS集群中确定出占用比例最低的MDS节点,并将该MDS节点确定为第一MDS节点。
进一步的,MDS集群所管理的目录配置有第二扩展属性,其中,第二扩展属性用于表示从分布式文件系统的根目录至第一目录的深度;
MDS节点配置有目录层级,目录层级为分布式文件系统的根目录至该MDS节点所管理的目录的深度;
根据最大值和数量,确定出MDS集群中的各MDS节点的占用比例,具体为:
根据目录层级和第二扩展属性,确定出管理第一目录的第二MDS节点;
根据最大值和数量,确定出第二MDS节点中的占用比例。
进一步的,在接收MDS集群中其他的MDS节点所发送的心跳报文之后,还包括:
若最大值和数量的差值小于预设值,则对MDS集群中的各MDS节点进行负载均衡,或,根据负载特征信息从MDS集群中确定出第三MDS节点,并将接收到的元数据写入到第三MDS节点中。
结合本说明书实施方式的第二方面,本申请提供了一种元数据管理装置,应用于MDS集群,包括:
心跳单元,用于接收MDS集群中其他的MDS节点所发送的心跳报文,其中,心跳报文中携带有负载特征信息;
选择单元,用于若接收到创建请求报文,则根据负载特征信息从MDS集群中确定出第一MDS节点;
映射单元,用于在第一MDS节点创建第一目录,并建立第一目录与第一MDS的对应关系;
写入单元,用于若接收到针对第一目录的写入操作,则根据对应关系将第一目录下的元数据写入到第一MDS。
可选的,MDS集群所管理的目录配置有第一扩展属性,其中,第一扩展属性用于表示管理以第一目录为根目录的目录子树的MDS节点;
映射单元,包括:
创建模块,用于在第一MDS节点创建第一目录;
对应模块,用于通过第一扩展属性建立第一目录和第一MDS的对应关系。
可选的,负载特征信息,包括MDS节点所管理的目录子树的最大值和MDS节点当前管理的目录子树的数量;
该装置,还包括接收单元;
选择单元,还包括:
第一确定模块,用于若接收单元接收到创建请求报文,根据最大值和数量,确定出MDS集群中的各MDS节点的占用比例;
第二确定模块,用于从MDS集群中确定出占用比例最低的MDS节点,并将该MDS节点确定为第一MDS节点。
进一步的,MDS集群所管理的目录配置有第二扩展属性,其中,第二扩展属性用于表示从分布式文件系统的根目录至第一目录的深度;
MDS节点配置有目录层级,目录层级为分布式文件系统的根目录至该MDS节点所管理的目录的深度;
第一确定模块,具体用于:
若接收单元接收到创建请求报文,根据目录层级和第二扩展属性,确定出管理第一目录的第二MDS节点;根据最大值和数量,确定出第二MDS节点中的占用比例。
进一步的,该装置,还包括:
均衡单元,用于若最大值和数量的差值小于预设值,则对MDS集群中的各MDS节点进行负载均衡,或,根据负载特征信息从MDS集群中确定出第三MDS节点,并将接收到的元数据写入到第三MDS节点中。
本说明书的实施方式提供的技术方案可以包括以下有益效果:
本说明书实施方式中,通过根据负载特征信息分配目录和MDS节点的对应关系,在创建目录时将该目录下的元数据写入到对应关系所指向的MDS节点,从而在写入元数据时预先考虑MDS集群中各MDS节点的负载,提前进行MDS节点之间的负载均衡,避免在元数据写入MDS节点后频繁地进行负载均衡所带来的性能下降,提升了分布式文件系统的文件访问效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本说明书的实施方式,并与说明书一起用于解释本说明书的原理。
图1是本申请所涉及的一种元数据管理方法所对应的网络结构图;
图2是本申请所涉及的一种元数据管理方法的流程图;
图3是本申请的一种实施方式所涉及的网络结构图;
图4是本申请所涉及的一种元数据管理装置的结构示意图。
具体实施方式
这里将详细地对示例性实施方式进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施方式中所描述的实施方式并不代表与本说明书相一致的所有实施方式。
在分布式文件系统中,如图1所示,包括:设置有多个MDS节点的MDS集群、数据服务器集群和客户端节点等。客户端节点用于接收客户端所发送的报文,对MDS集群和数据服务器集群进行访问,并返回客户端所需求的数据。MDS节点用于保存元数据,并且,以主从形式设置,比如,多个MDS节点中设置有一个主MDS节点和其他的从MDS节点。数据服务器集群中设置有多个数据服务器,数据服务器中保存有文件。在客户端节点从MDS集群中确定出文件的保存位置后,可以根据MDS集群中的元数据确定从数据服务器集群中确定客户端所需要的文件的保存位置,进而可以从数据服务器集群中获取所需要的文件。
多个MDS节点可以为虚拟在一个物理服务器中的多个虚拟节点,也可以是每一个MDS节点由一个独立的物理服务器中,并将多个物理服务器组成集群。多个数据服务器也可以通过类似的方式设置,对此不做限制。
本申请所涉及的一种元数据管理方法,应用于MDS集群,如图2所示,包括:
S100、接收MDS集群中其他的MDS节点所发送的心跳报文。
在MDS集群中,MDS节点之间通过心跳报文维护在线,并且,在心跳报文中包含有负载特征信息,在该负载特征信息中可以包含有MDS节点的负载情况、服务器的处理器占用情况和服务器的内存占用情况等等。
在MDS节点进行心跳报文的交互后,在各MDS节点中可以根据负载特征信息生成负载信息表。各MDS节点可以根据负载信息表确认MDS集群中的MDS节点的负载。
这些心跳报文的交互是周期性进行的,以便于MDS节点可以更新各MDS节点的负载。
S101、若接收到创建请求报文,则根据负载特征信息从MDS集群中确定出第一MDS节点。
在部署完成分布式文件系统时,用户可以根据配置接收客户端节点转发的创建请求报文,在分布式文件系统中创建目录,并在创建的目录下存储对应的元数据。在MDS集群中,创建请求报文会先转发到主MDS节点,并由主MDS节点确定将目录创建到MDS集群中的哪一个MDS节点,这个被确定出的MDS节点即为第一MDS节点。所选出的第一MDS节点可以是主MDS节点,也可以是从MDS节点。
在分布式文件系统中,需要设置MDS节点保存元数据的目录层级,比如,在一个MDS集群中,可以设置在/root/data/video这一目录层级下保存接收到的文件。一般来说,/root这一目录层级的深度为0,即为MDS集群中整体的根目录,/root/data这一目录层级的深度为1,/root/data/video这一目录层级的深度为2,依次类推。那么,在MDS集群创建目录时,则在MDS节点上可以设置在深度2这一目录层级保存元数据。
针对目录层级而言,根目录和目录子树可以是一个相对概念,比如,以/root/data/video为例,该目录即为/root/data这一目录的目录子树,以/root/data为例,该目录也可以称为/root/data/video的根目录。
当然,具体的目录层级根据用户实际的需求设置,对此不做限制。
另外,在确定第一MDS节点时,可以根据负载特征信息确定,比如,可以根据MDS集群中各MDS节点的当前负载确定,也可以根据MDS节点所管理的目录子树的数量确定,也可以根据MDS节点所管理的目录子树的数量以及预设的管理的目录子树的最大值来确定。
S102、在第一MDS节点创建第一目录,并建立第一目录与第一MDS的对应关系。
S103、若接收到针对第一目录的写入操作,则根据对应关系将第一目录下的元数据写入到第一MDS。
主MDS节点在选定了第一MDS节点后,在第一MDS节点上创建配置的处于对应的目录层级上的第一目录,第一MDS节点即可以在该第一目录下存储后续的元数据。
为了避免此后所生成的元数据存储到其他的MDS节点,可以为创建的第一目录新增一个扩展属性,该扩展属性可以称为第一扩展属性,用于表示管理以第一目录为根目录的目录子树的MDS节点。通过将第一扩展属性的值赋值为第一MDS节点的标识,标记所创建的第一目录和MDS节点的对应关系,从而绑定第一目录下所存储的元数据和MDS节点。
这样一来,在元数据写入的过程中,即可以根据MDS集群中各MDS节点的负载情况,选择一个合理的MDS节点保存该目录下的所有元数据。此时,在一个MDS节点能够满足客户端访问的要求下,尽可能多地使用一个MDS节点来存储元数据,避免频繁地进行负载均衡所导致的访问效率下降的问题。
在完成第一目录和第一MDS节点之间的绑定后,后续针对第一目录的元数据都会优先地存储到第一MDS节点。
可选的,MDS集群所管理的目录配置有第一扩展属性,其中,第一扩展属性用于表示管理以第一目录为根目录的目录子树的MDS节点;
在第一MDS节点创建第一目录,并建立第一目录与第一MDS的对应关系,包括:
在第一MDS节点创建第一目录;
通过第一扩展属性建立第一目录和第一MDS的对应关系。
可选的,负载特征信息,还可以包括MDS节点所管理的目录子树的最大值和MDS节点当前管理的目录子树的数量;
步骤S101、根据负载特征信息从MDS集群中确定出第一MDS节点,包括:
S101A、根据最大值和数量,确定出MDS集群中的各MDS节点的占用比例。
S101B、从MDS集群中确定出占用比例最低的MDS节点,并将该MDS节点确定为第一MDS节点。
通过设置MDS集群中各MDS节点最大能够管理的目录子树的数量,即最大值,并交互的负载特征信息中所携带的MDS节点当前管理的目录子树的数量,确定该MDS节点的占用比例,可以更准确地判断出一个MDS节点当前的负载情况,使得MDS集群可以选择出负载更低的第一MDS节点,各MDS节点的负载更加均衡。
进一步的,MDS集群所管理的目录配置有第二扩展属性,其中,第二扩展属性用于表示从分布式文件系统的根目录至第一目录的深度;
MDS节点配置有目录层级,目录层级为分布式文件系统的根目录至该MDS节点所管理的目录的深度;
S101A、根据最大值和数量,确定出MDS集群中的各MDS节点的占用比例,具体为:
根据目录层级和第二扩展属性,确定出管理第一目录的第二MDS节点;根据最大值和数量,确定出第二MDS节点中的占用比例。
在MDS集群中,还可以针对每一个MDS节点设置其可以管理的目录层级,即第二扩展属性,在确定第一MDS节点时,可以先根据第二扩展属性从MDS集群中选出能够管理需要创建的目录所处的目录层级的MDS节点,称为第二MDS节点,再根据负载的情况从多个第二MDS节点中确定负载最小的第一MDS节点。这样一来,MDS集群就可以分别满足用户对于元数据的存储需求以及MDS节点的负载。
进一步的,在接收MDS集群中其他的MDS节点所发送的心跳报文之后,还包括:
若最大值和数量的差值小于预设值,则对MDS集群中的各MDS节点进行负载均衡,或,根据负载特征信息从MDS集群中确定出第三MDS节点,并将接收到的元数据写入到第三MDS节点中。
在MDS集群中,通过第一MDS节点和目录的对应关系,可以在创建目录时预先进行负载均衡,但在后续运行的过程中,仍可能出现一个MDS节点的负载接近或超出所设置的MDS能够管理的目录子树的最大值。此时,MDS集群仍需要通过迁移等方式来实现负载均衡。比如,可以通过MDS能够管理的目录子树的最大值和MDS当前管理的目录子树的数量之间的差值来判断是否需要迁移
具体的迁移方式,可以是对根据负载特征信息进行MDS集群进行整体的负载均衡,也可以是根据负载特征信息重新确定一个负载最低的MDS节点,称为第三MDS节点,并将后续需要的元数据写入第三MDS节点来替代第一MDS节点。当然具体的方式不限于此,可以根据其他的方式进行。
下面结合一个具体的实施方式对本申请所涉及的一种元数据管理装置进行说明。在该实施方式中,分布式文件系统如图3所示,包括客户端节点、MDS集群和数据服务器集群。在MDS集群中设置有多个MDS节点(图3中包含4个MDS节点),这些MDS节点可以分为一个主MDS节点和若干从MDS节点。用户所使用的客户端通过客户端节点接入到分布式文件系统,下面以上传视频到分布式文件系统为例进行描述。
S1、MDS集群中的各MDS之间交互心跳报文,根据心跳报文中携带的负载特征信息各自生成负载信息表。
在心跳报文中携带有多种负载相关的信息以及与每个MDS节点的资源相关的信息。具体的,可以包含有MDS节点能够管理的目录子树的最大值、MDS节点当前管理的目录子树的数量以及每个MDS节点所能够管理的目录的深度,此外,还可以包含MDS节点计算出来的负载等信息。
根据上述的负载特征信息,生成负载信息表,该负载信息表根据心跳报文的交互而进行更新,确定的负载信息表可以如下表1所示,其中,主MDS节点为MDS节点0:
节点 | 目录子树最大值 | 目录子树当前值 | 负载 | 深度 |
MDS节点0 | 1500 | 800 | 60 | 0 |
MDS节点1 | 1500 | 700 | 55 | 3 |
MDS节点2 | 1500 | 400 | 35 | 3 |
MDS节点3 | 1500 | 900 | 70 | 3 |
表1
在MDS集群中,预先进行配置如下:
1、为MDS集群所管理的各级目录配置扩展属性1,以表示该目录建立对应关系的MDS节点,MDS节点可以根据负载信息表确定出一个MDS节点,并将该MDS节点的标识赋值到扩展属性1。
2、为MDS集群所管理的各级目录配置扩展属性2,以表示该所创建的目录相对于分布式文件系统的根目录所处的层级的深度。这里,针对客户端所需要创建的目录的深度为3,即位于/root/data/video下的目录,属于/root/data/video的目录子树。
3、为MDS集群中的每个MDS节点配置目录层级,这里的目录层级指MDS节点能够管理的目录的层级,比如,MDS节点1的目录层级为2,则能够管理/root/data下的目录,而MDS节点2的目录层级为3,则可以管理/root/data/video这一层级下的目录。
S2、客户端节点接收客户端上送的创建请求报文,客户端节点通过该创建请求报文转发给MDS集群。
S3、MDS集群中的主MDS节点接收到创建请求报文,主MDS节点根据创建请求报文,确定需要创建的目录的层级。
主MDS节点根据创建请求报文,生成需要存储到数据服务器集群的文件,并根据这个文件生成针对该文件的元数据,并确定该元数据需要存储的目录的层级,比如,需要创建的目录的层级为3。即需要生成于/root/data/video下。
S4、主MDS节点根据自身所维护的负载信息表,根据每一个MDS节点所能够管理的目录的目录层级,先从MDS集群中选择出满足创建目录的层级的MDS节点。
由于创建目录的层级为3,因此,结合表1能够确定MDS节点1、MSD节点2和MDS节点3满足要求。
S5、主MDS节点从满足要求的MDS节点中,根据各MDS节点当前管理的目录子树的数量以及各MDS节点能够管理的目录子树的最大值,确定出占用比例。
主MDS根据当前的负载信息表,可以计算出当前的目录子树的占用比例。MDS节点1的占用比例为47%,MDS节点2的占用比例为27%,MDS节点3的占用比例为60%。
从此可以确定出MDS节点2的占用比例最低,将该MDS节点2确定为存储元数据的MDS节点。
S6、主MDS节点将创建的目录的扩展属性1赋值为MDS节点2的标识,建立MDS节点2和创建的目录的对应关系。
S7、MDS集群接收客户端节点转发的数据报文,生成元数据写入到所创建的目录下。
在创建完成/root/data/video/20210201这个目录后,MDS集群后续接收到的元数据将写入。随着MDS集群接收的文件增加,经过心跳报文的交互,各MDS的负载信息表更新如表2所示:
节点 | 目录子树最大值 | 目录子树当前值 | 负载 | 深度 |
MDS节点0 | 1500 | 900 | 65 | 0 |
MDS节点1 | 1500 | 800 | 55 | 3 |
MDS节点2 | 1500 | 1480 | 98 | 3 |
MDS节点3 | 1500 | 1000 | 70 | 3 |
表2
S8、MDS集群根据负载信息表确定出一个MDS节点的负载过高需要进行迁移。
这里可以通过MDS节点2自身所维持的负载信息表确定出自身负载过高,最大值和数量的差值为20,小于了预设值50。MDS节点2通知主MDS节点需要启动整体的负载均衡。此时,主MDS节点根据MDS集群整体的负载情况确定出如何实现迁移,并通知各个MDS节点执行该迁移的方式以完成负载均衡。比如,根据表2可以确定出均值是1045,并以此确定各个MDS节点需要迁出/迁入的目录子树的数量。
或者,也可以通过在确定差值小于预设值后,通知主MDS节点重新选定一个MDS节点接收元数据。此时,主MDS节点需要先通过目录的扩展属性1赋值为重新确定的MDS节点,比如MDS节点1。这样一来,该目录下的后续的元数据将写入到MDS节点1,而非MDS节点2,从而避免了在一个MDS节点的负载很高的情况下,继续写入导致MDS节点的性能无法满足访问需求的问题。
相对应的,本申请还提供了一种元数据管理装置,应用于MDS集群,如图4所示,包括:
心跳单元,用于接收MDS集群中其他的MDS节点所发送的心跳报文,其中,心跳报文中携带有负载特征信息;
选择单元,用于若接收到创建请求报文,则根据负载特征信息从MDS集群中确定出第一MDS节点;
映射单元,用于在第一MDS节点创建第一目录,并建立第一目录与第一MDS的对应关系;
写入单元,用于若接收到针对第一目录的写入操作,则根据对应关系将第一目录下的元数据写入到第一MDS。
可选的,MDS集群所管理的目录配置有第一扩展属性,其中,第一扩展属性用于表示管理以第一目录为根目录的目录子树的MDS节点;
映射单元,包括:
创建模块,用于在第一MDS节点创建第一目录;
对应模块,用于通过第一扩展属性建立第一目录和第一MDS的对应关系。
可选的,负载特征信息,包括MDS节点所管理的目录子树的最大值和MDS节点当前管理的目录子树的数量;
该装置,还包括接收单元;
选择单元,还包括:
第一确定模块,用于若接收单元接收到创建请求报文,根据最大值和数量,确定出MDS集群中的各MDS节点的占用比例;
第二确定模块,用于从MDS集群中确定出占用比例最低的MDS节点,并将该MDS节点确定为第一MDS节点。
进一步的,MDS集群所管理的目录配置有第二扩展属性,其中,第二扩展属性用于表示从分布式文件系统的根目录至第一目录的深度;
MDS节点配置有目录层级,目录层级为分布式文件系统的根目录至该MDS节点所管理的目录的深度;
第一确定模块,具体用于:
若接收单元接收到创建请求报文,根据目录层级和第二扩展属性,确定出管理第一目录的第二MDS节点;根据最大值和数量,确定出第二MDS节点中的占用比例。
进一步的,该装置,还包括:
均衡单元,用于若最大值和数量的差值小于预设值,则对MDS集群中的各MDS节点进行负载均衡,或,根据负载特征信息从MDS集群中确定出第三MDS节点,并将接收到的元数据写入到第三MDS节点中。
本说明书的实施方式提供的技术方案可以包括以下有益效果:
本说明书实施方式中,通过根据负载特征信息分配目录和MDS节点的对应关系,在创建目录时将该目录下的元数据写入到对应关系所指向的MDS节点,从而在写入元数据时预先考虑MDS集群中各MDS节点的负载,提前进行MDS节点之间的负载均衡,避免在元数据写入MDS节点后频繁地进行负载均衡所带来的性能下降,提升了分布式文件系统的文件访问效率。
应当理解的是,本说明书并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。
以上所述仅为本说明书的较佳实施方式而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。
Claims (6)
1.一种元数据管理方法,其特征在于,应用于元数据服务器MDS集群,包括:
接收所述MDS集群中其他的MDS节点所发送的心跳报文,其中,所述心跳报文中携带有负载特征信息;
若接收到创建请求报文,则根据负载特征信息从所述MDS集群中确定出第一MDS节点;
在所述第一MDS节点创建第一目录,并建立所述第一目录与所述第一MDS的对应关系,所述MDS集群所管理的目录配置有第二扩展属性,其中,所述第二扩展属性用于表示从分布式文件系统的根目录至所述第一目录的深度;所述MDS节点配置有目录层级,所述目录层级为分布式文件系统的根目录至该MDS节点所管理的目录的深度;
若接收到针对所述第一目录的写入操作,则根据所述对应关系将所述第一目录下的元数据写入到所述第一MDS;
所述负载特征信息,包括MDS节点所管理的目录子树的最大值和MDS节点当前管理的目录子树的数量;
所述根据负载特征信息从所述MDS集群中确定出第一MDS节点,包括:
根据所述最大值和所述数量,确定出所述MDS集群中的各MDS节点的占用比例;
从所述MDS集群中确定出占用比例最低的MDS节点,并将该MDS节点确定为第一MDS节点;
所述根据所述最大值和所述数量,确定出所述MDS集群中的各MDS节点的占用比例,具体为:
根据所述目录层级和所述第二扩展属性,确定出管理所述第一目录的第二MDS节点;
根据所述最大值和所述数量,确定出所述第二MDS节点中的占用比例。
2.根据权利要求1所述的方法,其特征在于,所述MDS集群所管理的目录配置有第一扩展属性,其中,所述第一扩展属性用于表示管理以所述第一目录为根目录的目录子树的MDS节点;
在所述第一MDS节点创建第一目录,并建立所述第一目录与所述第一MDS的对应关系,包括:
在所述第一MDS节点创建第一目录;
通过所述第一扩展属性建立所述第一目录和所述第一MDS的对应关系。
3.根据权利要求1所述的方法,其特征在于,在所述接收所述MDS集群中其他的MDS节点所发送的心跳报文之后,还包括:
若所述最大值和所述数量的差值小于预设值,则对所述MDS集群中的各MDS节点进行负载均衡,或,根据负载特征信息从所述MDS集群中确定出第三MDS节点,并将接收到的元数据写入到所述第三MDS节点中。
4.一种元数据管理装置,其特征在于,应用于MDS集群,包括:
心跳单元,用于接收所述MDS集群中其他的MDS节点所发送的心跳报文,其中,所述心跳报文中携带有负载特征信息;
选择单元,用于若接收到创建请求报文,则根据负载特征信息从所述MDS集群中确定出第一MDS节点;
映射单元,用于在所述第一MDS节点创建第一目录,并建立所述第一目录与所述第一MDS的对应关系,所述MDS集群所管理的目录配置有第二扩展属性,其中,所述第二扩展属性用于表示从分布式文件系统的根目录至所述第一目录的深度;所述MDS节点配置有目录层级,所述目录层级为分布式文件系统的根目录至该MDS节点所管理的目录的深度;
写入单元,用于若接收到针对所述第一目录的写入操作,则根据所述对应关系将所述第一目录下的元数据写入到所述第一MDS;
所述负载特征信息,包括MDS节点所管理的目录子树的最大值和MDS节点当前管理的目录子树的数量;
所述装置,还包括接收单元;
所述选择单元,还包括:
第一确定模块,用于若接收单元接收到创建请求报文,根据所述最大值和所述数量,确定出所述MDS集群中的各MDS节点的占用比例;
第二确定模块,用于从所述MDS集群中确定出占用比例最低的MDS节点,并将该MDS节点确定为第一MDS节点;
所述第一确定模块,具体用于:
若接收单元接收到创建请求报文,根据所述目录层级和所述第二扩展属性,确定出管理所述第一目录的第二MDS节点;根据所述最大值和所述数量,确定出所述第二MDS节点中的占用比例。
5.根据权利要求4所述的装置,其特征在于,所述MDS集群所管理的目录配置有第一扩展属性,其中,所述第一扩展属性用于表示管理以所述第一目录为根目录的目录子树的MDS节点;
所述映射单元,包括:
创建模块,用于在所述第一MDS节点创建第一目录;
对应模块,用于通过所述第一扩展属性建立所述第一目录和所述第一MDS的对应关系。
6.根据权利要求4所述的装置,其特征在于,还包括:
均衡单元,用于若所述最大值和所述数量的差值小于预设值,则对所述MDS集群中的各MDS节点进行负载均衡,或,根据负载特征信息从所述MDS集群中确定出第三MDS节点,并将接收到的元数据写入到所述第三MDS节点中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110222334.3A CN113055448B (zh) | 2021-02-28 | 2021-02-28 | 一种元数据管理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110222334.3A CN113055448B (zh) | 2021-02-28 | 2021-02-28 | 一种元数据管理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113055448A CN113055448A (zh) | 2021-06-29 |
CN113055448B true CN113055448B (zh) | 2023-03-28 |
Family
ID=76509554
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110222334.3A Active CN113055448B (zh) | 2021-02-28 | 2021-02-28 | 一种元数据管理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113055448B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114415971B (zh) * | 2022-03-25 | 2022-09-23 | 阿里云计算有限公司 | 数据处理方法以及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103688257A (zh) * | 2012-11-27 | 2014-03-26 | 华为技术有限公司 | 元数据管理方法和装置 |
CN103916467A (zh) * | 2014-03-25 | 2014-07-09 | 中国科学院计算技术研究所 | 一种元数据集群中负载转移方法及系统 |
CN106850833A (zh) * | 2017-03-01 | 2017-06-13 | 郑州云海信息技术有限公司 | 一种平衡元数据集群负载的方法及装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8046422B2 (en) * | 2006-08-21 | 2011-10-25 | Netapp, Inc. | Automatic load spreading in a clustered network storage system |
CN103279568A (zh) * | 2013-06-18 | 2013-09-04 | 无锡紫光存储系统有限公司 | 一种元数据管理系统及方法 |
CN105389392A (zh) * | 2015-12-18 | 2016-03-09 | 浪潮(北京)电子信息产业有限公司 | 一种元数据负载统计方法与系统 |
CN107766159A (zh) * | 2017-11-13 | 2018-03-06 | 郑州云海信息技术有限公司 | 一种元数据管理方法、装置和计算机可读存储介质 |
CN111638853A (zh) * | 2020-05-08 | 2020-09-08 | 杭州海康威视系统技术有限公司 | 数据存储方法、装置、存储集群、网关设备及主设备 |
-
2021
- 2021-02-28 CN CN202110222334.3A patent/CN113055448B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103688257A (zh) * | 2012-11-27 | 2014-03-26 | 华为技术有限公司 | 元数据管理方法和装置 |
CN103916467A (zh) * | 2014-03-25 | 2014-07-09 | 中国科学院计算技术研究所 | 一种元数据集群中负载转移方法及系统 |
CN106850833A (zh) * | 2017-03-01 | 2017-06-13 | 郑州云海信息技术有限公司 | 一种平衡元数据集群负载的方法及装置 |
Non-Patent Citations (1)
Title |
---|
一种元数据服务器集群的负载均衡算法;王娟等;《小型微型计算机系统》;20090415(第04期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113055448A (zh) | 2021-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11704144B2 (en) | Creating virtual machine groups based on request | |
US10104010B2 (en) | Method and apparatus for allocating resources | |
CN112532675B (zh) | 一种网络边缘计算系统的创建方法、装置及介质 | |
JP6542909B2 (ja) | ファイル操作方法及び装置 | |
KR20140027518A (ko) | 클라우드 환경 내 가상 자원들의 할당을 위한 방법 및 장치 | |
CN103078965B (zh) | 虚拟机的ip地址管理方法 | |
CN113037794B (zh) | 计算资源配置调度方法、装置及系统 | |
US20070150492A1 (en) | Method and system for allocating file in clustered file system | |
CN102137014A (zh) | 资源管理方法、系统和资源管理器 | |
CN101741907A (zh) | 一种均衡服务器负载的方法、系统和主服务器 | |
US10761869B2 (en) | Cloud platform construction method and cloud platform storing image files in storage backend cluster according to image file type | |
EP3442201B1 (en) | Cloud platform construction method and cloud platform | |
CN113508372A (zh) | 分布式系统中的元数据路由 | |
CN110569302A (zh) | 一种基于lucene的分布式集群的物理隔离的方法及装置 | |
CN105045762A (zh) | 一种配置文件的管理方法及装置 | |
CN113055448B (zh) | 一种元数据管理方法及装置 | |
CN113805816B (zh) | 一种磁盘空间管理方法、装置、设备及存储介质 | |
CN112565475A (zh) | 容器集群业务层添加新节点的ip地址分配方法 | |
CN109005071B (zh) | 一种决策部署方法和调度设备 | |
CN115495023B (zh) | 一种数据请求方法、装置、设备及存储介质 | |
CN114930281A (zh) | 动态自适应分区分割 | |
CN113312328B (zh) | 控制方法、数据处理方法、数据访问方法及计算设备 | |
CN113542013B (zh) | 虚拟化网络功能管理消息分配方法、装置及设备 | |
CN114640678A (zh) | 基于SR-IOV的Pod管理方法、设备及介质 | |
CN113271323A (zh) | 集群扩容方法、装置和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |