一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

虚拟化网络功能管理消息分配方法、装置及设备与流程

2021-10-24 04:21:00 来源:中国专利 TAG:装置 分配 消息 公开 通信


1.本公开涉及通信技术领域,尤其涉及一种虚拟化网络功能管理消息分配方法、装置及设备。


背景技术:

2.虚拟化网络功能(virtualization network function,vnf)管理器即vnf manager是符合etsi的网络功能虚拟化(network function virtualization,nfv)规范的nfv部署、配置及管理软件,它管理多台物理服务器,根据用户业务需求灵活计算所需的资源,完成vnf在vnf设备上的创建和部署,同时将所需要的初始配置下发到vnf设备,确保vnf设备启动后,管理平台能够远程管理。vnf manager还承担消息中枢的角色,负责所有vnf设备消息的分发。
3.一致性哈希hash算法最初是在解决分布式cache的问题中被提出的,设计目标是为了解决因特网中的热点(hot spot)问题,初衷和carp十分类似。一致性哈希修正了carp使用的简单哈希算法带来的问题。一致性hash算法将整个哈希值空间组织成一个虚拟的圆环,如假设某哈希函数h的值空间为0~2^32

1(即哈希值是一个32位无符号整形),整个空间圆环按顺时针方向布局,圆环的正上方的点代表0,0点右侧的第一个点代表1。以此类推2、3、4、5、6
……
直到2^32

1,也就是说0点左侧的第一个点代表2^32

1,0和2^32

1在零点中方向重合,这个由2^32个点组成的圆环称为hash环。
4.假设有4台服务器,服务器0、服务器1、服务器2,服务器3,在生产环境中,这4台服务器肯定有自己的ip地址或主机名,使用它们各自的ip地址或主机名作为关键字进行哈希计算,使用哈希后的结果对2^32取模,即hash(服务器的ip地址)%2^32。最后得到一个[0,2^32

1]之间的一个无符号整形数,这个整数就代表服务器的编号。同时这个整数肯定处于[0,2^32

1]之间,在hash环上必定有一个点与这个整数对应,这个服务器就可被映射到这个环上。多个服务器都通过这种方式进行计算,最后都会各自映射到圆环上的某个点,这样每台机器就能确定其在哈希环上的位置。
[0005]
通常,在为用户分配服务器时,根据用户的ip地址使用上面相同的函数hash计算出哈希值,并从计算出的哈希值在哈希环上的位置沿哈希环顺时针查找,将找到的第一台服务器分配给用户为该用户提供服务。
[0006]
在实际应用中,vnf manager和vnf设备所处的环境是复杂多变的,不同vnf设备对配置信息的响应速度也是千差万别的,同时vnf manager所下挂vnf设备的数量可能是巨大且多变的。综合考虑以上因素,vnf manager想要实现稳定、高效管理vnf的目的,必须引入消息队列来实现消息的分发。消息队列的构造需要综合考虑如下几方面因素:
[0007]
高效性,由于vnf manager需要分发的消息量是巨大的,所以高效是消息队列设计时的首要指标。
[0008]
有序性,vnf设备消息必须保持有序性,否则必然会造成逻辑错误(如新建vnf及删除vnf必须按序执行)。
[0009]
伸缩性,当需要对vnf manager进行扩容时,需要尽量避免对原有数据进行迁移,从而保证vnf manager集群的稳定运行。
[0010]
随着业务量的不断提升以及vnf设备数量的不断增加,单台vnf manager由于其自身处理能力的限制已经无法满足实际业务的需求,vnf manager集群的概念也应运而生。vnf manager集群是指利用某种集群协商方法实现多台vnf manager协同处理用户请求及协调管理所有下挂vnf设备的解决方案,该类方案的设计需要综合考虑如下因素:
[0011]
vnf设备分布注册在集群内各个vnf manager下,vnf设备的管理压力在集群内均匀分布;集群内构建vnf manager消息队列,且满足vnf manager消息队列的各项需求。
[0012]
现有技术中,使用一致性哈希算法实现vnf manger集群内不同vnf设备的归属管理,由于传统的一致性哈希算法在新增服务节点时需要将部分原有数据进行迁移,该迁移操作一般需要在中断系统服务的前提下进行,且数据迁移会给系统的稳定性带来不确定因素。


技术实现要素:

