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

一种设置路由器绑定节点优先级方法、系统及设备与流程

2022-02-22 04:36:11 来源:中国专利 TAG:


1.本发明涉及云计算技术领域,尤其涉及一种openstack下设置路由器绑定节点优先级方法、系统、存储介质及设备。


背景技术:

2.openstack是一个开源的云平台管理项目,能够提供可扩展的灵活的云平台管理。由于openstack中具有很多租户,因此为了保证每一租户的安全性,在openstack的云数据中心中,不同租户之间需要隔离。
3.目前,一般在私有云中,openstack使用虚拟路由器(virtual router,vrouter)转发东西向流量、南北向流量。因为调整绑定的网络节点,是会造成经过路由器的流量发生中断的,是影响生产环境业务的。所以自动调整的算法,不能很好的保证业务连续性问题。有了手动以后,可以指定网络维护时间,提前告诉业务使用方,提前做出一些准备。


技术实现要素:

4.有鉴于此,本发明的目的在于提出一种openstack下设置路由器绑定节点优先级方法、系统、存储介质及设备,以对自动化调度网络节点进行补充。
5.基于上述目的,本发明提供了一种openstack下设置路由器绑定节点优先级方法,包括以下步骤:
6.创建路由器并扩展路由的属性,通过创建路由器的接口从创建路由器的信息中获取绑定信息“agent”,将每个“agent”组装成一个数据库对象写入数据库;
7.更新路由器,用于通过更新路由器的接口判断更新后路由器是否还具备网关;
8.用户调用接口获取路由信息时,根据路由器id,从所述数据库查询所述绑定信息,更新路由器对象并返回;以及
9.更新路由器绑定信息,用于在用户调用更新路由器绑定节点接口时,查询所述数据库中已有的绑定节点,与用户传入的绑定节点进行对比,并根据对比结果更新路由的绑定信息。
10.在一些实施例中,“agent”为一个列表,列表中每个agent对象包含agent id、agent hostname、disabled、reason。
11.在一些实施例中,所述agent对象在列表中的下标越小,则优先级越高。
12.在一些实施例中,在创建路由器时,所述agent对象的disabled属性为false,reason置空,并且优先级属性priority值从特定值开始,依次加1。
13.在一些实施例中,如果创建路由器时绑定了网关,则写入所述数据库后,根据当前对接的l3处理插件触发调度;如果创建路由器时未绑定网关,将绑定节点的disabled置成true并更新reason。
14.在一些实施例中,在更新路由器时,如果判断更新后路由器不具备网关,则更新该路由器绑定的网关节点信息,将disabled置成true,并更新reason为nogateway;如果判断
更新后路由器具备网关,则获取该路由器绑定的所有网关节点信息,将disabled为true且reason为nogateway的绑定信息的disabled置成false并将reason置空,随后根据当前对接的l3处理插件触发调度。
15.在一些实施例中,在用户调用更新路由器绑定节点接口时,如果当前路由器还有网关节点,则查询数据库里已有的绑定节点并与用户传入的绑定节点进行对比,如果对比已经不存在的节点,则将节点disabled属性置成true并将reason置成deleted;如果对比还存在的节点,则按需调整优先级,将用户传入的绑定节点进行写入数据库,然后根据当前对接的l3处理插件触发调度,并且如果当前路由器不存在网关节点,则查询数据库里已有的绑定节点并与用户传入的进行对比,对比已经不存在的节点,则直接删除;对比还存在的节点,则按需调整优先级,将用户传入的绑定节点进行写入数据库,同时所有的绑定节点disabled都置为true并更新reason。
16.在一些实施例中,所述方法还包括新增一个新调度器,在新调度器调度前,先调用继承调度器进行调度,调度完成后,根据路由器id查询当前的绑定节点信息,
17.对于数据库查出的已经disabled的节点,调用相应的真实实现绑定接口进行删除;对于reason为deleted的,删除数据库里的记录,
18.对于数据库查出没有disabled的节点,则和调度后的列表进行比对,如果在调度后的列表里,则使用;如果不在调度后的列表里,则更新该绑定节点的绑定信息,将disabled属性置为true并更新reason属性;
19.在确定最终的绑定节点后,调用相应的真实实现绑定接口进行绑定。
20.本发明的另一方面,还提供了一种openstack下设置路由器绑定节点优先级系统,包括:
21.路由器创建模块,用于创建路由器并扩展路由的属性,通过创建路由器的接口从创建路由器的信息中获取绑定信息“agent”,将每个“agent”组装成一个数据库对象写入数据库;
22.路由器更新模块,用于通过更新路由器的接口判断更新后路由器是否还具备网关;
23.路由器获取模块,用于在用户调用接口获取路由信息时,根据路由器id,从所述数据库查询所述绑定信息,更新路由器对象并返回;以及
24.绑定信息更新模块,用于在用户调用更新路由器绑定节点接口时,查询所述数据库中已有的绑定节点,与用户传入的绑定节点进行对比,并根据对比结果更新路由的绑定信息。
25.本发明的又一方面,还提供了一种计算机可读存储介质,存储有计算机程序指令,该计算机程序指令被执行时实现上述任意一项方法。
26.本发明的再一方面,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该计算机程序被处理器执行时执行上述任意一项方法。
27.本发明至少具有以下有益技术效果:
28.1.本发明提供了一种允许用户设置虚拟机路由器绑定的网络节点,并可以自定义各个节点优先级的技术方案,是对自动化调度网络节点的一个补充。用户可以自由控制更复杂场景下的路由器转发的物理路径,优化转发路径。非常适合高阶网络用户,增强云产品
的可用性;
29.2.本发明设计了扩展创建路由,更新路由,获取路由的处理,增加了更新路由绑定的接口。设计了一个新的插件处理扩展和新增接口。新的插件可根据底层是否支持优先级的设定,自定义是否加载该插件,提供该功能,更加灵活,易用。
附图说明
30.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
31.图1为根据本发明实施例提供的openstack下设置路由器绑定节点优先级方法的示意图;
32.图2为根据本发明实施例提供的openstack下设置路由器绑定节点优先级系统的示意图;
33.图3为根据本发明实施例提供的实现openstack下设置路由器绑定节点优先级方法的计算机可读存储介质的示意图;
34.图4为根据本发明实施例提供的执行openstack下设置路由器绑定节点优先级方法的计算机设备的硬件结构示意图。
具体实施方式
35.为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
36.需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称的非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备固有的其他步骤或单元。
37.基于上述目的,本发明实施例的第一个方面,提出了一种openstack下设置路由器绑定节点优先级方法的实施例。图1示出的是本发明提供的openstack下设置路由器绑定节点优先级方法的实施例的示意图。如图1所示,本发明实施例包括如下步骤:
38.步骤s10、创建路由器并扩展路由的属性,通过创建路由器的接口从创建路由器的信息中获取绑定信息“agent”,将每个“agent”组装成一个数据库对象写入数据库;
39.步骤s20、更新路由器,用于通过更新路由器的接口判断更新后路由器是否还具备网关;
40.步骤s30、用户调用接口获取路由信息时,根据路由器id,从所述数据库查询所述绑定信息,更新路由器对象并返回;
41.步骤s40、更新路由器绑定信息,用于在用户调用更新路由器绑定节点接口时,查询所述数据库中已有的绑定节点,与用户传入的绑定节点进行对比,并根据对比结果更新路由的绑定信息。
42.openstack是一种开源云计算平台管理平台项目。路由器是指openstack里的router,虚拟路由器。通过软件实现路由器的功能。每一个虚拟路由器需要运行到一个物理节点上,提供功能。一般为了保证虚拟路由器的高可用,会同时将一个虚拟路由器绑定到多个节点上。通过一些算法保证绑定的一个节点是主节点提供服务,其他节点是备节点。网路节点、网关节点在本方案中意思一样,都表示用来实际实现路由器转发功能的物理服务器。
43.目前openstack是不支持手动设置路由器绑定哪些节点,以及节点的优先级。目前openstack有一些算法,自动设置路由器绑定的节点。随机算法:随机从候选的节点中选出一定的节点。最小加载算法:所有节点按照已绑定的路由器数目排序,选取绑定路由器数目少的节点。可用域算法:根据路由器设置的允许的可用域,筛选出符合可用域条件的节点,然后随机选择一定的节点。这些算法一旦确定了绑定的节点,在绑定节点工作正常的情况下,是不会发生变化的。也没有方法让绑定节点发生变化。
44.由于调整绑定的网络节点会造成经过路由器的流量发生中断,影响生产环境业务的。所以自动调整的算法,不能很好的保证业务连续性问题。有了手动以后,可以指定网络维护时间,提前告诉业务使用方,提前做出一些准备。
45.下列场景很迫切需要指定场景一、集群新加入一个高性能网关节点,有路由器需要高性能的转发;场景二、集群里某个网络节点的物理链路暂时不符合,一个路由器的转发,但是云平台无法自动感知,需要修改这个路由器,更换绑定的网络节点;场景三、两个有关联的路由器,需要绑定在不同的节点上;场景四、对于自动化算法暂时无法匹配所有想匹配的特征时,手动指定是一个很好的临时方案。
46.本发明实现用户可通过调用接口,设置虚拟路由器绑定的节点,以及设置节点的优先级。当前已经有创建路由器的接口,设计扩展创建和更新路由器的接口,处理用户传入的绑定信息。设计新的更新接口,可单独调用更新路由器的绑定信息,提高效率。目前也没有合适的数据表存储优先级信息。因此需要设计新的接口和数据库表。
47.在一些实施例中,“agent”为一个列表,列表中每个agent对象包含agent id、agent hostname、disabled、reason。agent对象在列表中的下标越小,则优先级越高。
48.[表1]数据库表的一个示例
[0049]
列名类型允许为空是否主键默认值router_idvarchar(36)否是nullagent_idvarchar(36)否是nullpriorityint(11)否否nulldisabledtinyint(1)是否0reasonvarchar(255)是否null
[0050]
根据本发明,设置虚拟路由器绑定节点的优先级是可选的,用户也可以不设置优先级,由系统自动调用,分配节点以及节点的优先级。为区分是用户指定的优先级和系统自动分配的,可以例如约定用户指定绑定的节点优先级大于20,系统自动调用的优先级小于等于20。
[0051]
当用户指定路由器绑定的节点后,可能发生一些情况,造成绑定的节点并没有实际生效。例如原有的网关节点被移除,原有的网络节点已经不符合可用域等条件的筛选,原有的网络节点被禁用。外部网关被移除或者发生改变等。当绑定的节点如果不能生效,采取
直接删除绑定的情况,用户可能很疑惑,绑定的节点为什么消失,会认为平台出了问题。因此本发明的绑定信息的字段增加:
[0052]
disabled属性:用于标识当前绑定情况是否生效;
[0053]
reason属性:用于表明当前状态的原因,方便用户知道自己绑定的节点失效原因。
[0054]
本发明实施例openstack下设置路由器绑定节点优先级系统提供一种允许用户设置虚拟机路由器绑定的网络节点,并可以自定义各个节点优先级的技术方案。是对自动化调度网络节点的一个补充。用户可以自由控制更复杂场景下的路由器转发的物理路径,优化转发路径。非常适合高阶网络用户。设计了扩展创建路由,更新路由,获取路由的处理,增加了更新路由绑定的接口。设计了一个新的插件处理扩展和新增接口。新的插件可根据底层是否支持优先级的设定,自定义是否加载该插件,提供该功能,更加灵活,易用。
[0055]
在一些实施例中,在创建路由器时,所述agent对象的disabled属性为false,reason置空,并且优先级属性priority值从特定值开始,依次加1。例如,特定值可以为20,也可以为其他任意适合的值。
[0056]
本实施例中,如果创建路由器时绑定了网关,则写入所述数据库后,根据当前对接的l3处理插件触发调度;如果创建路由器时未绑定网关,将绑定节点的disabled置成true并更新reason。
[0057]
在一些实施例中,在更新路由器时,如果判断更新后路由器不具备网关,则更新该路由器绑定的网关节点信息,将disabled置成true,并更新reason为nogateway;如果判断更新后路由器具备网关,则获取该路由器绑定的所有网关节点信息,将disabled为true且reason为nogateway的绑定信息的disabled置成false并将reason置空,随后根据当前对接的l3处理插件触发调度。
[0058]
具体地,在本实施例中,在用户调用更新路由器绑定节点接口时,如果当前路由器还有网关节点,则查询数据库里已有的绑定节点并与用户传入的绑定节点进行对比,如果对比已经不存在的节点,则将节点disabled属性置成true并将reason置成deleted(后序由调度器真正删除)。如果对比还存在的节点,则按需调整优先级,将用户传入的绑定节点进行写入数据库,然后根据当前对接的l3处理插件触发调度,并且如果当前路由器不存在网关节点,则查询数据库里已有的绑定节点并与用户传入的进行对比,对比已经不存在的节点,则直接删除;对比还存在的节点,则按需调整优先级,将用户传入的绑定节点进行写入数据库,同时所有的绑定节点disabled都置为true并更新reason。
[0059]
在一些实施例中,为了保证原有的调度可以用,可以考虑继承原有一个调度器。例如继承可用域调度器,保证仍可以按照可用域进行调度。所述方法还包括新增一个新调度器,在新调度器调度前,先调用继承调度器进行调度,调度完成后,根据路由器id查询当前的绑定节点信息。对于数据库查出的已经disabled的节点,调用相应的真实实现绑定接口进行删除(例如如果是ovn,需要调用北向接口,实际删除绑定的节点)。对于reason为deleted的,删除数据库里的记录。对于数据库查出没有disabled的节点,则和调度后的列表进行比对,如果在调度后的列表里,则使用;如果不在调度后的列表里,则更新该绑定节点的绑定信息,将disabled属性置为true并更新reason属性;在确定最终的绑定节点后,调用相应的真实实现绑定接口进行绑定(例如如果是对接ovn,需要调用北向接口,进行路由器网关节点的绑定更新)。
[0060]
根据本发明实施例的第一个方面提供的openstack下设置路由器绑定节点优先级的方法,不依赖于底层cpu架构,支持的多种架构:x86 arm,也可以使用ovn实现l3-router。
[0061]
本发明区分了用户指定的节点和系统自动调用的节点。对于系统自动调用的节点,如果节点并没有实际生效,设计直接删除绑定关系,因为对于用户来说,系统自动调用的节点,不关心到底是哪些节点。
[0062]
本发明实施例的第二个方面,还提供了一种openstack下设置路由器绑定节点优先级系统。图2示出的是本发明提供的openstack下设置路由器绑定节点优先级系统的实施例的示意图。如图2所示,一种openstack下设置路由器绑定节点优先级系统包括:路由器创建模块10,用于创建路由器并扩展路由的属性,通过创建路由器的接口从创建路由器的信息中获取绑定信息“agent”,将每个“agent”组装成一个数据库对象写入数据库;路由器更新模块20,用于通过更新路由器的接口判断更新后路由器是否还具备网关;路由器获取模块30,用于在用户调用接口获取路由信息时,根据路由器id,从所述数据库查询所述绑定信息,更新路由器对象并返回;以及绑定信息更新模块40,用于在用户调用更新路由器绑定节点接口时,查询所述数据库中已有的绑定节点,与用户传入的绑定节点进行对比,并根据对比结果更新路由的绑定信息。
[0063]
本发明实施例的openstack下设置路由器绑定节点优先级系统提供一种允许用户设置虚拟机路由器绑定的网络节点,并可以自定义各个节点优先级的技术方案。是对自动化调度网络节点的一个补充。用户可以自由控制更复杂场景下的路由器转发的物理路径,优化转发路径。非常适合高阶网络用户。设计了扩展创建路由,更新路由,获取路由的处理,增加了更新路由绑定的接口。设计了一个新的插件处理扩展和新增接口。新的插件可根据底层是否支持优先级的设定,自定义是否加载该插件,提供该功能,更加灵活,易用。
[0064]
本发明实施例的第三个方面,还提供了一种计算机可读存储介质,图3示出了根据本发明实施例提供的实现openstack下设置路由器绑定节点优先级方法的计算机可读存储介质的示意图。如图3所示,计算机可读存储介质3存储有计算机程序指令31,该计算机程序指令31可以被处理器执行。该计算机程序指令31被执行时实现上述任意一项实施例的方法。
[0065]
应当理解,在相互不冲突的情况下,以上针对根据本发明的openstack下设置路由器绑定节点优先级方法阐述的所有实施方式、特征和优势同样地适用于根据本发明的openstack下设置路由器绑定节点优先级系统和存储介质。
[0066]
本发明实施例的第四个方面,还提供了一种计算机设备,包括存储器402和处理器401,该存储器中存储有计算机程序,该计算机程序被该处理器执行时实现上述任意一项实施例的方法。
[0067]
如图4所示,为本发明提供的执行openstack下设置路由器绑定节点优先级方法的计算机设备的一个实施例的硬件结构示意图。以如图4所示的计算机设备为例,在该计算机设备中包括一个处理器401以及一个存储器402,并还可以包括:输入装置403和输出装置404。处理器401、存储器402、输入装置403和输出装置404可以通过总线或者其他方式连接,图4中以通过总线连接为例。输入装置403可接收输入的数字或字符信息,以及产生与openstack下设置路由器绑定节点优先级系统的用户设置以及功能控制有关的键信号输入。输出装置404可包括显示屏等显示设备。
[0068]
存储器402作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本技术实施例中的openstack下设置路由器绑定节点优先级方法对应的程序指令/模块。存储器402可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储openstack下设置路由器绑定节点优先级方法的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器402可选包括相对于处理器401远程设置的存储器,这些远程存储器可以通过网络连接至本地模块。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0069]
处理器401通过运行存储在存储器402中的非易失性软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例的openstack下设置路由器绑定节点优先级方法。
[0070]
最后需要说明的是,本文的计算机可读存储介质(例如,存储器)可以是易失性存储器或非易失性存储器,或者可以包括易失性存储器和非易失性存储器两者。作为例子而非限制性的,非易失性存储器可以包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦写可编程rom(eeprom)或快闪存储器。易失性存储器可以包括随机存取存储器(ram),该ram可以充当外部高速缓存存储器。作为例子而非限制性的,ram可以以多种形式获得,比如同步ram(dram)、动态ram(dram)、同步dram(sdram)、双数据速率sdram(ddr sdram)、增强sdram(esdram)、同步链路dram(sldram)、以及直接rambus ram(drram)。所公开的方面的存储设备意在包括但不限于这些和其它合适类型的存储器。
[0071]
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现的功能,但是这种实现决定不应被解释为导致脱离本发明实施例公开的范围。
[0072]
结合这里的公开所描述的各种示例性逻辑块、模块和电路可以利用被设计成用于执行这里功能的下列部件来实现或执行:通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或其它可编程逻辑器件、分立门或晶体管逻辑、分立的硬件组件或者这些部件的任何组合。通用处理器可以是微处理器,但是可替换地,处理器可以是任何传统处理器、控制器、微控制器或状态机。处理器也可以被实现为计算设备的组合,例如,dsp和微处理器的组合、多个微处理器、一个或多个微处理器结合dsp和/或任何其它这种配置。
[0073]
以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
[0074]
应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一
个以上相关联地列出的项目的任意和所有可能组合。上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
[0075]
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。
再多了解一些

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

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

相关文献