VPP集群管理方法及装置、电子设备及存储介质转让专利

申请号 : CN201910875374.0

文献号 : CN110636124B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 杨远强

申请人 : 平安科技(深圳)有限公司

摘要 :

本发明提出一种VPP集群管理方法,该方法包括:根据预先搭建的VPP集群中的VPP节点的属性为所述VPP节点打上标签,选取标签相同的VPP节点作为一个VPP子集群进行管理;将VPP子集群中的VPP节点的管理和配置操作封装成REST API,REST API提供与VPP子集群交汇的rest接口;通过所述rest接口根据所接收的http请求获取数据模型,并根据所述数据模型和与所述REST API相关的所述VPP子集群中的各VPP节点的信息形成操作日志存储到数据库中;从所述数据库获取所述操作日志,并将所述操作日志下发到VPP子集群,根据所述操作日志携带的VPP节点信息调用处理函数,调用函数对所述VPP子集群进行管理和操作。

权利要求 :

1.一种基于ETCD的VPP集群管理方法,应用于电子设备,其特征在于,所述方法包括:根据预先搭建的VPP集群中的VPP节点的属性为所述VPP节点打上标签,选取标签相同的VPP节点作为一个VPP子集群进行管理;

将所述VPP子集群中的VPP节点的管理和配置操作封装成REST API,并将所述REST API提供至云控制台以配合前端实现可视化管理,所述REST API用于提供与所述VPP子集群交汇的rest接口;

通过所述rest接口根据所接收的http请求获取数据模型,并根据所述数据模型和与所述REST API相关的所述VPP子集群中的各VPP节点的信息形成操作日志,存储所述操作日志到数据库中;

从所述数据库获取所述操作日志,并将所述操作日志下发到VPP子集群,根据所述操作日志携带的VPP节点信息调用处理函数对所述VPP子集群进行管理和操作。

2.根据权利要求1所述的基于ETCD的VPP集群管理方法,其特征在于,选取标签相同的VPP节点作为一个VPP子集群进行管理的过程包括:依据预设的调度算法选取VPP节点作为VPP子集群;

添加与所选取的VPP节点标签相同的VPP节点至所述VPP子集群,以实现所述VPP子集群的横向扩展。

3.根据权利要求2所述的基于ETCD的VPP集群管理方法,其特征在于,所述调度算法为:通过VPP节点的负载确定VPP节点的负载权重,负载越低的VPP节点负载权重越大,添加负载权重大于预设负载权重阈值的VPP节点至所述VPP子集群;或通过VPP节点承载的配置数量确定VPP节点的承载权重,配置数量越小的VPP节点承载权重越大,添加承载权重大于预设承载权重阈值的VPP节点至所述VPP子集群。

4.根据权利要求1所述的基于ETCD的VPP集群管理方法,其特征在于,通过所述rest接口根据所接收的http请求获取数据模型的步骤包括:获取所述http请求的json格式请求消息体,并将所述json格式请求消息体转换成字典格式请求消息体,然后将字典格式请求消息体转换成数据模型。

5.根据权利要求1所述的基于ETCD的VPP集群管理方法,其特征在于,从所述数据库获取所述操作日志,并将所述操作日志下发到VPP子集群的过程包括:定时从所述数据库获取操作日志或者通过监听ETCD的journal目录从所述数据库获取操作日志;

从ETCD中获取主进程的分布式锁;

通过do_work通用函数将操作日志封装成符合ETCD数据传输格式的操作日志;

将所述封装后的操作日志下发到所述VPP子集群中的ETCD。

6.根据权利要求5所述的基于ETCD的VPP集群管理方法,其特征在于,在所述根据所述操作日志携带的VPP节点信息调用处理函数之前还包括:在所述VPP子集群增加Agent服务,并将所述VPP子集群中的VPP节点与所述Agent服务绑定得到VPP‑agent;

在所述VPP子集群中各VPP节点上运行所述VPP‑agent,所述VPP‑agent用于通过ETCD的watch服务发现功能,监听所述VPP子集群中接收所述操作日志的ETCD对应的key;

其中,所述VPP子集群中有多个key,当操作日志下发到ETCD时,所述key与接收操作日志的ETCD对应。

7.根据权利要求6所述的基于ETCD的VPP集群管理方法,其特征在于,所述根据所述操作日志携带的VPP节点信息调用处理函数对所述VPP子集群进行管理和操作包括:当所述操作日志下发到ETCD时,与所述操作日志对应的key启动,负责监听的watch收到所述操作日志,并根据所述操作日志调用处理函数对VPP子集群进行管理和操作;

其中,对VPP子集群进行的管理和操作包括:解析操作日志,通过API提供的rest接口将添加VRF、VLAN子接口和NAT映射的配置下发到所述VPP子集群中的VPP节点。

8.一种基于ETCD的VPP集群管理装置,包括:

标签生成模块,用于根据预先搭建的VPP集群中的VPP节点的属性为所述VPP节点打上标签;

选取管理模块,用于选取标签相同的VPP节点作为一个VPP子集群进行管理;

封装模块,用于将所述VPP子集群中的VPP节点的管理和配置操作封装成REST API,并将所述REST API提供至云控制台以配合前端实现可视化管理,所述REST API用于提供与所述VPP子集群交汇的rest接口;

数据模型获取模块,用于通过所述rest接口根据所接收的http请求获取数据模型;

日志形成存储模块,用于根据所述数据模型和与所述REST API相关的所述VPP子集群中的各VPP节点的信息形成操作日志,存储所述操作日志到数据库中;

日志下发模块,用于从所述数据库获取所述操作日志,并将所述操作日志下发到VPP子集群;

调用处理模块,用于根据所述操作日志携带的VPP节点信息调用处理函数对所述VPP子集群进行管理和操作。

9.一种电子设备,其特征在于,该电子设备包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现权利要求1‑7中任一项所述的基于ETCD的VPP集群管理方法的步骤。

10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中包括基于ETCD的VPP集群管理分析程序分析程序,所述基于ETCD的VPP集群管理分析程序被处理器执行时,实现如权利要求1至7中任一项所述的基于ETCD的VPP集群管理方法的步骤。

说明书 :

VPP集群管理方法及装置、电子设备及存储介质

技术领域

[0001] 本发明涉及区块存储领域,尤其涉及一种VPP集群管理方法、装置及计算机可读存储介质。

背景技术

[0002] VPP(Vector Packet Processing,矢量数据包处理库)是FD.io中的核心项目之一,为通用CPU提供产品级质量的用户空间交换机/路由器功能,可部署于物理机或者虚拟机。所谓VPP向量报文处理是与传统的标量报文处理相对而言的。传统报文处理方式,同时也是人类常用的逻辑思维方式,即:报文是按照到达先后顺序来处理,第一个报文处理完,处理第二个,依次类推;A calls B calls C…return,函数会频繁嵌套调用,并最终返回。
[0003] 目前随着互联网的广泛深入应用,云计算的应用也不断深入。云计算(cloud computing)是基于互联网相关服务的增加、使用和交互模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。对于云计算场景,高可用集群模式是必须的,但是,VPP本身不提供集群模式,目前主要通过手工或者脚本批量配置管理,对后续的集群配置的持久化和管理带来难度,缺乏灵活性和扩展性。
[0004] 因此,亟须一种能够实现高效配置、可靠、持久化的VPP集群管理方案。

发明内容

[0005] 本发明提供一种VPP集群管理方法及装置、电子设备及存储介质,其主要目的在于通过选取标签相同的VPP节点作为VPP子集群,根据所接收的VPP子集群节点信息调用处理函数,对VPP子集群进行管理和操作,进而实现对所管理的VPP集群实现任意横向扩展,提高VPP集群管理的灵活性,适应于云平台统一编排管理。
[0006] 为实现上述目的,本发明提供的VPP集群管理方法,应用于电子设备,所述方法包括:
[0007] 根据预先搭建的VPP集群中的VPP节点的属性为所述VPP节点打上标签,选取标签相同的VPP节点作为一个VPP子集群进行管理;
[0008] 将所述VPP子集群中的VPP节点的管理和配置操作封装成REST API,并将所述REST API提供至云控制台以配合前端实现可视化管理,所述REST API用于提供与所述VPP子集群交汇的rest接口;
[0009] 通过所述rest接口根据所接收的http请求获取数据模型,并根据所述数据模型和与所述REST API相关的所述VPP子集群中的各VPP节点的信息形成操作日志持久化到数据库中;
[0010] 从所述数据库获取所述操作日志,并将所述操作日志下发到VPP子集群根据所述操作日志携带的VPP节点信息调用处理函数对所述VPP子集群进行管理和操作。
[0011] 优选地,选取标签相同的VPP节点作为一个VPP子集群进行管理的过程包括:
[0012] 依据预设的调度算法选取VPP节点作为VPP子集群;
[0013] 添加与所选取的VPP节点标签相同的VPP节点至所述VPP子集群,以实现所述VPP子集群的横向扩展。
[0014] 优选地,所述调度算法为:
[0015] 通过VPP节点的负载确定VPP节点的负载权重,负载越低的VPP节点负载权重越大,添加负载权重大于预设负载权重阈值的VPP节点至所述VPP子集群;或
[0016] 通过VPP节点承载的配置数量确定VPP节点的承载权重,配置数量越小的VPP节点承载权重越大,添加承载权重大于预设承载权重阈值的VPP节点至所述VPP子集群;或[0017] 根据VPP节点标签属性添加VPP节点至所述VPP子集群;或
[0018] 随机添加指定数量的VPP节点至所述VPP子集群。
[0019] 优选地,通过所述rest接口根据所接收的http请求获取数据模型的步骤包括:
[0020] 获取所述http请求的json格式请求消息体,并将所述json格式请求消息体转换成字典格式请求消息体,然后将字典格式请求消息体转换成数据模型;
[0021] 优选地,从所述数据库获取所述操作日志,并将所述操作日志下发到VPP子集群的过程包括:
[0022] 定时从所述数据库获取操作日志或者通过监听ETCD的journal目录从所述数据库获取操作日志;
[0023] 从ETCD中获取主进程的分布式锁;
[0024] 通过do_work通用函数将操作日志封装成符合ETCD数据传输格式的操作日志;
[0025] 将所述封装后的操作日志下发到所述VPP子集群中的ETCD。
[0026] 优选地,在所述根据所述操作日志携带的VPP节点信息调用处理函数之前还包括:
[0027] 在所述VPP子集群增加Agent服务,并将所述VPP子集群中的VPP节点与所述Agent服务绑定得到VPP‑agent;
[0028] 在所述VPP子集群中各VPP节点上运行所述VPP‑agent,所述VPP‑agent用于通过ETCD的watch服务发现功能,监听所述VPP子集群中接收所述操作日志的ETCD对应的key;
[0029] 其中,所述VPP子集群中有多个key,当操作日志下发到ETCD时,所述key与接收操作日志的ETCD对应。
[0030] 优选地,所述根据所述操作日志携带的VPP节点信息调用处理函数对所述VPP子集群进行管理和操作包括:
[0031] 当所述操作日志下发到ETCD时,与所述操作日志对应的key启动,负责监听的watch收到所述操作日志,并根据所述操作日志调用处理函数对VPP子集群进行管理和操作;其中,对VPP子集群进行的管理和操作包括:解析操作日志,通过API提供的rest接口将添加VRF、VLAN子接口和NAT映射的配置下发到所述VPP子集群中的VPP节点。
[0032] 为实现上述目的,本发明还提供一种VPP集群管理装置,包括:
[0033] 标签生成模块,用于根据预先搭建的VPP集群中的VPP节点的属性为所述VPP节点打上标签;
[0034] 选取管理模块,用于选取标签相同的VPP节点作为一个VPP子集群进行管理;
[0035] 封装模块,用于将所述VPP子集群中的VPP节点的管理和配置操作封装成REST API,并将所述REST API提供至云控制台以配合前端实现可视化管理,所述REST API用于提供与所述VPP子集群交汇的rest接口;
[0036] 数据模型获取模块,用于通过所述rest接口根据所接收的http请求获取数据模型;
[0037] 日志形成存储模块,用于根据所述数据模型和与所述REST API相关的所述VPP子集群中的各VPP节点的信息形成操作日志,存储所述操作日志到数据库中;
[0038] 日志下发模块,用于从所述数据库获取所述操作日志,并将所述操作日志下发到VPP子集群;
[0039] 调用处理模块,用于根据所述操作日志携带的VPP节点信息调用处理函数对所述VPP子集群进行管理和操作。
[0040] 为实现上述目的,本发明还提供一种VPP集群管理电子设备,该电子设备包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现权利要求1‑7中任一项所述的VPP集群管理方法中的步骤。
[0041] 此外,为实现上述目的,本发明还提供一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中包括VPP集群管理分析程序分析程序,所述VPP集群管理分析程序被处理器执行时,实现如权利要求1至7中任一项所述的VPP集群管理方法的步骤。
[0042] 本发明提出的VPP集群管理方法、装置及计算机可读存储介质,通过rest接口接收http请求,获取VPP集群节点信息,形成包括VPP集群节点信息的操作日志,并将其下发至VPP子集群,VPP子集群中的ETCD根据所接收的操作日志调用处理函数,对VPP集群进行管理和操作,进行管理和操作时可任意划分出VPP子集群,实现了VPP子集群的灵活扩展,有效提高了VPP集群管理的灵活性,适应了云平台的统一编排管理,实现了VPP集群配置管理的高效、可靠、一致及持久化。

