本发明涉及元数据技术领域,特别是涉及一种可配置的mds的平衡控制方法、装置及存储介质。
背景技术:
文件系统中的数据分为普通数据和元数据。普通数据是指普通文件中包含的实际的数据,而元数据指用来描述文件的特征的数据,诸如访问权限、文件拥有者以及文件数据块的分布信息等等。通常情况下,文件系统包含多个节点,多个节点以集群的方式存在,共同完成文件系统的各项功能。文件系统的分布信息包括文件在磁盘上的位置以及磁盘在集群中的位置。用户需要操作一个文件必须首先得到它的元数据,才能定位到文件的位置并且得到文件的内容或相关属性。
当前,元数据有两种管理方式,分别是集中式管理方式和分布式管理方式。分布式管理方式是指将元数据服务器(mds)存放在文件系统的任意节点并且能动态的迁移,但是,当mds放置过于集中时,导致运行状态的mds在集群中的各节点分布不均,随着对元数据的读写压力越来越大,有的节点占用资源较大,而有的节点占用资源较小,并且在需要切换时,会从集群中随机选取一个处于备份状态的mds处于运行状态,因此对整个文件系统的性能有较大的影响,甚至容易造成瘫痪。
由此可见,如何在文件系统中各节点均匀配置mds,从而在读取元数据时,实现各节点的资源占有率的平衡是本领域技术人员亟待解决的问题。
技术实现要素:
本发明的目的是提供一种可配置的mds的平衡控制方法,用于在文件系统中控制各节点均匀配置mds,从而在读取元数据时,实现各节点的资源占有率的平衡。此外,本发明还提供一种与该方法对应的可配置的mds的平衡控制装置及计算机可读存储介质。
为解决上述技术问题,本发明提供一种可配置的mds的平衡控制方法,包括:
预先在集群中的各节点上部署多个mds,并建立各所述mds的名称、各所述mds的序列号以及与各所述mds配对的mds的名称的对应关系;其中,同一个所述节点上的所述mds具有相同的所述序列号,且存在配对关系的两个所述mds在同一个所述节点;
当需要扩展时,在所述集群中选取一个未启用节点,并控制所述未启用节点上的一个所述mds处于运行状态,且其余所述mds处于备份状态;
当需要切换时,依据所述对应关系,在待切换mds所在的目标节点上选取与所述待切换mds配对的目标mds,并控制所述目标mds切换为运行状态。
优选地,所述在所述集群中选取一个未启用节点具体包括:
依次遍历各所述节点,当一个所述节点上存在处于所述运行状态的mds时,则进入下一个所述节点,直到找到所述未启用节点为止。
优选地,所述依次遍历各所述节点具体为:按照所述序列号的顺序由小到大依次遍历各所述节点。
优选地,还包括:
将所述对应关系以map结构进行存储。
优选地,所述待切换mds的切换类型包括所述待切换mds处于stop类型和所述待切换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为本发明实施例提供的一种可配置的mds的平衡控制方法的流程图;
图2为本实施例提供的另一种可配置的mds的平衡控制方法的流程图;
图3为本发明实施例提供的一种可配置的mds的平衡控制装置的结构图;
图4为本发明实施例提供的另一种可配置的mds的平衡控制装置的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。
本发明的核心是提供一种可配置的mds的平衡控制方法,用于在文件系统中控制各节点均匀配置mds,从而在读取元数据时,实现各节点的资源占有率的平衡。此外,本发明还提供一种与该方法对应的可配置的mds的平衡控制装置及计算机可读存储介质。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。
图1为本发明实施例提供的一种可配置的mds的平衡控制方法的流程图。如图1所示,该方法包括:
s10:预先在集群中的各节点上部署多个mds,并建立各mds的名称、各mds的序列号以及与各mds配对的mds的名称的对应关系;其中,同一个节点上的mds具有相同的序列号,且存在配对关系的两个mds在同一个节点。
在具体实施中,集群中的每个节点上部署若干个mds。例如,可以设置10个,当然这里只是举例说明,至于部署几个,需要根据集群的规模进行部署。每个节点上部署的mds的数量可以相同,也可以不同。另外,本步骤中每个节点上的mds并不需要启动,即这样的节点为未启用节点,只有在扩展时选择一个mds启动,即控制一个mds处于运行状态,而本节点内的其余mds处于备份状态。
另外,需要建立对各mds的名称、各mds的序列号以及与各mds配对的mds的名称的对应关系。为了让本领域技术人员更加清楚本步骤中的对应关系,下文将详细说明。比如有2个active的mds,2个standby的mds,其分布在两个节点上,4个mds的名称分别为name1、name2、name3和name4,name1/name2在一个节点上,name3/name4在一个节点上。4个mds的序列号分别为rank1、rank2、rank3和rank4;与各mds配对的mds的名称用standby_for_name表示,则与name1配对的mds为name2,与name2配对的mds为name1,与name3配对的mds为name4,与name4配对的mds为name3。综上所述,对应关系如果用(name:rank:standby_for_name)表示的话,则上述几个4个mds的对应关系如下:
name1:0:name2;
name2:0:name1;
name3:1:name4;
name4:1:name3;
[mds.name1],standby_for_name=name2;
[mds.name2],standby_for_name=name1;
[mds.name3],standby_for_name=name4;
[mds.name4],standby_for_name=name3;
其中,0和1分别为两个rank号,同一个节点上的两个mds的rank号相同。
此外,每个节点上的mds的数量可以为奇数,也可以为偶数,对于偶数的情况,如上文的描述,对于奇数个,例如节点有a、b、c三个mds,可配置a的standby_for_name为b,b的standby_for_name为c,c的standby_for_name为a。
s11:当需要扩展时,在集群中选取一个未启用节点,并控制未启用节点上的一个mds处于运行状态,且其余mds处于备份状态。
需要说明的是,本步骤中的扩展,包含两种情况:一种情况是,集群中任意一个节点都是未启用节点,即集群中首次需要控制一个mds处于运行状态(mds的状态为active);另一种情况是,集群中已经有启用节点,在此基础上,需要启用另外未启用节点上的mds。对于第一种情况,实际为集群初始状态,初始状态时仅需要有1个节点上的mds处于运行状态,而该节点上的其余mds均为备份状态。
根据以上两种情况,当需要扩展时,如果各节点都是未启用节点,则选取其中一个节点上的mds处于运行状态,并控制该节点上的其余mds处于备份状态(mds的状态为standby)。由此可见,本步骤中保证每个节点上处于运行状态的mds最多为1个。
s12:当需要切换时,依据对应关系,在待切换mds所在的目标节点上选取与待切换mds配对的目标mds,并控制目标mds切换为运行状态。
在运行过程中,已经启用的节点上的mds可能出现异常或者被stop,该mds为待切换mds,这种情况下,为了正常运行,需要将该mds切换,并用本节点内的其它mds(处于备份状态)代替之,从而保证已经启用的节点上有且仅有一个mds处于运行状态。需要说明的是,目标mds只是为了与本节点内的其余mds进行区分,在本节点内,每个处于备份状态的mds都有可能成为目标mds。
作为优选地实施方式,待切换mds的切换类型包括待切换mds处于stop类型和待切换mds处于异常类型。
如果是待切换mds的切换类型为待切换mds处于stop类型,则说明待切换mds被停止,需要在其所在的节点内控制其中一个mds处于运行状态。
例如,本节点内有10个mds,mds1为处于运行状态的mds,其余mds2-mds10处于备份状态。
当mds1被stop时,则该节点就是待切换mds,因此,需要在mds2-mds10中选取一个mds作为目标mds,例如选取mds2作为目标mds,则mds3-mds10仍然处于备份状态。
当mds1异常时,则该节点就是待切换mds,因此,需要在mds2-mds10中选取一个mds作为目标mds,例如选取mds2作为目标mds,则mds3-mds10仍然处于备份状态。在具体实施中,检测一个处于运行状态的mds是否异常,具体通过心跳检测方法确定,如果心跳异常或者停止,则待切换mds就处于异常类型。
需要说明的是,步骤s11和s12没有先后之分,图1只是一种具体应用场景。
本实施例提供的可配置的mds的平衡控制方法,预先在集群中的各节点上部署多个mds,并建立各mds的名称、各mds的序列号以及与各mds配对的mds的名称的对应关系;其中,同一个节点上的mds具有相同的序列号,且存在配对关系的两个mds在同一个节点;当需要扩展时,在集群中选取一个未启用节点,并控制未启用节点上的一个mds处于运行状态,且其余mds处于备份状态;当需要切换时,依据对应关系,在待切换mds所在的目标节点上选取与待切换mds配对的目标mds,并控制目标mds切换为运行状态。由于无论是在扩展时还是切换时,每个节点上最多只有一个mds处于运行状态,因此,能够实现文件系统中各节点均匀配置mds,从而在读取元数据时,实现各节点的资源占有率的平衡。此外,本方法只需要简单的配置,即可实现部署平衡。
在上述实施例的基础上,作为优选地实施方式,在集群中选取一个未启用节点具体包括:
依次遍历各节点,当一个节点上存在处于运行状态的mds时,则进入下一个节点,直到找到未启用节点为止。
为了保证有顺序的进行扩展,本实施方式中,每次扩展时,均需要遍历每个节点,如果该节点已经存在处于运行状态的mds,则进入下一个,直到找到未启用节点为止。
作为优选地实施方式,依次遍历各节点具体为:按照序列号的顺序由小到大依次遍历各节点。
例如,rank号从0至max_mds-1(max_mds为集群中运行状态的mds最大数)。
图2为本实施例提供的另一种可配置的mds的平衡控制方法的流程图。如图2所示,在上述实施例的基础上,还包括:
s20:将对应关系以map结构进行存储。
通过将对应关系以map结构进行存储,可以提高找到目标节点的速度,从而提高切换时的速度。
图3为本发明实施例提供的一种可配置的mds的平衡控制装置的结构图。如图3所示,一种可配置的mds的平衡控制装置,包括:
部署模块10,用于预先在集群中的各节点上部署多个mds,并建立各mds的名称、各mds的序列号以及与各mds配对的mds的名称的对应关系;其中,同一个节点上的mds具有相同的序列号,且存在配对关系的两个mds在同一个节点;
控制模块11,用于当需要扩展时,在集群中选取一个未启用节点,并控制未启用节点上的一个mds处于运行状态,且其余mds处于备份状态;当需要切换时,依据对应关系,在待切换mds所在的目标节点上选取与待切换mds配对的目标mds,并控制目标mds切换为运行状态。
本实施例提供的可配置的mds的平衡控制装置,由于无论是在扩展时还是切换时,每个节点上最多只有一个mds处于运行状态,因此,能够实现文件系统中各节点均匀配置mds,从而在读取元数据时,实现各节点的资源占有率的平衡。此外,本装置只需要简单的配置,即可实现部署平衡。
上述实施例对于可配置的mds的平衡控制装置方法部分的实施例进行了详细描述,本发明还提供一种与该方法对应的装置及计算机可读存储介质。由于装置部分的实施例与方法部分的实施例相互对应,因此装置及计算机可读存储介质部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
图4为本发明实施例提供的另一种可配置的mds的平衡控制装置的结构图。如图4所示,该装置包括存储器20,用于存储计算机程序;
处理器21,用于执行计算机程序时实现如上述所述的可配置的mds的平衡控制方法的步骤。
本实施例提供的可配置的mds的平衡控制装置,由于无论是在扩展时还是切换时,每个节点上最多只有一个mds处于运行状态,因此,能够实现文件系统中各节点均匀配置mds,从而在读取元数据时,实现各节点的资源占有率的平衡。此外,本装置只需要简单的配置,即可实现部署平衡。
一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述所述的可配置的mds的平衡控制方法的步骤。
可以理解的是,本发明中的计算机可读存储介质可以为u盘,光盘等存储介质,本发明不作限定。
本实施例提供的计算机可读存储介质,用于执行上述可配置的mds的平衡控制方法,由于无论是在扩展时还是切换时,每个节点上最多只有一个mds处于运行状态,因此,能够实现文件系统中各节点均匀配置mds,从而在读取元数据时,实现各节点的资源占有率的平衡。此外,本方法只需要简单的配置,即可实现部署平衡。
以上对本发明所提供的可配置的mds的平衡控制方法、装置及计算机可读存储介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。