[0013]
有鉴于此,本公开提供一种虚拟化网络功能管理消息分配方法、装置及设备,用于解决vnf管理消息一致性分配的技术问题。
[0014]
基于本公开实施例的一方面,本公开提供了一种虚拟化网络功能管理消息分配方法,该方法应用于虚拟化网络功能管理器vnf manager集群,所述方法包括:
[0015]
对vnf manager集群中每个服务节点的管理ip地址做哈希,基于管理ip地址的哈希值将每个服务节点映射到有向哈希环上的固定位置;
[0016]
为每个服务节点创建一个vnf管理消息队列并通过vnf管理消息队列向归属于各服务节点的vnf设备发送vnf管理消息;在创建vnf管理消息队列时,记录vnf管理消息队列的创建时间;
[0017]
在向第一vnf设备下发第一vnf管理消息时,基于第一vnf管理消息中携带的第一vnf设备的设备标识在所述有向哈希环上定位所述第一vnf设备归属的服务节点,将所述有向哈希环上沿寻址方向满足时间约束条件的服务节点确定为所述第一vnf设备归属的服务节点,将所述第一vnf管理消息放入所述第一vnf设备归属的服务节点的vnf管理消息队列;其中,所述时间约束条件为:vnf设备的上线时间早于服务节点的vnf管理消息队列的创建时间。
[0018]
进一步地,所述基于管理ip地址的哈希值将每个服务节点映射到有向哈希环上的固定位置的方法为:
[0019]
对服务节点的管理ip地址做哈希,将服务节点的ip地址的哈希值对n取模所得的结果作为服务节点在所述有向哈希环上的映射位置;其中,n为所述有向哈希环的服务节点容量。
[0020]
进一步地,所述基于第一vnf管理消息中携带的第一vnf设备的设备标识在所述有向哈希环上定位所述第一vnf设备归属的服务节点的方法为:
[0021]
对第一vnf管理消息中携带的第一vnf设备的设备标识做哈希,将第一vnf设备的设备标识的哈希值对n取模所得结果作为初始定位位置,然后沿寻址方向,选择满足时间约束条件的服务节点确定为所述第一vnf设备归属的服务节点;其中,n为所述有向哈希环的
服务节点容量。
[0022]
进一步地,当在寻址环寻址一遍后未找到符合时间约束条件的服务节点,则选择时间最近的不满足时间约束条件的服务节点作为所述第一vnf设备归属的服务节点。
[0023]
基于本公开实施例的另一方面,本公开提供了一种虚拟化网络功能管理消息分配一种虚拟化网络功能管理消息分配装置,该装置应用于虚拟化网络功能管理器vnf manager集群,所述装置包括:
[0024]
服务节点位置映射模块,用于对vnf manager集群中每个服务节点的管理ip地址做哈希,基于管理ip地址的哈希值将每个服务节点映射到有向哈希环上的固定位置;
[0025]
管理消息队列管理模块,用于为每个服务节点创建一个vnf管理消息队列,并通过vnf管理消息队列向归属于各服务节点的vnf设备发送vnf管理消息;在创建vnf管理消息队列时,记录vnf管理消息队列的创建时间;
[0026]
管理消息定位分配模块,用于在向第一vnf设备下发第一vnf管理消息时,基于第一vnf管理消息中携带的第一vnf设备的设备标识在所述有向哈希环上定位所述第一vnf设备归属的服务节点,将所述有向哈希环上沿寻址方向满足时间约束条件的服务节点确定为所述第一vnf设备归属的服务节点,将所述第一vnf管理消息放入所述第一vnf设备归属的服务节点的vnf管理消息队列;其中,所述时间约束条件为:vnf设备的上线时间早于服务节点的vnf管理消息队列的创建时间。
[0027]
进一步地,所述服务节点位置映射模块首先对服务节点的管理ip地址做哈希,然后将服务节点的ip地址的哈希值对n取模所得的结果作为服务节点在所述有向哈希环上的映射位置;其中,n为所述有向哈希环的服务节点容量。
[0028]
进一步地,所述管理消息定位分配模块首先对第一vnf管理消息中携带的第一vnf设备的设备标识做哈希,将第一vnf设备的设备标识的哈希值对n取模所得结果作为初始定位位置,然后沿寻址方向,选择满足时间约束条件的服务节点确定为所述第一vnf设备归属的服务节点;其中,n为所述有向哈希环的服务节点容量。
[0029]
进一步地,当所述管理消息定位分配模块在寻址环寻址一遍后未找到符合时间约束条件的服务节点时,选择时间最近的不满足时间约束条件的服务节点作为所述第一vnf设备归属的服务节点。
[0030]
本公开提供的技术方案将集群中的服务节点映射到有向哈希寻址环上,在下发管理消息时,基于vnf设备设备标识定位归属的服务节点,将服务节点的投入使用时间与vnf设备的上线时间作为时间约束条件来确定vnf设备的归属服务节点,进而确定下发管理消息的消息队列。通过本公开技术方案可避免每次有新vnf manager服务节点加入后都需要将存量vnf管理消息进行重新分配和迁移的情况发生,同时保证了每个vnf消息的有序性。
附图说明
[0031]
为了更加清楚地说明本公开实施例或者现有技术中的技术方案,下面将对本公开实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本公开实施例的这些附图获得其他的附图。
[0032]
图1为本公开一实施例中经离散处理的vnf manager集群中服务节点在寻址环上
的分布情况示例图;
[0033]
图2为本公开一实施例中基于vnf设备id通过寻址环寻找管理消息对应的vnf manager服务节点的示意图;
[0034]
图3为本公开一实施例中与vnf manager服务节点对应的消息队列的示意图;
[0035]
图4为本公开一实施例提供的一种虚拟化网络功能管理消息分配装置结构示意图;
[0036]
图5为本公开一实施例提供的一种虚拟化网络功能管理消息分配方法的电子设备的结构示意图。
具体实施方式
[0037]
在本公开实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本公开实施例。本公开实施例中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。本公开中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
[0038]
应当理解,尽管在本公开实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
[0039]
本公开旨在提供一种虚拟化网络功能管理消息分配方法,该方案可被用于vnf manager集群中vnf设备的归属管理和vnf管理消息的分配,vnf manager集群维护一组分布式消息队列,用于分发所有vnf管理消息,该分布式消息队列需要能够高效完成vnf管理消息的分发,能够针对相同的vnf设备保证消息在集群内的有序性,以及在扩展vnf manager集群规模时,能够在不影响已有业务的情况下进行服务资源的扩充。
[0040]
本公开技术方案的基本思路是:vnf manager集群中的每个提供vnf管理功能的vnf manager(简称服务节点)都维护有一个vnf管理消息队列(简称消息队列),该消息队列用于存储vnf管理消息。每个服务节点可以管理一个或多个vnf设备,每个vnf设备归属于某个服务节点,即每个vnf设备可以找到唯一的有序消息队列归属以保证每个vnf设备管理消息的有序性。
[0041]
vnf manager集群中的每个服务节点都有一个特定的管理ip,且该管理ip在集群内唯一,vnf manager集群中每个vnf manager依据管理ip做离散运算,具体离散算法可以是取ip地址字符串的哈希值,运算方法为code=hash(ip)。在vnf manager集群内构建全局有向哈希寻址环(简称寻址环),寻址环中可容纳的服务节点的数量即服务节点容量n可根据实际组网确定,基于每个服务节点的ip地址的哈希值将每个服务节点映射到寻址环上,映射的方式可以为:服务节点的ip地址的哈希值对n取模(code%n),即vnf manager集群中每个服务节点可以离散地分布于寻址环上,且位于寻址环的位置固定。图1为本公开一实施例中经离散处理的vnf manager集群中服务节点在寻址环上的分布情况示例图。
[0042]
每个需要下发至vnf设备的vnf管理消息都需要经过寻址环来查找定位该管理消息所属的vnf管理消息队列。每个vnf管理消息都携带有接收该管理消息的目的vnf设备的
设备标识属性(device

n)。在查找定位过程中,首先对device