附图说明

[0043] 图1为本发明实施例的VPP集群管理方法实施例的应用环境示意图;
[0044] 图2为本发明实施例的VPP集群管理方法的流程图;
[0045] 图3为本发明实施例的VPP集群管理装置框架图;
[0046] 图4为根据本发明实施例的电子设备的结构示意图。
[0047] 本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

[0048] 应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
[0049] 作为一个高可用的键值存储系统,ETCD(分布式的key‑value存储)主要用于共享配置和服务发现,其实现了raft算法,可以在高效的解决分布式系统中各个节点日志内容一致性问题的同时,也使得集群具备一定的容错能力。即使集群中出现部分节点故障、网络故障等问题,仍可保证其余大多数节点正确的步进。甚至当更多的节点出现故障而导致集群不可用时,依然可以保证节点中的数据不会出现错误的结果。因此,在本发明中,采用VPP集群管理方案,以保障VPP集群管理的可靠性。
[0050] 具体的,本发明提供一种VPP集群管理方法,应用于一种电子设备40。参照图1所示,为本发明VPP集群管理方法较佳实施例的应用环境示意图。
[0051] 在本实施例中,图1为本发明VPP集群管理方法较佳实施例的应用环境示意图,如图1所示,在该实施环境中,包括计算机设备110以及计算机设备120。
[0052] 计算机设备110为集群中单节点的计算机设备,例如VPP集群节点中的电脑等计算机设备,计算机设备110与计算机设备120为VPP集群中的部分节点,计算机设备110与计算机设备120由图2构成。
[0053] 需要说明的是,计算机设备110以及计算机设备120可为平板电脑、笔记本电脑、台式计算机等,其为cenOS(linux)系统,最好使用虚拟机,已安装了git,go,但并不局限于此。计算机设备110以及终端110可以通过蓝牙、USB(Universal Serial Bus,通用串行总线)或者其他通讯连接方式进行连接,本发明在此不做限制。
[0054] 图2为根据本发明实施例的VPP集群管理方法的流程图,在本实施例中,VPP集群管理方法包括如下步骤:
[0055] 首先,根据预先搭建的VPP集群中的VPP节点的属性为该VPP节点打上标签,选取标签相同的VPP节点作为一个VPP子集群进行管理;
[0056] 在确定好VPP子集群之后,将该VPP子集群中的VPP节点的管理和配置操作封装成REST(Representational State Transfer表现层状态转移)API(Application Programming Interface应用程序接口),并将该REST API提供至云控制台以配合前端实现可视化管理,该REST API用于提供与该VPP子集群交汇的rest接口;
[0057] 然后,根据所接收的http请求通过该rest接口获取数据模型,并根据该数据模型和与该REST API相关的VPP子集群中的各VPP节点的信息形成操作日志并将该操作日志存储(即持久化)到数据库中;
[0058] 从该数据库获取该操作日志,并将该操作日志下发到VPP子集群,根据该操作日志携带的VPP节点信息调用处理函数,根据该处理函数对该VPP子集群进行管理和操作。
[0059] 选取标签相同的VPP节点作为一个VPP子集群进行管理的过程包括:
[0060] 依据预设的调度算法选取VPP节点作为VPP子集群;
[0061] 添加与所选取的VPP节点标签相同的VPP节点至该VPP子集群,以实现所述VPP子集群的横向扩展;
[0062] 其中,依据预设的调度算法选取VPP节点作为VPP子集群时,VPP子集群可以由调度器选取,通过预设的调度算法配置好调度器,调度器根据预先配置的调度算法任意实现VPP子集群的横向扩展,即通过VPP子集群的分组标签配置,灵活的向VPP子集群添加具有同类型的标签的VPP节点;
[0063] 上述预设的调度算法可通过配置文件指定一种或多种调度器,调度算法中可以包含以下调度规则:
[0064] 规则一,通过VPP节点的负载确定VPP节点的负载权重,负载低的VPP节点负载权重大;
[0065] 规则二,通过VPP节点承载的配置数量确定VPP节点的承载权重,配置数量越小的VPP节点承载权重越大;
[0066] 规则三,根据VPP节点标签属性,选择或过滤,标签属性由管理人员自行确定;
[0067] 规则四,指定VPP节点数量,随机选取VPP节点。
[0068] 需要注意的是,选取VPP子集群时,可利用上述调度算法中的任意一种调度规则选取VPP节点,若使用第一种或第二种调度规则,则选取权重大的节点为VPP节点组成该VPP子集群;也可利用第一种和第二种调度规则计算出权重和,选取权重和大的作为子集群的节点。
[0069] 在根据上述调度算法确定好VPP子集群之后,即可将确定好的VPP子集群中的VPP节点的管理和配置操作封装成REST API,由于该REST API能够提供与该VPP子集群交汇的rest接口,因此,为了配合前端实现可视化管理,还需要将所封装的REST API提供给云控制台。
[0070] 在本发明的一个具体实施方式中,在封装REST API过程中应用了NSP(Network Services Protocal网络服务协议),该协议是DECnet协议组中的一个协议,对网络层路由协议进行流量管制,从而提供虚拟连接服务,通过添加插件的形式,将VPP集群的管理操作以REST接口的方式集成到NSP(Network Service Platform网络服务平台),对接云控制台,实现可视化操作。
[0071] 其中,API由NSP(Network Services Protocal网络服务协议)扩展插件封装完成,由Paste+PasteDeploy+Routes+WebOb框架实现;Paste、PasteDeploy、Routes、WebOb分别负责应用的WSGI化、URL路由和请求处理功能,利用这种架构的灵活性,通过模块化插件扩展接口,为云控制台提供RESTful API,接收http请求。
[0072] 上述的Paste、PasteDeploy、Routes、WebOb均是本领域常见的架构,因此,在此不再对这些结构做详细说明。
[0073] 封装好REST API之后,即可通过该REST API提供的rest接口,根据所接收的http请求获取数据模型,并根据数据模型和与REST API相关的VPP子集群中的各VPP节点的信息形成操作日志,并将该操作日志存储到数据库中。在本发明的一个具体实施方式中,上述获取数据模型以及形成操作日志并存储的具体过程如下:
[0074] 接收到http请求后,获取json格式请求消息体,并将json格式转换成字典格式,然后将字典格式转换规定格式的成数据模型;
[0075] 本实施例的数据模型如下:
[0076] {
[0077] journal_id:″″
[0078] etcd_path:″″,
[0079] action:″″,
[0080] data:″″,
[0081] retry_count:″″,
[0082] last_retried:″″,
[0083] journal_state:″″,
[0084] state_details:″″
[0085] }
[0086] 其中构成数据模型的字段至少包括:journal_id、etcd_path、action、data;
[0087] journal_id为操作任务的id,etcd_path为vpp节点监听的目录,action为对应的操作动作,data为需要下发vpp的配置数据。
[0088] 将所形成的操作日志存储到数据库中后,就可以根据需要从数据库获取该操作日志,并将操作日志下发到VPP子集群,以便根据该操作日志中的信息进行VPP子集群的管理和操作。其中,具体的日志的获取、下发过程可以包括如下步骤:
[0089] 定时或者通过监听ETCD的journal目录从该数据库获取操作日志;
[0090] 在获取操作日志日志时,考虑到服务端的高可用模式,首先从ETCD里面获取主进程的分布式锁,获取到分布式锁后,通过do_work通用函数将操作日志封装成符合ETCD的数据传输格式,获取EtcdClient(ETCD服务端),将操作日志下发到该VPP子集群中的ETCD。
[0091] ETCD根据所接收的操作日志调用处理函数,对VPP子集群进行管理和操作的过程包括:
[0092] 在VPP子集群增加Agent服务,并将VPP子集群中的VPP节点与Agent服务绑定得到VPP‑agent;
[0093] 在VPP子集群中各VPP节点上运行VPP‑agent,VPP‑agent通过ETCD的watch服务发现功能监听VPP子集群中接收操作日志的ETCD对应的key;
[0094] 当操作日志下发到ETCD时,key启动,负责监听的watch收到对应的操作日志,然后调用对应的处理函数,实现管理和操作VPP子集群的服务;
[0095] 其中,VPP子集群中有多个key,当操作日志下发到ETCD时,key与接收操作日志的ETCD对应。
[0096] 管理和操作VPP子集群的服务具体包括:
[0097] 解析操作日志,通过API提供的rest接口将添加VRF,添加VLAN子接口,NAT映射的配置下发到该VPP子集群中的VPP节点。
[0098] 由于VPP集群节点上的配置并没有做持久化存储,当VPP服务重启以后,之前VPP集群节点上的配置会丢失,因此,VPP‑agent服务需要通过ETCD服务发现功能,定时向NSP网络服务平台(Network Service Platform)上报Agent和VPP服务状态信息,当VPP服务重启后,ETCD高效的读写能力保证配置重载的时效性,含有ETCD的VPP集群模式保证数据的高可靠性,将持久化到分布式键值数据库ETCD的操作日志重新下发到VPP服务中,以实现VPP服务重启后配置不丢失。
[0099] 重新下发到VPP服务时,对应VPP节点agent模块会监听ETCD的根据节点名称创建的目录,当检测到VPP进程id变化了,就会往此目录写入一个值,服务端发现此目录有值就会跳过这个节点的操作任务,重新放回任务队列,以保证VPP服务重启时网络服务平台(NSP)的可用性和数据的一致性;agent模块监听VPP服务重启后,通过VPP节点提供的API尝试重连VPP服务,重连成功以后,就会从ETCD获取当前节点的所有配置,通过agent封装的VPP API接口重新下发到VPP服务中。
[0100] 图3为根据本发明实施例的VPP集群管理装置中的装置框架图。如图3所示,本实施例提供的VPP集群管理装置中的装置300包括:
[0101] 标签生成模块310,用于根据预先搭建的VPP集群中的VPP节点的属性为该VPP节点打上标签;
[0102] 选取管理模块320,用于选取标签相同的VPP节点作为一个VPP子集群进行管理;
[0103] 封装模块330,用于将该VPP子集群中的VPP节点的管理和配置操作封装成REST API,并将该REST API提供至云控制台以配合前端实现可视化管理,该REST API用于提供与该VPP子集群交汇的rest接口。通过该rest接口,用户可以在云控制台并配合前端实现可视化管理;
[0104] 数据模型获取模块340,用于通过该rest接口根据所接收的http请求获取数据模型;
[0105] 日志形成存储模块350,用于根据该数据模型和与该REST API相关的该VPP子集群中的各VPP节点的信息形成操作日志,存储该操作日志到数据库中;
[0106] 日志下发模块360,用于从该数据库获取该操作日志,并将该操作日志下发到VPP子集群;
[0107] 调用处理模块370,用于根据该操作日志携带的VPP节点信息调用处理函数,该处理函数对该VPP子集群进行管理和操作。
[0108] 其中,该处理函数对该VPP子集群进行管理和操作可以包括如下内容:解析操作日志,通过API提供的rest接口将添加VRF,添加VLAN子接口,NAT映射的配置下发到该VPP集群中的VPP节点。
[0109] 另外,由于VPP上的配置并没有做持久化,当VPP服务重启以后,之前VPP上的配置都会丢失,因此,VPP‑agent服务通过ETCD服务发现功能,定时向NSP上报Agent和VPP服务状态信息,当VPP服务重启后,依靠ETCD高效的读写能力保证配置重载的时效性,含有ETCD的VPP集群模式保证数据的高可靠性,将持久化到分布式键值数据库ETCD的操作日志重新下发到VPP服务中,以实现VPP服务重启后配置不丢失。
[0110] 图4为本发明电子设备示意图,在本实施例中,电子设备40可以是服务器、平板计算机、便携计算机、桌上型计算机等具有运算功能的终端设备。
[0111] 该电子设备40包括:处理器41、存储器42、计算机程序43、网络接口及通信总线。
[0112] 电子设备40可以是平板电脑、台式电脑、智能手机,但不限于此。
[0113] 存储器42包括至少一种类型的可读存储介质。该至少一种类型的可读存储介质可为如闪存、硬盘、多媒体卡、卡型存储器等的非易失性存储介质。在一些实施例中,该可读存储介质可以是该电子设备40的内部存储单元,例如该电子设备40的硬盘。在另一些实施例中,该可读存储介质也可以是该电子装置40的外部存储器,例如该电子设备40上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。
[0114] 在本实施例中,该存储器42的可读存储介质通常用于存储安装于该电子设备40的计算机程序43,节点控制单元、ETCD单元、VPP节点单元等。
[0115] 处理器41在一些实施例中可以是一中央处理器(Central Processing Unit,CPU),微处理器或其他数据处理芯片,用于运行存储器42中存储的程序代码或处理数据,例如VPP集群管理程序43等。
[0116] 网络接口可选地可以包括标准的有线接口、无线接口(如WI‑FI接口),通常用于在该电子设备40与其他电子设备之间建立通信连接。
[0117] 通信总线用于实现这些组件之间的连接通信。
[0118] 图4仅示出了具有组件41‑43的电子设备40,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
[0119] 在图4所示的设备实施例中,作为一种计算机存储介质的存储器42中可以包括操作系统、以及VPP集群管理程序43;处理器41执行存储器42中存储的VPP集群管理程序43时实现如下步骤:
[0120] 根据预先搭建的VPP集群中的VPP节点的属性为VPP节点打上标签,选取标签相同的VPP节点作为一个VPP子集群进行管理;
[0121] 将VPP子集群中的VPP节点的管理和配置操作封装成REST API,并将该REST API提供至云控制台以配合前端实现可视化管理,该REST API能够提供与该VPP子集群交汇的rest接口;
[0122] 通过rest接口根据所接收的http请求获取数据模型,并根据数据模型和与REST API相关的VPP子集群中的各VPP节点的信息形成操作日志,存储该操作日志到数据库中;
[0123] 从数据库获取该操作日志,并将操作日志下发到VPP子集群,根据该操作日志携带的VPP节点信息调用处理函数,该处理函数对该VPP子集群进行管理和操作。
[0124] 此外,本发明实施例还提出一种计算机可读存储介质,该计算机可读存储介质中包括VPP集群管理程序,该VPP集群管理程序被处理器执行时实现如下操作:
[0125] 根据预先搭建的VPP集群中的VPP节点的属性为VPP节点打上标签,选取标签相同的VPP节点作为一个VPP子集群进行管理;
[0126] 将VPP子集群中的VPP节点的管理和配置操作封装成REST API,并将所封装的REST API提供至云控制台以配合前端实现可视化管理,该REST API用于提供与VPP子集群交汇的rest接口;
[0127] 根据所接收的http请求通过rest接口获取数据模型,并根据数据模型和与REST API相关的VPP子集群中的各VPP节点的信息形成操作日志持久化到数据库中;
[0128] 从数据库获取该操作日志,并将操作日志下发到VPP子集群,根据该操作日志携带的VPP节点信息调用处理函数对该VPP子集群进行管理和操作。
[0129] 本发明之计算机可读存储介质的具体实施方式与上述VPP集群管理方法、电子设备的具体实施方式大致相同,在此不再赘述。
[0130] 需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
[0131] 上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
[0132] 以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。