CN117439874A - 一种端口配置方法、计算设备 - Google Patents
一种端口配置方法、计算设备 Download PDFInfo
- Publication number
- CN117439874A CN117439874A CN202210812332.4A CN202210812332A CN117439874A CN 117439874 A CN117439874 A CN 117439874A CN 202210812332 A CN202210812332 A CN 202210812332A CN 117439874 A CN117439874 A CN 117439874A
- Authority
- CN
- China
- Prior art keywords
- host
- configuration information
- port
- database
- target
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 63
- 230000004044 response Effects 0.000 claims abstract description 17
- 238000004590 computer program Methods 0.000 claims description 4
- 230000000694 effects Effects 0.000 abstract description 3
- 238000007726 management method Methods 0.000 description 25
- 238000012545 processing Methods 0.000 description 22
- 238000004891 communication Methods 0.000 description 21
- 230000003993 interaction Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 7
- 239000000306 component Substances 0.000 description 6
- 238000012544 monitoring process Methods 0.000 description 6
- 230000002829 reductive effect Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000002452 interceptive effect Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000012856 packing Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000008358 core component Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0889—Techniques to speed-up the configuration process
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/70—Virtual switches
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种端口配置方法,应用于第一主机,第一主机存储有与第二主机相关的第一配置信息,第一配置信息包括第一标识;方法包括:获取第一指令,第一指令用于指示在第二主机中的目标网桥下增加N个目标端口,其中,N为正整数;响应于第一指令,从第二主机处获取第二标识,第二标识指示了第二主机的相关配置信息;当第一标识与第二标识一致时,确定第一配置信息与第二主机的相关配置信息一致,向第二主机发送第二指令,第二指令用于指示第二主机在目标网桥下增加N个端口。本方法能够节约时间,提高效率,从而实现增加端口的性能的效果。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种端口配置方法、计算设备。
背景技术
随着技术的发展,在计算中出现了虚拟化技术,虚拟化技术可以虚拟出计算中的硬件平台(中央处理器、内存),存储设置和网络资源。
目前在虚拟化技术中一般采用开放虚拟交换机(openvswitch,OVS),但是OVS的方式在增加端口时,每次都需要获取交换机当前的配置信息,以及业务打包的端口信息越来越多的情况,导致交互数据量大,交互信息中的端口信息越来越多,使得增加端口时所占用系统资源开销变大,增加端口的性能越来越慢。
发明内容
为了解决现有技术中存在的问题,本申请提供了一种端口配置方法、计算设备,能够减少端口占用的资源,增加端口的性能。
第一方面,本申请提供一种端口配置方法,应用于第一主机,第一主机存储有与第二主机相关的第一配置信息,第一配置信息包括第一标识。该方法包括:获取第一指令,第一指令用于指示在第二主机中的目标网桥下增加N个端口,其中,N为正整数。响应于第一指令,从第二主机处获取第二标识,第二标识指示了第二主机的相关配置信息。当第一标识与第二标识一致时,确定第一配置信息与第二主机的相关配置信息一致,向第二主机发送第二指令,第二指令用于指示第二主机在目标网桥下增加N个端口。
这样,在第一主机中存储与第二主机相关的配置信息与第二主机中的配置信息相同的情况下,可以从本地直接查找,减少从服务器获取配置信息,同时可以通过一次打包将多个端口信息同时向第二主机发送请求,从而节约时间,提高效率。
示例性地,第一主机可以为图5中的主机3,第二主机可以为图3中的主机1和/或主机2。
在一些可能的实现方式中,该方法还可以包括:当第一标识与第二标识不一致时,确定第一配置信息和第二配置信息不一致,第一主机从第二主机处获取第二配置信息。第一主机基于第二配置信息更新第一配置信息。
这样,可以保证第一主机存储的配置信息与第二主机的配置信息相同,保证端口配置的正常。
在一些可能的实现方式中,第一指令包括目标网桥的标识和N个目标端口的标识。
在一些可能的实现方式中,确定第一配置信息与第二主机的相关配置信息一致,之后还包括:将N个端口的信息存储至第一配置信息中。
在一些可能的实现方式中,将N个目标端口的信息存储至第一配置信息之前,方法还包括:确定第一数据库中是否存储有目标网桥的名称。若有,则将N个端口的信息关联在第一配置信息中的目标网桥下。
在一些可能的实现方式中,该方法还包括:若没有,则输出提示信息,提示信息用于指示N个端口的信息存储失败。
这样,在确定数据库中存储有目标网桥的之后再进行端口信息的存储,可以减少程序的错误。
在一些可能的实现方式中,将N个端口的信息存储至第一数据库具体包括:针对N个目标端口中的任意一个当前端口,确定第一数据库中未记录当前端口相关的信息,将当前端口的信息存储至第一数据库中。
这样,可以提前对数据库中的信息进行匹配,在数据库进行存储时减少数据的重复存储,可以减少第二主机操作时的错误。
在一些可能的实现方式中,第一配置信息包括openvswitch表、bridge表或port表中的一项或多项;其中,openvswitch表存储有第二主机的数据库配置版本id,bridge表存储有第二主机的网桥名称,port表存储有第二主机的端口名称。
在一些可能的实现方式中,第二指令包括第一配置信息中的全部内容。
第二方面,本申请提供一种端口配置装置,部署于第一主机,第一主机中部署有第一数据库,第一数据库用于存储与第二主机相关的第一配置信息,第一配置信息包括第一标识,第二主机中部署有第二数据库,第二数据库用于存储第二配置信息,第二配置信息中包括第二标识。该装置可以包括:通信模块,用于获取第一指令,第一指令用于指示在第二主机中的目标网桥下增加N个目标端口,其中,N为正整数;处理模块,用于响应于第一指令,从第二主机处获取第二标识;处理模块,还可以用于当第一标识与第二标识一致时,确定第一配置信息与第二配置信息一致,将N个目标端口的信息存储至第一数据库;处理模块,还可以用于基于第一数据库中存储的端口信息向第二主机发送第二指令,第二指令用于指示第二主机在目标网桥下增加N个端口。
在一些可能的实现方式中,该装置的处理模块还可以用于当第一标识与第二标识不一致时,确定第一配置信息和第二配置信息不一致,第一主机获取第二配置信息,将第二配置信息存储于第一数据库。
在一些可能的实现方式中,第一指令可以包括目标网桥的标识和N个目标端口的标识。
在一些可能的实现方式中,将N个目标端口的信息存储至第一数据库之前,处理模块还用于确定第一数据库中存储有目标网桥的名称。
在一些可能的实现方式中,处理模块将N个目标端口的信息存储至第一数据库可以包括:针对N个目标端口中的任意一个当前端口,确定第一数据库中未记录当前端口相关的信息,将当前端口的信息存储至第一数据库中。
在一些可能的实现方式中,第一数据库可以包括openvswitch表、bridge表或port表中的一项或多项。其中,openvswitch表存储有目标机的数据库配置版本id,bridge表存储有目标机网桥名称,port表存储有目标机端口名称。
在一些可能的实现方式中,第一配置信息或第二配置信息可以包括以下的一项或多项:交换机,网桥,端口,接口。
在一些可能的实现方式中,第二指令包括第一配置信息中的全部内容。
第三方面,本申请提供一种计算机可读存储介质,包括计算机可读指令,当计算机读取并执行计算机可读指令时,使得计算机执行如第一方面任一项的方法。
第四方面,本申请提供一种计算设备,可以包括至少一个处理器和至少一个存储器,其中,存储器中存储有计算机程序指令,计算机程序指令被处理器运行时,执行如第一方面任一项的方法。
可以理解的是,上述第二方面至第四方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本申请实施例提供的一种虚拟网络拓扑图;
图2是本申请实施例提供的一种OVS的软件架构示意图;
图3是本申请实施例提供的一种远程配置虚拟交换机端口的网络拓扑图;
图4是本申请实施例提供的一种增加端口的流程示意图;
图5是本申请实施例提供的一种应用场景示意图;
图6是本申请实施例提供的一种批量增加端口工作流程示意图;
图7是本申请实施例提供的一种端口配置装置的示意图;
图8是本申请实施例提供的一种计算设备结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本文中术语“和/或”,是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。本文中符号“/”表示关联对象是或者的关系,例如A/B表示A或者B。
本文中的说明书和权利要求书中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述对象的特定顺序。例如,第一响应消息和第二响应消息等是用于区别不同的响应消息,而不是用于描述响应消息的特定顺序。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
在本申请实施例的描述中,除非另有说明,“多个”的含义是指两个或者两个以上,例如,多个处理单元是指两个或者两个以上的处理单元等;多个元件是指两个或者两个以上的元件等。
为便于对本申请实施例的理解,下面将结合附图以具体实施例做进一步的解释说明,实施例并不构成对本发明实施例的限定。
示例性地,图1是本申请实施例提供的一种虚拟网络的拓扑图。如图1所示,在一台物理主机中可以配置有虚拟交换机以及一台或多台虚拟机,在单个物理主机上的虚拟机之间可以通过虚拟交换机进行通信。其中,物理主机为实体存在的硬件类型的主机。另外,在图1中,每台物理主机上安装有至少一个网卡,每台物理主机中配置的虚拟交换机可以与安装的网卡进行数据交互。不同物理主机上的物理网卡之间可以通过位于物理主机外部的物理交换机进行数据交互。不同物理主机上的虚拟机可以通过各自物理主机上配置的虚拟交换机、安装的网卡以及物理主机外部的物理交换机进行数据交互。在一些实施例中,图1中的虚拟交换机软件可以采用OVS。OVS是基于开源协议开发的,可直接应用于生产的环境,实现虚拟网络的二层、三层通信,网络安全和网络带宽管理等功能。
示例性地,图2示出了一种OVS的软件架构,如图2所示,OVS可以包括用户态和内核态,内核态和用户态是操作系统的两种运行级别。其中,运行于处理器核心态的代码不受任何的限制,可以自由地访问任何有效地址,进行直接端口访问。而运行于用户态的代码则要受到处理器的诸多检查,它们只能访问映射其地址空间的页表项中规定的在用户态下可访问页面的虚拟地址。
用户态可以包括:ovs-dpctl、ovs-vsctl、ovs-vswitchd、ovsdb-server和一个ovsdb。
其中,ovs-dpctl,可以用于配置交换机的内核模块openvswitch.ko,可以创建、修改和删除数据通道(datapath)。通常来讲,单个机器上的datapath有256条(0-255)。一条datapath对应一个虚拟网络设备。另外,ovs-dpctl还可以统计每条datapath上的设备通过的流量,打印流的信息等。
ovs-vsctl可以用于查询和更新ovs-vswitchd的配置,负责配置网桥、端口和协议等信息,以及ovsdb-server相关的数据库操作。
ovs-vswitchd是一个守护进程,是OVS的核心部件,作为服务端,其可以接受ovs-dpctl的连接。另外,ovs-vswitchd还可以用于负责对流表创建、修改和更新。
ovsdb是一个json文件数据库,其可以与ovsdb-server进行交互,保存有交换机的相关配置信息(例如都包括有哪些网桥、端口、接口等),其中,ovs-vswitchd可以根据数据库中的配置信息工作。
ovsdb-server是一个服务端进程,可以与ovsdb进行交互,ovsdb-server可以接受ovs-vsctl和ovs-vswitchd的连接。其中,ovsdb-server通过开放虚拟交换机数据库(openvswitchdatabase,OVSDB)协议与ovs-vsctl进程进行交互。其中,OVSDB协议是一个用于实现对虚拟交换机的可编程访问和配置管理的软件定义网络(network definedsoftware,SDN)管理协议。OVSDB管理协议定义了一套远程过程调用(remote procedurecall,RPC)接口,其通信模式为请求与响应的模式。用户可通过远程调用的方式管理OVSDB,主要包括通信协议(JSON-RPC)方法和所支持的OVSDB操作。其中,ovs-vswitchd与ovsdb-server之间通过socket交互信息,ovs-vswitchd可以根据与ovsdb-server交互的ovsdb中的配置信息工作。
内核态可以包括:openvswitch.ko。openvswitch.ko是一个配套的基于流来实现交换的Linux内核模块。
另外,在图2中,OVS还可以划分为两个方面,包括管理面和数据面。其中,数据面是包括上述用户态的ovs-vswitchd以及与之相关联的服务模块ovsdb-server。
管理面是由OVS提供的各种工具来负责。这些工具的提供也是为了方便用户对底层各个模块的控制管理,提高用户体验。
接下来,基于图1和图2中的内容,对图1中不同虚拟机之间配置端口的过程进行描述。
示例性地,图3示出了一种远程配置虚拟交换机端口的网络拓扑图。如图3所示,在同一个网络中存在主机1主机2和主机3,主机1、主机2和主机3可以为物理主机,也可以为虚拟机。例如,主机1可以是图1中的物理主机1中的虚拟机1,主机2可以是图1中的物理主机2中的虚拟机2,主机3可以是图1中的物理主机1中的虚拟机3,则主机1向主机2发送数据可以是:主机1的数据通过物理主机1上的虚拟交换机发送至物理主机1的网卡,再通过物理交换机发送至物理主机2的网卡,然后通过物理主机2上的虚拟交换机到达主机2。主机1向主机3发送数据可以是:主机1的数据通过虚拟交换机发送至主机3。
ovs-vsctl可以运行在网络环境中的任何一台主机上,运行有ovs-vsctl的主机可以作为管理机。
任意两台主机之间进行交互的结构可以看做Browser/Server架构(B/S架构),运行有ovs-vsctl的主机可以认为是浏览器(Browser端),运行着ovsdb-server的主机可以认为是服务端(Server端),核心的业务处理在服务端完成,客户端通过服务端来与数据库进行交互。
以图3为例,ovs-vsctl运行于主机3上,则主机3作为管理机,可以对主机1和主机2进行管理,被管理的主机1和主机2作为目标机,管理包括远程端口配置。值得注意的是,图3中的主机3作为管理机仅仅为网络中的一个示例,并不构成对方法的限定,可以理解,主机1和主机2也同样可以作为管理机。在主机3需要控制主机1上增加一个端口时,主机3向主机1发送增加端口的指令,主机3上的ovs-vsctl通过ovsdb协议,远程调用主机1上的ovsdb-server,主机1上的ovsdb-server通知ovs-vswitchd进行更新,然后将端口增加是否成功的信息返回给主机3;若主机1上的ovsdb-server增加端口失败,则将端口增加失败的信息返回给主机3。
下面,结合图4,介绍在图3中通过主机3在主机1上每次增加端口的流程。示例性地,图4示出了一种增加端口的流程示意图。请参考图4,ovs-vsctl与ovsdb-sever交互分为两个阶段:初始化阶段和增加端口阶段。
在初始化阶段,ovs-vsctl向ovsdb-server发送监视请求,告诉ovsdb-server若相关内容(交换机、端口、流表等)发生变化,需要回应ovs-vsctl。ovs-vsctl通过此请求,获取交换机的当前的配置信息,例如:多少个网桥,每个网桥具体的端口信息等。
值得注意的是,初始化阶段还包括在正常工作的主机1上,ovs-vswitchd进程向ovsdb-server发送监视请求,ovsdb-server响应于监视请求,将相关内容(交换机、端口、流表等)信息回复给ovs-vswitchd,ovs-vswitchd根据监视响应进行工作。
在增加端口阶段,ovs-vsctl向ovsdb-server发送交互请求,通过交互请求将请求增加的端口信息发送至ovsdb-server,ovsdb-server对交互请求进行响应,进行增加端口的操作,操作后通知ovs-vswitchd更新相应的端口信息,然后将交互请求的响应结果返回ovs-vsctl。其中,交互请求包括增加网桥命令和增加端口命令,示例性地,增加网桥命令为:ovs-vsctl add-br br0,表示ovs-vsctl请求增加一个名称为br0的网桥。增加端口命令为:ovs-vsctl add-port br0 eth0,表示ovs-vsctl请求在网桥br0下增加一个名称为eth0的端口。在确定网桥br0的情况下,增加端口的命令可以为:ovs-vsctl add-port eth0。也可以使用指令ovs-vsctl add-port ovs-sriov ens2f0_0来进行端口新增功能的实现,其中,ovs-sriov表示采用了sriov技术,sriov技术是为了解决网卡透传到虚机后,网卡不足的问题。
在OVSDB协议规范中规定了ovsdb的通信模式是请求与响应的方式。其中,请求(例如图4中的监视请求或交互请求等)为请求端发送一个JSON对象,请求的JSON对象包含要调用的方法,具体格式示例如下:
{"method":"echo","params":["Hello JSON-RPC"],"id":1}
请求的JSON对象中包含3个关键元素:method、params、id,其中,method表示要调用的方法;params表示请求携带的参数的数组;id参数的存在是用于表示该请求是需要响应的,服务端需要提供一个id同样为1的响应信息,id表示该请求的标识。
响应表示服务端收到请求,并且对该请求进行了相应的操作,将操作结果告知请求端。响应信息也是一个JSON对象,响应的JSON对象包含针对请求进行操作的操作结果,具体格式示例如下:
{"result":"Hello JSON-RPC","error":null,"id":1}
响应的JSON对象中同样包含3个关键元素:result、error、id,其中,result表示针对请求的操作结果,如果出错result为null;error表示出错,如果请求成功,则error为null;id表示为此响应对应的请求标识id。
以增加一个端口名为ens2f0_0的端口为例,在请求的JSON对象中的params所对应的值元素中,请求携带的参数的数组中包括元素:
{"uuid-name":"rowcd4a265d_0c14_42ac_bad3_dcfb8c003142","row":{"name":"ens2f0_0","interfaces":["named-uuid","row63c0331c_6ff8_4c0f_931e_67d32444445c"]},"op":"insert","table":"Port"},该元素表示,在ovsdb的端口表中新增一个端口名为ens2f0_0的一条记录。
由上述记载的内容可知,OVS在增加端口时,每次都需要经历初始化阶段和增加端口阶段,也就是说,OVS在增加端口时,每次都需要获取交换机当前的配置信息,当某个网桥的端口较多时(当前单主机的端口数可以大于100),会导致交互的数据量很大,导致增加端口时开销变大。同时,在端口增加阶段,业务请求会把所有端口的信息打包到其中,当需要增加多个端口时,需要多次执行增加端口命令,随着端口越加越多,业务打包端口的信息也会越来越多,导致开销越来越多,增加端口的性能越来越慢。
有鉴于此,本申请实施例提供一种端口配置的方法。在本申请提供的方法中,通过在管理机增加本地数据库,在本地数据库中存储有目标机中的相关配置信息,在配置目标机中的端口时,可以在本地数据库中查询相关配置信息,减少管理机与目标机之间的交互。同时,本方法可以实现在配置端口时,通过一次打包解包,完成端口的批量管理。下面结合附图详细描述本方法。
示例性地,图5为本申请实施例提供的应用场景网络拓扑图。该图与图3的主要不同之处是:在作为管理机的主机3的存储器上新增一个数据库,即,在作为管理机的主机3的存储器中新增一个存储文件。新增的数据库用于存储目标机的配置信息。对于图5中其他内容,可参见前述图3中的相关描述,此处不再赘述。
如图5所示,在网络环境中进行虚拟交换机的端口配置,就在运行有ovs-vsctl的主机(即主机3)上增加本地数据库。其中,该本地数据库与ovs-server之间可以不交互,即该本地数据库与主机上的ovs-server隔离。该本地数据库也可以与ovs-server交互。
另外,在图5中,也可以在主机1和主机2上分别增加本地数据库,如此,每个主机都可以作为管理机,也可以作为被管理的目标机。示例性地,主机1在作为管理机时,由于在主机1上运行有与主机1的ovs-server交互的ovsdb,因此,此时的主机1上会有两个数据库,原有的ovsdb用于存储主机1的配置信息,新增的本地数据库用于存储期望操作的目标机的配置信息。
此外,需要说明的是,在本申请中,主要以增加端口为例来对端口配置进行描述,可以理解的是,增加端口可以等同的替换为其它各种可能的端口配置业务,例如删除端口、修改端口等。可以理解的是,本地数据库为了管理方便,可以考虑使用轻量的关系型数据库实现。当然也可以使用任何实现缓存目的的文件系统,数据库等技术来进行实现,此处不再赘述。
示例性地,本地数据库可以选用SQLite数据库。SQLite数据库是一种基于嵌入式linux的小型关系型数据库,源代码为C,具有体积小,操作快,可以在不同的字节序的机器上共享的特点,支持基本的SQL语句。
在本地数据库安装完成后,可以使用sqlite3命令对数据库进行操作,以在该数据库中建表、删表以及对表中数据进行查询。
示例性地,创建本地数据库的sqlite3命令可以为:sqlite3 ovsdb.db,表示在本地创建ovsdb数据库。
另外,当本地ovsdb数据库中建表时,由于只有在该数据库在打开的情况下才能进行操作,因此可先打开创建好的ovsdb数据库,然后在创建好的ovsdb数据库中建立相关的数据表。示例性地,数据表可以包括但不限于以下的一项或多项:openvswitch表,bridge表或port表。
其中,openvswitch表的表结构如下表1所示。表1中的字段可以包括id、version、config,其中id为openvswitch表的主键,采用主键自增的机制,id表示交换机的标识,数据类型为int类型,字段不能为空;version表示openvswitch的版本信息,数据类型为string,字段不能为空;config表示数据库配置版本id,数据类型为int,字段不能为空。
表1
id | version | config |
1 | V1.0 | 1 |
作为一种可能的实现方式,创建openvswitch表的SQL语句可以为:
create table openvswitch(
id int primary key autoincrement not null,
version text not null,
config int not null
);
bridge表的表结构如下表2所示。表2中的字段可以包括id、name、switch_id,其中,id为bridge表的主键,采用主键自增的机制,id表示网桥的标识,数据类型为int类型,字段不能为空;name表示网桥的名称,数据类型为string,字段不能为空;switch_id关联openvswitch表,表示交换机的标识id,数据类型为int类型,字段不能为空。
表2
id | name | switch_id |
1 | br0 | 1 |
作为一种可能的实现方式,创建bridge表的SQL语句可以为:
create table bridge(
id int primary key autoincrement not null,
name text not null,
switch_id int not null
);
port表的表结构如下表3所示。表3中的字段可以包括id、name、bridge_id,其中,id为port表的主键,采用主键自增的机制,id表示端口的标识,数据类型为int类型,字段不能为空;name表示端口的名称,数据类型为string,字段不能为空;bridge_id关联bridge表,表示网桥的标识id,数据类型为int类型,字段不能为空。
表3
id | name | bridge_id |
1 | ens2f0_0 | 1 |
作为一种可能的实现方式,创建port表的SQL语句可以为:
create table port(
id int primary key autoincrement not null,
name text not null,
bridge_id int not null
);
在数据库中的表建立完成后,可以进行增加端口的操作。下面结合图4,对在图5中增加端口的过程进行描述。
请继续参考图4,在数据库中的表建立完成后,可以在运行ovs-vsctl命令的主机(管理机)上生成本地数据,用于保存虚拟交换机的配置信息。在目标机的ovsdb-server关联的数据库中存在一个属性config,用于标识目标机数据库配置版本id,管理机的ovs-vsctl向目标机的ovsdb-server发送监视请求,目标机的ovsdb-server对此监视请求进行回应,管理机的ovs-vsctl获取到目标机中包括目标机数据库配置版本id的数据,将此数据存储至本地数据库中。如此,在增加端口操作时,管理机只需要查询并判断本地数据库配置版本id与目标机数据库配置版本id是否相同,若相同,表示本地数据库信息和远程的数据库信息相同,不需要使用远程数据库信息更新本地数据库;若不相同,才需要使用远程数据库更新本地数据库。更新方法同图4中的初始化阶段的相关描述,此处不再赘述。
若管理机数据库配置版本id与目标机数据库配置版本id相同,可以减少在增加端口时初始化阶段的数据传输,从而达到加快端口配置的速度的效果。
接下来,基于前述的相关描述,对本申请实施例提供的一种端口配置方法进行介绍。
示例性地,图6是本申请实施例提供的一种批量增加端口工作流程示意图。其中,图6中所示的方法可以但不限于通过图5中的主机3来实现。另外,在本申请中,管理机也可以称作第一主机,目标机也可以称作第二主机。部署于管理机上的本地数据库可以称作第一数据库,目标机上的与ovs-sever相关联的ovsdb可以称作第二数据库,第一数据库中存储的与第二主机相关的配置信息可以称为第一配置信息,第二数据库中存储的配置信息可以称为第二配置信息。如图6所示,批量增加端口工作包括:
S61:管理机获取第一指令,第一指令用于指示在目标机中的目标网桥下增加N个目标端口,第一指令包括目标网桥的名称和N个目标端口的名称。其中,N为正整数。
在本实施例中,用户可以在管理机上对目标机的端口进行管理,例如,输入增加端口的命令等。其中,当用户在管理机上输入完成后,管理机即可获取到用户输入的批量增加端口的指令,该指令即为第一指令。
在一种可能的实施方式中,第一指令包括目标网桥的标识和N个目标端口的标识。其中,目标网桥的标识可以为目标网桥的名称,目标端口的标识可以为目标端口的名称。
例如,以一个用户期望在目标机的一个特定的网桥下新增ens2f0_0和ens2f0_1两个端口为例,用户输入的指令为:ovs-vsctl add-ports br0 ens2f0_0,ens2f0_1,该指令的意思为在目标机的名为br0的网桥下新增ens2f0_0和ens2f0_1端口。
S62:管理机响应于第一指令,判断目标机数据库中的第一配置信息与管理机本地数据库中的第二配置信息是否一致。当管理机判断第一配置信息与第二配置信息一致时,执行S64;不一致时执行S63。
本实施例中,管理机响应于用户输入的第一指令,分别获取目标机的配置信息与本地存储的目标机的配置信息,判断目标机的配置信息和本地存储的目标机的配置信息是否一致。其中,管理机获取目标机的配置信息与本地存储的目标机的配置信息可以通过sql查询语句进行查询。当确定目标机的配置信息和本地存储的目标机的配置信息一致时,表明本地存储的目标机的配置数据与目标机当前的配置信息相同,可以直接进行下一步操作;当确定目标机的配置信息和本地存储的目标机的配置信息不一致时,表明本地存储的目标机的配置数据与目标机当前的配置信息不相同,需要先同步目标机的配置信息到本地。只有当本地数据库中存储的目标机相关配置信息与目标机当前配置信息一致时才可以进行端口增加的操作。
示例性地,管理机获取到目标机中的配置信息可以包括:目标机中存在网桥端口br0,端口ens2f1_0、ens2f1_1。若管理机中存储的目标机配置信息为网桥端口br0,端口ens2f1_0、ens2f1_1,表明目标机的配置信息与本地存储的目标机的配置信息一致,可以进行下一步操作。若管理机中存储的目标机配置信息为网桥端口br0,端口ens2f1_0,表明目标机的配置信息比本地存储的目标机的配置信息多一个端口ens2f1_1,需要先同步目标机的配置信息到本地。
示例性地,管理机同步目标机的配置信息可以包括:管理机获取目标机的当前配置信息,将目标机的当前配置信息存储于本地数据库中。其中,管理机将目标机的当前配置信息存储于本地数据库中的方式可以是用目标机的当前配置信息覆盖本地数据库中存储的目标机的配置信息,也可以是在本地数据库中新增目标机的当前配置信息,还可以是只在本地数据库中新增差异数据,例如只在本地数据库中新增前述的目标机的配置信息比本地存储的目标机的配置信息多的端口ens2f1_1。
作为一种可能的实施方式,管理机的本地数据库与目标机的数据库中存储有配置版本id,管理机通过目标机数据库配置版本id与本地数据库中存储的目标机配置版本id,来判断目标机的配置信息和本地存储的目标机的配置信息是否一致。
示例性地,管理机可以通过向目标机发送查询目标机数据库配置版本id信息的方式,获取目标机数据库配置版本id。管理机查询在本地数据库中openvswitch表(前述的表1)中的数据库配置版本id。当判断获取到的两个id一致,表明本地数据库中存储的目标机的配置数据与目标机当前的配置信息相同,可以进行下一步操作;当判断获取到的两个id一致,表明本地数据库中存储的目标机的配置数据与目标机当前的配置信息不相同,管理机需要同步目标机的配置信息与配置版本id。
例如,管理机获取到目标机中存储的数据库配置版本id为1,本地数据库中存储的目标机数据库配置版本id为1,因此管理机判断本地数据库中存储的端口相关数据和目标机中存储的端口相关数据相同,可以进行下一步操作。又例如,管理机获取到目标机中存储的数据库配置版本id为2,本地数据库中存储的目标机数据库配置版本id为1,因此管理机判断本地数据库中存储的端口相关数据和目标机中存储的端口相关数据不相同,需要先同步目标机的配置信息与配置版本id,然后才能进行下一步操作。
S63:管理机同步目标机中的数据。
在本实施例中,本地数据库中存储的目标机的配置数据与目标机当前的配置信息不相同,因此,需要先从目标机处获取第二配置信息,将目标机的当前配置信息同步在本地(即基于第二配置信息更新第一配置信息),从而使本地存储的目标机相关配置信息与目标机相同。
S64:管理机判断本地数据库中是否存储有目标网桥的名称。当本地数据库存储有目标网桥的名称时执行S66;不一致时执行S65。
本实施例中,管理机可以查询本地数据库中brideg表(前述的表2)中存储的网桥名称,判断本地数据库中是否存储有用户指令中的目标网桥。若本地数据库存储有目标网桥的名称,表示在目标机中存在该目标网桥,所以可以进行增加端口的操作,即可以执行S66。当管理机判断本地数据库中不存在有用户指令中的目标网桥,表示在目标机中并不存在该目标网桥,因此不能进行增加端口的操作,提示用户新增端口失败,即执行S65。
示例性地,管理机获取到用户指令中的网桥名称为br0,在本地数据库中的bridge表中使用sql查询该网桥是否存在,可能的select语句为:select*from bridge wherename=br0。如果存在返回结果,则表明在目标机中存在该网桥,可以进行端口增加的操作;如果没有返回结果,则表明在目标机中不存在该网桥,不能进行增加端口的操作,提示用户端口新增失败。
S65:管理机确定新增端口失败,并返回提示信息。
本实施例中,管理机在本地数据库中没有查到目标网桥,不能进行增加端口的操作,因此确定新增端口失败。此时可以向用户返回端口新增失败的的提示信息,也可以是提示用户不存在目标网桥,需要输入新增的网桥。
S66:管理机将N个目标端口的信息存储至本地数据库(即第一配置信息)中,以及,向目标机发送第二指令,第二指令中包括本地数据库中的至少部分数据。其中,所述至少部分数据包括第一指令中包含的端口。第二指令用于指示目标机在目标网桥下增加N个目标端口。
本实施例中,管理机在本地数据库中查询到目标网桥,可以进行端口新增。此时,管理机将目标端口的信息存储于本地数据库中。在数据库中存储完成目标端口的信息后,管理机生成第二指令信息,将第二指令发送至目标机,用于指示目标机在目标网桥下进行端口新增。
作为一种可能的实现方式,可以包括以下步骤:
S661:判断N个目标端口中的当前第i个目标端口是否存在,i的初始值为1且i不大于N。
本实施例中,管理机解析用户输入的批量新增端口的指令,获取指令中的端口列表。管理机在端口列表中顺序读取端口列表中的端口,对于读取到的每个当前端口,管理机根据当前端口名称查询本地数据库中port表(前述表3)中存储的端口名称是否已经存在。若已经存在,则表示在目标机中已经存在了当前端口,不能再次新增该端口,执行S662;若不存在,则表示在目标机中不存在当前端口,执行S663。
示例性地,管理机解析用户指令,获取到的端口为ens2f0_0和ens2f0_1两个接口,可以将接口表示为[ens2f0_0,ens2f0_1]。第一个端口为ens2f0_0,管理机在本地数据库中port表中使用sql语句查询该接口是否已经存在,可能的select语句为:select*from portwhere name=ens2f0_0。如果存在返回结果,则表明在目标机中存在该端口,不可以新增该端口。如果不存在返回至,则表明在目标机中不存在该端口,可以在目标机中新增名称为ens2f0_0的端口。
S662:管理机确定当前目标端口已存在,不能新增该目标端口,向用户返回该目标端口已存在的提示信息,执行S664。
本实施例中,管理机通过sql语句查询到在本地数据库中存在当前目标端口的信息,判断当前端口已经存在于目标机中,无法新增一个已有端口,因此,向用户返回当前目标端口已经存在的提示信息,继续执行S664。
示例性地,管理机通过select语句为select*from port where name=ens2f0_0查询port表(前述表3),查到一条数据,则表明在目标机中已经存在了名称为ens2f0_0的端口,无法再新增一个名称为ens2f0_0的端口。此时,将ens2f0_0端口已经存在的提示信息返回给用户。
S663:管理机将当前目标端口记录在本地数据库中的端口表中。
本实施例中,管理机判断在数据库中的端口表中不存在当前端口时,将当前端口使用sql语句记录在数据库中的端口表中,可能的insert语句为:insert into port setname=‘ens2f0_0’,bridge_id=1。
S664:判断i是否小于N,当i小于N时,令i=i+1,执行S661-S664;当i等于N时,执行S665。
本实施例中,管理机判断当前目标端口是否为最后一个待新增的目标端口。若当前第i个端口的i小于N,表明当前端口不是最后一个待新增的目标端口,获取下一个待新增的目标端口(即令i增加1),返回S661开始目标端口新增的步骤。若当前第i个端口的i等于N,表明当前端口是最后一个待新增的目标端口。端口列表中没有待新增的目标端口,执行S666。
S665:生成第二指令,向目标机发送第二指令。
本实施例中,管理机在本地数据库中将第一指令中可以进行新增的端口都记录完成,可以向目标机发送新增端口指令。此时生成第二指令,第二指令中包含有本地数据库中的部分数据或全部数据,至少应该包括第一指令中的端口信息。在向目标机发送第二指令的同时,管理机需要将本地数据库中的配置版本id值加1。
示例性地,管理机将本地数据库中的所有的端口信息进行打包,生成第二指令,将生成的第二指令发送至目标机,此过程请继续参考图4中的增加端口阶段,此处不再赘述。
示例性地,此时生成的交互请求中的JSON对象中的params所对应的值元素中,请求携带的参数的数组内容可以包括如下元素:
{"uuid-name":"rowcd4a265d_0c14_42ac_bad3_dcfb8c003142","row":{"name":"ens 2f0_0","interfaces":["named-uuid","row63c0331c_6ff8_4c0f_931e_67d32444445c"]},"op":"insert","table":"Port"},
{"uuid-name":"rowcd4a265d_0c14_42ac_bad3_dcfb8c003143","row":{"name":"ens 2f0_1","interfaces":["named-uuid","row63c0331c_6ff8_4c0f_931e_67d32444445D"]},"op":"insert","table":"Port"}。
在一些实施例中,在前述S62确定第一配置信息与第二配置信息致时,除了执行上述S64-S66操作之外,还可以直接向目标机发送第二指令,第二指令用于指示目标机在目标网桥下增加N个端口。
由上述各种实施例可知,本申请通过在运行有ovs-vsctl的主机上增加本地ovsdb数据库,可以实现在本地缓存中查找数据,从而减少从服务器获得交换机表、网桥表和端口表的数据,同时通过一次打包解包即可完成在目标机上的批量新增端口的操作,从而可以节约大量的通信时间。以100个端口为例,当前时间大约70s,采用本方法后时间大约为7s,可以达到10倍性能收益。
可以理解的是,上述各个实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。此外,在一些可能的实现方式中,上述实施例中的各步骤可以根据实际情况选择性执行,可以部分执行,也可以全部执行,此处不做限定。本申请的任意实施例的任意特征的全部或部分在不矛盾的前提下,可以自由地、任何地组合。组合后的技术方案也在本申请的范围之内。
基于上述实施例中的方法,本申请实施例提供了一种端口配置装置。请参阅图7,图7是本申请实施例提供的一种端口配置装置的结构示意图。该端口配置装置700,部署于第一主机,第一主机中部署有第一数据库,第一数据库用于存储与第二主机相关的第一配置信息,第一配置信息包括第一标识,第二主机中部署有第二数据库,第二数据库用于存储第二配置信息,第二配置信息中包括第二标识。
示例性地,第一主机可以但不限于为图5中的主机3,第一数据库可以但不限于为图5中主机3上的ovsdb,第二主机可以但不限于为图5中的主机1、主机2,第二数据库可以但不限于为图5中主机1和/或主机2上的ovsdb。
如图7所示,该端口配置装置700包括通信模块701和处理模块702。其中,通信模块701用于获取第一指令,第一指令用于指示在第二主机中的目标网桥下增加N个目标端口,其中,N为正整数。处理模块702,用于响应于第一指令,从第二主机处获取第二标识。处理模块702,还可以用于当第一标识与第二标识一致时,确定第一配置信息与第二配置信息一致,将N个目标端口的信息存储至第一数据库。处理模块702,还可以用于基于第一数据库中存储的端口信息向第二主机发送第二指令,第二指令用于指示第二主机在目标网桥下增加N个端口。
示例性地,通信模块701可以但不限于为图5中所示的主机3上的ovs-vsctl,处理模块702可以但不限于为图5中所示的至极1上的ovsdb-server。
在一些可能的实现方式中,该装置的处理模块还可以用于当第一标识与第二标识不一致时,确定第一配置信息和第二配置信息不一致,第一主机获取第二配置信息,将第二配置信息存储于第一数据库。
在一些可能的实现方式中,第一指令可以包括目标网桥的标识和N个目标端口的标识。
在一些可能的实现方式中,将N个目标端口的信息存储至第一数据库之前,处理模块还用于确定第一数据库中存储有目标网桥的名称。
在一些可能的实现方式中,处理模块将N个目标端口的信息存储至第一数据库可以包括:针对N个目标端口中的任意一个当前端口,确定第一数据库中未记录当前端口相关的信息,将当前端口的信息存储至第一数据库中。
在一些可能的实现方式中,第一数据库可以包括openvswitch表、bridge表或port表中的一项或多项。其中,openvswitch表存储有目标机的数据库配置版本id,bridge表存储有目标机网桥名称,port表存储有目标机端口名称。
在一些可能的实现方式中,第一配置信息或第二配置信息可以包括以下的一项或多项:交换机,网桥,端口,接口。
在一些可能的实现方式中,第二指令包括第一配置信息中的全部内容。
应当理解的是,上述装置用于执行上述实施例中的方法,装置中相应的程序模块,其实现原理和技术效果与上述方法中的描述类似,该装置的工作过程可参考上述方法中的对应过程,此处不再赘述。
图8是本申请实施例提供的一种计算设备结构示意图。如图8所示,该计算机设备可以包括:处理器810、存储器820、输入/输出接口830、通信接口840和总线850。其中处理器810、存储器820、输入/输出接口830和通信接口840通过总线850实现彼此之间在设备内部的通信连接。该计算机设备可以用于执行前述图6所示的方法。
处理器810可以采用通用的中央处理器(central processing unit,CPU)、微处理器、应用专用集成电路(application specific integrated circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器820可以采用只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、静态存储设备,动态存储设备等形式实现。存储器820可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器820中,并由处理器810来调用执行。
输入/输出接口830用于连接输入/输出模块,以实现信息输入及输出。输入/输出模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口840用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线850包括一通路,在设备的各个组件(例如处理器810、存储器820、输入/输出接口830和通信接口840)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器810、存储器820、输入/输出接口830、通信接口840以及总线850,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
可以理解的是,本申请的实施例中的处理器可以是中央处理单元(centralprocessing unit,CPU),还可以是其他通用处理器、数字信号处理器(digital signalprocessor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件,硬件部件或者其任意组合。通用处理器可以是微处理器,也可以是任何常规的处理器。
本申请的实施例中的方法步骤可以通过硬件的方式来实现,也可以由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(random access memory,RAM)、闪存、只读存储器(read-only memory,ROM)、可编程只读存储器(programmable rom,PROM)、可擦除可编程只读存储器(erasable prom,EPROM)、电可擦除可编程只读存储器(electrically eprom,EEPROM)、寄存器、硬盘、移动硬盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者通过所述计算机可读存储介质进行传输。所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
可以理解的是,在本申请的实施例中涉及的各种数字编号仅为描述方便进行的区分,并不用来限制本申请的实施例的范围。
Claims (10)
1.一种端口配置方法,其特征在于,应用于第一主机,所述第一主机存储有与第二主机相关的第一配置信息,所述第一配置信息包括第一标识;
所述方法包括:
获取第一指令,所述第一指令用于指示在第二主机中的目标网桥下增加N个目标端口,其中,N为正整数;
响应于所述第一指令,从所述第二主机处获取第二标识,所述第二标识指示了所述第二主机的相关配置信息;
当所述第一标识与所述第二标识一致时,确定所述第一配置信息与所述第二主机的相关配置信息一致,向所述第二主机发送第二指令,所述第二指令用于指示所述第二主机在所述目标网桥下增加N个端口。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述第一标识与所述第二标识不一致时,确定所述第一配置信息和所述第二配置信息不一致,第一主机从所述第二主机处获取所述第二配置信息;
所述第一主机基于所述第二配置信息更新所述第一配置信息。
3.根据权利要求1所述的方法,其特征在于,所述第一指令包括目标网桥的标识和N个目标端口的标识。
4.根据权利要求1所述的方法,其特征在于,所述确定所述第一配置信息与所述第二主机的相关配置信息一致,之后还包括:
将所述N个端口的信息存储至所述第一配置信息中。
5.根据权利要求4所述的方法,其特征在于,所述将所述N个目标端口的信息存储至所述第一数据库之前,所述方法还包括:
确定所述第一数据库中是否存储有目标网桥的名称;
若有,则将所述N个端口的信息关联在所述第一配置信息中的所述目标网桥下。
6.根据权利要求4所述的方法,其特征在于,所述方法还包括:
若没有,则输出提示信息,所述提示信息用于指示所述N个端口的信息存储失败。
7.根据权利要求1所述的方法,其特征在于,所述将所述N个端口的信息存储至所述第一数据库具体包括:
针对所述N个目标端口中的任意一个当前端口,确定所述第一数据库中未记录所述当前端口相关的信息,将所述当前端口的信息存储至所述第一数据库中。
8.根据权利要求1-7任一项所述的方法,其特征在于,所述第一配置信息包括openvswitch表、bridge表或port表中的一项或多项;其中,所述openvswitch表存储有所述第二主机的数据库配置版本id,所述bridge表存储有所述第二主机的网桥名称,所述port表存储有所述第二主机的端口名称。
9.根据权利要求1所述的方法,其特征在于,所述第二指令包括所述第一配置信息中的全部内容。
10.一种计算设备,包括处理器和存储器,其中,所述存储器中存储有计算机程序指令,所述计算机程序指令被所述处理器运行时,执行如权利要求1-8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210812332.4A CN117439874A (zh) | 2022-07-12 | 2022-07-12 | 一种端口配置方法、计算设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210812332.4A CN117439874A (zh) | 2022-07-12 | 2022-07-12 | 一种端口配置方法、计算设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117439874A true CN117439874A (zh) | 2024-01-23 |
Family
ID=89556989
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210812332.4A Pending CN117439874A (zh) | 2022-07-12 | 2022-07-12 | 一种端口配置方法、计算设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117439874A (zh) |
-
2022
- 2022-07-12 CN CN202210812332.4A patent/CN117439874A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11544120B2 (en) | Tracking application programming interface requests in a cloud computing system | |
US20190332230A1 (en) | User interface view generation | |
US8539484B1 (en) | Multi-platform computer system management for virtualized environments | |
EP3598301B1 (en) | Cloud management platform, virtual machine management method, system thereof | |
US11199989B2 (en) | Methods, apparatuses and computer program products for supporting and performing data replication of virtual machine | |
US20220100550A1 (en) | Accelerator Loading Method, System, and Apparatus | |
US11782751B2 (en) | Method and apparatus for improvements to moving picture experts group network based media processing | |
US11991094B2 (en) | Metadata driven static determination of controller availability | |
CN113867993B (zh) | 虚拟化的rdma方法、系统、存储介质及电子设备 | |
US11416267B2 (en) | Dynamic hardware accelerator selection and loading based on acceleration requirements | |
US11042473B2 (en) | Intelligent test case management for system integration testing | |
US20200334317A1 (en) | Methods and systems for caching and searching for search results | |
WO2019153880A1 (zh) | 集群中镜像文件下载的方法、节点、查询服务器 | |
CN115701077A (zh) | 一种对接微服务网格的方法以及装置 | |
CN117439874A (zh) | 一种端口配置方法、计算设备 | |
US11907173B1 (en) | Composable network-storage-based file systems | |
US11169728B2 (en) | Replication configuration for multiple heterogeneous data stores | |
CN115729693A (zh) | 数据处理方法、装置、计算机设备及计算机可读存储介质 | |
US20240248776A1 (en) | Inventory management system for managing functions, resources and services of a telecommunications network | |
US20240248888A1 (en) | System and method for saving view data using generic api | |
CN118069568B (zh) | 外部设备拓扑配置方法、数据处理器、设备和程序产品 | |
WO2024001403A1 (zh) | 应用更新方法、装置及系统 | |
US11256689B2 (en) | Iteratively executing an algorithm across partitions in parallel | |
WO2021083061A1 (zh) | 虚拟网络功能的软件镜像的处理方法和装置 | |
CN117811955A (zh) | 确定网络状态的方法、设备及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |