一种分布式文件系统中QoS目录流量控制方法和控制装置与流程

文档序号:28930032发布日期:2022-02-16 15:03阅读:136来源:国知局
一种分布式文件系统中QoS目录流量控制方法和控制装置与流程
一种分布式文件系统中qos目录流量控制方法和控制装置
技术领域
1.本发明涉及分布式文件系统领域,具体涉及一种分布式文件系统中qos目录流量控制方法和控制装置。


背景技术:

2.在云场景,存在多个用户共享云资源的情况。而在云资源中,一个重要的分类是分布式文件存储资源。对于分布式文件存储资源,一般依据用户的购买情况分配目录级别的文件存储容量,而更重要的是分配不同的流量,包括带宽和每秒读写次数(iops,input/output operations per second)。云场景下的分布式文件存储资源,支撑系统是分布式文件系统。一般地,管理员会在分布式文件系统中给不同的用户分配不同的目录。不同用户的目录不存在嵌套情况,在逻辑上相互隔离互不相通。而支撑文件存储资源的集群节点的磁盘空间、cpu资源以及集群节点之间的网络资源仍然是共享的。为了保证每个用户得到规划的服务质量,就需要提供服务质量(quality of service,qos)功能,对用户使用的带宽和iops资源进行限制。
3.对于分布式文件存储,这种对带宽和iops的限制需要在目录级别实现。对于多个接入节点的分布式文件存储集群,需要均衡各个接入节点qos目录下的读写流量。具体是对每个接入节点的qos分配值(即接入节点的带宽和iops的具体分配数值),按照接入节点的读写io情况相应地进行调整,避免出现浪费qos配置值(即qos目录整体的带宽和ipos上限)的情况,保证用户购买的带宽和iops资源得到充分利用。而现有的流量分配方法通常是基于令牌桶实现的,令牌桶是指网络设备的内部存储池,而令牌则是指以给定速率填充令牌桶的虚拟信息包。令牌桶可以看作是一个存放令牌的容器,预先设定一定的容量。系统按设定的速度向桶中放置令牌,当桶中令牌满时,多余的令牌溢出。当数据流到达设备时首先会根据数据的大小从令牌桶中取出与数据大小相当的令牌数量用来传输数据,即数据能够被传输必须保证令牌桶里有足够多的令牌。若令牌数量不够则数据会被丢弃或缓存,从而限制报文的流量只能小于等于令牌生成的速度,达到限制流量的目的。
4.但是令牌桶的方法依赖于分布式文件系统中的qos中心节点,qos中心节点在为qos接入节点分配令牌时,如果设定缓存的令牌数目少,会导致qos接入节点频繁申请令牌,使得系统对读写请求的处理影响很大;如果设定缓存的令牌过多,会导致qos配置值需要发生变化时生效缓慢,也就无法及时调整分配值。因此目前亟需一种更加高效的qos目录流量的控制方法。


技术实现要素:

