CN109861839B - 业务不中断的虚拟交换机升级方法以及相关设备 - Google Patents
业务不中断的虚拟交换机升级方法以及相关设备 Download PDFInfo
- Publication number
- CN109861839B CN109861839B CN201711247439.4A CN201711247439A CN109861839B CN 109861839 B CN109861839 B CN 109861839B CN 201711247439 A CN201711247439 A CN 201711247439A CN 109861839 B CN109861839 B CN 109861839B
- Authority
- CN
- China
- Prior art keywords
- virtual switch
- virtual
- port
- connection
- virtual machine
- 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.)
- Active
Links
Images
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
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
- H04L41/082—Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
-
- 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)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了业务不中断的虚拟交换机升级方法以及相关设备,该方法包括:部署新版本虚拟交换机;配置新版本虚拟交换机的多种属性,所述多种属性中的每一种属性被配置为与所述旧版本虚拟交换机的所述每一种属性一致,所述多种属性包括端口对象、虚拟网络高级特性和流表规则;将代理模块与所述旧版本虚拟交换机的连接切换为所述代理模块与所述新版本虚拟交换机的连接;下发虚拟机信息至所述新版本虚拟交换机,以使所述虚拟机通过所述新版本虚拟交换机维持网络通信。实施本发明实施例能够在单主机中实现修复虚拟软交换机BUG或升级虚拟交换机软件版本时所运行网络通信业务基本不中断,满足虚拟交换机升级业务的应用需求。
Description
技术领域
本发明涉及通信技术领域,尤其涉及业务不中断的虚拟交换机升级方法以及相关设备。
背景技术
虚拟机(Virtual Machine,VM)是指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。在云化环境中,为了充分利用一个物理主机的计算、存储和网络资源,会在一个主机上虚拟出多个VM,而各个VM之间通过虚拟交换机(VSWITCH)进行互联互通。虚拟交换机作为一种软件程序,会定期进行软件更新,如进行虚拟交换机版本升级,修复虚拟交换机漏洞BUG等等。
对于单主机而言,进行虚拟交换机软件更新通常有两种实现方式:
一种是安装重启的方式,也就是在安装新的虚拟交换机软件后,重启虚拟交换机使用的关键进程或者重启虚拟交换机所在主机,从而使得更新的虚拟交换机生效。然而,重启进程操作会涉及到虚拟交换机中虚拟端口以及流表的重建,容易导致虚拟机网络中断时间达到分钟级,而重启主机操作导致客户业务中断时间甚至更长,影响客户业务的进行,增加运维成本。
另一种是热补丁方式,即动态修改软件程序中某个旧函数指向的地址,指向新函数,那么,所有对旧函数的调用都会被重定向到新函数,继而执行新函数,从而达到在不重启进程的情况下实现对于函数的动态替换。然而,这种升级方式存在多种缺陷(如无法支持版本更新中新增函数,无法修复只读数据段等等),实用性低,无法满足大多数虚拟交换机升级业务的应用需求。
发明内容
为了解决现有技术的缺陷,本发明实施例提供了业务不中断的虚拟交换机升级方法以及相关设备,以期在单主机中实现修复虚拟软交换机BUG或升级虚拟交换机软件版本时所运行网络通信业务基本不中断,满足虚拟交换机升级业务的应用需求。
第一方面,本发明实施例提供了一种业务不中断的虚拟交换机升级方法,该方法应用于物理机,所述物理机包括虚拟机、旧版本虚拟交换机、以及与所述虚拟机和所述旧版本虚拟交换机连接的代理模块,所述代理模块中保存有虚拟机信息,所述虚拟机信息包括所述虚拟机用于网络通信的信息;所述方法包括:部署所述新版本虚拟交换机;配置新版本虚拟交换机的多种属性,其中,所述多种属性中的每一种属性被配置为与所述旧版本虚拟交换机的所述每一种属性一致,所述多种属性包括端口对象、虚拟网络高级特性和流表规则;将所述代理模块与所述旧版本虚拟交换机的连接切换为所述代理模块与所述新版本虚拟交换机的连接;下发所述虚拟机信息至所述新版本虚拟交换机,以使所述虚拟机通过所述新版本虚拟交换机维持网络通信。。
在本发明实施例中,在虚拟交换机的升级更新开始前,所存在的虚拟交换机软件称下文简称为旧版本虚拟交换机,相应的,升级更新所使用的虚拟交换机软件简称称为新版本虚拟交换机。
具体实现中,虚拟交换机作为一种软件程序,可安装于物理机。比如物理机中原先安装有旧版本虚拟交换机,在需要对旧版本虚拟交换机进进行性能升级或者修复BUG时,可在所述物理机中再部署一个新版本虚拟交换机,即在所述物理机中加载或安装新版本虚拟交换机。完成部署后,对新版本虚拟交换机进行配置,使得端口对象、虚拟网络高级特性、流表规则等等属性与旧版本虚拟交换机一致,此时新版本虚拟交换机还不能开始工作。然后再通过代理模块执行后续的连接切换,建立新版本虚拟交换机的与代理模块连接,虚拟机可通过代理模块与新版本虚拟交换机进行网络通信,从而保持切换前后网络通信的稳定。
具体的,可预先获取并保存旧新版本虚拟交换机的配置内容(如端口对象、虚拟网络高级特性、流表规则等等),在部署新版本虚拟交换机后,基于所述配置内容,初始化端口对象,恢复虚拟网络高级特性,以及恢复流表规则,使得所述端口对象、所述虚拟网络高级特性、所述流表规则与旧版本虚拟交换机一致。
其中,虚拟端口为虚拟交换机中虚拟的端口,用于报文的收发,和VM中的前端网口以及物理网口等网络设备相对应。端口对象包括:物理/绑定端口(即物理端口或者绑定端口)、虚拟主机端口和虚拟机端口,所述虚拟网络高级特性包括:虚拟局域网VLAN隔离、服务质量QOS、镜像端口MIRROR等等。流表规则为保存在虚拟交换机中的转发规则,用于报文的收发处理。其中,物理/绑定端口(eth/bond)为新/旧虚拟交换机上用于和物理网卡关联的端口,或新/旧虚拟交换机上用于和绑定设备关联的端口(/表示或),具体用于新/旧虚拟交换机和外部网络通信的上行链路口;虚拟主机端口(hnic)为新/旧虚拟交换机上用于和虚拟网卡设备关联的端口,用于提供物理主机的网络通信;虚拟机端口(vhostuser)为新/旧虚拟交换机上用于和虚拟机后端网卡关联或直接用于虚拟机直接使用的socket关联的端口类型。
其中,在所述虚拟网络高级特性中,虚拟局域网(Virtual Local Area Network,VLAN)隔离为将不同的VLAN隔离的能力,所述VLAN是一种将局域网设备从逻辑上划分成一个个网段,从而实现虚拟工作组的新兴数据交换技术;服务质量(Quality of Service,QoS)指一个网络能够利用各种基础技术,为指定的网络通信提供更好的服务能力,是网络的一种安全机制,是用来解决网络延迟和阻塞等问题;镜像端口为通过在交换机或路由器上,将一个或多个源端口的数据流量转发到某一个指定端口来实现对网络的监听,指定端口称之为“镜像端口”或“目的端口”。
其中,流表规则具体为保存在新/旧虚拟交换机中的转发规则,用于报文的收发处理。当前流表恢复依赖上层管理进程中保存的流表规则信息进行恢复。
具体的,其中,所述虚拟机信息包括所述虚拟机进行网络通信的信息,用于实现网络业务操作,如进行数据包/报文转发等。例如虚拟机信息包括虚拟环vring table、内存信息meminfo和仿真器通用唯一标识QEMU UUID等等。其中,vring_table保存前后端通信时,使用的收发包vring的desc、avail、used、kickfd等信息;meminfo保存虚拟机region的信息,region包括虚拟机物理地址、内存大小、用户地址、地址偏移等;QEMU UUID表示虚拟机实例的通用唯一识别码。新版本虚拟交换机接收所述虚拟机信息后,就可以基于所述虚拟机信息接替旧版本虚拟交换机的工作,持续进行网络业务操作。
本发明实施例中的新/旧版本虚拟交换机均支持在线热替换功能。在具体实现中,可在现有开源虚拟软交换机的基础上进行功能扩展,以实现支持两个新/旧版本虚拟交换机共存不影响。支持新/旧版本虚拟交换机同名虚拟端口;共享虚拟主机网卡设备、绑定设备、物理网卡设备;支持动态使能和去使能虚拟交换机各类型端口、关键进程的能力,从而实现了新/旧版本虚拟交换机在线热替换的能力。
可以看到,由于新版本虚拟交换机的内容配置(如端口对象、虚拟网络高级特性、流表规则等)已经提前在连接切换之前完成,那么,一方面,在后端连接切换过程中,前端虚拟机与代理模块依旧保持连接状态,也就是说虚拟机不感知后端的切换;另一方面,在后端连接切换过程中,只需断开旧连接、建立新连接,所以能够快速地完成整个切换过程,切换时间甚至可以达到毫秒级,切换后虚拟机将可以通过所述代理模块与所述新版本虚拟交换机进行通信连接,从而保持了虚拟机网络通信基本不受切换的影响。所以,本发明实施例能够保证虚拟机网络业务基本不中断的情况下完成虚拟交换机的更新。
基于第一方面,在可能的实施方式中,所述将所述代理模块与所述旧版本虚拟交换机的连接切换为所述代理模块与所述新版本虚拟交换机的连接,包括:停用所述旧版本虚拟交换机的端口对象,以断开所述代理模块与所述旧版本虚拟交换机的连接;启用所述新版本虚拟交换机的端口对象,以建立所述新版本虚拟交换机和所述代理模块之间的连接。
另外,本发明实施例中,在所述停用所述旧版本虚拟交换机的端口对象之后,所述方法还包括:停止所述旧版本虚拟交换机的关键进程。在所述启用所述新版本虚拟交换机的端口对象之后,所述方法还包括:启动所述新版本虚拟交换机的关键进程;其中,所述关键进程包括转发进程、报文上送处理线程和校验线程。
也就是说,本发明实施例中,具体切换过程可包括:去使能所述旧版本虚拟交换机的端口对象和停止关键进程,断开旧版本虚拟交换机与代理模块的连接,新版本虚拟交换机和所述代理模块建立连接,然后,使能所述新版本虚拟交换机的端口对象和启动关键进程,使得虚拟机通过代理模块与新版本虚拟交换机连接以进行网络业务操作。
基于第一方面,在可能的实施方式中,虚拟交换机可采用开源的OVS+DPDK的虚拟机架构进行设计,在虚拟交换机架构和VM之间(虚拟前后端)设置有代理模块(vhostuseragent),作为QEMU和OVS交互的中间代理层,将QEMU和OVS两个关联模块独立开,在非虚拟交换机版本升级时支持数据透传,在虚拟交换机版本升级时保证VM不感知后端虚拟交换机(OVS管理模块)的变更。具体实现中,所述代理模块可以是运行在物理服务器内存上的守护进程(例如主函数和功能函数的集合)。
具体的,在所述代理模块中设置有代理客户端client和代理服务端sever。在切换之前,所述代理客户端client与所述旧版本虚拟交换机的后端网口vhostsever的连接,所述代理服务端server与所述虚拟机的前端网口vhostclient连接。在具体切换过程中,停用所述旧版本虚拟交换机的后端网口vhostsever,以断开所述代理客户端client与所述旧版本虚拟交换机的后端网口vhostsever的连接;然后,启用新版本虚拟交换机的后端网口vhostsever,以建立所述代理客户端client与所述新版本虚拟交换机的后端网口vhostsever的连接。在将所述代理模块与所述旧版本虚拟交换机的连接切换为所述代理模块与所述新版本虚拟交换机的连接的过程中,所述代理服务端server与所述虚拟机的前端网口vhostclient的连接维持不变。也就是说,在后端连接切换过程中,虚拟机前端将不感知所述后端的切换,从而保证了虚拟机的通信业务稳定不受影响。
具体的,在新版本虚拟交换机与版本旧虚拟交换机的内容配置后,旧版本虚拟交换机的vhostserver与代理client断开业务连接,代理模块感知所述断链,将所述连接切换至新版本虚拟交换机,代理client与新版本虚拟交换机的vhostserver建立业务连接,并将所述虚拟机信息下发至新版本虚拟交换机的vhostserver。所述虚拟机信息包括:vring_table、MEM、UUID等等。
完成上述流程之后,则新版本虚拟交换机完成了业务无中断升级,所述新版本虚拟交换机将接替旧版本虚拟交换机的工作,持续进行网络业务操作。也就是说,虚拟机VM继续通过所述代理模块与新版本虚拟交换机连接以进行网络业务通信。
第二方面,本发明实施例提供了又一种一种业务不中断的虚拟交换机升级方法,该方法应用于物理机,所述物理机包括虚拟机,以及与所述虚拟机连接的旧版本虚拟交换机,所述虚拟机支持主备连接,所述虚拟机与所述旧版本虚拟交换机之间的连接为主连接;所述方法包括:部署新版本虚拟交换机;配置所述新版本虚拟交换机的多种属性,以使得所述多种属性中的每一种属性与所述旧版本虚拟交换机的所述每一种属性一致,所述多种属性包括端口对象、虚拟网络高级特性和流表规则;建立备连接,所述备连接为所述虚拟机与所述新版本虚拟交换机之间的连接;通过所述备连接下发所述虚拟机所保存的虚拟机信息至所述新版本虚拟交换机;所述虚拟机信息包括所述虚拟机进行网络通信的信息;切换所述虚拟机与所述新版本虚拟交换机之间的连接为主连接,以使所述虚拟机通过所述新版本虚拟交换机维持网络通信。
具体的,可获取并保存旧新版本虚拟交换机的配置内容(如端口对象、虚拟网络高级特性、流表规则等等),在部署新版本虚拟交换机后,基于所述配置内容,初始化端口对象,恢复虚拟网络高级特性,以及恢复流表规则,使得所述端口对象、所述虚拟网络高级特性、所述流表规则与旧版本虚拟交换机一致。端口对象、虚拟网络高级特性、流表规则的详细内容可参考第一方面的描述。
具体的,其中,所述虚拟机信息包括所述虚拟机进行网络通信的信息,用于实现网络业务操作,如进行数据包/报文转发等。例如虚拟机信息包括虚拟环vring table、内存信息meminfo和仿真器通用唯一标识QEMU UUID等等,详细内容可参考第一方面的相关描述。本发明实施例中的新/旧版本虚拟交换机均支持在线热替换功能。
可以看出,本发明实施例中,虚拟机支持主备连接,在主机部署部署一个新版本虚拟交换机,部署完成之后初始化端口对象、恢复虚拟网络高级特性和流表规则,上述内容配置完成之后,新版本虚拟交换机与虚拟机建立备连接,然后启动后端连接切换。由于新版本虚拟交换机的内容配置(端口对象、虚拟网络高级特性、流表规则等)已经提前在连接切换之前完成,所以在后端连接切换过程中,只需断开原有的主连接,然后将原有的备连接设置为主连接,就能够极快速地完成切换过程,切换时间甚至可以达到毫秒级,新版本虚拟交换机接替旧版本运行网络业务操作,虚拟机将可以通过所述新版本虚拟交换机进行通信连接,从而保持了虚拟机网络通信基本不受切换的影响。
基于第二方面,在可能的实施方式中,主备切换过程包括:停用所述旧版本虚拟交换机的端口对象,停止所述旧版本虚拟交换机的关键进程;启用所述新版本虚拟交换机的端口对象,启动所述新版本虚拟交换机的关键进程;其中,所述端口对象包括物理/绑定端口、虚拟主机端口和虚拟机端口。所述关键进程包括转发进程、报文上送处理线程和校验线程。
基于第二方面,在可能的实施方式中,所述虚拟机中设置有前端网口vhostsever,所述前端网口vhostsever支持主备连接;在所述旧版本虚拟交换机中包括第一后端网口vhostclient,所述主连接为第一后端网口vhostclient与所述前端网口vhostsever的连接;
所述新版本虚拟交换机中包括第二后端网口vhostclient,所述备连接为所述新版本虚拟交换机中的第二后端网口vhostclient与所述前端网口vhostsever的连接。
本发明实施例中,所述前端网口vhostsever支持主备连接,在前端网口vhostsever中以队列或者数组的形式保存所述第一后端网口vhostclient和所述第二后端网口vhostclient的连接信息;所述前端网口vhostsever基于所述连接信息支持主备连接。具体实现中,采用QEMU设计的虚拟机支持vhostuser前后端模式(即可以作为vhostclient也可以作为vhostserver)。在QEMU开源的vhostuser前后端实现基础上,可对vhostserver功能进行扩展,以队列或者数组的形式保存多个client(vhostclient)的连接信息,基于所述连接所述多个连接实现备连接的功能,进而实现将vhostserver第二个连接作为备连接。
本发明实施例中,所述停用所述旧版本虚拟交换机的端口对象包括:停用所述第一后端网口vhostclient;所述启用所述新版本虚拟交换机的端口对象,包括:启用所述第二后端网口vhostclient。也就是说,在端口初始化和配置都准备好后,断开旧版本虚拟交换机的vhostclient与虚拟机VM的vhostserver的主连接。虚拟机VM感知断链,快速进行主备连接切换,将业务连接切换至新版本虚拟交换机,新版本虚拟交换机的第二vhostclient与虚拟机VM的vhostserver从备连接转变为主连接。
基于第二方面,在可能的实施方式中,所述通过所述备连接下发所述虚拟机所保存的虚拟机信息至所述新版本虚拟交换机,包括:通过所述前端网口vhostsever下发所述虚拟机所保存的虚拟机信息至所述第二后端网口vhostclient。
完成上述步骤之后,则新版本虚拟交换机完成了业务无中断升级,所述新版本虚拟交换机将接替旧版本虚拟交换机的工作,持续进行网络业务操作。也就是说,虚拟机VM继续通过所述代理模块与新版本虚拟交换机连接以进行网络业务通信。
第三方面,本发明实施例提供了一种设备,所述设备应用于物理机,所述物理机包括虚拟机、旧版本虚拟交换机、以及与所述虚拟机和所述旧版本虚拟交换机连接的代理模块,所述代理模块中保存有虚拟机信息,所述虚拟机信息包括所述虚拟机用于网络通信的信息;所述设备包括:部署模块、配置模块、切换模块和下发模块。其中:部署模块,用于部署所述新版本虚拟交换机;配置模块,用于配置新版本虚拟交换机的多种属性,其中,所述多种属性中的每一种属性被配置为与所述旧版本虚拟交换机的所述每一种属性一致,所述多种属性包括端口对象、虚拟网络高级特性和流表规则;切换模块,用于将所述代理模块与所述旧版本虚拟交换机的连接切换为所述代理模块与所述新版本虚拟交换机的连接;下发模块,用于下发所述虚拟机信息至所述新版本虚拟交换机,以使所述虚拟机通过所述新版本虚拟交换机维持网络通信。具体实现中,所述设备的各个模块用于实现第一方面所述的方法。
第四方面,本发明实施例提供了又一种设备,所述设备应用于物理机,所述物理机包括虚拟机,以及与所述虚拟机连接的旧版本虚拟交换机,所述虚拟机支持主备连接,所述虚拟机与所述旧版本虚拟交换机之间的连接为主连接;所述设备包括:部署模块、配置模块、切换模块和下发模块。其中:部署模块,用于部署新版本虚拟交换机;配置模块,用于配置所述新版本虚拟交换机的多种属性,以使得所述多种属性中的每一种属性与所述旧版本虚拟交换机的所述每一种属性一致,所述多种属性包括端口对象、虚拟网络高级特性和流表规则;切换模块,用于建立备连接,所述备连接为所述虚拟机与所述新版本虚拟交换机之间的连接;下发模块,用于通过所述备连接下发所述虚拟机所保存的虚拟机信息至所述新版本虚拟交换机;所述虚拟机信息包括所述虚拟机进行网络通信的信息;所述切换模块还用于,切换所述虚拟机与所述新版本虚拟交换机之间的连接为主连接,以使所述虚拟机通过所述新版本虚拟交换机维持网络通信。具体实现中,所述设备的各个模块用于实现第二方面所述的方法。
第五方面,本发明实施例提供了一种设备,包括:处理器,以及耦合至所述处理器的存储器,其中,所述处理器用于运行虚拟机、旧版本虚拟交换机、以及与所述虚拟机和所述旧版本虚拟交换机连接的代理模块,所述代理模块中保存有虚拟机信息,所述虚拟机信息包括所述虚拟机用于网络通信的信息;所述处理器具体用于实现第一方面及第一方面各种实现方式中所述的方法。
第六方面,本发明实施例提供了又一种设备,包括:处理器,以及耦合至所述处理器的存储器,其中,所述处理器用于运行虚拟机、以及与所述虚拟机连接的旧版本虚拟交换机,所述虚拟机支持主备连接,所述虚拟机与所述旧版本虚拟交换机之间的连接为主连接;所述处理器具体用于实现第二方面及第二方面各种实现方式中所述的方法。
第七方面,所述本发明实施例提供了一种计算机可读存储介质,用于存储第一方面及第一方面各种实现方式中所述的方法实现代码,或者第二方面及第二方面各种实现方式中所述的方法实现代码。
第八方面,本发明实施例提供了一种计算机软件产品,当其在计算机中运行时,可用于实现第一方面及第一方面各种实现方式中所述的方法,或者第二方面及第二方面各种实现方式中所述的方法实现代码。
可以看出,本发明实施例中,使用已修复BUG或者作为升级版本的新版本虚拟交换机部署到主机上,创建完成之后初始化虚拟端口对象、恢复功能配置和流表规则,待确认上述内容配置完成之后,再启动连接快速切换,所以切换时间可达毫秒级,切换后旧版本虚拟交换机与代理模块断链,停止工作和退出,新版本虚拟交换机与代理模块建立新连接,接替运行客户业务。实施本发明实施,能够可以在业务基本不中断、客户不感知的情况下完成虚拟交换机的版本升级或BUG修复,避免虚拟交换机版本升级或BUG修复导致原有业务中断,满足公有云场景下后台升级不中断业务的基本诉求。
附图说明
图1是本发明实施例提供的一种部署虚拟机和虚拟交换机的系统架构示意图;
图2是本发明实施例提供的一种物理机部署形态示意图;
图3是本发明实施例提供的一种虚拟交换机升级更新流程框图;
图4是本发明实施例提供的又一种物理机部署形态示意图;
图5是本发明实施例提供的又一种虚拟交换机升级更新流程框图;
图6是本发明实施例提供的一种虚拟交换机升级方法流程示意图;
图7是本发明实施例提供的又一种虚拟交换机升级方法流程示意图;
图8是本发明实施例提供的又一种虚拟交换机升级方法流程示意图;
图9是本发明实施例提供的又一种虚拟交换机升级方法流程示意图;
图10是本发明实施例提供的一种设备结构示意图;
图11是本发明实施例提供的又一种设备结构示意图。
具体实施方式
下面首先结合相关附图介绍一种在物理主机上部署虚拟机和虚拟交换机的系统架构。物理主机中包括物理网卡、运行在主机上的虚拟交换机和虚拟机VM,参见图1,物理主机1中包括物理网卡1,虚拟交换机和虚拟机VM1/VM2/VM3,VM1/VM2/VM3通过虚拟交换机进行互联互通。物理主机可通过外部的网络交换机(如局域网交换机)与物理主机2进行通信连接。对于物理主机1,虚拟交换机1除了可以进行内部的网络业务操作(如将VM1的用户态数据转发至VM2),还可以通过物理网卡进行外部的网络业务操作(如将VM1的用户态数据转发至VM4)。可以看到,虚拟交换机持续需要保持工作状态,如果需要升级虚拟交换机或者修复虚拟交换机BUG时,中断虚拟交换机的运行,就会导致网络业务中断,影响客户感知和体验,增加维护和运维成本。
本发明实施例提供了业务不中断的虚拟交换机升级方法,以期在单主机中实现修复虚拟交换机BUG或升级虚拟交换机软件版本时已运行的虚拟机通信或者数据传输基本不中断,提高BUG的修复率,不影响客户的正常业务运行,保证网络业务的持续稳定。
下面介绍本发明实施例在物理主机上的一种部署形态,所述物理主机可以是应用场景是在公有云、数据中心场景等应用场景中的物理服务器,参见图2,在具体实施例中,物理主机中的虚拟交换机软件(下文称为虚拟交换机)可采用开源的OVS+DPDK的虚拟机架构进行设计,虚拟机架构包括OVS管理模块和DPDK驱动适配层,OVS管理模块包括虚拟机后端网口、上行链路口等等,其中,OVS(OpenvSwitch)管理模块是一个虚拟交换软件,主要用于虚拟机环境,是一个高质量的、多层虚拟交换机架构,通过此OVS管理模块虚拟机之间可实现网络通信互通。DPDK为数据平面开发套件(Data Plane Development Kit,DPDK),是Intel提供的数据平面开发工具集,为用户空间高效的数据包处理提供库函数和驱动的支持。VM可采用QEMU方式进行设计,其中,QEMU(Qick Emulator)为一个开源的机器与设备模拟器(模拟处理器),其可以进行系统态模拟与用户态模拟。VM前后端使用QEMU支持的vhostuser的模式,以便端到端实现基于用户态处理的高性能虚拟交换机。
本发明实施例中,虚拟交换机(OVS管理模块)支持在线替换的能力,在虚拟交换机中,OVS软件交换模块还设置有vhostuser端口操作适配模块,所述vhostuser端口操作适配模块可用于进行vhostuser端口(包括vhostclient和vhostserver)的部署、删除命令的透传功能。另外,在虚拟交换机架构和VM之间(虚拟前后端)设置有代理模块(vhostuseragent),作为QEMU和OVS交互的中间代理层,将QEMU和OVS两个关联模块独立开,在非虚拟交换机版本升级时支持数据透传,在虚拟交换机版本升级时保证VM不感知后端虚拟交换机(OVS管理模块)的变更。具体实现中,上述VM,虚拟交换机、代理模块等为部署在物理服务器硬件上的程序代码,运行时,所述程序代码运行于物理服务器的主机内存。在实现上所述代理模块可以是运行在物理服务器内存上的守护进程(例如主函数和功能函数的集合)。
基于图2所示的部署形态,下面简述本发明实施例中虚拟交换机的升级更新过程。所述升级更新可以是进行虚拟交换机版本的更新,也可以是对虚拟交换机BUG的修复。参见图3,在本发明实施例中,在虚拟交换机的升级更新开始前,所存在的虚拟交换机软件称下文简称为旧版本虚拟交换机,相应的,升级更新所使用的虚拟交换机下文简称称为新版本虚拟交换机。VM对应的前端网口为vhostclient,VM对应的后端网口为vhostserver(vhostserver设置在旧版本虚拟交换机中)。在需要进行升级更新时,在物理服务器中部署新版本虚拟交换机,并将旧版本虚拟交换机上的所有虚拟机端口对象及虚拟网络高级特性在新版本虚拟交换机进行初始化和配置恢复。保证两个版本的虚拟交换机内容完全一致,此时新版本虚拟交换机尚未能开展工作,而旧版本虚拟交换机仍继续网络业务操作。在后端网口vhostserver初始化时,旧版本虚拟交换机中的vhostuser端口操作适配模块将操作透传给代理模块,代理模块部署有对应的代理客户端(简称代理client)和代理服务端(简称代理server),代理server连接到VM的前端网口vhostclient,代理client主动连接到旧版本虚拟交换机(OVS管理模块)的后端网口vhostserver。在新版本虚拟交换机内容配置完成之后,旧版本虚拟交换机去使能的端口,断开旧版本虚拟交换机的vhostserver与代理client的连接。然后,代理client主动切换与新版本虚拟交换机的后端网口vhostserver建立新连接,该连接的切换时间非常短,可以达到毫秒级别。切换完成之后,代理client将虚拟机信息(例如UUID/MEM)下发至新版本虚拟交换机的vhostserver,进而激活所述新版本虚拟交换机保持网络业务操作的持续运行。
需要说明的是,本发明实施例中的新/旧版本虚拟交换机均支持在线热替换功能。在具体实现中,可在现有开源虚拟软交换机的基础上进行功能扩展,以实现支持两个新/旧版本虚拟交换机共存不影响。支持新/旧版本虚拟交换机同名虚拟端口;共享虚拟主机网卡设备、绑定设备、物理网卡设备;支持动态使能和去使能虚拟交换机各类型端口、关键进程的能力,从而实现了新/旧版本虚拟交换机在线热替换的能力。
参见图4,本发明实施例在物理主机上的又一种部署形态,所述物理主机可以是应用场景是在公有云、数据中心场景等应用场景中的物理服务器,参见图4,物理主机中的虚拟交换机可采用开源的OVS+DPDK的虚拟机架构进行设计,虚拟机架构包括OVS管理模块和DPDK驱动适配层,OVS管理模块包括虚拟机后端网口、上行链路口等等,虚拟交换机(OVS管理模块)支持在线替换的能力。VM可采用QEMU方式进行设计,VM前后端使用QEMU支持的vhostuser的模式。本发明实施例中,VM(QEMU)中设置有支持主备连接的vhostserver,该vhostserver支持主备客户端接入,并可自动进行主备连接切换。具体实现中,上述VM,虚拟交换机等为部署在物理服务器硬件上的程序代码,运行时,所述程序代码运行于物理服务器的主机内存。
基于图4所示的部署形态,下面简述本发明实施例中虚拟交换机的升级更新过程。所述升级更新可以是进行虚拟交换机性能的更新,也可以是对虚拟交换机BUG的修复。参见图5,VM中的vhostserver连接旧版本虚拟交换机中的vhostclient,该连接为主连接,VM通过该主连接网络通信。在需要进行升级更新时,在物理服务器中部署新版本虚拟交换机,并将旧版本虚拟交换机上的所有虚拟机端口对象及虚拟网络高级特性在新版本虚拟交换机进行初始化和配置恢复,保证两个版本的虚拟交换机内容完全一致,此时新版本虚拟交换机尚未能开展工作,而旧版本虚拟交换机仍继续网络业务操作。在新版本虚拟交换机完成内容配置后,新版本虚拟交换机中的vhostclient主动连接VM中的vhostserver,该连接暂时作为备连接,VM中的vhostserver通过所述备连接将虚拟机信息(例如UUID/MEM)下发至新版本虚拟交换机的vhostclient。旧版本虚拟交换机断开所述主连接,VM中的vhostserver前端感知断链自动进行主备连接切换,将vhostserver与新版本虚拟交换机中的vhostclient的连接切换为主连接,进而激活所述新版本虚拟交换机保持网络业务操作的持续运行。
同样需要说明的是,本发明实施例中的新/旧版本虚拟交换机均支持在线热替换功能。具体实现过程参考上文描述,这里不再赘述。
参见图6,下面介绍本发明实施例提供的一种业务不中断的虚拟交换机升级方法,应用于物理服务器,所述物理服务器包括虚拟机和旧版本虚拟交换机,以及设置于所述虚拟机和所述旧版本虚拟交换机之间的代理模块,所述虚拟机通过所述代理模块与旧版本虚拟交换机连接以进行网络业务操作,该方法包括但不限于以下步骤:
S101、部署新版本虚拟交换机,所述新版本虚拟交换机具备在线热替换的能力。
S102、配置所述新版本虚拟交换机的端口对象、虚拟网络高级特性、流表规则与所述旧版本虚拟交换机分别一致;
具体的,在所述新版本虚拟交换机中初始化端口对象,恢复虚拟网络高级特性,以及恢复流表规则,使得所述端口对象、所述虚拟网络高级特性、所述流表规则与旧版本虚拟交换机一致。
本发明实施例中,在实现新/旧新版本虚拟交换机热替换之前,首先使新版本虚拟交换机的配置内容一致,具体的,系统可获取并保存旧新版本虚拟交换机的配置内容(如端口对象、虚拟网络高级特性、流表规则等等),在部署新版本虚拟交换机后,基于所述配置内容,初始化端口对象,恢复虚拟网络高级特性,以及恢复流表规则,使得所述端口对象、所述虚拟网络高级特性、所述流表规则与旧版本虚拟交换机一致。其中,虚拟端口为虚拟交换机中虚拟的端口,用于报文的收发,和VM中的前端网口以及物理网口等网络设备相对应。端口对象包括:物理/绑定端口、虚拟主机端口、虚拟机端口等等,所述虚拟网络高级特性包括:虚拟局域网VLAN隔离、服务质量QOS、镜像端口MIRROR等等。流表规则为保存在虚拟交换机中的转发规则,用于报文的收发处理。
需要说明的是,在可能的实施例中,需要配置新版本虚拟交换机的端口对象、虚拟网络高级特性和流表规则中的全部与所述旧版本虚拟交换机分别一致。在又一种可能的实施例中,需要配置新版本虚拟交换机的端口对象、虚拟网络高级特性和流表规则中的至少一个与所述旧版本虚拟交换机一致。
S103、将所述代理模块与所述旧版本虚拟交换机的连接切换为所述代理模块与所述新版本虚拟交换机的连接,使得所述虚拟机通过所述代理模块与所述新版本虚拟交换机进行通信连接。
旧版本虚拟交换机原先连接到代理模块,虚拟机通过所述旧版本虚拟交换机进行网络通信,即旧版本虚拟交换机能够进行数据包/报文转发等等正常网络业务操作,在需要进行升级更新时,开始对于各类型端口流量进行切换。由于流量转发和交换规则学习都是在用户态的线程中处理,所以在端口初始化和配置都准备好后,需要在旧版本虚拟交换机停止关键线程,断开旧版本虚拟交换机与代理模块的连接。代理模块感知断链,快速将业务连接切换至新版本虚拟交换机,即新版本虚拟交换机连接到代理模块。
本发明实施例中,具体切换过程可包括:去使能所述旧版本虚拟交换机的端口对象和停止关键进程,断开旧版本虚拟交换机与代理模块的连接,新版本虚拟交换机和所述代理模块建立连接,然后,使能所述新版本虚拟交换机的端口对象和启动关键进程,使得虚拟机通过代理模块与新版本虚拟交换机连接以进行网络业务操作。
可以看到,由于新版本虚拟交换机的内容配置(如端口对象、虚拟网络高级特性、流表规则等)已经提前在连接切换之前完成,那么,一方面,在后端连接切换过程中,前端虚拟机与代理模块依旧保持连接状态,也就是说虚拟机不感知后端的切换;另一方面,在后端连接切换过程中,只需断开旧连接、建立新连接,所以能够快速地完成整个切换过程,切换时间甚至可以达到毫秒级,切换后虚拟机将可以通过所述代理模块与所述新版本虚拟交换机进行通信连接,从而保持了虚拟机网络通信基本不受切换的影响。所以,本发明实施例能够保证虚拟机网络业务基本不中断的情况下完成虚拟交换机的更新。
S104、下发所述虚拟机信息至所述新版本虚拟交换机,以使所述虚拟机通过所述新版本虚拟交换机维持网络通信。
具体实施例中,代理模块预先保存有VM所发送的虚拟机信息,在切换完成后,代理模块将虚拟机信息通过所建连接下发至所述新版本虚拟交换机。其中,所述虚拟机信息包括所述虚拟机进行网络通信的信息,用于实现网络业务操作,如进行数据包/报文转发等。例如虚拟机信息包括虚拟环vring table、内存信息meminfo和仿真器通用唯一标识QEMUUUID等等。其中,vring_table保存前后端通信时,使用的收发包vring的desc、avail、used、kickfd等信息;meminfo保存虚拟机region的信息,region包括虚拟机物理地址、内存大小、用户地址、地址偏移等;QEMU UUID表示虚拟机实例的通用唯一识别码。新版本虚拟交换机接收所述虚拟机信息后,就可以基于所述虚拟机信息接替旧版本虚拟交换机的工作,持续进行网络业务操作。
需要说明的是,本发明一可能实施例中,可以在新版本虚拟交换机和所述代理模块建立连接之后,执行本步骤S104。本发明又一可能实施例中,在新版本虚拟交换机完成端口对象使能和启动关键进程之后,执行本步骤S104。
可以看出,本发明实施例中,在单主机中的虚拟机和旧版本虚拟交换机之间设置代理模块,从而将虚拟机和旧版本虚拟交换机独立开,在不需要进行虚拟交换机更新时,代理模块支持通信透传;在需要进行虚拟交换机更新(升级版本或者更新BUG)时,使用已修复BUG或者作为升级版本的新版本虚拟交换机部署到主机上,部署完成之后初始化端口对象、恢复虚拟网络高级特性和流表规则,确认上述内容配置完成之后,启动后端连接快速切换,在后端连接切换过程中,只需断开旧连接、建立新连接,所以能够快速完成整个切换过程,切换时间甚至可以达到毫秒级,且切换过程中虚拟机不感知后端的切换。切换后,虚拟机可以通过所述代理模块与所述新版本虚拟交换机进行通信连接,从而能够继续开展网络通信业务,保证了虚拟机网络通信基本不受切换的影响。也就是说,实施本发明实施,能够在业务基本不中断、客户不感知的情况下完成虚拟交换机的版本升级或BUG修复,避免虚拟交换机版本升级或BUG修复导致原有业务中断,极大缩短升级更新时间。另外,本发明实施例在升级中采用了虚拟交换机版本替换的方式,即只要部署新的虚拟交换机软件即可完成虚拟交换机的更新,升级过程不受任何BUG类型或者升级条件(如升级启动时间、新增性能、只读数据等等)的影响,实用性强,能够满足各种公有云场景下后台升级不中断业务的基本需求。
参见图7,下面详细介绍本发明实施例提供的一种业务不中断的虚拟交换机升级方法,所述方法应用于物理服务器,所述物理服务器包括虚拟机VM和旧版本虚拟交换机,以及设置于所述虚拟机和所述旧版本虚拟交换机之间的代理模块,VM可采用QEMU方式进行设计,VM前后端使用QEMU支持的vhostuser的模式。方案开始前,本实施例通过vhostuser模块已经进行操作适配,在所述代理模块设置代理server和代理client,配置虚拟机前端网口vhostclient(所述vhostclient设置于虚拟机VM),配置虚拟机后端网口vhostserver(所述vhostserver设置于旧版本虚拟交换机,下文称为第一vhostserver)。所述虚拟机的前端网口vhostclient连接代理server,所述虚拟机的后端网口vhostserver连接代理client,所述代理模块支持数据透传,也就是说,虚拟机VM通过所述代理模块与旧版本虚拟交换机连接以进行网络业务通信。本发明实施例提供虚拟交换机升级方法包括但不限于以下步骤:
S201、部署新版本虚拟交换机,所述新版本虚拟交换机具备在线热替换的能力。
本发明实施例中,部署新版本虚拟交换机包括:在所述物理服务器中安装新版本虚拟交换机软件。具体实现中,可使用已修复BUG或者作为升级版本的新版本虚拟交换机软件部署到主机上,然后使用新版本虚拟交换机软件启动一个新版本虚拟交换机实例。
具体实施例中,所述新版本虚拟交换机可采用开源的OVS+DPDK的虚拟机架构进行设计,新版本虚拟交换机同样设置后端网口vhostserver,下文称新版本虚拟交换机的vhostserver为第二vhostserver。
S202、新版本虚拟交换机初始化端口对象,使得与旧版本虚拟交换机的端口对象一致。其中虚拟端口为新/旧虚拟交换机中虚拟的端口,用于报文的收发,和VM中的前端网口以及物理网口等网络设备相对应。端口对象包括:物理/绑定端口(eth/bond)、虚拟主机端口(hnic)、虚拟机端口(vhostuser)等,其中,物理/绑定端口(eth/bond)为新/旧虚拟交换机上用于和物理网卡关联的端口,或新/旧虚拟交换机上用于和绑定设备关联的端口(/表示或),具体用于新/旧虚拟交换机和外部网络通信的上行链路口;虚拟主机端口(hnic)为新/旧虚拟交换机上用于和虚拟网卡设备关联的端口,用于提供物理主机的网络通信;虚拟机端口(vhostuser)为新/旧虚拟交换机上用于和虚拟机后端网卡关联或直接用于虚拟机直接使用的socket关联的端口类型。
S203、新版本虚拟交换机恢复虚拟网络高级特性,使得与旧版本虚拟交换机的虚拟网络高级特性一致。所述虚拟网络高级特性包括:虚拟局域网隔离、服务质量QOS、镜像端口MIRROR等等。其中,虚拟局域网(Virtual Local Area Network,VLAN)隔离为将不同的VLAN隔离的能力,所述VLAN是一种将局域网设备从逻辑上划分成一个个网段,从而实现虚拟工作组的新兴数据交换技术;服务质量(Quality of Service,QoS)指一个网络能够利用各种基础技术,为指定的网络通信提供更好的服务能力,是网络的一种安全机制,是用来解决网络延迟和阻塞等问题;镜像端口为通过在交换机或路由器上,将一个或多个源端口的数据流量转发到某一个指定端口来实现对网络的监听,指定端口称之为“镜像端口”或“目的端口”,在不严重影响源端口正常吞吐流量的情况下,可以通过镜像端口对网络的流量进行监控分析。
S204、新版本虚拟交换机恢复流表规则,使得与旧版本虚拟交换机的流表规则一致。其中,流表规则为保存在新/旧虚拟交换机中的转发规则,用于报文的收发处理。当前流表恢复依赖上层管理进程中保存的流表规则信息进行恢复。
S205、旧版本虚拟交换机去使能各类型端口,例如去使能旧版本虚拟交换机的物理/绑定端口(eth/bond)、虚拟主机端口(hnic)、虚拟机端口(vhostuser)等等,使得各端口对象停止工作。
S206、旧版本虚拟交换机停止关键线程。例如,停止旧版本虚拟交换机的转发线程、报文上送处理线程、校验线程等等。其中,转发线程为用于各个类型端口数据报文的收发传输;报文上送处理线程为用于处理无精确流匹配规则的报文学习如何转发规则的特殊线程;校验线程为用于维护精确流匹配规则老化、更新、刷新等动作的线程。
S207、将所述代理模块的业务连接从所述旧版本虚拟交换机切换至所述新版本虚拟交换机,使得所述虚拟机通过所述代理模块与所述新版本虚拟交换机连接。
需要说明的是,本步骤S207和上述步骤S205、S206没有必然的先后顺序,也就是说,在可能实施例中,步骤S207可以在步骤S206之后执行;步骤S207可以在步骤S204之后、步骤S205之前执行;步骤S207也可以在步骤S205之后、步骤S206之前执行。另外,在可能的实施例中,步骤S207也可能在步骤S202之后执行。
具体的,在新版本虚拟交换机与版本旧虚拟交换机的内容配置后,旧版本虚拟交换机的第一vhostserver与代理client断开业务连接,代理模块感知所述断链,将所述连接切换至新版本虚拟交换机,代理client与新版本虚拟交换机的第二vhostserver建立业务连接。
S208、新版本虚拟交换机接收代理模块发送的虚拟机信息。具体的,在代理模块的代理server中保存有来自于VM的虚拟机信息,在新连接建立后,代理client获取所述虚拟机信息,并将所述虚拟机信息下发至新版本虚拟交换机的第二vhostserver。所述虚拟机信息包括:vring_table、MEM、UUID等等。
S209、新版本虚拟交换机使能各类型端口,例如使能新版本虚拟交换机的物理/绑定端口(eth/bond)、虚拟主机端口(hnic)、虚拟机端口(vhostuser)等等,使得各种端口对象开始工作。
S210、新版本虚拟交换机启动关键线程。例如,启动新版本虚拟交换机的转发线程、报文上送处理线程、校验线程等等。
S211、完成上述步骤之后,则新版本虚拟交换机完成了业务无中断升级,所述新版本虚拟交换机将接替旧版本虚拟交换机的工作,持续进行网络业务操作。也就是说,虚拟机VM继续通过所述代理模块与新版本虚拟交换机连接以进行网络业务通信。
S212、旧版本虚拟交换机退出。完成上述步骤之后,确认新版本虚拟交换机业务工作正常,则旧版本虚拟交换机即可停止工作退出运行,由于部分网络资源共享,所以旧版本虚拟交换机退出时,不会对新版本虚拟交换机正常工作造成影响。
可以看出,本发明实施例中,在单主机中的虚拟机和旧版本虚拟交换机之间设置代理模块,从而将虚拟机和旧版本虚拟交换机独立开,在不需要进行虚拟交换机更新时,代理模块支持通信透传;在需要进行虚拟交换机更新(升级版本或者更新BUG)时,使用已修复BUG或者作为升级版本的新版本虚拟交换机部署到主机上,部署完成之后初始化端口对象、恢复虚拟网络高级特性和流表规则,确认上述内容配置完成之后,启动后端连接快速切换,在后端连接切换过程中,只需断开旧连接、建立新连接,所以能够快速完成整个切换过程,切换时间甚至可以达到毫秒级,且切换过程中虚拟机不感知后端的切换。切换后,虚拟机可以通过所述代理模块与所述新版本虚拟交换机进行通信连接,从而能够继续开展网络通信业务,保证了虚拟机网络通信基本不受切换的影响。也就是说,实施本发明实施,能够可以在业务基本不中断、客户不感知的情况下完成虚拟交换机的版本升级或BUG修复,避免虚拟交换机版本升级或BUG修复导致原有业务中断,极大缩短升级更新时间。另外,本发明实施例在升级中采用了虚拟交换机版本替换的方式,即只要部署新的虚拟交换机软件即可完成虚拟交换机的更新,升级过程不受任何BUG类型或者升级条件(如升级启动时间、新增性能)的影响,实用性强,能够满足各种公有云场景下后台升级不中断业务的基本需求。
参见图8,下面介绍本发明实施例提供的又一种业务不中断的虚拟交换机升级方法,应用于物理服务器,所述物理服务器包括虚拟机和旧版本虚拟交换机,所述虚拟机支持主备连接,所述虚拟机与旧版本虚拟交换机连接,以使旧版本虚拟交换机进行网络业务操作,该连接即为主连接。该方法包括但不限于以下步骤:
S301、部署新版本虚拟交换机,所述新版本虚拟交换机具备在线热替换的能力。
S302、配置所述新版本虚拟交换机的端口对象、虚拟网络高级特性、流表规则与所述旧版本虚拟交换机分别一致。
具体的,在所述新版本虚拟交换机中初始化端口对象,恢复虚拟网络高级特性,以及恢复流表规则,使得所述端口对象、所述恢复虚拟网络高级特性、所述流表规则与旧版本虚拟交换机一致。可参考图6实施例步骤S102的描述,这里不再赘述。
S303、建立备连接,所述备连接为所述虚拟机与所述新版本虚拟交换机之间的连接。
本发明实施例中,虚拟机VM具有主备连接的能力,所以新版本虚拟交换机在端口初始化和配置都准备好后,可将所述新版本虚拟交换机与所述虚拟机连接,该连接作为备连接;这时,新版本虚拟交换机还不能进行网络业务操作。
S304、将所述虚拟机所保存的虚拟机信息通过所述备连接下发至所述新版本虚拟交换机。其中,所述虚拟机信息包括所述虚拟机进行网络通信的信息,用于实现网络业务操作,如进行数据包/报文转发等等。虚拟机信息例如包括:vring_table、meminfo(简称MEM)、qemu uuid(简称UUID)等等。
S305、切换所述虚拟机与所述新版本虚拟交换机之间的连接为主连接,以使所述虚拟机通过所述新版本虚拟交换机维持网络通信。
本发明实施例中,由于流量转发和交换规则学习都是在用户态的线程中处理,所以在端口初始化和配置都准备好后,需要断开旧版本虚拟交换机与虚拟机VM的连接。虚拟机VM感知断链,快速进行主备连接切换,将业务连接切换至新版本虚拟交换机,就是说,新版本虚拟交换机与虚拟机VM从备连接转变为主连接。具体的,将所述虚拟机的业务连接进行主备连接切换的过程包括:去使能所述旧版本虚拟交换机的端口对象,停止关键进程;将新版本虚拟交换机与虚拟机VM从备连接转变为主连接;使能所述新版本虚拟交换机的端口对象、启动关键进程等等,这时,新版本虚拟交换机就可以接替旧版本虚拟交换机的工作,持续进行网络业务操作。
需要说明的是,在可能的实施例中,本步骤S305可以在步骤S303之后、步骤S304之前执行。
可以看出,本发明实施例中,虚拟机支持主备连接,在主机部署部署一个新版本虚拟交换机,部署完成之后初始化端口对象、恢复虚拟网络高级特性和流表规则,上述内容配置完成之后,新版本虚拟交换机与虚拟机建立备连接,然后启动后端连接切换。由于新版本虚拟交换机的内容配置(端口对象、虚拟网络高级特性、流表规则等)已经提前在连接切换之前完成,所以在后端连接切换过程中,只需断开原有的主连接,然后将原有的备连接设置为主连接,就能够极快速地完成切换过程,切换时间甚至可以达到毫秒级,新版本虚拟交换机接替旧版本运行网络业务操作,虚拟机将可以通过所述新版本虚拟交换机进行通信连接,从而保持了虚拟机网络通信基本不受切换的影响。也就是说,实施本发明实施,能够在业务不中断的情况下完成虚拟交换机的版本升级或BUG修复,避免虚拟交换机版本升级或BUG修复导致原有业务中断,极大缩短升级更新时间。另外,本发明实施例在升级中采用了虚拟交换机版本替换的方式,即只要部署新的虚拟交换机软件即可完成虚拟交换机的更新,升级过程不受任何BUG类型或者升级条件(如升级启动时间、新增性能)的影响,实用性强,能够满足各种公有云场景下后台升级不中断业务的基本需求。
参见图9,下面详细介绍本发明实施例提供的一种业务不中断的虚拟交换机升级方法,
所述方法应用于物理服务器,所述物理服务器包括虚拟机VM和旧版本虚拟交换机,VM可采用QEMU方式进行设计,VM前后端使用QEMU支持的vhostuser的模式。方案开始前,虚拟机可进行vhostuser操作适配,在虚拟机的前端网口中配置支持主备连接切换的vhostserver;配置虚拟机后端网口vhostclient(所述vhostclient设置于旧版本虚拟交换机,下文称为第一vhostclient)。所述第一vhostclient连接VM的vhostserver,该连接作为主连接,VM通过所述主连接进行网络业务通信。本发明实施例提供虚拟交换机升级方法包括但不限于以下步骤:
S401、部署新版本虚拟交换机,所述新版本虚拟交换机具备在线热替换的能力。
具体实现中,可使用已修复BUG或者作为升级版本的新版本虚拟交换机软件部署到主机上,然后使用新版本虚拟交换机软件启动一个新版本虚拟交换机。
具体实施例中,所述新版本虚拟交换机可采用开源的OVS+DPDK的虚拟机架构进行设计,新版本虚拟交换机同样设置后端网口vhostclient,下文称新版本虚拟交换机的vhostclient为第二vhostclient。
S402、新版本虚拟交换机初始化端口对象,使得与旧版本虚拟交换机的端口对象一致。可参考图7实施例步骤S202的描述,这里不再赘述。
S403、新版本虚拟交换机恢复虚拟网络高级特性,使得与旧版本虚拟交换机的虚拟网络高级特性一致。可参考图7实施例步骤S203的描述,这里不再赘述。
S404、新版本虚拟交换机恢复流表规则,使得与旧版本虚拟交换机的流表规则一致。可参考图7实施例步骤S204的描述,这里不再赘述。
S405、所述新版本虚拟交换机与所述虚拟机建立连接,该连接作为备连接。
具体的,在新版本虚拟交换机完成内容配置后,新版本虚拟交换机中的vhostclient连接虚拟机中的vhostserver,该连接暂时作为备连接。也就是说,新版本虚拟交换机尚未能基于所述连接进行网络业务操作。
其中,虚拟机的vhostserver具有主备连接的能力。所述前端网口vhostsever支持主备连接,包括:在前端网口vhostsever中以队列或者数组的形式保存所述第一后端网口vhostclient和所述第二后端网口vhostclient的连接信息;所述前端网口vhostsever基于所述连接信息支持主备连接。
具体实现中,采用QEMU设计的虚拟机支持vhostuser前后端模式(即可以作为vhostclient也可以作为vhostserver)。在QEMU开源的vhostuser前后端实现基础上,可对vhostserver功能进行扩展,以队列或者数组的形式保存多个client(vhostclient)的连接信息,基于所述连接所述多个连接实现备连接的功能,进而实现将vhostserver第二个连接作为备连接。
需要说明的是,在可能实施例中,步骤S207也可以在步骤402之后执行。
S406、虚拟机VM通过所述备连接向新版本虚拟交换机发送虚拟机信息。具体的,VM中的vhostserver通过所述备连接将虚拟机信息下发至新版本虚拟交换机的vhostclient。其中,所述虚拟机信息为用于实现网络业务操作(如进行数据包转发)的信息,虚拟机信息例如包括:vring_table、meminfo(简称MEM)、qemu uuid(简称UUID)等等。
S407、旧版本虚拟交换机去使能各类型端口,可参考参考图7实施例步骤S205的描述,这里不再赘述。
S408、将所述虚拟机的业务连接进行主备连接切换,使所述备连接转变为主连接。
具体的,在端口初始化和配置都准备好后,断开旧版本虚拟交换机的第一vhostclient与虚拟机VM的vhostserver的主连接。虚拟机VM感知断链,快速进行主备连接切换,将业务连接切换至新版本虚拟交换机,就是说,新版本虚拟交换机的第二vhostclient与虚拟机VM的vhostserver从备连接转变为主连接。
本发明实施例中,虚拟机的vhostserver具有主备连接的能力。具体实现中,采用QEMU设计的虚拟机支持vhostuser前后端模式。在QEMU开源的vhostuser前后端实现基础上,对vhostserver功能进行扩展,将vhostserver第二个连接作为备连接。备连接能够主动将虚拟机信息写入对应vhostclient端,但是此时备连接尚未能进行业务工作。当主连接断开时,QEMU能够自动进行主备切换,使所述备连接被快速设置为主连接,切换后虚拟机可与所述新版本虚拟交换机进行网络通信,从而保证虚拟机网络通信业务不中断。
需要说明的是,在可能的实施例中,本步骤S408还可以在后续步骤S409之后、后续步骤S410之前执行。
S409、旧版本虚拟交换机停止关键线程。可参考参考图7实施例步骤S206的描述,这里不再赘述。
S410、新版本虚拟交换机使能各类型端口。可参考参考图7实施例步骤S209的描述,这里不再赘述。
S411、新版本虚拟交换机启动关键线程。可参考参考图7实施例步骤S210的描述,这里不再赘述。
S412、完成上述步骤之后,则新版本虚拟交换机完成了业务无中断升级,所述新版本虚拟交换机将接替旧版本虚拟交换机的工作,持续进行网络业务操作。也就是说,虚拟机VM继续通过所述代理模块与新版本虚拟交换机连接以进行网络业务通信。
S413、完成上述步骤之后,确认新版本虚拟交换机业务工作正常,则旧版本虚拟交换机即可停止工作退出运行,由于部分网络资源共享,所以旧版本虚拟交换机退出时,不会对新版本虚拟交换机正常工作造成影响。
可以看出,本发明实施例中,虚拟机支持主备连接,在主机部署部署一个新版本虚拟交换机,部署完成之后初始化端口对象、恢复虚拟网络高级特性和流表规则。然后,新版本虚拟交换机与虚拟机建立备连接,然后启动后端连接切换。由于新版本虚拟交换机的内容配置(端口对象、虚拟网络高级特性、流表规则等)已经提前在连接切换之前完成,所以在后端连接切换过程中,只需断开原有的主连接,然后将原有的备连接设置为主连接,就能够极快速地完成切换过程,切换时间甚至可以达到毫秒级,新版本虚拟交换机接替旧版本运行网络业务操作,虚拟机将可以通过所述新版本虚拟交换机进行通信连接,从而保持了虚拟机网络通信基本不受切换的影响。也就是说,实施本发明实施,能够在业务不中断的情况下完成虚拟交换机的版本升级或BUG修复,避免虚拟交换机版本升级或BUG修复导致原有业务中断,极大缩短升级更新时间。另外,本发明实施例在升级中采用了虚拟交换机版本替换的方式,即只要部署新的虚拟交换机软件即可完成虚拟交换机的更新,升级过程不受任何BUG类型或者升级条件(如升级启动时间、新增性能)的影响,实用性强,能够满足各种公有云场景下后台升级不中断业务的基本需求。
上文描述了本发明实施例提供相关方法,下面基于相同的发明构思,继续描述本发明实施例提供的相关的设备。
基于相同的发明构思,本发明实施例提供了又一种设备500,如图10所示,图10为一种设备500的硬件结构示意图。其中,该设备500可包括处理器501、存储器502、和总线503。其中,处理器501、存储器502通过总线503连接。具体实现中,所述设备500可以是物理机(物理服务器)。其中:
处理器501可以采用通用的中央处理器(Central Processing Unit,CPU),微处理器,应用专用集成电路(Application Specific Integrated Circuit,ASIC),或者一个或多个集成电路,用于执行相关程序(如虚拟机软件、虚拟交换机软件等),以实现本发明实施例所提供的技术方案。
存储器502可包括非易失性存储器、内存、高速缓存cache等。存储器502可以是只读存储器(Read Only Memory,ROM),静态存储设备,动态存储设备或者随机存取存储器(Random Access Memory,RAM)。存储器502可以存储操作系统、应用程序、虚拟机文件、虚拟交换机文件等。在通过软件或者固件来实现本发明实施例提供的技术方案时,用于实现本发明实施例提供的技术方案的程序代码保存在存储器502中,并由处理器501来执行。
总线503可包括一通路,在设备各个部件(例如,存储器502和处理器501)之间传送信息。
应注意,尽管图10所示的硬件仅仅示出了处理器501、存储器502和总线503,但是在具体实现过程中,本领域的技术人员应当明白,该设备终端还可包含实现正常运行所必须的其他器件。同时,根据具体需要,本领域的技术人员应当明白,还可包含实现其他功能的硬件器件。
在本发明实施例一种实现方案中,所述处理器501中运行有虚拟机、旧版本虚拟交换机实例、以及与所述虚拟机和所述旧版本虚拟交换机连接的代理模块,所述代理模块中保存有虚拟机信息,所述虚拟机信息包括所述虚拟机进行网络通信的信息;所述处理器501可用于进一步调用存储器502的程序代码,执行以下步骤:
部署新版本虚拟交换机实例;
配置新版本虚拟交换机的多种属性,其中,所述多种属性中的每一种属性被配置为与所述旧版本虚拟交换机的所述每一种属性一致,所述多种属性包括端口对象、虚拟网络高级特性和流表规则;
将所述代理模块与所述旧版本虚拟交换机实例的连接切换为所述代理模块与所述新版本虚拟交换机实例的连接;
下发所述虚拟机信息至所述新版本虚拟交换机实例,以使所述虚拟机通过所述新版本虚拟交换机实例维持网络通信。
本发明具体实施例中,所述将所述代理模块与所述旧版本虚拟交换机实例的连接切换为所述代理模块与所述新版本虚拟交换机实例的连接,包括:停用所述旧版本虚拟交换机实例的端口对象,停止所述旧版本虚拟交换机实例的关键进程;建立所述新版本虚拟交换机实例和所述代理模块之间的连接;启用所述新版本虚拟交换机实例的端口对象,启动所述新版本虚拟交换机实例的关键进程;
其中,所述端口对象包括物理/绑定端口、虚拟主机端口和虚拟机端口;所述关键进程包括转发进程、报文上送处理线程和校验线程;所述虚拟网络高级特性包括虚拟局域网VLAN隔离、服务质量QOS和镜像端口MIRROR。
本发明具体实施例中,在所述代理模块中设置有代理服务端server和代理客户端client,所述代理服务端server与所述虚拟机的前端网口vhostclient连接,所述代理客户端client与所述旧版本虚拟交换机实例的后端网口vhostsever连接;
所述将所述代理模块与所述旧版本虚拟交换机实例的连接切换为所述代理模块与所述新版本虚拟交换机实例的连接,还包括:将所述代理客户端client与所述旧版本虚拟交换机实例的后端网口vhostsever的连接切换为所述代理客户端client与所述新版本虚拟交换机实例的后端网口vhostsever的连接;所述代理服务端server与所述虚拟机的前端网口vhostclient的连接维持不变。
本发明具体实施例中,所述虚拟机信息包括虚拟环vring table、内存信息meminfo和仿真器通用唯一标识QEMU UUID。
需要说明的是,处理器501执行的步骤以及处理器501涉及的其他技术特征还可以参照图6或图7所示的方法实施例的相应描述,这里不再赘述。
在本发明实施例又一种实现方案中,所述处理器501中运行有虚拟机和旧版本虚拟交换机实例,所述虚拟机支持主备连接,所述虚拟机与旧版本虚拟交换机实例之间的连接为主连接;所述处理器501可用于进一步调用存储器502的程序代码,执行以下步骤:
部署新版本虚拟交换机实例;
配置新版本虚拟交换机的多种属性,其中,所述多种属性中的每一种属性被配置为与所述旧版本虚拟交换机的所述每一种属性一致,所述多种属性包括端口对象、虚拟网络高级特性和流表规则;
建立备连接,所述备连接为所述虚拟机与所述新版本虚拟交换机之间的连接;
通过所述备连接下发所述虚拟机所保存的虚拟机信息至所述新版本虚拟交换机;所述虚拟机信息包括所述虚拟机进行网络通信的信息;
切换所述虚拟机与所述新版本虚拟交换机之间的连接为主连接,以使所述虚拟机通过所述新版本虚拟交换机实例维持网络通信。
本发明具体实施例中,所述虚拟机支持主备连接,所述虚拟机与旧版本虚拟交换机实例之间的连接为主连接,包括:在所述虚拟机中设置有前端网口vhostsever,所述前端网口vhostsever支持主备连接;在所述旧版本虚拟交换机实例中设置有第一后端网口vhostclient,所述第一后端网口vhostclient连接所述前端网口vhostsever,该连接作为主连接;
所述建立备连接,所述备连接为所述虚拟机与所述新版本虚拟交换机之间的连接,包括:
在所述新版本虚拟交换机实例中设置有第二后端网口vhostclient,建立所述第二后端网口vhostclient与所述前端网口vhostsever的连接,该连接作为备连接。
本发明具体实施例中,所述通过所述备连接下发所述虚拟机所保存的虚拟机信息至所述新版本虚拟交换机,包括:通过所述前端网口vhostsever下发所述虚拟机所保存的虚拟机信息至所述第二后端网口vhostclient。
本发明具体实施例中,所述切换所述虚拟机与所述新版本虚拟交换机之间的连接为主连接,包括:停用所述旧版本虚拟交换机实例的端口对象,停止所述旧版本虚拟交换机实例的关键进程;设置所述虚拟机与所述新版本虚拟交换机之间的连接为主连接;启用所述新版本虚拟交换机实例的端口对象,启动所述新版本虚拟交换机实例的关键进程;
本发明实施例中,所述前端网口vhostsever支持主备连接,包括:在前端网口vhostsever中以队列或者数组的形式保存所述第一后端网口vhostclient和所述第二后端网口vhostclient的连接信息;所述前端网口vhostsever基于所述连接信息支持主备连接。
其中,所述端口对象包括物理/绑定端口、虚拟主机端口和虚拟机端口;所述关键进程包括转发进程、报文上送处理线程和校验线程;所述虚拟网络高级特性包括虚拟局域网VLAN隔离、服务质量QOS和镜像端口MIRROR。
本发明具体实施例中,所述虚拟机信息包括虚拟环vring table、内存信息meminfo和仿真器通用唯一标识QEMU UUID。
需要说明的是,处理器501执行的步骤以及处理器501涉及的其他技术特征还可以参照图8或图9所示的方法实施例的相应描述,这里不再赘述。
参见图11,基于同一发明构思,本发明实施例提供了一种设备600。设备600具体包括:部署模块601,配置模块602,切换模块603,下发模块604。
在本发明实施例一种实现方案中,设备600可应用于物理机,所述物理机包括虚拟机、旧版本虚拟交换机实例、以及与所述虚拟机和所述旧版本虚拟交换机连接的代理模块,所述代理模块中保存有虚拟机信息,所述虚拟机信息包括所述虚拟机进行网络通信的信息;设备600所涉及各个功能模块描述如下:
部署模块601,用于部署新版本虚拟交换机实例;
配置模块602,用于配置所述新版本虚拟交换机的多种属性,以使得所述多种属性中的每一种属性与所述旧版本虚拟交换机的所述每一种属性一致,所述多种属性包括端口对象、虚拟网络高级特性和流表规则;
切换模块603,用于将所述代理模块与所述旧版本虚拟交换机实例的连接切换为所述代理模块与所述新版本虚拟交换机实例的连接;
下发模块604,用于下发所述虚拟机信息至所述新版本虚拟交换机实例,以使所述虚拟机通过所述新版本虚拟交换机实例维持网络通信。
需要说明的是,上述设备600所涉及各个功能模块的具体实现方式可以参照图6或图7所示的方法实施例的相应描述,这里不再赘述。
在本发明实施例又一种实现方案中,设备600可应用于物理机,所述物理机包括虚拟机和旧版本虚拟交换机实例,所述虚拟机支持主备连接,所述虚拟机与旧版本虚拟交换机实例之间的连接为主连接;设备600所涉及各个功能模块描述如下:
部署模块601,用于部署新版本虚拟交换机实例;
配置模块602,用于配置所述新版本虚拟交换机的多种属性,以使得所述多种属性中的每一种属性与所述旧版本虚拟交换机的所述每一种属性一致,所述多种属性包括端口对象、虚拟网络高级特性和流表规则;
切换模块603,用于建立备连接,所述备连接为所述虚拟机与所述新版本虚拟交换机之间的连接;
下发模块604,用于通过所述备连接下发所述虚拟机所保存的虚拟机信息至所述新版本虚拟交换机;所述虚拟机信息包括所述虚拟机进行网络通信的信息;
切换模块603,还用于切换所述虚拟机与所述新版本虚拟交换机之间的连接为主连接,以使所述虚拟机通过所述新版本虚拟交换机实例维持网络通信。
需要说明的是,上述设备600所涉及各个功能模块的具体实现方式可以参照图8或图9所示的方法实施例的相应描述,这里不再赘述。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者任意组合来实现。当使用软件实现时,可以全部或者部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令,在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络或其他可编程装置。所述计算机指令可存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网络站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、微波等)方式向另一个网络站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质,也可以是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如软盘、硬盘、磁带等)、光介质(例如DVD等)、或者半导体介质(例如固态硬盘)等等。
在上述实施例中,对各个实施例的描述各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述(例如,各个实施例中新/旧版本虚拟交换机实例均支持在线热替换功能的描述可参考图3实施例相关描述等等)。。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (24)
1.一种业务不中断的虚拟交换机升级方法,其特征在于,应用于物理机,所述物理机包括虚拟机、旧版本虚拟交换机、以及与所述虚拟机和所述旧版本虚拟交换机连接的代理模块,所述代理模块中保存有虚拟机信息,所述虚拟机信息包括所述虚拟机用于网络通信的信息;所述方法包括:
部署新版本虚拟交换机;
配置所述新版本虚拟交换机的多种属性,其中,所述多种属性中的每一种属性被配置为与所述旧版本虚拟交换机的所述每一种属性一致,所述多种属性包括端口对象、虚拟网络高级特性和流表规则;
将所述代理模块与所述旧版本虚拟交换机的连接切换为所述代理模块与所述新版本虚拟交换机的连接;包括:停用所述旧版本虚拟交换机的端口对象,以断开所述代理模块与所述旧版本虚拟交换机的连接;启用所述新版本虚拟交换机的端口对象,以建立所述新版本虚拟交换机和所述代理模块之间的连接;
下发所述虚拟机信息至所述新版本虚拟交换机,以使所述虚拟机通过所述新版本虚拟交换机维持网络通信。
2.根据权利要求1所述的方法,其特征在于,
在所述停用所述旧版本虚拟交换机的端口对象之后,所述方法还包括:停止所述旧版本虚拟交换机的关键进程;
在所述启用所述新版本虚拟交换机的端口对象之后,所述方法还包括:启动所述新版本虚拟交换机的关键进程;
其中,所述关键进程包括转发进程、报文上送处理线程和校验线程。
3.根据权利要求2所述的方法,其特征在于,在所述代理模块中设置有代理客户端client;
所述停用所述旧版本虚拟交换机的端口对象,以断开所述代理模块与所述旧版本虚拟交换机的连接,包括:停用所述旧版本虚拟交换机的后端网口vhostsever,以断开所述代理客户端client与所述旧版本虚拟交换机的后端网口vhostsever的连接;
所述启用所述新版本虚拟交换机的端口对象,以建立所述新版本虚拟交换机和所述代理模块之间的连接,包括:启用新版本虚拟交换机的后端网口vhostsever,以建立所述代理客户端client与所述新版本虚拟交换机的后端网口vhostsever的连接。
4.根据权利要求3所述的方法,其特征在于,在所述代理模块中还设置有代理服务端server;所述代理服务端server与所述虚拟机的前端网口vhostclient连接,在将所述代理模块与所述旧版本虚拟交换机的连接切换为所述代理模块与所述新版本虚拟交换机的连接的过程中,所述代理服务端server与所述虚拟机的前端网口vhostclient的连接维持不变。
5.根据权利要求1至4任一项所述的方法,其特征在于,其中,所述端口对象包括物理或绑定端口、虚拟主机端口和虚拟机端口;所述虚拟网络高级特性包括虚拟局域网VLAN隔离、服务质量QOS和镜像端口MIRROR;所述流表规则为用于进行报文转发的规则。
6.一种业务不中断的虚拟交换机升级方法,其特征在于,应用于物理机,所述物理机包括虚拟机,以及与所述虚拟机连接的旧版本虚拟交换机,所述虚拟机支持主备连接,所述虚拟机与所述旧版本虚拟交换机之间的连接为主连接;所述方法包括:
部署新版本虚拟交换机;
配置所述新版本虚拟交换机的多种属性,以使得所述多种属性中的每一种属性与所述旧版本虚拟交换机的所述每一种属性一致,所述多种属性包括端口对象、虚拟网络高级特性和流表规则;
建立备连接,所述备连接为所述虚拟机与所述新版本虚拟交换机之间的连接;
通过所述备连接下发所述虚拟机所保存的虚拟机信息至所述新版本虚拟交换机;所述虚拟机信息包括所述虚拟机进行网络通信的信息;
切换所述虚拟机与所述新版本虚拟交换机之间的连接为主连接,包括:停用所述旧版本虚拟交换机的端口对象,以及启用所述新版本虚拟交换机的端口对象;其中,所述端口对象包括物理/绑定端口、虚拟主机端口和虚拟机端口;以使所述虚拟机通过所述新版本虚拟交换机维持网络通信。
7.根据权利要求6所述的方法,其特征在于,
在所述停用所述旧版本虚拟交换机的端口对象之后,还包括:停止所述旧版本虚拟交换机的关键进程;
在所述启用所述新版本虚拟交换机的端口对象之后,还包括:启动所述新版本虚拟交换机的关键进程;
所述关键进程包括转发进程、报文上送处理线程和校验线程。
8.根据权利要求7所述的方法,其特征在于,
所述虚拟机中设置有前端网口vhostsever,所述前端网口vhostsever支持主备连接;在所述旧版本虚拟交换机中包括第一后端网口vhostclient,所述主连接为第一后端网口vhostclient与所述前端网口vhostsever的连接;
所述新版本虚拟交换机中包括第二后端网口vhostclient,所述备连接为所述新版本虚拟交换机中的第二后端网口vhostclient与所述前端网口vhostsever的连接。
9.根据权利要求8所述的方法,其特征在于,
所述停用所述旧版本虚拟交换机的端口对象包括:停用所述第一后端网口vhostclient;
所述启用所述新版本虚拟交换机的端口对象,包括:启用所述第二后端网口vhostclient。
10.根据权利要求8或9所述的方法,其特征在于,所述通过所述备连接下发所述虚拟机所保存的虚拟机信息至所述新版本虚拟交换机,包括:
通过所述前端网口vhostsever下发所述虚拟机所保存的虚拟机信息至所述第二后端网口vhostclient。
11.根据权利要求8或9所述的方法,其特征在于,
所述前端网口vhostsever支持主备连接,包括:在前端网口vhostsever中以队列或者数组的形式保存所述第一后端网口vhostclient和所述第二后端网口vhostclient的连接信息;所述前端网口vhostsever基于所述连接信息支持主备连接。
12.一种设备,其特征在于,所述设备应用于物理机,所述物理机包括虚拟机、旧版本虚拟交换机、以及与所述虚拟机和所述旧版本虚拟交换机连接的代理模块,所述代理模块中保存有虚拟机信息,所述虚拟机信息包括所述虚拟机用于网络通信的信息;所述设备包括:
部署模块,用于部署新版本虚拟交换机;
配置模块,用于配置所述新版本虚拟交换机的多种属性,其中,所述多种属性中的每一种属性被配置为与所述旧版本虚拟交换机的所述每一种属性一致,所述多种属性包括端口对象、虚拟网络高级特性和流表规则;
切换模块,用于将所述代理模块与所述旧版本虚拟交换机的连接切换为所述代理模块与所述新版本虚拟交换机的连接;包括:所述切换模块用于停用所述旧版本虚拟交换机的端口对象,以断开所述代理模块与所述旧版本虚拟交换机的连接;启用所述新版本虚拟交换机的端口对象,以建立所述新版本虚拟交换机和所述代理模块之间的连接;
下发模块,用于下发所述虚拟机信息至所述新版本虚拟交换机,以使所述虚拟机通过所述新版本虚拟交换机维持网络通信。
13.根据权利要求12所述的设备,其特征在于,
所述切换模块还用于,在所述停用所述旧版本虚拟交换机的端口对象之后,停止所述旧版本虚拟交换机的关键进程;
所述切换模块用于,在所述启用所述新版本虚拟交换机的端口对象之后,启动所述新版本虚拟交换机的关键进程;
其中,所述关键进程包括转发进程、报文上送处理线程和校验线程。
14.根据权利要求13所述的设备,其特征在于,在所述代理模块中设置有代理客户端client;
所述切换模块用于停用所述旧版本虚拟交换机的端口对象,以断开所述代理模块与所述旧版本虚拟交换机的连接,包括:所述切换模块用于停用所述旧版本虚拟交换机的后端网口vhostsever,以断开所述代理客户端client与所述旧版本虚拟交换机的后端网口vhostsever的连接;
所述切换模块用于所述启用所述新版本虚拟交换机的端口对象,以建立所述新版本虚拟交换机和所述代理模块之间的连接,包括:所述切换模块用于启用新版本虚拟交换机的后端网口vhostsever,以建立所述代理客户端client与所述新版本虚拟交换机的后端网口vhostsever的连接。
15.根据权利要求14所述的设备,其特征在于,在所述代理模块中还设置有代理服务端server;所述代理服务端server与所述虚拟机的前端网口vhostclient连接,在将所述代理模块与所述旧版本虚拟交换机的连接切换为所述代理模块与所述新版本虚拟交换机的连接的过程中,所述代理服务端server与所述虚拟机的前端网口vhostclient的连接维持不变。
16.根据权利要求12至15任一项所述的设备,其特征在于,其中,所述端口对象包括物理或绑定端口、虚拟主机端口和虚拟机端口;所述虚拟网络高级特性包括虚拟局域网VLAN隔离、服务质量QOS和镜像端口MIRROR;所述流表规则为用于进行报文转发的规则。
17.一种设备,其特征在于,所述设备应用于物理机,所述物理机包括虚拟机,以及与所述虚拟机连接的旧版本虚拟交换机,所述虚拟机支持主备连接,所述虚拟机与所述旧版本虚拟交换机之间的连接为主连接;所述设备包括:
部署模块,用于部署新版本虚拟交换机;
配置模块,用于配置所述新版本虚拟交换机的多种属性,以使得所述多种属性中的每一种属性与所述旧版本虚拟交换机的所述每一种属性一致,所述多种属性包括端口对象、虚拟网络高级特性和流表规则;
切换模块,用于建立备连接,所述备连接为所述虚拟机与所述新版本虚拟交换机之间的连接;
下发模块,用于通过所述备连接下发所述虚拟机所保存的虚拟机信息至所述新版本虚拟交换机;所述虚拟机信息包括所述虚拟机进行网络通信的信息;
所述切换模块还用于,切换所述虚拟机与所述新版本虚拟交换机之间的连接为主连接,包括:所述切换模块用于停用所述旧版本虚拟交换机的端口对象,以及启用所述新版本虚拟交换机的端口对象;其中,所述端口对象包括物理/绑定端口、虚拟主机端口和虚拟机端口;以使所述虚拟机通过所述新版本虚拟交换机维持网络通信。
18.根据权利要求17所述的设备,其特征在于,
所述切换模块还用于,在停用所述旧版本虚拟交换机的端口对象之后,停止所述旧版本虚拟交换机的关键进程;
所述切换模块还用于,在所述启用所述新版本虚拟交换机的端口对象之后,启动所述新版本虚拟交换机的关键进程;
所述关键进程包括转发进程、报文上送处理线程和校验线程。
19.根据权利要求18所述的设备,其特征在于,
所述虚拟机中设置有前端网口vhostsever,所述前端网口vhostsever支持主备连接;在所述旧版本虚拟交换机中包括第一后端网口vhostclient,所述主连接为第一后端网口vhostclient与所述前端网口vhostsever的连接;
所述新版本虚拟交换机中包括第二后端网口vhostclient,所述备连接为所述新版本虚拟交换机中的第二后端网口vhostclient与所述前端网口vhostsever的连接。
20.根据权利要求19所述的设备,其特征在于,
所述切换模块用于停用所述旧版本虚拟交换机的端口对象包括:所述切换模块用于停用所述第一后端网口vhostclient;
所述切换模块用于所述启用所述新版本虚拟交换机的端口对象,包括:所述切换模块用于启用所述第二后端网口vhostclient。
21.根据权利要求19或20所述的设备,其特征在于,所述下发模块用于通过所述备连接下发所述虚拟机所保存的虚拟机信息至所述新版本虚拟交换机,包括:
所述下发模块用于通过所述前端网口vhostsever下发所述虚拟机所保存的虚拟机信息至所述第二后端网口vhostclient。
22.根据权利要求19或20所述的设备,其特征在于,在前端网口vhostsever中以队列或者数组的形式保存所述第一后端网口vhostclient和所述第二后端网口vhostclient的连接信息,所述前端网口vhostsever基于所述连接信息支持主备连接。
23.一种设备,其特征在于,包括:处理器,以及耦合至所述处理器的存储器,其中, 所述处理器用于运行虚拟机、旧版本虚拟交换机、以及与所述虚拟机和所述旧版本虚拟交换机连接的代理模块,所述代理模块中保存有虚拟机信息,所述虚拟机信息包括所述虚拟机用于网络通信的信息;所述处理器还用于执行如权利要求1到权利要求5任一项所述的方法。
24.一种设备,其特征在于,包括:处理器,以及耦合至所述处理器的存储器,其中, 所述处理器用于运行虚拟机、以及与所述虚拟机连接的旧版本虚拟交换机,所述虚拟机支持主备连接,所述虚拟机与所述旧版本虚拟交换机之间的连接为主连接;所述处理器还用于执行如权利要求6到权利要求11任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210315241.XA CN114826913A (zh) | 2017-11-30 | 2017-11-30 | 业务不中断的虚拟交换机升级方法以及相关设备 |
CN201711247439.4A CN109861839B (zh) | 2017-11-30 | 2017-11-30 | 业务不中断的虚拟交换机升级方法以及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711247439.4A CN109861839B (zh) | 2017-11-30 | 2017-11-30 | 业务不中断的虚拟交换机升级方法以及相关设备 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210315241.XA Division CN114826913A (zh) | 2017-11-30 | 2017-11-30 | 业务不中断的虚拟交换机升级方法以及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109861839A CN109861839A (zh) | 2019-06-07 |
CN109861839B true CN109861839B (zh) | 2022-04-05 |
Family
ID=66889478
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210315241.XA Pending CN114826913A (zh) | 2017-11-30 | 2017-11-30 | 业务不中断的虚拟交换机升级方法以及相关设备 |
CN201711247439.4A Active CN109861839B (zh) | 2017-11-30 | 2017-11-30 | 业务不中断的虚拟交换机升级方法以及相关设备 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210315241.XA Pending CN114826913A (zh) | 2017-11-30 | 2017-11-30 | 业务不中断的虚拟交换机升级方法以及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN114826913A (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108023756B (zh) * | 2016-10-28 | 2021-09-28 | 阿里巴巴集团控股有限公司 | 一种虚拟交换机的升级方法和装置 |
CN113285873B (zh) * | 2021-05-18 | 2022-03-11 | 广州锦行网络科技有限公司 | 支持虚拟化构建真实路由的虚实混合的网络系统 |
CN113660123B (zh) * | 2021-08-16 | 2024-02-13 | 杭州网易数之帆科技有限公司 | 虚拟交换机升级方法、装置、电子设备以及存储介质 |
CN116319310A (zh) * | 2021-12-07 | 2023-06-23 | 中兴通讯股份有限公司 | 一种虚拟交换机升级方法、设备、电子设备和存储介质 |
CN114710408A (zh) * | 2022-03-18 | 2022-07-05 | 阿里云计算有限公司 | 实现虚拟交换机热升级的方法及装置 |
CN114745255B (zh) * | 2022-04-12 | 2023-11-10 | 深圳星云智联科技有限公司 | 硬件芯片、dpu、服务器、通信方法及相关装置 |
CN115118654B (zh) * | 2022-06-17 | 2023-08-18 | 北京百度网讯科技有限公司 | 虚拟网络下的数据转发方法、系统、装置及程序产品 |
CN116233038A (zh) * | 2022-12-29 | 2023-06-06 | 天翼云科技有限公司 | 一种虚拟交换机热升级的方法和装置 |
CN116257271B (zh) * | 2023-02-02 | 2023-11-28 | 北京秒如科技有限公司 | 一种支持运行时动态更新的应用架构方法 |
CN116455746A (zh) * | 2023-04-06 | 2023-07-18 | 中科驭数(北京)科技有限公司 | 一种dpu中虚拟交换机的带流量升级方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102394831A (zh) * | 2011-11-28 | 2012-03-28 | 杭州华三通信技术有限公司 | 基于虚拟机vm迁移的流量不中断方法和装置 |
CN103812823A (zh) * | 2012-11-07 | 2014-05-21 | 华为技术有限公司 | 虚拟机热迁移时配置信息迁移的方法、设备及系统 |
CN104917630A (zh) * | 2015-04-15 | 2015-09-16 | 深圳市深信服电子科技有限公司 | 对虚拟网络进行恢复的方法和系统 |
CN106254279A (zh) * | 2016-07-19 | 2016-12-21 | 广州市品高软件股份有限公司 | 一种基于sdn的虚拟网元设备的自动迁移系统及管理方法 |
CN106909439A (zh) * | 2017-02-27 | 2017-06-30 | 郑州云海信息技术有限公司 | 一种虚拟机的迁移控制方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106293846B (zh) * | 2016-08-16 | 2019-08-13 | 腾讯科技(深圳)有限公司 | 模拟处理器的升级方法及装置 |
CN106470121B (zh) * | 2016-08-30 | 2019-09-20 | 锐捷网络股份有限公司 | 虚拟交换单元vsu系统的升级方法、装置及vsu系统 |
-
2017
- 2017-11-30 CN CN202210315241.XA patent/CN114826913A/zh active Pending
- 2017-11-30 CN CN201711247439.4A patent/CN109861839B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102394831A (zh) * | 2011-11-28 | 2012-03-28 | 杭州华三通信技术有限公司 | 基于虚拟机vm迁移的流量不中断方法和装置 |
CN103812823A (zh) * | 2012-11-07 | 2014-05-21 | 华为技术有限公司 | 虚拟机热迁移时配置信息迁移的方法、设备及系统 |
CN104917630A (zh) * | 2015-04-15 | 2015-09-16 | 深圳市深信服电子科技有限公司 | 对虚拟网络进行恢复的方法和系统 |
CN106254279A (zh) * | 2016-07-19 | 2016-12-21 | 广州市品高软件股份有限公司 | 一种基于sdn的虚拟网元设备的自动迁移系统及管理方法 |
CN106909439A (zh) * | 2017-02-27 | 2017-06-30 | 郑州云海信息技术有限公司 | 一种虚拟机的迁移控制方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN114826913A (zh) | 2022-07-29 |
CN109861839A (zh) | 2019-06-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109861839B (zh) | 业务不中断的虚拟交换机升级方法以及相关设备 | |
US11200079B2 (en) | System and method for virtual machine live migration | |
CN114946166B (zh) | 在包括云边缘位置的异构计算环境中的动态资源移动的方法和系统 | |
EP3353651B1 (en) | In-service upgrade of kernel loadable modules | |
US9021459B1 (en) | High availability in-service software upgrade using virtual machine instances in dual control units of a network device | |
US10033584B2 (en) | Automatically reconfiguring physical switches to be in synchronization with changes made to associated virtual system | |
US9031081B2 (en) | Method and system for switching in a virtualized platform | |
CN107544841B (zh) | 虚拟机热迁移方法和系统 | |
US9928107B1 (en) | Fast IP migration in a hybrid network environment | |
JP5817308B2 (ja) | サーバ、サーバシステムおよびサーバの冗長切り替え方法 | |
CN113452830B (zh) | 安卓云手机的批量控制方法、计算机可读介质及电子设备 | |
JP6432955B2 (ja) | 仮想ネットワーク機能インスタンスをマイグレーションさせるための方法、装置およびシステム | |
CN110633127A (zh) | 一种数据处理方法及相关设备 | |
CN112311646B (zh) | 基于超融合系统的混合云及部署方法 | |
US11860776B2 (en) | Concurrent memory recycling for collection of servers | |
CN110968392A (zh) | 一种升级虚拟化模拟器的方法和装置 | |
US20120072907A1 (en) | Proxy tool for guest machine relocation | |
CN114710408A (zh) | 实现虚拟交换机热升级的方法及装置 | |
CN104917800A (zh) | 建立用于虚拟机的冗余连接的方法及装置 | |
EP3439249B1 (en) | Network system, management method and device for same, and server | |
CN115599494A (zh) | 虚拟机迁移方法以及装置、升级方法和服务器 | |
CN112491570A (zh) | 一种虚拟网卡链路状态设置方法、装置及存储介质 | |
CN112130958B (zh) | 一种基于ovs的虚拟机热迁移方法和系统 | |
WO2014071637A1 (zh) | 一种对虚拟机进行网络配置的方法和设备 | |
JP2020198007A (ja) | 情報処理装置、情報処理システムおよび情報処理プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |