NFV架构下实现网络业务接入动态负载分担功能的系统及其方法与流程

文档序号:17585176发布日期:2019-05-03 21:15阅读:167来源:国知局
NFV架构下实现网络业务接入动态负载分担功能的系统及其方法与流程

本发明涉及nfv领域,特别涉及nfv架构体系技术领域,具体是指一种nfv架构下实现网络业务接入动态负载分担功能的系统及其方法。



背景技术:

nfv架构体系中,网络管理员可以在虚拟资源池创建、删除虚拟容器,用以承载用户接入业务,可以把这个称之为vnf。常见方法是:事先创建一定量的vnf,用户接入时就按顺序选择vnf进行上线。当vnf达到用户接入容量上限时,再选择下一个空闲的vnf或者创建新的vnf。当用户接入达到一定的数量后,必然会有用户下线,这些用户可能是在任意一个vnf上接入的,那么就会出现有些vnf满负载运转,有些vnf处于空闲状态。若后续再有新的用户接入,仍然按照原有的接入方法,很有可能让用户在接近满负载的vnf上接入。从而导致整个nfv系统负载不均衡,满负载的vnf可能会因为cpu忙、内存不足等因素导致用户下线,甚至vnf容器假死现象。



技术实现要素:

本发明的目的是为了克服上述现有技术的缺点,提供了一种能够使vnf系统运行在相对均衡的、空闲的负载状态下并且解决nfv架构中用户接入负载不均衡的情况的nfv架构下实现网络业务接入动态负载分担功能的系统及其方法。

为了实现上述目的,本发明的nfv架构下实现网络业务接入动态负载分担功能的系统及其方法如下:

该系统包括数个接入节点和数个边缘节点,该接入节点和该边缘节点均为vnf节点,各个vnf节点与系统内部网络均相连接,其中:

该边缘节点与外部远端用户模块相连接,并且将自身的ip地址周期性地组播给接入节点,该边缘节点根据接收到的接入节点的负载状态计算该接入节点的负载指标,并为该外部远端用户模块选择合适的接入节点;

该接入节点与各个该边缘节点均相连接,用于将自身的实时负载状态通过协议报文周期性地单播发送给边缘节点,并记录当前网络中边缘节点的ip地址。

较佳地,该系统还包括mano模块,该mano模块用于创建和回收该vnf节点模块。

较佳地,该系统内部网络为二层ovs网络。

基于上述的系统实现nfv架构下网络业务接入动态负载分担控制的方法,包括以下步骤:

(1-1)边缘节点向各个vnf节点周期性地组播发送自身的ip地址信息报文;

(1-2)接收到ip地址信息报文的接入节点向对应的vnf节点周期性地单播发送接入节点的负载状态信息报文;

(1-3)接收到负载状态信息报文的边缘节点根据该接入节点的负载状态信息动态计算该接入节点的负载指标;

(1-4)该边缘节点根据该负载指标信息为有上线需求的外部远端用户模块进行接入节点分配操作,并返回步骤(1-3)。

较佳地,该步骤(1-1)具体包括以下步骤:

(1-1.1)该边缘节点开启第一周期定时器并设置第一周期,并向各个vnf节点周期性地组播发送ip地址信息报文;

(1-1.2)该vnf节点接收到该ip地址信息报文,并判断自身是否为接入节点,如是则继续步骤(1-1.3),否则直接丢弃此报文;

(1-1.3)该接入节点将接收到的ip地址信息更新到本地的边缘节点ip地址管理表中,并开启第一老化定时器且设置第二周期;

(1-1.4)该接入节点判断在第二周期内是否再次接收到该边缘节点的ip地址报文,如果是,则继续步骤(1-2),否则在本地的边缘节点ip地址管理表中删除该边缘节点ip地址。

较佳地,该第一周期为默认10秒(可配置)。

较佳地,该第二周期为第一周期长度的3倍。

较佳地,该步骤(1-2)具体包括以下步骤:

(1-2.1)该接入节点开启第二周期定时器并设置第三周期,并向各个vnf节点周期性地单播发送接入节点的负载状态信息报文;

(1-2.2)该vnf节点接收到该负载状态信息报文,并判断自身是否为边缘节点,如果是则继续步骤(1-2.3),否则直接丢弃此报文。

(1-2.3)该边缘节点根据vnfid搜索所述的接入节点是否存在负载管理表中,如果有,则更新负载管理表中的接入节点;否则新建负载管理表接入节点元素,并开启第二老化定时器并设置第四周期;

(1-2.4)该边缘节点判断在第四周期内负载管理表是否再次被更新,如果是,则继续步骤(1-3),否则在该负载管理表中删除此接入节点,然后继续步骤(1-1)。

较佳地,该第三周期默认为10秒(可配置)。

较佳地,该第四周期为第三周期长度的3倍。

较佳地,负载状态信息报文包括用户当前可接入数的字段,该步骤(1-3)具体包括以下步骤:

(1-3.1)判断所述的负载状态信息报文字段中的用户当前可接入数的字段的值是否为0,如果是,则将此接入节点排在负载管理表尾部,然后继续步骤(1-1),否则继续步骤(1-3.2)

(1-3.2)该边缘节点根据该接入节点的负载状态信息计算该接入节点的负载指标,并根据此负载指标对负载管理表进行排序。

较佳地,根据接入节点的负载状态信息计算得出的接入节点的负载指标由如下公式计算得出:

较佳地,该边缘节点对负载管理表进行排序时优先负载指标低的接入节点,如果负载指标相同,则优先排序用户可接入数大的接入节点。

较佳地,该步骤(1-4)具体包括以下步骤:

(1-4.1)该边缘节点判断有上线需求的外部远端用户模块是否为新上线的用户模块;

(1-4.2)如是,则该边缘节点为该用户模块分配负载指标最低的接入节点,并创建该用户模块和相应的接入节点的对应表,然后继续步骤(1-3);

(1-4.3)如否,则该边缘节点根据之前已存在的该用户模块和相应的接入节点的对应表为该用户模块分配相应的接入节点,然后继续步骤(1-3)。

较佳地,该方法还包括动态扩缩容的操作处理,具体包括以下步骤:

(2-1)该边缘节点判断全部接入节点的负载指标是否均不小于系统预设的高位预警阈值,如果是,则mano模块新建vnf节点,然后继续步骤(1-1);否则继续步骤(2-2);

(2-2)该边缘节点判断全部接入节点的负载指标是否均不大于系统预设的低位预警阈值,如果是,则mano模块回收用户可接入数为0的接入节点,然后继续步骤(1-1);否则继续(1-3.2)。

较佳地,该方法还包括用户优先级调度的操作处理,包括以下步骤:

(3-1)该边缘节点判断当前nfv架构资源是否紧张,如果是则继续步骤(3-2),否则继续步骤(1-1);

(3-2)该边缘节点判断新上线的用户模块是否属于高优先级用户;

(3-3)如是,则该边缘节点为该用户模块直接分配可用的接入节点,然后继续步骤(1-1);

(3-4)如否,则该边缘节点为该用户模块将上线时刻延后,然后继续步骤(1-1)。

较佳地,该步骤(3-4)中还包括以下步骤:

(3-4.1)该边缘节点判断是否存在不小于1个的接入节点的负载指标低于系统预设的高位预警阈值,如果是,则为该用户模块分配接入节点,然后继续步骤(1-1);否则,记录该用户模块的首次上线请求时间点t1,并丢弃此上线请求报文,然后继续步骤(1-1);

(3-4.2)如果该边缘节点再次接到该用户模块的上线请求报文,记录该用户模块的再次上线请求时间点t2;

(3-4.3)该边缘节点判断是否存在不小于1个的接入节点的负载指标低于系统预设的高位预警阈值,如果是,则为该用户模块分配接入节点,然后继续步骤(1-1);否则,当该用户模块尝试上线的时长达到指定时长后,为该用户模块分配接入节点,然后继续步骤(1-1)。

较佳地,所述的步骤(3-4.3)中所述的用户模块尝试上线的时长为t2-t1。

较佳地,该负载状态信息报文中的字段包括用户当前可接入数、总接入容量,该方法还包括接入节点主动退出的操作处理,具体包括以下步骤:

(4-1)该边缘节点判断当前nfv架构资源是否紧张,如果是则继续步骤(4-2),否则继续步骤(1-1);

(4-2)该接入节点主动单播发送负载指标信息报文;

(4-3)该边缘节点接收到该接入节点发送的负载指标信息报文,判断其中的用户当前可接入数的字段和总接入容量的字段的值是否均为0,如果是则将所述的接入节点在负载管理表中删除;如果否,则继续步骤(1-3)。

较佳地,判断当前nfv架构资源是否紧张即是判断是否接收到的接入节点的负载状态信息报文中的用户当前可接入数的字段的值低于系统预设的临界值。

如是,则返回nfv架构资源紧张的判断结果;否则返回nfv架构资源不紧张的判断结果。

较佳地,该负载状态信息报文包括以下字段:

类型type、长度length、vnfid、用户当前可接入数、总接入容量、内存使用率和cpu使用率。

采用了该发明的nfv架构下实现网络业务接入动态负载分担功能的系统及其方法,可以避免通过专有负载均衡器来实现nfv架构下用户接入的负载分担,同时能够实现vnf资源的动态扩缩容。在本技术方案中,vnf节点直接通过内部二层网络,接入节点发送负载状态,边缘节点收集各个vnf的负载状态,简化了组网要求,提高了收敛速度,解决了nfv架构中用户接入负载不均衡的情况,避免了vnf容器假死现象,让整个系统中的vnf都在处于相对均衡的、空闲的负载状态下持续运行。

附图说明

图1为本发明的nfv架构下网络业务接入动态负载分担的系统的结构示意图。

图2为本发明的nfv架构下网络业务接入动态负载分担的方法的流程图。

具体实施方式

为了能够更清楚地描述本发明的技术内容,下面结合具体实施例来进行进一步的描述。

本发明的该nfv架构下实现网络业务接入动态负载分担功能的系统,其中,包括数个接入节点和数个边缘节点,所述的接入节点和所述的边缘节点均为vnf节点,所述的各个vnf节点与系统内部网络均相连接,其中:

所述的边缘节点与外部远端用户模块相连接,并且将自身的ip地址周期性地组播给所述的接入节点,所述的边缘节点根据接收到的接入节点的负载状态计算所述的接入节点的负载指标,并为所述的外部远端用户模块选择对应的接入节点;

所述的接入节点与各个所述的边缘节点均相连接,用于将自身的实时负载状态通过协议报文周期性地单播发送给所述的边缘节点,并记录当前网络中所述的边缘节点的ip地址。

系统还包括mano模块,所述的mano模块用于创建和回收所述的vnf节点模块。

系统内部网络为二层ovs网络。

本发明的该基于上述的系统实现nfv架构下网络业务接入动态负载分担控制的方法,包括以下步骤:

(1-1)边缘节点向各个vnf节点周期性地组播发送自身的ip地址信息报文;

(1-1.1)所述的边缘节点开启第一周期定时器并设置第一周期,第一周期默认为10秒(可根据需要配置为其它时间长度),并向各个vnf节点周期性地组播发送ip地址信息报文;

(1-1.2)所述的vnf节点接收到所述的ip地址信息报文,并判断自身是否为接入节点,如是则继续步骤(1-1.3),否则直接丢弃此报文;

(1-1.3)所述的接入节点将接收到的ip地址信息更新到本地的边缘节点ip地址管理表中,并开启第一老化定时器且设置第二周期,第二周期为第一周期长度的3倍,即为默认30秒;

(1-1.4)所述的接入节点判断在第二周期内是否再次接收到所述的边缘节点的ip地址报文,如果是,则继续步骤(1-2),否则在本地的边缘节点ip地址管理表中删除所述的边缘节点ip地址。;

(1-2)接收到ip地址信息报文的接入节点向对应的vnf节点周期性地单播发送接入节点的负载状态信息报文;

(1-2.1)所述的接入节点开启第二周期定时器并设置第三周期,第三周期默认为10秒(可根据需要配置为其它时间长度),并向各个vnf节点周期性地单播发送接入节点的负载状态信息报文;

(1-2.2)所述的vnf节点接收到所述的负载状态信息报文,并判断自身是否为边缘节点,如果是则继续步骤(1-2.3),否则直接丢弃此报文;

(1-2.3)所述的边缘节点根据vnfid搜索所述的接入节点是否存在负载管理表中,如果有,则更新负载管理表中的接入节点;否则新建负载管理表接入节点元素,并开启第二老化定时器并设置第四周期,第四周期为第三周期长度的3倍,即为默认30秒;

(1-2.4)所述的边缘节点判断在第四周期内负载管理表是否再次被更新,如果是,则继续步骤(1-3),否则在所述的负载管理表中删除此接入节点,然后继续步骤(1-1);

(1-3)接收到负载状态信息报文的边缘节点根据所述的接入节点的负载状态信息动态计算该接入节点的负载指标;

(1-3.1)判断所述的负载状态信息报文字段中的用户当前可接入数的字段的值是否为0,如果是,则将此接入节点排在负载管理表尾部,然后继续步骤(1-1);否则继续步骤(1-3.2);

(1-3.2)所述的边缘节点根据所述的接入节点的负载状态信息计算所述的接入节点的负载指标,并根据此负载指标对负载管理表进行排序;

(1-4)所述的边缘节点根据所述的负载指标信息为有上线需求的外部远端用户模块进行接入节点分配操作,并返回步骤(1-3);

(1-4.1)所述的边缘节点判断所述的有上线需求的外部远端用户模块是否为新上线的用户模块;

(1-4.2)如是,则所述的边缘节点为所述的用户模块分配负载指标最低的接入节点,并创建所述的用户模块和相应的接入节点的对应表,然后继续步骤(1-3);

(1-4.3)如否,则所述的边缘节点根据之前已存在的所述的用户模块和相应的接入节点的对应表为所述的用户模块分配相应的接入节点,然后继续步骤(1-3)。根据接入节点的负载状态信息计算得出的接入节点的负载指标由如下公式计算得出:

边缘节点对负载管理表进行排序时优先负载指标低的接入节点,如果负载指标相同,则优先排序用户可接入数大的接入节点。

在本发明的一个较佳的实施方式中,该方法还包括动态扩缩容的操作处理,具体包括以下步骤:

(2-1)所述的边缘节点判断全部接入节点的负载指标是否均不小于系统预设的高位预警阈值,如果是,则mano模块新建vnf节点,然后继续步骤(1-1);否则继续步骤(2-2);

(2-2)所述的边缘节点判断全部接入节点的负载指标是否均不大于系统预设的低位预警阈值,如果是,则mano模块回收用户可接入数为0的接入节点,然后继续步骤(1-1);否则继续(1-3.2)。

在本发明的一个较佳的实施方式中,该方法还包括用户优先级调度的操作处理,包括以下步骤:

(3-1)所述的边缘节点判断当前nfv架构资源是否紧张,如果是则继续步骤(3-2),否则继续步骤(1-1);

(3-2)所述的边缘节点判断新上线的用户模块是否属于高优先级用户;

(3-3)如是,则所述的边缘节点为所述的用户模块直接分配可用的接入节点,然后继续步骤(1-1);

(3-4)如否,则所述的边缘节点为所述的用户模块将上线时刻延后,然后继续步骤(1-1)。

(3-4.1)所述的边缘节点判断是否存在至少1个的接入节点的负载指标低于系统预设的高位预警阈值,如果是,则为所述的用户模块分配接入节点,然后继续步骤(1-1);否则,记录所述的用户模块的首次上线请求时间点t1,并丢弃此上线请求报文,然后继续步骤(1-1);

(3-4.2)如果所述的边缘节点再次接到所述的用户模块的上线请求报文,记录所述的用户模块的再次上线请求时间点t2;

(3-4.3)所述的边缘节点判断是否存在至少1个的接入节点的负载指标低于系统预设的高位预警阈值,如果是,则为所述的用户模块分配接入节点,然后继续步骤(1-1);否则,当所述的用户模块尝试上线的时长达到指定时长(t2-t1)后,为所述的用户模块分配接入节点,然后继续步骤(1-1)。

在本发明的一个较佳的实施方式中,所述的负载状态信息报文中的字段包括用户当前可接入数、总接入容量,所述的方法还包括接入节点主动退出的操作处理,具体包括以下步骤:

(4-1)所述的边缘节点判断当前nfv架构资源是否紧张,如果是则继续步骤(4-2),否则继续步骤(1-1);

(4-2)所述的接入节点主动单播发送负载状态信息报文;

(4-3)所述的边缘节点接收到所述的接入节点发送的负载状态信息报文,判断其中的用户当前可接入数的字段和总接入容量的字段的值是否均为0,如果是则将所述的接入节点在负载管理表中删除;如果否,则继续步骤(1-3)。

其中,上述的判断当前nfv架构资源是否紧张,即为:

判断是否接收到的接入节点的负载状态信息报文的用户当前可接入数字段的值低于系统预设的临界值,如是,则返回nfv架构资源紧张的判断结果;否则返回nfv架构资源不紧张的判断结果。

负载状态信息报文包括以下字段:类型type、长度length、vnfid、用户当前可接入数、总接入容量、内存使用率和cpu使用率。

在实际使用当中,如图1所示,远端的用户模块通过基础网络设施,连接到nfv架构体系。其中,边缘节点主要负责处理负载分担调度,接入节点主要负责处理用户接入。体系中的所有vnf节点在创建的时候,都会创建虚拟通信网卡,并且加入到内部的二层ovs网络中,实现二层互通。它们可以通过这个虚拟接口实现协议报文的收发。

1、负载指标定义

所有接入节点的负载状态主要包括:用户当前可接入数、用户总接入容量、内存使用率、cpu使用率。每项指标都有优先级,最终可以计算出每个接入节点的负载指标,优先级可通过mano模块配置。根据接入节点的负载状态信息计算得出的接入节点的负载指标由如下公式计算得出:

其中,接入节点将这三个率值乘以100后再发送给边缘节点。指标值越高,接入节点的负载越大。最终,边缘节点可借助此指标来选择具体的接入节点来接入新的用户。

由于,协议报文都是在内部二层ovs网络中收发,所以可以简单的按照tlv格式定义报文,报文包括以下字段:类型type、长度length、vnfid、用户当前可接入数、总接入容量、内存使用率和cpu使用率。其中,用户当前可接入数字段的大小为4b,总接入容量字段的大小为4b,内存使用率字段的大小为1b,cpu使用率字段的大小为1b,t字段的大小为1b,l字段的大小为1b,vnfid字段的大小为4b。

2、节点地址

每个边缘节点加入到ovs网络中后,都需要周期性的组播它的ip地址信息,从而便于接入节点获取到边缘节点的ip地址,就可以使用单播发送用于计算负载指标的信息。每个接入节点需要记录当前网络中所有的边缘节点的ip地址。

报文包括以下字段:t、l和vnfid、ip地址。其中,t字段的大小为1b,l字段的大小为1b,vnfid字段的大小为4b,ip地址字段的大小为4b。

3、负载分担方法

mano模块创建vnf节点的时候,为此节点分配一个唯一的标示id(vnfid),并为虚拟网卡分配同一个网段的ip地址,同时把它加入到内部二层ovs网络中。

所有的节点默认角色都是接入节点。但是需要为远端用户之间选择边缘节点,在部署nfv系统时mano模块可设置,比如:vnf1和vnf2。

新加入网络的边缘节点开启第一周期定时器并设置第一周期,默认为10秒,组播发送它的地址信息报文。

边缘节点接收到此报文,直接丢弃。接入节点接收到此报文,把地址信息更新到边缘节点地址管理列表中。

接入节点开启第一老化定时器且设置第二周期,第二周期为边缘节点的第一周期定时器第一周期的3倍,默认为30秒,若在第一老化定时器超时内没有再次接收到边缘节点的ip地址报文,则从地址管理列表中老化删除该地址。

接入节点开启第二周期定时器并设置第三周期,默认为10秒,向整个二层网络发送组播报文,向边缘节点通知自己的节点负载状态。

接入节点接收到此报文,直接丢弃。边缘节点接收到此报文,根据vnfid搜索节点负载管理表,若未找到,则新建表项;若找到,则更新表项。

边缘节点在接收到接入节点的负载状态报文时,创建负载管理表。用vnfid作为关键字管理一张表,并且按照节点负载指标再管理一张表:

若用户当前可接入数为0,则直接放在列表尾部,表示此节点已无接入能力。

若用户当前可接入数>0,则计算出节点的负载指标,用此指标进行排序:负载指标低的放在表项前,优先使用。若指标相同,则当前可接入数大的,优先使用。

边缘节点开启第二老化定时器并设置第四周期,第四周期为接入节点的第二定时器间隔的3倍,默认为30秒,若接入节点的负载管理表在老化定时器超时内未被更新,则老化删除此接入节点。该节点可能已经宕机或者超负载,那么边缘节点不能选择此接入节点。

当边缘节点接收到远端用户模块上线请求时,从接入节点负载管理表中选择负载指标最低的节点,然后把此用户上线请求转发到该接入节点进行用户上线处理。同时,需要记录用户mac-接入节点vnfid的对应关系表,便于后续该用户的协议报文都转发至该接入节点。在该接入节点再次通告新的负载指标之前,边缘节点需要根据用户新上线数和之前通告的负载指标信息计算最新的负载指标,保证其不会超过次优负载指标的接入节点。

边缘节点再次接收到接入节点的负载指标报文时,就可以重新更新相应的数据,并重新排序。

4、动态扩缩容

当边缘节点发现所有的接入节点的负载指标达到一定的高位阈值时,就通知mano模块新建vnf节点来扩大用户接入的容量。

当边缘节点发现所有的接入节点的负载指标低于一定的低位阈值时,可把当前用户可接入数最少的接入节点插入到vnf待回收列表中,即新用户上线时不再因为负载指标低而优先选择此接入节点,待此接入节点上的用户全部下线后,通知mano模块回收此节点。

5、接入用户的优先级调度

当整个nfv架构体系资源紧张时,边缘节点接收到用户的上线请求后,可以根据用户的优先级调度上线。

高优先级用户:按照之前的策略,及时响应用户上线事件,为其分配可用的接入节点。

低优先级用户:可适当延长其上线时间。

查看当前nfv系统负载指标阈值:若已低于高位阈值,则立即为该用户分配接入节点上线;若仍然高于高位阈值,则记录此用户的上线请求时间点t1,并且丢弃此上线请求报文。

待用户下次上线请求时t2,继续查看当前nfv系统负载指标阈值:若已低于高位阈值,则立即为该用户分配接入节点上线;若仍然高于高位阈值,则直到用户尝试上线的时长已达到指定时长,作为本发明的优选实施方案,t2-t1>可配置的等待时长,才为用户分配接入节点上线。

6、接入节点主动退出

除此之外,当整个nfv架构体系资源紧张时,可以手动删除指定的接入节点vnf。当该接入节点vnf感知到此事件时,主动向边缘节点发送负载状态信息报文:当前可接入数=0,总接入容量=0。那么,当边缘节点接收到此报文后,可判断为该接入节点主动退出负载分担调度,从而把它从负载管理表中摘除。后续新用户上线,则无法再次选择此节点。若因为内部网络或节点自身等异常情况,导致接入节点的消息没法被边缘节点接收到,那么边缘节点最终通过老化定时器,也可以将此节点老化删除。

采用了该发明的nfv架构下实现网络业务接入动态负载分担功能的系统及其方法,可以避免通过专有负载均衡器来实现nfv架构下用户接入的负载分担,同时能够实现vnf资源的动态扩缩容。在本技术方案中,vnf节点直接通过内部二层网络,接入节点单播负载状态,边缘节点收集各个vnf的负载状态,简化了组网要求,提高了收敛速度,解决了nfv架构中用户接入负载不均衡的情况,避免了vnf容器假死现象,让整个系统中的vnf都在处于相对均衡的、空闲的负载状态下持续运行。

在此说明书中,本发明已参照其特定的实施例作了描述。但是,很显然仍可以作出各种修改和变换而不背离本发明的精神和范围。因此,说明书和附图应被认为是说明性的而非限制性的。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1