5.有鉴于此,本发明实施方式提供了一种分布式文件系统中qos目录流量控制方法和控制装置,能够提高qos目录流量的分配效率。
6.根据第一方面,本发明提供了一种分布式文件系统中qos目录流量控制方法,所述方法应用于元数据服务节点中,所述方法包括:接收接入节点上报的反馈消息,所述反馈消
息中包括所述接入节点对目标qos目录进行读写的读写信息;基于所述反馈消息,在所述目标qos目录的反馈消息映射表中更新所述接入节点的映射条目,所述映射条目用于表征所述接入节点的节点标识与所述读写信息之间的映射关系;根据所述反馈消息映射表中的各个映射条目,为所述目标qos目录对应的各个接入节点生成qos配置信息,并将生成的所述qos配置信息下发至对应的接入节点处,以分配所述目标qos目录的流量至各个接入节点。
7.可选地,所述基于所述反馈消息,在所述目标qos目录的反馈消息映射表中更新所述接入节点的映射条目,包括:若所述接入节点上报的反馈消息表征所述接入节点在预设数量周期内没有发生读写行为,将所述接入节点对应的映射条目从所述反馈消息映射表中移除;若所述接入节点上报的反馈消息表征所述接入节点第一次发生读写行为,基于所述反馈消息在所述反馈消息映射表中添加新的映射条目;其中,在每个周期结束时,统计各个映射条目对应的接入节点的流量累计值,并基于统计的所述流量累计值修改所述反馈消息映射表中的各个映射条目。
8.可选地,所述根据所述反馈消息映射表中的各个映射条目,为所述目标qos目录对应的各个接入节点生成qos配置信息,包括:若当前周期为初始周期或新节点加入的周期,则平均分配qos配置值给各个映射条目对应的接入节点,并将分配后的结果作为各个所述接入节点对应的qos配置信息;若所述当前周期不是初始周期或新节点加入的周期,则确定各个映射条目对应的接入节点的饱和状态;回收各个不饱和接入节点的多余分配量,并在各个饱和接入节点中重新分配所述多余分配量,以生成下一周期各个所述接入节点的qos配置信息。
9.可选地,所述确定各个映射条目对应的接入节点的饱和状态,包括:基于所述流量累计值计算各个所述接入节点上一周期的流量值,得到多个第一流量值;对比所述第一流量值和上一周期qos分配值,若所述第一流量值小于所述上一周期qos分配值,判定所述接入节点为不饱和接入节点;若所述第一流量值等于所述上一周期qos分配值,判定所述接入节点为饱和接入节点。
10.可选地,所述回收各个不饱和接入节点的多余分配量,并在各个饱和接入节点中重新分配所述多余分配量包括:计算分配增量,所述分配增量为全部不饱和接入节点的多余分配量之和与饱和接入节点的数量之间的比值;将所述饱和接入节点的上一周期qos分配值与所述分配增量相加,生成各饱和接入节点在下一周期的新qos分配值;将各不饱和接入节点的上一周期流量值作为各不饱和接入节点在下一周期的新qos分配值。
11.可选地,所述确定各个映射条目对应的接入节点的饱和状态,回收各个不饱和接入节点的多余分配量并在各个饱和接入节点中重新分配所述多余分配量,包括:基于各接入节点在多个周期内流量累计值的变化趋势,对各接入节点下一周期的qos分配值进行预测,得到多个流量预测值;根据所述流量预测值与上一周期qos分配值的大小关系判定所述接入节点中的饱和接入节点和不饱和接入节点;计算各饱和接入节点的流量预测值占饱和接入节点总流量预测值的比例,得到拆分比例;基于所述拆分比例将全部多余分配量拆分为多个分配增量,并分配给对应的饱和接入节点,所述饱和接入节点在下一周期的qos分配值为上一周期qos分配值与所述分配增量的和;将所述不饱和接入节点的预测流量值作为所述不饱和接入节点在下一周期的qos分配值。
12.可选地,所述根据所述流量预测值与上一周期qos分配值的大小关系判定所述接
入节点中的饱和接入节点和不饱和接入节点,包括:对比所述接入节点的流量预测值和上一周期qos分配值,若所述流量预测值小于所述上一周期qos分配值,判定所述接入节点为不饱和接入节点;若所述流量预测值等于所述上一周期qos分配值,判定所述接入节点为第一饱和接入节点;若所述流量预测值大于所述上一周期qos分配值,判定所述接入节点为第二饱和接入节点;针对所述第一饱和接入节点,将其流量预测值按预设比例升高为第二流量预测值。
13.可选地,所述方法还包括:当qos配置值下调时,按照所述qos配置值的下调比例同时下调各接入节点下一周期的qos分配值;当qos配置值上调时,计算各饱和接入节点下一周期的qos分配值占饱和接入节点总qos分配值的比例,生成第二拆分比例;基于所述第二拆分比例将qos配置值的上调量分配给对应的饱和接入节点。
14.可选地,所述将生成的所述qos配置信息下发至对应的接入节点处,包括:基于所述qos配置信息,在所述目标qos目录的流量分配映射表中更新所述接入节点的第二映射条目,所述第二映射条目用于表征所述接入节点的节点标识与所述qos配置信息之间的映射关系;生成所述流量分配映射表中有变化的映射条目对应的流量分配消息,并将所述流量分配消息下发到至对应的接入节点处。
15.根据第二方面,本发明提供了一种分布式文件系统中qos目录流量控制装置,所述装置应用于元数据服务节点中,所述装置包括:信息接收模块,用于接收接入节点上报的反馈消息,所述反馈消息中包括所述接入节点对目标qos目录进行读写的读写信息;反馈消息映射模块,用于基于所述反馈消息,在所述目标qos目录的反馈消息映射表中更新所述接入节点的映射条目,所述映射条目用于表征所述接入节点的节点标识与所述读写信息之间的映射关系;流量配置模块,用于根据所述反馈消息映射表中的各个映射条目,为所述目标qos目录对应的各个接入节点生成qos配置信息,并将生成的所述qos配置信息下发至对应的接入节点处,以分配所述目标qos目录的流量至各个接入节点。
16.根据第三方面,本发明实施例提供了一种分布式文件系统中qos目录流量控制设备,包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行第一方面,或者第一方面任意一种可选实施方式中所述的方法。
17.根据第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机从而执行第一方面,或者第一方面任意一种可选实施方式中所述的方法。
18.本技术提供的技术方案,通过元数据服务节点动态接收与目标qos目录对接的多个接入节点的反馈消息,从而通过反馈消息中的读写信息判断出目前处于读写状态的接入节点,并将接入节点的读写信息映射到反馈信息映射表中,动态更新映射表中各个接入节点对应的映射条目,从而使元数据服务节点根据表中记载的接入节点读写状态,在每一周期调整各个接入节点的流量分配值,使得流量使用多的接入节点获取更多分配值,流量使用少的接入节点获取更少的分配值。在分布式文件系统中包含多个元数据服务节点,从而分担流量压力,避免了中心节点性能瓶颈。同时,动态地为各个接入节点进行流量分配,能够提高流量分配的效率。
19.此外通过回收不饱和接入节点的多余流量并将多余流量按照饱和接入节点之间
的流量使用占比使得分配结果更加合理。另外结合多个先前周期的流量预测值的方法预测接入节点在下一周期的流量值,之后再进行流量使用占比的计算使得分配结果进一步精确,大大提高了流量分配的合理性。
20.可见,本技术以上各个实施方式提供的技术方案,能够降低系统承载压力,提高流量分配的均衡性,进而提高了流量分配的效率。
附图说明
21.通过参考附图会更加清楚的理解本发明的特征和优点,附图是示意性的而不应理解为对本发明进行任何限制,在附图中:
22.图1示出了本发明一个实施方式中一种分布式文件系统中qos目录流量控制方法的步骤示意图;
23.图2示出了本发明一个实施方式中一种分布式文件系统中qos目录流量控制方法的流程示意图;
24.图3示出了本发明一个实施方式中一种分布式文件系统中qos目录流量控制装置的结构示意图;
25.图4示出了本发明一个实施方式中一种分布式文件系统中qos目录流量控制设备的结构示意图。
具体实施方式
26.为使本发明实施方式的目的、技术方案和优点更加清楚,下面将结合本发明实施方式中的附图,对本发明实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式是本发明一部分实施方式,而不是全部的实施方式。基于本发明中的实施方式,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施方式,都属于本发明保护的范围。
27.用户购买的流量即带宽和iops配置值,即带宽和iops上限,在分布式文件中,用户购买流量后,流量从多个连接到达,这些连接是在不同的接入节点上的。多个接入节点的流量可能没有均匀分布,如果不调整qos分配值,会造成部分接入节点的分配值用的少,部分接入节点的分配值使用饱和,最终无法将购买的总的配制值充分利用,在当前业界分布式文件系统中,目录级别的qos实现,依赖于目录关联的qos配置和令牌桶结构。如背景技术中,实现qos限制的方式关键点:(1)接入节点向中心节点请求令牌,中心节点下发令牌;(2)接入节点可以缓存令牌,实现对io流量进行限制。以上的典型方案存在多种问题:(1)依赖中心节点,存在性能瓶颈;(2)如果令牌缓存过小,对io性能影响较大;(3)如果令牌缓存过大,qos配置更新缓慢,可能出现超出qos限制的情况。
28.本方案实现了一种在分布式文件系统中目录级别的qos流量均衡分配方法,由多个接入节点,按照qos目录的元数据归属,向对应的元数据服务节点汇报qos目录的流量情况,按照流量情况动态分配qos值,能够及时调整qos分配值,实现了qos分配动态均衡,提高了流量分配效率,避免了中心节点性能瓶颈和其他问题(qos变更生效慢、无法动态均衡、qos超限、依赖管理员手动调整等)。
29.请参阅图1和图2,在一个实施方式中,分布式文件系统中qos目录流量控制方法,
具体包括以下步骤:
30.步骤s101:接收接入节点上报的反馈消息,反馈消息中包括接入节点对目标qos目录进行读写的读写信息。具体地,本发明实施例通过分布式文件存储系统中多个元数据服务节点接收接入节点的反馈消息,再根据反馈消息中的读写信息动态的分配流量给各个接入节点。元数据服务节点负责管理分布式文件系统的元数据,并提供访问元数据的服务,分布式文件系统可以存在多个活动的元数据服务,且元数据服务节点在分布式文件系统中分布均匀(元数据又称中介数据、中继数据,为描述数据的数据,主要是描述数据属性的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能),通过元数据服务节点分别管理不同目录的流量分配工作,均衡了系统压力,避免了中心节点的性能瓶颈。
31.步骤s102:基于反馈消息,在qos目录的反馈消息映射表中更新接入节点的映射条目,映射条目用于表征接入节点的节点标识与读写信息之间的映射关系。具体地,元数据服务节点在接收到各个接入节点的反馈消息后,将反馈的读写信息更新到反馈消息映射表中,反馈信息映射表不仅包括各个接入节点当前的读写信息,还包括先前周期的历史读写信息,方便计算在每个周期的具体读写信息。在本发明实施例中,读写信息包括各个接入节点的读写状态和从初始周期到目前的流量累计值。通过读写状态和流量累计值判断出哪些接入节点正在读写,正在读写的接入节点的流量是否够用,从而进一步在每个周期进行动态的流量重分配,保证各个接入节点的流量均衡,与现有技术相比,避免了令牌桶限制流量的流量分配不均的问题。此外,当qos配置值发生变化时,元数据服务服务节点也可以在每个周期及时调整当前各个接入节点的qos分配值,与传统的令牌桶技术相比解决了qos配置值变更生效慢的问题。而使用映射表的形式对反馈信息进行存储和汇总,提高了系统对反馈信息统一管理的效率,方便统计和计算。在本发明实施例中,反馈消息的内容形成映射条目,添加到map结构的反馈消息表feedbacks_map中或更新feedbacks_map中已有的条目,feedback条目包括key和value,key是接入节点id,value包括多个字段:stamp即发送反馈消息时的时间戳,io_stat,即qos目录的读写状态值;bstats,即qos目录下读写的数据块的累计统计值;iostats,即qos目录下读写的io计数的累计统计值。
32.步骤s103:根据反馈消息映射表中的各个映射条目,为qos目录对应的各个接入节点生成qos配置信息,并将生成的qos配置信息下发至对应的接入节点处以分配目标qos目录的流量至各个接入节点。具体地,元数据服务节点通过反馈信息表判断出各个接入节点的读写状态,针对无读写的接入节点并不需要浪费资源分配流量,针对有读写的接入节点,分析其先前的qos分配值是否够用,并对不够用的接入节点在下一周期进行流量重分配,生成qos配置信息及时下发到各个接入节点处,保证各个接入节点在每个周期使用最合适的流量,提高了用户购买流量的整体使用效率。
33.具体地,在一实施例中,上述步骤s102,具体包括如下步骤:
34.步骤s1021:若接入节点上报的反馈消息表征接入节点在预设数量周期内没有发生读写行为,将接入节点对应的映射条目从反馈消息映射表中移除。
35.步骤s1022:若接入节点上报的反馈消息表征接入节点第一次发生读写行为,基于反馈消息在反馈消息映射表中添加新的映射条目。
36.步骤s1023:其中,在每个周期结束时,统计各个映射条目对应的接入节点的流量累计值,并基于统计的流量累计值修改反馈消息映射表中的各个映射条目。
37.具体地,在本发明实施例中,在qos结构(独立于qos目录的qos数据结构,和qos目录的元数据缓存是一对一关系)上设置状态位,表示qos目录(配置了qos属性的目录)下文件的读写状态,qos目录下文件的读写状态,有三种状态:noio、first_io、io。其中,noio状态表示qos目录下没有文件正在进行读写,仅仅有对于目录或者子目录的访问,以及对目录下文件的元数据的访问操作,比如readdir、stat等操作,为了保证系统统计读写状态的方便,从而将没有读写接入节点的映射条目从feedbacks_map中移除,本发明实施例针对任意接入节点,若接入节点在预设k(k是正整数)个周期内没有发生读写,则该接入节点执行从io到noio的状态转换。即在每个周期遍历feedbacks_map,检查是否存在某个feedback条目,其时间戳已经落后于当前时间k个周期,如果存在此类映射条目则将该条目从feedbacks_map中移除。first_io状态表示qos目录下第一次发生文件的读写,或者是之前有若干周期没有发生文件的读写,当前恢复了对qos目录下文件的读写,first_io状态只能由noio状态进入,当统计到某个接入节点第一次发生读写时,反馈消息映射表中会添加该节点的映射条目。io状态表示qos目录下的文件在持续地进行读写的状态,io状态只能由first_io状态进入,io状态之后只能进入noio状态。存在于反馈消息映射表中的映射条目,其对应的接入节点均是有读写的接入节点,后续的流量重分配步骤也是针对该部分接入节点进行的。
38.三种状态转换触发的时机如下:
39.noio状态转换first_io状态:qos结构创建、初始化后,所处状态是noio状态,表明没有统计到qos目录下任何文件正在读写当中,当统计到任何一个文件被读写,将qos结构的状态从noio变为first_io状态,同时接入节点向qos目录元数据所在的元数据服务节点,发送first_io类型的反馈消息;first_io状态转换io状态:qos目录下的文件被继续读写时,关联的qos结构的状态从first_io变为io状态;io状态转换noio状态:当间隔了预设数量周期,没有检查到qos目录下有文件被读写时,qos结构的从io状态变为noio状态,同时接入节点向qos目录元数据所在的元数据服务节点,发送noio类型的反馈消息。状态保持在io状态时,接入节点也会周期性地发送io类型的反馈消息,从而报送当前周期结束时的累计读写次数和累计数据块大小,并将每次统计的累计读写次数和累积数据块大小,存入对应的映射条目中,使得各个映射条目包含全部历史周期的累计读写次数和累计数据块大小。在分布式文件存储集群的接入节点,统计qos目录级别的读写流量的方法是:如果读写的文件关联了qos结构,就在qos结构上,保存读写io的累计读写数和累计数据块大小。在读写接口内,会对读写次数进行统计计数,保存到qos结构的读写累计数统计中,每读(或写)接口调用一次,对应的统计计数加一;此外,还会对读写的块大小进行统计,并保存到qos结构的读写块大小统计中,每读(或写)成功,就会把读(或写)的数据块的大小累计到数据块统计值中。当有读写次数累计计数或数据块累计值增加时,就判断为本周期内有读写,否则判断认为本周期内没有读写。通过上述处理,保证了反馈消息映射表中的映射条目都是有读写接入节点的信息,提高了后续流量计算和统计的效率,避免出错。
40.具体地,在一实施例中,上述步骤s103,具体包括如下步骤:
41.步骤s1031:若当前周期为初始周期或新节点加入的周期,则平均分配qos配置值给各个映射条目对应的接入节点,并将分配后的结果作为各个接入节点对应的qos配置信息。
42.具体地,本发明实施例提供的生成qos配置信息的步骤具体分为两部分,为了提高各个接入节点的流量分配均衡程度,将流量实际使用量达不到qos分配值的接入节点的没有使用流量部分,即多余分配量进行回收,之后将回收的流量重新分配给流量实际使用量已经达到qos分配值的接入节点。但是判断接入节点的流量实际使用量是否达到qos分配值需要接入节点的历史读写信息来分析,而在当前周期为初始周期或新节点加入的周期时,存在没有历史读写信息的节点,继而无法依靠历史读写信息进行流量回收,此时系统自动进行流量平均分配,将目录的qos配置值平均分配给当前处于读写状态的所有接入节点。具体分配公式如下:
[0043][0044]
其中,iops_alloc为给任一接入节点的iops分配值;bw_alloc为给任一接入节点的带宽分配值;iops_limit为用户给qos目录配置的iops限制值;bw_limit为用户给qos目录配置的带宽限制值;num_clients:正在进行读写的接入节点个数。
[0045]
步骤s1032:若当前周期不是初始周期或新节点加入的周期,则确定各个映射条目对应的接入节点的饱和状态。
[0046]
步骤s1033:回收各个不饱和接入节点的多余分配量,并在各个饱和接入节点中重新分配多余分配量,以生成下一周期各个接入节点的qos配置信息。
[0047]
具体地,由于系统外部或内部等原因,接入节点的流量使用情况并不是固定不变的,在当前周期流量使用量大的接入节点,在下一周期流量使用量可能会变小。而给每个接入节点的qos分配值(分配的流量上限)可能由于接入节点的使用率低而出现流量的使用量远远低于qos分配值的情况,因此针对这部分不饱和接入节点,对其流量分配情况进行动态调整,可以最大化的提高qos配置值的使用效率。因此需要统计出各个接入节点的饱和状态,以进行后续处理。本发明实施例中在每个周期通过元数据服务节点统计各个接入节点的读写次数和累计数据块大小实现实际流量统计,将实际流量值与各个接入节点的qos分配值比对来确定对应的饱和状态。然后将各个不饱和接入节点没有使用的流量进行回收,并将回收的流量重新分配给其他饱和接入节点,使得用户购买的资源得到充分利用,并且将流量在各个周期内按照接入节点的使用需求进行动态分配,避免了现有技术qos变更生效慢、无法动态均衡、qos超限、依赖管理员手动调整等问题。
[0048]
具体地,在一实施例中,上述步骤s1032,具体包括如下步骤:
[0049]
步骤s10321:基于流量累计值计算各个接入节点上一周期的流量值,得到多个第一流量值。具体地,在本实施例中,通过各个接入节点上一周期的分配值和流量实际使用值的大小关系来确定各个接入节点是否是饱和接入节点。接入节点在上一周期的实际使用流量值(即第一流量值)的计算公式如下:
[0050]
iops_statsi=(new_op_sum
i-last_op_sumi)/t,i∈[0,n)
[0051]
其中,iops_statsi表示接入节点i在上个周期的流量值(即第一流量值),new_op_sumi表示接入节点i的上一周期结束时的流量累计值,last_op_sumi表示接入节点i在上上个周期结束时的流量累计值,t表示一个周期的时间(单位:秒),n表示接入节点个数。
[0052]
步骤s10322:对比第一流量值和上一周期qos分配值,若第一流量值小于上一周期qos分配值,判定接入节点为不饱和接入节点。
[0053]
步骤s10323:若第一流量值等于上一周期qos分配值,判定接入节点为饱和接入节点。
[0054]
具体地,当任意一个接入节点上一周期的第一流量值小于上一周期qos分配值时,该节点为不饱和接入节点;当任意一个接入节点上一周期的第一流量值等于上一周期qos分配值时,该节点为饱和接入节点。实际情况中,存在一定数量的接入节点的流量实际使用值与qos分配值非常接近的情况,因此流量的实际使用值与qos分配值的关系在本实施例中的等于并不是完全等于,而是近似等于,当第一流量值达到上一周期qos分配值的预设比例时,即视为相等。例如,当第一流量值达到qos分配值的95%时即视作等于,该接入节点为饱和接入节点。避免忽略了这部分接入节点为饱和接入节点的情况出现,提高节点饱和状态认定的准确率。
[0055]
具体地,在一实施例中,基于步骤s10321~s10323,步骤s1033具体包括以下步骤:
[0056]
步骤s10331:计算分配增量,分配增量为全部不饱和接入节点的多余分配量之和与饱和接入节点的数量之间的比值。
[0057]
步骤s10332:将饱和接入节点的上一周期qos分配值与分配增量相加,生成各饱和接入节点在下一周期的新qos分配值。
[0058]
步骤s10333:将各不饱和接入节点的上一周期流量值作为各不饱和接入节点在下一周期的新qos分配值。
[0059]
具体地,在步骤s1032中,计算了各个不饱和接入节点上一周期的qos分配值和第一流量值的差值,差值即代表不饱和接入节点在上一周期没有使用的流量分配(多余分配量),元数据节点从而回收该部分流量分配值,全部差值的和为总流量回收量,之后在本实施例中,将总回收量平均分配给各个饱和接入节点,具体操作方式为总回收量除以饱和接入节点的个数,得到分配增量值,并将分配增量值分配给各个饱和接入节点,分配增量与各饱和接入节点在上一周期的qos分配值之和即为饱和接入节点在下一周期的新qos分配值,不饱和接入节点在上一周期实际使用的第一流量值即为不饱和接入节点在下一周期的新qos分配值。通过上述步骤,在每一个周期均将不饱和接入节点的多余分配量重新分配给饱和接入节点,保证了各个接入节点的流量均衡,提高了用户购买流量的使用率。
[0060]
具体地,在另一实施例中,上述步骤s1032~s1033,具体包括如下步骤:
[0061]
步骤s10335:基于各接入节点在多个周期内流量累计值的变化趋势,对各接入节点下一周期的qos分配值进行预测,得到多个流量预测值。
[0062]
步骤s10336:根据流量预测值与上一周期qos分配值的大小关系判定接入节点中的饱和接入节点和不饱和接入节点。
[0063]
具体地,在本实施例中,为了进一步提高流量重分配的准确率,不仅仅使用各个接入节点上一周期的第一流量值与qos分配值确定各个接入节点的饱和状态,而是通过各个接入节点的历史流量累计值信息,计算出接入节点在先前m(m为正整数)个周期中,每个周期的流量值,并将各个历史周期的流量值作为数组整体输入线性回归函数中,从而预测接入节点在下一周期的流量使用情况,得到流量预测值。进一步提高接入节点在下一周期流量使用情况估计的准确性。线性回归函数预测为现有技术,本实施例不再赘述。之后,通过判断各个接入节点流量预测值与上一周期的qos分配值的大小关系,来确定接入节点的饱和状态。
[0064]
步骤s10337:计算各饱和接入节点的流量预测值占饱和接入节点总流量预测值的比例,得到拆分比例。
[0065]
步骤s10338:基于拆分比例将全部多余分配量拆分为多个分配增量,并分配给对应的饱和接入节点,饱和接入节点在下一周期的qos分配值为上一周期qos分配值与分配增量的和。
[0066]
步骤s10339:将不饱和接入节点的预测流量值作为不饱和接入节点在下一周期的qos分配值。
[0067]
具体地,不饱和接入节点不参与总回收量的重分配,只有饱和接入节点参与总回收量的重分配,计算各个饱和接入节点流量预测值占饱和接入节点总流量预测值的比例,从而根据得到的比例拆分总回收量。例如:3个饱和接入节点的ipos流量预测值分别为102次/秒、120次/秒和150次/秒,总回收量为1000次/秒。则第一个饱和接入节点瓜分总回收量的分配增量为:1000
×
102/(102+120+150)次/秒,另外两个饱和接入节点的计算方式同理。从而进一步提高了各个饱和接入节点重分配流量总回收量的准确度,使得qos目录流量分配更加均衡。饱和接入节点在下一周期的qos分配值是流量预测值与上述步骤计算的分配增量之和,不饱和接入节点在下一周期的qos分配值是其流量预测值,保证了qos目录配置值能够最大限度的被各个接入节点使用,提高了流量分配均衡程度。
[0068]
具体地,在一实施例中,步骤s10336,具体包括如下步骤:
[0069]
步骤s61:对比接入节点的流量预测值和上一周期qos分配值,若流量预测值小于上一周期qos分配值,判定接入节点为不饱和接入节点。
[0070]
步骤s62:若流量预测值等于上一周期qos分配值,判定接入节点为第一饱和接入节点。
[0071]
步骤s63:若流量预测值大于上一周期qos分配值,判定接入节点为第二饱和接入节点。
[0072]
步骤s64:针对第一饱和接入节点,将其流量预测值按预设比例升高为第二流量预测值。
[0073]
具体地,当接入节点的流量预测值小于其上一周期的qos分配值时,表示预测该节点无法将先前的qos分配值充分使用,从而该接入节点为不饱和接入节点。当接入节点的流量预测值等于其上一周期的qos分配值时,表示预测该节点可以充分利用先前的qos分配值,并将该节点标记为第一饱和接入节点。当接入节点的流量预测值大于其上一周期的qos分配值时,表示预测该节点不仅可以充分利用先前的qos分配值,并且先前的qos分配值不够该接入节点使用,从而将该节点标记为第二饱和接入节点。进一步明确了各个接入节点的饱和状态。为了防止第一饱和接入节点所占全部饱和接入节点的再分配比例过低,导致第一饱和接入节点的分配增量过小,下一周期流量超限的情况。首先对第一饱和接入节点在下一周期的流量分配值进行预处理,将第一饱和接入节点的流量预测值按照预设比例升高为第二流量预测值,例如:第一饱和接入节点的ipos预测值为50次/秒,升高4%调整为第二流量预测值为52次/秒。
[0074]
通过上述步骤,在每一个周期均将基于流量预测值确定的不饱和接入节点的多余分配量重新分配给饱和接入节点,保证了各个接入节点的流量均衡,提高了用户购买流量的使用率。
[0075]
具体地,在一实施例中,在步骤s1033之后,本发明实施例提供的一种分布式文件系统中qos目录流量控制方法,还包括如下步骤:
[0076]
步骤s104:当qos配置值下调时,按照qos配置值的下调比例同时下调各接入节点下一周期的新qos分配值。
[0077]
步骤s105:当qos配置值上调时,计算各饱和接入节点下一周期新qos分配值占饱和接入节点总qos分配值的比例,生成第二拆分比例。
[0078]
步骤s106:基于第二拆分比例将qos配置值的上调量分配给对应的饱和接入节点。
[0079]
具体地,当qos目录的配置值发生整体下调的情况,基于下一周期各个接入节点的新qos分配值将新分配值按照配置值的下调比例进行同步下调,与现有技术相比,保证了配置值下调的实时性,避免了配置值变化各个接入节点响应缓慢。例如,目前存在两个接入节点,若qos配置值下调2%,则各个接入节点的qos分配值均下调2%。当qos目录的配置值上调时,与下调稍有不同。不饱和接入节点由于其流量使用能力弱,因此分配值无需变动。只针对饱和接入节点进行分配值上调即可,但是具体上调量需要按照各个饱和接入节点分配值占总分配值的比例(即第二拆分比例)确定。例如:qos配置值中ipos上调2%,计算出2%具体的上调量为1000次/秒,目前存在两个饱和接入节点,a饱和接入节点的最新的分配值为a,b饱和接入节点最新的分配值为b,则a饱和接入节点具体的配置值上调量为1000
×
a/(a+b),b饱和接入节点的配置值上调量同理。特别注意,在步骤s61~s64中,qos配置值上调是针对第一饱节点和第二饱和接入节点均需要进行的。通过将饱和接入节点的配置值是上调,本实施例不仅提高了配置值变化速度,还进一步提高了流量分配的均衡程度。
[0080]
具体地,在一实施例中,在步骤s103之后,本发明实施例提供的一种分布式文件系统中qos目录流量控制方法,还包括如下步骤:
[0081]
步骤s107:基于qos配置信息,在qos目录的流量分配映射表中更新接入节点的第二映射条目,第二映射条目用于表征接入节点的节点标识与qos配置信息之间的映射关系。
[0082]
步骤s108:将流量分配映射表中有变化的第二映射条目转换为流量分配消息下发到至对应的接入节点处。
[0083]
具体地,本实施例通过将qos配置信息存入流量分配映射表中,保证表中的条目均是参与流量分配的接入节点,方便管理和统计。每次只向表中有变化条目对应的接入节点发送流量分配值改变消息,降低了系统发送新消息数量,提高了工作效率。本实施例中,流量分配映射表allocations_map采用map结构,可以通过qos目录元数据结构inode索引得到,每个qos目录元数据对应了一个allocations_map。allocations_map包含了若干allocation条目,每个allocation条目对应了一个接入节点的分配信息。allocation条目的具体内容,包括key和value:key是接入节点id,即给出了分配值的nas机头的id(nas机头是分布式文件存储对外的接入节点,是分布式文件系统流量的反馈处理入口);value包括多个字段:iops_alloc,即分配给对应接入节点的iops值;bw_alloc,即分配给对应接入节点的带宽值。元数据服务节点基于allocations_map中的变化条目,将相应的allocations_notify通知消息下发到对应的接入节点处。
[0084]
通过上述步骤,本技术提供的技术方案,通过元数据服务节点动态接收与目标qos目录对接的多个接入节点的反馈消息,从而通过反馈消息中的读写信息判断出目前处于读写状态的接入节点,并将接入节点的读写信息映射到反馈信息映射表中,动态更新映射表
中各个接入节点对应的映射条目,从而使元数据服务节点根据表中记载的接入节点读写状态,在每一周期调整各个接入节点的流量分配值,使得流量使用多的接入节点获取更多分配值,流量使用少的接入节点获取更少的分配值。在分布式文件系统中包含多个元数据服务节点,从而分担流量压力,避免了中心节点性能瓶颈。动态的为各个接入节点进行流量分配解决了现有技术流量分配不均衡的问题。
[0085]
此外通过回收不饱和接入节点的多余流量并将多余流量按照饱和接入节点之间的流量使用占比使得分配结果更加合理。另外结合多个先前周期的流量预测值的方法预测接入节点在下一周期的流量值再进行流量使用占比的计算使得分配结果进一步精确,大大提高了流量分配的合理性。
[0086]
可见,本技术以上各个实施方式提供的技术方案,能够降低系统承载压力,提高流量分配的均衡性,解决了qos中心节点瓶颈和qos目录流量分配不均衡的问题。
[0087]
如图3所示,本实施例还提供了一种分布式文件系统中qos目录流量控制装置,该装置包括:
[0088]
信息接收模块101,用于接收接入节点上报的反馈消息,反馈消息中包括接入节点对目标qos目录进行读写的读写信息。详细内容参见上述方法实施例中步骤s101的相关描述,在此不再进行赘述。
[0089]
反馈消息映射模块102,用于基于反馈消息,在目标qos目录的反馈消息映射表中更新接入节点的映射条目,映射条目用于表征接入节点的节点标识与读写信息之间的映射关系。详细内容参见上述方法实施例中步骤s102的相关描述,在此不再进行赘述。
[0090]
流量配置模块103,用于根据反馈消息映射表中的各个映射条目,为目标qos目录对应的各个接入节点生成qos配置信息,并将生成的qos配置信息下发至对应的接入节点处,以分配目标qos目录的流量至各个接入节点。详细内容参见上述方法实施例中步骤s103的相关描述,在此不再进行赘述。
[0091]
本发明实施例提供的分布式文件系统中qos目录流量控制装置,用于执行上述实施例提供的分布式文件系统中qos目录流量控制方法,其实现方式与原理相同,详细内容参见上述方法实施例的相关描述,不再赘述。
[0092]
通过上述各个组成部分的协同合作,本技术提供的分布式文件系统中qos目录流量控制装置,通过元数据服务节点动态接收与目标qos目录对接的多个接入节点的反馈消息,从而通过反馈消息中的读写信息判断出目前处于读写状态的接入节点,并将接入节点的读写信息映射到反馈信息映射表中,动态更新映射表中各个接入节点对应的映射条目,从而使元数据服务节点根据表中记载的接入节点读写状态,在每一周期调整各个接入节点的流量分配值,使得流量使用多的接入节点获取更多分配值,流量使用少的接入节点获取更少的分配值。在分布式文件系统中包含多个元数据服务节点,从而分担流量压力,避免了中心节点性能瓶颈。动态的为各个接入节点进行流量分配解决了现有技术流量分配不均衡的问题。
[0093]
此外通过回收不饱和接入节点的多余流量并将多余流量按照饱和接入节点之间的流量使用占比使得分配结果更加合理。另外结合多个先前周期的流量预测值的方法预测接入节点在下一周期的流量值再进行流量使用占比的计算使得分配结果进一步精确,大大提高了流量分配的合理性。
[0094]
可见,本技术以上各个实施方式提供的技术方案,能够降低系统承载压力,提高流量分配的均衡性,解决了qos中心节点瓶颈和qos目录流量分配不均衡的问题。
[0095]
图4示出了本发明实施例的一种分布式文件系统中qos目录流量控制设备,该设备包括处理器901和存储器902,可以通过总线或者其他方式连接,图4中以通过总线连接为例。
[0096]
处理器901可以为中央处理器(central processing unit,cpu)。处理器901还可以为其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。
[0097]
存储器902作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如上述方法实施例中的方法所对应的程序指令/模块。处理器901通过运行存储在存储器902中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及数据处理,即实现上述方法实施例中的方法。
[0098]
存储器902可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储处理器901所创建的数据等。此外,存储器902可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器902可选包括相对于处理器901远程设置的存储器,这些远程存储器可以通过网络连接至处理器901。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0099]
一个或者多个模块存储在存储器902中,当被处理器901执行时,执行上述方法实施例中的方法。
[0100]
上述分布式文件系统中qos目录流量控制设备具体细节可以对应参阅上述方法实施例中对应的相关描述和效果进行理解,此处不再赘述。
[0101]
本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,实现的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)、随机存储记忆体(random access memory,ram)、快闪存储器(flash memory)、硬盘(hard disk drive,缩写:hdd)或固态硬盘(solid-state drive,ssd)等;存储介质还可以包括上述种类的存储器的组合。
[0102]
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下作出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1