n做哈希运算,哈希算法与创建服务节点在寻址环上映射服务节点位置时的哈希算法一致,例如哈希值code=hash(device

n)。在得到管理消息中设备标识的哈希值code后,再使用code对寻址环中服务节点容量n取模获得寻址位置即position=code%n,然后再根据position确定管理消息在寻址环中所归属的服务节点,例如寻址位置在服务节点vnf manager

2与服务节点vnf manager

3之间时,根据寻址环的寻址方向(可为逆时针或顺时针)寻找到与寻址位置最近的服务节点以初步确定vnf设备所属的服务节点。
[0043]
图2为本公开一实施例中基于vnf设备id通过寻址环寻找管理消息对应的vnf manager服务节点的示意图,该示例中管理消息中的设备id属性值为device

2,假设对device

2做哈希后对寻址环中服务节点容量n取模得到的寻址位置位于管理节点2和管理节点3之间,预设的寻址方向为逆时针方向,则最终确定的管理消息中携带的设备标识对应的vnf设备的归属服务节点为vnf manager

2,最终将下发给vnf设备device

2的管理消息加入到vnf manager

2的消息队列中等待下发。
[0044]
每个vnf manager服务节点在初始化过程中生成消息队列queue

n用于存储vnf管理消息,且每个消息队列保存一个创建时间戳(timestamp)用于标志消息队列生成时间,图3为本公开一实施例中与vnf manager服务节点对应的消息队列的示意图,该示例中,三个消息队列queue

1、queue

2、queue

3分别为vnf manager

1、vnf manager

2、vnf manager

3三个服务节点的管理消息队列。
[0045]
本公开实施例中,每个vnf设备在首次上线时都需记录自身上线的时间戳,每个vnf管理消息在消息寻址过程(顺时针或者逆时针)中,按照寻址环上的vnf manager服务节点顺序找到与vnf管理消息所属的vnf设备对应的查询位置最近的服务节点,并用vnf设备上线时间与找到的vnf manager服务节点对应的消息队列queue的时间戳做对比,如果vnf设备上线时间戳早于服务节点的消息队列queue的时间戳,则跳过该vnf manager服务节点继续沿寻址方向下寻址,直到找到服务节点的消息队列的创建时间戳早于vnf设备上线时间的服务节点,如果在寻址环寻址一遍后依然未找到符合时间约束条件的服务节点,则使用时间最近的不满足时间约束条件的服务节点作为该vnf管理消息的处理节点。
[0046]
本公开技术方案可带来以下几个方面的技术效果:
[0047]
本公开提供的技术方案中,基于哈希寻址环为vnf设备的管理消息确定服务节点所管理的消息队列,随着服务节点数量的变化,运算复杂性基本不变,从而保证了消息处理的高效性。
[0048]
针对vnf manager集群扩容的情况,即环境在运行一段时间后,由于规模的扩大,需要增加服务节点,如果按照原本的一致性哈希算法,此时增加的服务节点可能会成为某些原vnf消息的服务承载点,而为了保证消息的有序性,需要将原消息队列里存量的消息进行重新分配和迁移;
[0049]
采用本公开提供的技术方案时,由于保存了vnf设备上线的时间戳,当某个在扩容前就已经上线的vnf设备所属的管理消息到来时,会对比服务节点的消息队列的初始化时间戳与vnf设备上线时间,如果vnf设备上线时间早于服务节点的消息队列的上线时间,则认为服务节点为后加节点,继续按照寻址方向寻找非后加节点;如果整个哈希寻址环都找不到非后加节点,则选择时间最近的首个节点作为该vnf管理消息的承载服务节点;如果找
到某个服务节点的管理消息队列的时间戳早于vnf设备上线时间,则认为该服务节点是先前该vnf设备的管理消息的承载节点,则使用该服务节点做为该vnf管理消息的承载服务节点,从而避免了该vnf设备的管理消息的重新分配和迁移。
[0050]
本公开提供的技术方案将集群中的服务节点映射到有向哈希寻址环上,在下发管理消息时,基于vnf设备设备标识定位归属的服务节点,将服务节点的投入使用时间与vnf设备的上线时间作为时间约束条件来确定vnf设备的归属服务节点,进而确定下发管理消息的消息队列。通过本公开技术方案可避免每次有新vnf manager服务节点加入后都需要将存量vnf管理消息进行重新分配和迁移的情况发生,同时保证了每个vnf消息的有序性。
[0051]
图4为本公开一实施例提供的一种虚拟化网络功能管理消息分配装置结构示意图,该装置400中的各功能模块可以采用软件、硬件或软硬件相结合的方式实现。当多个硬件设备共同实施本公开的技术方案时,由于各硬件设备之间相互协作的目的是共同实现本发明目的,一方的动作和处理结果确定了另一方的动作执行的时机及可能获得的结果,因此,可视为各执行主体之间具有相互协作关系,各执行主体之间具有相互指挥和控制关系。该装置400应用于虚拟化网络功能管理器vnf manager集群,所述装置400包括:
[0052]
服务节点位置映射模块401,用于对vnf manager集群中每个服务节点的管理ip地址做哈希,基于管理ip地址的哈希值将每个服务节点映射到有向哈希环上的固定位置;
[0053]
管理消息队列管理模块402,用于为每个服务节点创建一个vnf管理消息队列,并通过vnf管理消息队列向归属于各服务节点的vnf设备发送vnf管理消息;在创建vnf管理消息队列时,记录vnf管理消息队列的创建时间;
[0054]
管理消息定位分配模块403,用于在向第一vnf设备下发第一vnf管理消息时,基于第一vnf管理消息中携带的第一vnf设备的设备标识在所述有向哈希环上定位所述第一vnf设备归属的服务节点,将所述有向哈希环上沿寻址方向满足时间约束条件的服务节点确定为所述第一vnf设备归属的服务节点,将所述第一vnf管理消息放入所述第一vnf设备归属的服务节点的vnf管理消息队列;其中,所述时间约束条件为:vnf设备的上线时间早于服务节点的vnf管理消息队列的创建时间。
[0055]
所述服务节点位置映射模块401首先对服务节点的管理ip地址做哈希,然后将服务节点的ip地址的哈希值对n取模所得的结果作为服务节点在所述有向哈希环上的映射位置;其中,n为所述有向哈希环的服务节点容量。
[0056]
所述管理消息定位分配模块403首先对第一vnf管理消息中携带的第一vnf设备的设备标识做哈希,将第一vnf设备的设备标识的哈希值对n取模所得结果作为初始定位位置,然后沿寻址方向,选择满足时间约束条件的服务节点确定为所述第一vnf设备归属的服务节点;其中,n为所述有向哈希环的服务节点容量。
[0057]
进一步地,当所述管理消息定位分配模块403在寻址环寻址一遍后未找到符合时间约束条件的服务节点时,选择时间最近的不满足时间约束条件的服务节点作为所述第一vnf设备归属的服务节点。
[0058]
图5为本公开一实施例提供的一种虚拟化网络功能管理消息分配方法的电子设备的结构示意图,该设备500包括:诸如中央处理单元(cpu)的处理器510、通信总线520、通信接口540以及存储介质530。其中,处理器510与存储介质530可以通过通信总线520相互通信。存储介质530内存储有计算机程序,当该计算机程序被处理器510执行时即可实现本公
开提供的方法的各步骤的功能。
[0059]
其中,存储介质可以包括随机存取存储器(random access memory,ram),也可以包括非易失性存储器(non

volatile memory,nvm),例如至少一个磁盘存储器。另外,存储介质还可以是至少一个位于远离前述处理器的存储装置。处理器可以是通用处理器,包括中央处理器(central processing unit,cpu)、网络处理器(network processor,np)等;还可以是数字信号处理器(digital signal processing,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field

programmable gate array,fpga)或其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
[0060]
应当认识到,本公开的实施例可以由计算机硬件、硬件和软件的组合、或者通过存储在非暂时性存储器中的计算机指令来实现或实施。所述方法可以使用标准编程技术,包括配置有计算机程序的非暂时性存储介质在计算机程序中实现,其中如此配置的存储介质使得计算机以特定和预定义的方式操作。每个程序可以以高级过程或面向对象的编程语言来实现以与计算机系统通信。然而,若需要,该程序可以以汇编或机器语言实现。在任何情况下,该语言可以是编译或解释的语言。此外,为此目的该程序能够在编程的专用集成电路上运行。此外,可按任何合适的顺序来执行本公开描述的过程的操作,除非本公开另外指示或以其他方式明显地与上下文矛盾。本公开描述的过程(或变型和/或其组合)可在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可作为共同地在一个或多个处理器上执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)、由硬件或其组合来实现。所述计算机程序包括可由一个或多个处理器执行的多个指令。
[0061]
进一步,所述方法可以在可操作地连接至合适的任何类型的计算平台中实现,包括但不限于个人电脑、迷你计算机、主框架、工作站、网络或分布式计算环境、单独的或集成的计算机平台、或者与带电粒子工具或其它成像装置通信等等。本公开的各方面可以以存储在非暂时性存储介质或设备上的机器可读代码来实现,无论是可移动的还是集成至计算平台,如硬盘、光学读取和/或写入存储介质、ram、rom等,使得其可由可编程计算机读取,当存储介质或设备由计算机读取时可用于配置和操作计算机以执行在此所描述的过程。此外,机器可读代码,或其部分可以通过有线或无线网络传输。当此类媒体包括结合微处理器或其他数据处理器实现上文所述步骤的指令或程序时,本公开所述的发明包括这些和其他不同类型的非暂时性计算机可读存储介质。当根据本公开所述的方法和技术编程时,本公开还包括计算机本身。
[0062]
以上所述仅为本公开的实施例而已,并不用于限制本公开。对于本领域技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