CN110166355B - 一种报文转发方法及装置 - Google Patents
一种报文转发方法及装置 Download PDFInfo
- Publication number
- CN110166355B CN110166355B CN201810150716.8A CN201810150716A CN110166355B CN 110166355 B CN110166355 B CN 110166355B CN 201810150716 A CN201810150716 A CN 201810150716A CN 110166355 B CN110166355 B CN 110166355B
- Authority
- CN
- China
- Prior art keywords
- forwarding
- forwarding plane
- plane
- module
- forwarding module
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 88
- 238000004590 computer program Methods 0.000 claims description 8
- 238000004891 communication Methods 0.000 abstract description 8
- 230000006870 function Effects 0.000 description 20
- 230000008569 process Effects 0.000 description 18
- 238000013461 design Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 230000009286 beneficial effect Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 239000000835 fiber Substances 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/22—Alternate routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/28—Routing or path finding of packets in data switching networks using route fault recovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/302—Route determination based on requested QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/56—Routing software
- H04L45/563—Software download or update
-
- 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 Transfer Between Computers (AREA)
Abstract
本申请实施例公开了一种报文转发方法及装置,涉及通信技术领域。能够提高虚拟交换机转发数据报文的可靠性,并降低业务软件实现的复杂度。该方法可以包括:第一转发面接收以及转发数据报文;在满足预设条件的情况下,第二转发面开始接收以及转发数据报文,第一转发面停止接收以及转发报文。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种报文转发方法及装置。
背景技术
虚拟交换机(Virtual Switch,vswitch)作为软件交换机运行在每台服务器上,连接本服务器上所有虚拟机,如图1所示,服务器包括vswitch、至少一个虚拟机以及物理端口。vswitch通过端口1连接虚拟机1,通过端口2连接虚拟机2,通过端口3连接虚拟机3;端口4连接物理端口,物理端口是服务器与外部网络通信的端口。vswitch为虚拟机之间、虚拟机与外部网络之间的业务提供基本的二三层转发。当vswitch软件进行升级或vswitch发生故障时,会停止数据转发,导致虚拟机无法通信,引起业务中断。
当vswitch软件进行升级或vswitch发生故障时,为了保证虚拟机内的业务不受影响,现有技术中一种解决方法为,在vswitch软件升级前,主动将服务器上的所有虚拟机进行迁移。如图2所示,当服务器1的vswitch软件升级前,将服务器1上的虚拟机1、虚拟机2和虚拟机3分别迁移至服务器2上,服务器2上的vswitch接替服务器1上vswitch的工作,为虚拟机1、虚拟机2和虚拟机3之间、虚拟机与外部网络之间的业务进行报文转发。这种方法的缺点是,在升级vswitch时,需要人为触发虚拟机迁移,并且需要准备一定数量的备份服务器主机;另外,这种方法无法解决vswitch突发故障导致的网络中断。
现有技术中另一种解决方法为,将每个业务部署在不同服务器的虚拟机内,由各个业务实现业务层面的主备冗余。如图2所示,服务器1上虚拟机1、虚拟机2和虚拟机3为主用虚拟机,服务器2上虚拟机1、虚拟机2和虚拟机3为备用虚拟机,每个业务均实现服务器1和服务器2上两个虚拟机的实时主备冗余。如果服务器1上vswitch发生故障或者需要升级,服务器2上的虚拟机可以快速备升主,不影响业务。这种方法的缺点是,每个业务或应用都实现主备,导致业务的开发、部署复杂;主备业务之间需要实现数据同步或备份,系统开销较大。
发明内容
本申请实施例提供一种报文转发方法及装置,能够提高vswitch转发数据报文的可靠性,降低vswitch故障或软件升级对虚拟机业务的影响,并降低业务软件实现的复杂度。
为达到上述目的,本申请的实施例采用如下技术方案:
第一方面,本申请提供了一种报文转发方法和装置。
在一种可能的设计中,本申请提供了一种报文转发方法,该方法应用于服务器,服务器包括vswitch,vswitch包括第一转发面和第二转发面。该方法可以包括:第一转发面接收以及转发数据报文;在满足预设条件的情况下,第二转发面开始接收以及转发数据报文,第一转发面停止接收以及转发报文。基于该技术方案,在服务器运行过程中,第一转发面作为主用转发面接收以及转发数据报文,在满足预设条件的情况下,第一转发面停止接收以及转发报文,第二转发面由备用转发面切换为主用转发面,开始接收以及转发数据报文。如此一来,有助于实现以下有益效果:能够提高vswitch转发数据报文的可靠性,降低vswitch故障或软件升级对虚拟机业务的影响。并且,在服务器运行过程中,业务软件不需要实时备份,降低了业务软件实现的复杂度。
相应的,本申请还提供了一种报文转发装置,该装置可以实现第一方面所述的报文转发方法。例如,该装置可以是服务器,其可以通过软件、硬件、或者通过硬件执行相应的软件实现上述方法。
在一种可能的设计中,该装置可以包括处理器和存储器。该处理器被配置为支持该装置执行上述第一方面方法中相应的功能。存储器用于与处理器耦合,其保存该装置必要的程序指令和数据。另外该装置还可以包括通信接口,用于支持该装置与其他网元之间的通信。该通信接口可以是收发器。
在一种可能的设计中,该装置可以包括:第一转发模块和第二转发模块。第一转发模块,用于接收以及转发数据报文;第二转发模块,用于在满足预设条件的情况下,开始接收以及转发数据报文;第一转发模块,还用于在满足预设条件的情况下,停止接收以及转发报文。该技术方案的有益效果可参考上述第一方面提供的方法,此处不再赘述。
基于上文提供的任一种技术方案,在一种可能的设计中,预设条件包括第一转发面故障,或者第二转发面升级完成。在第一转发面故障或者vswitch软件升级的情况下,都可以触发第二转发面由备用转发面切换为主用转发面,开始接收和转发数据报文。当然,具体实现时,第二转发面由备用转发面切换为主用转发面的条件不限于此。
在第一转发面故障的情况下,第一转发面停止接收以及转发报文;第二转发面确定第一转发面故障,则开始接收以及转发数据报文。
在第二转发面升级完成的情况下,第二转发面确定第二转发面升级完成,则开始接收以及转发数据报文;第一转发面确定第二转发面升级完成,则停止接收以及转发报文。
基于上文提供的任一种技术方案,在一种可能的实现方式中,第二转发面确定第一转发面故障的方法包括:第二转发面在预设时间内未接收到第一转发面发送的心跳消息,则确定第一转发面故障。
基于上文提供的任一种技术方案,在一种可能的实现方式中,第二转发面确定第二转发面升级完成的方法包括:第二转发面确定第二转发面的运行状态更新为正常,则确定第二转发面升级完成。
基于上文提供的任一种技术方案,在一种可能的实现方式中,第一转发面确定第二转发面升级完成的方法包括:
方式一:vswitch还包括控制面,第一转发面接收到控制面发送的第二升级指令,则确定第二转发面升级完成;其中,第二升级指令用于指示第一转发面进行软件升级。
方式二:第一转发面接收到第二转发面发送的第一升级完成指示信息,则确定第二转发面升级完成;其中,第一升级完成指示信息用于指示第二转发面升级完成。
基于上文提供的任一种技术方案,在一种可能的设计中,第一转发面和第二转发面的业务配置相同,且第一转发面和第二转发面的转发表项相同。在该技术方案中,主用转发面和备用转发面的业务配置相同,且主用转发面和备用转发面的转发表项相同。在主用转发面不可用的情况下,备用转发面可以快速的切换为主用转发面,使vswitch的数据报文转发功能不间断,虚拟机业务不被中断。
本申请还提供了一种计算机存储介质,其上储存有计算机程序指令,当该程序指令在计算机上运行时,使得计算机执行上述任一方面所述的方法。
本申请还提供了一种计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一方面所述的方法。
上述提供的任一种计算机存储介质或计算机程序产品或芯片系统均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文提供的对应的方法中对应方案的有益效果,此处不再赘述。
附图说明
图1为现有技术中的一种服务器结构示意图;
图2为现有技术中的一种报文转发方法示意图;
图3为本申请实施例提供的技术方案所适用的一种服务器的结构示意图;
图4为本申请实施例提供的一种报文转发方法的流程示意图一;
图5为本申请实施例提供的一种报文转发方法的流程示意图二;
图6为本申请实施例提供的一种报文转发方法的流程示意图三;
图7为本申请实施例提供的一种报文转发装置的结构示意图一;
图8为本申请实施例提供的一种报文转发装置的结构示意图二。
具体实施方式
下面结合附图对本申请实施例提供的报文转发方法和装置进行详细描述。
本文中的术语“多个”是指两个或两个以上。本文中的术语“第一”和“第二”是用于区别不同的对象,而不是用于描述对象的特定顺序。例如,第一转发面和第二转发面仅是用于区别不同的转发面,并不对其先后顺序进行限定。本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
本申请实施例提供的技术方案可以应用于图3所示的服务器,服务器可以包括一个或者多个处理器。例如,处理器可以是X86处理器、高级精简指令集计算机(AdvancedRISC(Reduced Instruction-Set Computer)Machines,ARM)处理器或者其他类型的处理器。该服务器可以通过输入/输出端口(input/output,I/O)总线和接口连接到外部设备。总线可以包括通用串行总线(Universal Serial Bus,USB)、PCI Express、InfiniBand、光纤通道(Fiber Channel,FC)以及其他I/O总线。外部接口包括串行高级技术附件(SerialAdvanced Technology Attachment,SATA)、串行连接小型计算机系统接口(SerialAttached Small Computer System Interface,SAS)、串口以及其他外部接口。该总线连接到一个或者多个网卡设备。每个网卡设备包括一个或者多个网络端口。网卡设备把服务器耦合到以太网络中,使服务器参与到网络报文的处理系统中。网卡设备可以使用交换芯片(Switch)或者其他专用集成电路(Application SpecificIntegrated Circuit,ASIC)、通用中央处理器、嵌入式处理器、网络处理器(Network Processor,NP)、数字信号处理器(Digital Signal Processor,DSP)、现场可编程门阵列(Field Programmable GateArray,FPGA)、其他处理计算单元以及它们的任意组合实现。该服务器可以通过SAS、SATA或者其他接口连接到零个、一个或者多个存储设备。该服务器也可以通过InfiniBand、FC或者其他总线技术以及以太网光纤通道(Fiber Channel over Ethernet,FCoE)、小型计算机系统接口(Internet Small Computer System Interface,Internet,iSCSI)或者其他融合技术连接到零个、一个或者多个远程逻辑存储设备。存储设备保存了服务器运行所需要的操作系统、应用程序以及数据。该服务器还可以包括输出设备和输入设备。输出设备和处理器通信,可以以多种方式来显示信息。例如,输出设备可以是液晶显示器(liquid crystaldisplay,LCD),发光二级管(light emitting diode,LED)显示设备,阴极射线管(cathoderay tube,CRT)显示设备,或投影仪(projector)等。输入设备和处理器通信,可以以多种方式接收用户的输入。例如,输入设备可以是鼠标、键盘、触摸屏设备或传感设备等。该服务器还可以通过InfiniBand、FC或者其他总线技术以及FCoE、iSCSI或者其他融合技术连接其他I/O设备或者加速设备。本申请的服务器可以是一台通用服务器,或者是一个专用设备,也可以是任何其他能够提供计算和处理能力的计算设备,本申请实施例不作具体限定。
其中,处理器上运行至少一个虚拟机和虚拟交换机。虚拟机是服务器根据业务需求运行的一个或者多个虚拟机实例。每个服务器可以包括多个虚拟机实例,每个虚拟机实例提供至少一种业务,每个虚拟机实例包含一张或者多张虚拟网卡,运行了所需的虚拟网络功能以及虚拟网卡驱动、缓冲管理模块。虚拟交换机负责实现虚拟机与虚拟机之间、虚拟机与网络之间的报文交换功能。在一些实现中,虚拟交换机通过纯软件实现的虚拟端口连接到虚拟机的虚拟网卡,例如测试接入端口(Test Access Port,TAP)、Virtio网络接口以及其他软件虚拟端口。在另一些实现中,虚拟交换机能够把报文交换功能卸载到网卡的嵌入式交换机上,只处理必要的控制面功能和/或流首包转发。在一些实现中,虚拟交换机运行于非软件定义网络(Software Defined Network,SDN)环境中,只实现诸如网桥、路由等传统功能;在另一些实现中,虚拟交换机运行于SDN环境中,转发规则通过集中式的网络控制器安装到这类虚拟交换机中。在一些实现中,虚拟交换机由虚拟机管理程序实现;在另一些实现中,虚拟交换机由第三方提供实现。
虚拟交换机包括控制面、至少两个转发面和多个虚拟端口,其中,虚拟交换机通过多个虚拟端口分别连接各个虚拟机,至少一个虚拟端口连接网卡设备,实现虚拟机间以及虚拟机和外部网络间的通信连接;控制面用于对虚拟交换机中的各个实例进行控制和管理,例如,为转发面下发业务配置,配置转发表项,进行数据同步等;转发面用于接收和转发各个虚拟机的数据报文。应注意,图3所示的服务器仅用于示例,本领域的技术人员应当明白,在具体实现过程中,服务器还可以包括其他单元,虚拟交换机中还可以包括其他实例。
如图3所示,虚拟交换机包括转发面1和转发面2;本申请实施例提供的虚拟交换机中转发面1和转发面2为主备关系,在虚拟交换机正常运行的过程中,一个转发面作为主用转发面,另一个转发面作为备用转发面,例如转发面1为主用转发面,转发面2为备用转发面。主用转发面从虚拟交换机的各个虚拟端口接收并转发数据报文,备用转发面不从虚拟交换机的各个虚拟端口接收和转发数据报文。
控制面保证主用转发面和备用转发面的业务配置一致,以及主用转发面和备用转发面的转发表项一致。业务配置参数可以包括QoS(Quality of Service,服务质量)参数,安全组参数,Interface配置等信息;转发表项为指导数据报文处理及流向的信息,比如,转发表项可以包括MAC(Media Access Control,介质访问控制)表、ARP(Address ResolutionProtocol,地址解析协议)表、路由表或openflow流表。在虚拟交换机初始化完成后,控制面向主用转发面和备用转发面下发相同的业务配置信息,并向主用转发面和备用转发面下发相同的转发表项,在虚拟交换机运行过程中,如果业务配置信息或者转发表项发生变化,控制面同时更新主用转发面和备用转发面。
本申请实施例提供一种报文转发方法,应用于图3所示的服务器,如图4所示,该方法可以包括S101-S103:
S101、第一转发面接收以及转发数据报文。
第一转发面接收以及转发数据报文;第二转发面不转发数据报文;第一转发面为主用转发面;第二转发面为备用转发面。
在一种实现方式中,第一转发面和第二转发面分别维护一个身份字段,用于标记转发面是主用转发面或者备用转发面。示例性的,第一转发面为图3中的转发面1,第二转发面为图3中的转发面2。转发面1为主用转发面;转发面2为备用转发面。转发面1的身份字段为主用,转发面2的身份字段为备用。转发面1从vswitch的虚拟端口接收以及转发数据报文。
示例性的,转发面1从虚拟端口1接收虚拟机1发送的数据报文,并转发数据报文至虚拟端口4,将数据报文发送至外部网络。
转发面2与转发面1的业务配置相同,转发面2与转发面1的转发表项也相同。转发面2不从任一端口接收数据报文。
S102、第二转发面开始接收以及转发数据报文。
在满足预设条件的情况下,第一转发面和第二转发面进行主备切换;第二转发面开始接收以及转发数据报文;第二转发面切换为主用转发面。
示例性的,在满足预设条件的情况下,转发面2切换为主用转发面,身份字段更新为主用;转发面2开始从vswitch的虚拟端口接收以及转发数据报文。示例性的,转发面2从端口1接收虚拟机1发送的数据报文,并转发数据报文至虚拟端口4,将数据报文发送至外部网络。
可选的,预设条件可以包括第一转发面故障和第二转发面升级完成;在第一转发面故障或第二转发面升级完成的情况下,第一转发面和第二转发面进行主备切换。当然,预设条件还可以包括其他预设条件,比如,服务器接收用户下发的主备切换命令;本申请实施例对此不进行限定。
S103、第一转发面停止接收以及转发数据报文。
在满足预设条件的情况下,第一转发面和第二转发面进行主备切换;第一转发面切换为备用转发面,第一转发面停止接收以及转发数据报文。示例性的,在满足预设条件的情况下,转发面1切换为备用转发面,身份字段更新为备用。
可选的,本实施例中的步骤S102和步骤S103之间没有必然的执行先后顺序,可以是先执行步骤S102,再执行步骤S103;也可以是先执行步骤S103,再执行步骤S102;还可以是同时执行步骤S102和S103,本实施例对此不作具体限定。在一些预设条件下,比如,第一转发面故障,第一转发面先停止接收以及转发数据报文,第二转发面由备用转发面切换为主用转发面,然后开始接收以及转发数据报文;在另一些预设条件下,比如,第二转发面升级完成,第二转发面先由备用转发面切换为主用转发面,开始接收以及转发数据报文,同时第一转发面停止接收以及转发数据报文;这样,根据实际情况确定第一转发面先停止接收以及转发数据报文,或者第二转发面先开始接收以及转发数据报文,可以使得vswitch运行过程中,减小第一转发面和第二转发面都无法接收以及转发数据报文的几率,提高vswitch稳定性。
需要说明的是,在第二转发面由备用转发面切换为主用转发面之后,在满足预设条件的情况下,第一转发面和第二转发面可以再次进行主备切换,第二转发面由主用转发面切换为备用转发面,第一转发面由备用转发面切换为主用转发面。比如,第二转发面接收以及转发数据报文;第二转发面故障,则第一转发面由备用转发面切换为主用转发面,开始接收以及转发数据报文。第一转发面和第二转发面在满足预设条件的情况下,可以多次进行主备切换。
进一步的,第一转发面和第二转发面每次主备切换后,控制面可以重新向第一转发面和第二转发面下发相同的业务配置信息,并向第一转发面和第二转发面下发相同的转发表项,以使得第一转发面和第二转发面都使用最新的业务配置信息和转发表项。
本申请实施例提供的报文转发方法,在主用转发面故障或者vswitch软件升级的情况下,备用转发面切换为主用转发面,负责接收以及转发报文;相比现有技术中,在vswitch软件升级前主动迁移虚拟机或者在服务器运行过程中实时备份虚拟机业务的方法,本申请实施例提供的报文转发方法,能够在vswitch的数据报文转发功能不中断的情况下,降低业务软件实现的复杂度,并提高vswitch的可靠性,降低vswitch故障或软件升级对虚拟机业务的影响。
其中,上述步骤S101至S103中的第一转发面或第二转发面的动作可以由图3所示的服务器中的处理器调用存储设备中存储的应用程序代码来执行,本实施例对此不作任何限制。
下面,实施例一以第一转发面故障的情况为例进行说明,实施例二以第二转发面升级完成的情况为例进行说明。
实施例一
实施例一提供的报文转发方法可以应用于图3所示的服务器,第一转发面为转发面1,第二转发面为转发面2。如图5所示,本实施例提供的报文转发方法,可以包括S201-S204:
S201、第一转发面接收以及转发数据报文。
第一转发面为主用转发面,接收以及转发数据报文,身份字段为主用。
S202、第一转发面故障。
第一转发面故障,停止接收以及转发报文。
S203、第二转发面确定第一转发面故障。
在一种实现方式中,第二转发面根据第一转发面发送的心跳消息判断第一转发面是否故障。
在vswitch正常运行过程中,第一转发面和第二转发面以预设的时间周期互相发送心跳消息,比如,每隔1s,第一转发面和第二转发面分别向对方发送一条心跳消息;心跳消息中包括身份信息,身份信息用于指示消息发送方为主用转发面或者备用转发面。第一转发面或第二转发面根据本地维护的身份字段,确定其发送的心跳消息中身份信息,若本地维护的身份字段为主用,则心跳消息中身份信息为主用。
若第二转发面在预设时间内未接收到第一转发面发送的心跳消息,则确定第一转发面故障。预设时间可以根据发送心跳消息的预设时间周期设定,比如,发送心跳消息的预设时间周期为10ms,则设置预设时间为30ms;本申请实施例对此不进行限定。
S204、第二转发面开始接收以及转发数据报文。
在第二转发面确定第一转发面故障之后,第二转发面切换为主用转发面,接收以及转发数据报文,并将维护的身份字段更新为主用。
本申请实施例提供的报文转发方法,在主用转发面故障的情况下,备用转发面切换为主用转发面,负责接收以及转发报文;相比现有技术中,在服务器运行过程中实时备份虚拟机业务或者无法在突发故障前迁移虚拟机的方法,本申请实施例提供的报文转发方法,能够在主用转发面故障后,及时执行转发面的主备切换,使vswitch的数据报文转发功能不中断;提高了vswitch的可靠性,同时降低业务软件实现的复杂度。
实施例二
实施例二提供的报文转发方法可以应用于图3所示的服务器,第一转发面为转发面1,第二转发面为转发面2。在服务器运行过程中,可以通过图3中的输入设备接收用户的升级命令,由处理器对vswitch的软件版本进行升级。其中,第二转发面为备用转发面,没有转发数据报文,先将vswitch的控制面和第二转发面进行升级;第二转发面升级完成后切换为主用转发面;第一转发面切换为备用转发面,再对第一转发面进行升级。这样,vswitch的软件版本升级过程不会中断数据报文转发,对虚拟机的业务没有影响。如图6所示,本实施例提供的报文转发方法,可以包括S301-S305:
S301、第一转发面接收以及转发数据报文。
第一转发面为主用转发面,接收以及转发数据报文,身份字段为主用。
S302、第二转发面确定第二转发面升级完成。
示例性的,图3中运行在处理器上的vswitch通过输入设备接收到用户下发的升级命令,升级命令用于指示对vswitch进行软件升级,其中包括软件版本号。
在一种实现方式中,vswitch的控制面接收到升级命令后,按照升级命令中的软件版本号升级控制面,并向第二转发面发送第一升级指令;第一升级指令用于指示第二转发面进行软件升级,其中包括软件版本号。第二转发面接收到第一升级指令,将第二转发面的运行状态更新为升级,并根据第一升级指令中的软件版本号进行软件升级。第二转发面升级完成,将运行状态更新为正常,则确定第二转发面升级完成。
S303、第二转发面开始接收以及转发数据报文。
在第二转发面确定第二转发面升级完成之后,由备用转发面切换为主用转发面,开始接收以及转发数据报文,并将维护的身份字段更新为主用。
S304、第一转发面确定第二转发面升级完成。
第一转发面确定第二转发面升级完成可以包括以下几种方式。当然,第一转发面确定第二转发面升级完成还可以包括其他实现方式,本申请实施例对此不进行限定。
方式一:
第二转发面升级完成后,向控制面发送第一升级完成指令,第一升级完成指令用于指示第二转发面升级完成;控制面接收到第二转发面发送的第一升级完成指令,判断控制面软件升级是否完成,若确定控制面软件升级完成,则向第一转发面发送第二升级指令,第二升级指令用于指示第一转发面进行软件升级,其中包括软件版本号。第一转发面接收到控制面发送的第二升级指令,则确定第二转发面升级完成。
方式二:
第二转发面升级完成后,向控制面发送第一升级完成指令,并向第一转发面发送第一升级完成指示信息,其中,所述第一升级完成指示信息用于指示所述第二转发面升级完成;第一转发面接收到第二转发面发送的第一升级完成指示信息,则确定第二转发面升级完成。
S305、第一转发面停止接收以及转发数据报文。
第一转发面若确定第二转发面升级完成,则由主用转发面切换为备用转发面,停止接收以及转发数据报文,并将维护的身份字段更新为备用。
进一步的,第一转发面根据第二升级指令中的软件版本号进行软件升级。
在一种实现方式中,对应S304中方式一,第一转发面接收到控制面发送的第二升级指令,将运行状态更新为升级,并根据第二升级指令中的软件版本号进行软件升级。第一转发面升级完成,将运行状态更新为正常。第一转发面向控制面发送第二升级完成指令,第二升级完成指令用于指示第一转发面升级完成;控制面接收到第一转发面发送的第二升级完成指令后,通过图3中输出设备向用户返回升级完成命令。在这种实现方式中,控制面和第二转发面软件升级完成后,第二转发面已经开始接收以及转发数据报文;控制面再通知第一转发面软件升级,第一转发面收到升级指令后,停止接收以及转发数据报文,并进行软件升级。由控制面统一控制软件升级流程,保证控制面、第一转发面和第二转发面进行软件升级的先后顺序。
在一种实现方式中,对应S304中方式二,控制面接收到第二转发面发送的第一升级完成指令,判断控制面软件升级是否完成,若确定控制面升级完成,则向第一转发面发送第二升级指令,第二升级指令用于指示第一转发面进行软件升级,其中包括软件版本号。第一转发面接收到控制面发送的第二升级指令,将运行状态更新为升级,并根据第二升级指令中的软件版本号进行软件升级。第一转发面升级完成,将运行状态更新为正常。第一转发面向控制面发送第二升级完成指令,第二升级完成指令用于指示第一转发面升级完成;控制面接收到第一转发面发送的第二升级完成指令后,通过图3中输出设备向用户返回升级完成命令。在这种实现方式中,第二转发面升级完成后,一方面通知控制面本转发面升级完成,一方面通知第一转发面本转发面升级完成;控制面可以在确定控制面和第二转发面都升级完成后,再通知第一转发面开始软件升级过程;第一转发面在收到第二转发面的第一升级完成指示信息后,确定第二转发面升级完成,则可以停止接收以及转发数据报文,避免第一转发面和第二转发面都接收以及转发数据报文;第一转发面在收到控制面的第二升级指令后,开始进行软件升级。既可以避免第一转发面和第二转发面都接收以及转发数据报文,又可以保证控制面和第二转发面软件升级过程都完成后,第一转发面再开始进行软件升级。
本申请实施例提供的报文转发方法,在vswitch软件升级的情况下,先升级控制面和备用转发面,备用转发面升级完成后,切换为主用转发面,负责接收以及转发报文,再升级原主用转发面;相比现有技术中,在vswitch软件升级前主动迁移虚拟机或者在服务器运行过程中实时备份虚拟机业务的方法,本申请实施例提供的报文转发方法,能够在vswitch软件升级过程中不中断数据报文转发功能,提高vswitch可靠性,同时降低业务软件实现的复杂度。
上述主要从服务器的角度对本申请实施例提供的方案进行了介绍。可以理解的是,服务器为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对服务器进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。下面以采用对应各个功能划分各个功能模块为例进行说明。
本申请实施例还提供一种报文转发装置,图7是本申请实施例提供的报文转发装置700的逻辑结构示意图。如图7所示,报文转发装置700包括第一转发模块701和第二转发模块702。第一转发模块701可以用于执行图4中的S101和S103,还可以用于执行图5中的S201和S202,还可以用于执行图6中的S301、S304和S305,和/或执行本申请中描述的其他步骤。第二转发模块702可以用于执行图4中的S102,还可以用于执行图5中的S203和S204,还可以用于执行图6中的S302和S303,和/或执行本申请中描述的其他步骤。
其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
在本实施例中,该装置700以采用集成的方式划分各个功能模块的形式来呈现。这里的“模块”可以指特定ASIC,电路,执行一个或多个软件或固件程序的处理器和存储设备,集成逻辑电路,和/或其他可以提供上述功能的器件。
在一个简单的实施例中,本领域的技术人员可以想到装置700可以采用图3所示的形式。
比如,图3中的处理器可以通过调用存储设备中存储的计算机执行指令,使得装置700执行上述方法实施例中的报文转发方法。
具体的,图7中的第一转发模块701和第二转发模块702的功能/实现过程可以通过图3中的处理器调用存储设备中存储的计算机执行指令来实现。
可选的,当该装置700是芯片或电路时,存储设备可以为芯片或电路内的存储单元,如寄存器、缓存等。当然,当该装置700是服务器时,存储设备可以是服务器内的位于芯片外部的存储单元,本申请实施例对此不作具体限定。
由于本申请实施例提供的装置可用于执行上述报文转发方法,因此其所能获得的技术效果可参考上述方法实施例,在此不再赘述。
本申请实施例还提供一种报文转发装置,该装置可以是服务器,也可以是其它计算机设备。图8示出了一种报文转发装置结构示意图,如图8所示,报文转发装置800包括处理器801、存储器802、I/O(输入/输出,Input/Output)接口803和总线804。处理器801、存储器802和I/O接口803通过总线804彼此通信连接。
在本申请的一个实施例中,处理器801可以用于执行,例如,图4所示方法中的S101-S103,图5所示方法中的S201-S204,图6所示方法中的S301-S305。处理器801可以是专门设计用于执行上述步骤和/或操作的处理器,也可以是通过读取并执行存储器802中存储的指令来执行上述步骤和/或操作的处理器,处理器801在执行上述步骤和/或操作的过程中可能需要用到存储器802中存储的数据。
应注意,在具体实现过程中,报文转发装置800还可以包括其他硬件器件,本文不再一一列举。
其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
本领域普通技术人员可知,上述方法中的全部或部分步骤可以通过程序指令相关的硬件完成,该程序可以存储于一计算机可读存储介质中,该计算机可读存储介质如ROM、RAM和光盘等。
本申请实施例还提供一种存储介质,该存储介质可以包括存储器802。
可选的,本申请实施例还提供了一种芯片系统,该芯片系统包括处理器,用于支持服务器实现上述报文转发方法。在一种可能的设计中,该芯片系统还包括存储器。该存储器,用于保存服务器必要的程序指令和数据。当然,存储器也可以不在芯片系统中。该芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件,本申请实施例对此不作具体限定。
上述提供的任一种装置中相关内容的解释及有益效果均可参考上文提供的对应的方法实施例,此处不再赘述。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式来实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可以用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
尽管在此结合各实施例对本申请进行了描述,然而,在实施所要求保护的本申请过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其他变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其他单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
尽管结合具体特征及其实施例对本申请进行了描述,显而易见的,在不脱离本申请的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本申请的示例性说明,且视为已覆盖本申请范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (13)
1.一种报文转发方法,应用于服务器,其特征在于,所述服务器包括虚拟交换机vswitch,所述vswitch包括第一转发面和第二转发面;所述方法包括:
所述第一转发面接收以及转发数据报文;
在满足预设条件的情况下,所述第二转发面开始接收以及转发数据报文,所述第一转发面停止接收以及转发报文;
所述第一转发面和所述第二转发面的业务配置相同,且所述第一转发面和所述第二转发面的转发表项相同;
所述预设条件包括所述第一转发面故障,或者所述第二转发面升级完成。
2.根据权利要求1所述的方法,其特征在于,在所述预设条件包括所述第一转发面故障的情况下,所述第二转发面开始接收以及转发数据报文,所述第一转发面停止接收以及转发报文,具体包括:
所述第一转发面故障,所述第一转发面停止接收以及转发报文;
所述第二转发面确定所述第一转发面故障,所述第二转发面开始接收以及转发数据报文。
3.根据权利要求2所述的方法,其特征在于,所述第二转发面确定所述第一转发面故障包括:
所述第二转发面在预设时间内未接收到所述第一转发面发送的心跳消息,则确定所述第一转发面故障。
4.根据权利要求1所述的方法,其特征在于,在所述预设条件包括所述第二转发面升级完成的情况下,所述第二转发面开始接收以及转发数据报文,所述第一转发面停止接收以及转发报文,具体包括:
所述第二转发面确定所述第二转发面升级完成,所述第二转发面开始接收以及转发数据报文;
所述第一转发面确定所述第二转发面升级完成,所述第一转发面停止接收以及转发报文。
5.根据权利要求4所述的方法,其特征在于,所述第二转发面确定所述第二转发面升级完成包括:
所述第二转发面确定所述第二转发面的运行状态更新为正常,则确定所述第二转发面升级完成。
6.根据权利要求4所述的方法,其特征在于,所述第一转发面确定所述第二转发面升级完成包括:
所述vswitch还包括控制面,所述第一转发面接收到所述控制面发送的第二升级指令,则确定所述第二转发面升级完成;其中,所述第二升级指令用于指示所述第一转发面进行软件升级;
或,所述第一转发面接收到所述第二转发面发送的第一升级完成指示信息,则确定所述第二转发面升级完成;其中,所述第一升级完成指示信息用于指示所述第二转发面升级完成。
7.一种报文转发装置,其特征在于,包括:
第一转发模块,用于接收以及转发数据报文;
第二转发模块,用于在满足预设条件的情况下,开始接收以及转发数据报文;
所述第一转发模块,还用于在满足预设条件的情况下,停止接收以及转发报文;
所述第一转发模块和所述第二转发模块的业务配置相同,且所述第一转发模块和所述第二转发模块的转发表项相同;
所述预设条件包括所述第一转发模块故障,或者所述第二转发模块升级完成。
8.根据权利要求7所述的装置,其特征在于,在所述预设条件包括所述第一转发模块故障的情况下,
所述第一转发模块,具体用于若所述第一转发模块故障,则停止接收以及转发报文;
所述第二转发模块,具体用于确定所述第一转发模块是否故障;
所述第二转发模块,还具体用于若确定所述第一转发模块故障,则开始接收以及转发数据报文。
9.根据权利要求8所述的装置,其特征在于,所述第二转发模块确定所述第一转发模块是否故障,具体包括:
所述第二转发模块在预设时间内未接收到所述第一转发模块发送的心跳消息,则确定所述第一转发模块故障。
10.根据权利要求7所述的装置,其特征在于,在所述预设条件包括所述第二转发模块升级完成的情况下,
所述第二转发模块,具体用于确定所述第二转发模块是否升级完成;
所述第二转发模块,还用于若确定所述第二转发模块升级完成,则开始接收以及转发数据报文;
所述第一转发模块,具体用于确定所述第二转发模块是否升级完成;
所述第一转发模块,还用于若确定所述第二转发模块升级完成,则停止接收以及转发报文。
11.根据权利要求10所述的装置,其特征在于,所述第二转发模块确定所述第二转发模块升级完成,具体包括:
所述第二转发模块,用于确定所述第二转发模块的运行状态是否更新;
若所述第二转发模块确定所述第二转发模块的运行状态更新为正常,则确定所述第二转发模块升级完成。
12.根据权利要求10所述的装置,其特征在于,所述第一转发模块确定所述第二转发模块升级完成,具体包括:
所述装置还包括控制模块,所述第一转发模块,用于若接收到所述控制模块发送的第二升级指令,则确定所述第二转发模块升级完成;其中,所述第二升级指令用于指示所述第一转发模块进行软件升级;
或,所述第一转发模块,用于若接收到所述第二转发模块发送的第一升级完成指示信息,则确定所述第二转发模块升级完成;其中,所述第一升级完成指示信息用于指示所述第二转发模块升级完成。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时,使得如权利要求1至6任一项所述的方法被执行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810150716.8A CN110166355B (zh) | 2018-02-13 | 2018-02-13 | 一种报文转发方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810150716.8A CN110166355B (zh) | 2018-02-13 | 2018-02-13 | 一种报文转发方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110166355A CN110166355A (zh) | 2019-08-23 |
CN110166355B true CN110166355B (zh) | 2021-06-22 |
Family
ID=67635485
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810150716.8A Expired - Fee Related CN110166355B (zh) | 2018-02-13 | 2018-02-13 | 一种报文转发方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110166355B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110505097B (zh) * | 2019-08-28 | 2023-05-12 | 深信服科技股份有限公司 | 一种转发面升级方法、装置及电子设备和存储介质 |
CN111654384A (zh) * | 2019-09-27 | 2020-09-11 | 中兴通讯股份有限公司 | 一种主备切换方法、bras设备及存储介质 |
CN112953735B (zh) * | 2019-11-26 | 2023-05-02 | 中国电信股份有限公司 | 网络服务设备和网络服务方法 |
CN111683022B (zh) * | 2020-08-12 | 2020-11-27 | 广东省新一代通信与网络创新研究院 | 白盒交换机及其转发功能的升级方法、可读存储介质 |
CN114531337A (zh) * | 2020-10-31 | 2022-05-24 | 华为技术有限公司 | 一种宽带连接方法及装置 |
CN114760193A (zh) * | 2020-12-29 | 2022-07-15 | 华为技术有限公司 | 一种主备协商方法及设备 |
CN113821310B (zh) * | 2021-11-19 | 2022-05-06 | 阿里云计算有限公司 | 数据处理方法、可编程网卡设备、物理服务器及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102084340A (zh) * | 2009-04-28 | 2011-06-01 | 思科技术公司 | 用于虚拟机的流量转发 |
CN103763367A (zh) * | 2014-01-17 | 2014-04-30 | 浪潮(北京)电子信息产业有限公司 | 一种云计算数据中心分布式虚拟网络设计方法及系统 |
CN106470121A (zh) * | 2016-08-30 | 2017-03-01 | 锐捷网络股份有限公司 | 虚拟交换单元vsu系统的升级方法、装置及vsu系统 |
CN106817259A (zh) * | 2017-01-18 | 2017-06-09 | 杭州迪普科技股份有限公司 | Vsm系统的升级方法及装置 |
CN107493180A (zh) * | 2016-06-13 | 2017-12-19 | 阿里巴巴集团控股有限公司 | 一种虚拟交换机的升级方法以及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8654630B2 (en) * | 2010-03-19 | 2014-02-18 | Brocade Communications Systems, Inc. | Techniques for link redundancy in layer 2 networks |
US9231892B2 (en) * | 2012-07-09 | 2016-01-05 | Vmware, Inc. | Distributed virtual switch configuration and state management |
-
2018
- 2018-02-13 CN CN201810150716.8A patent/CN110166355B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102084340A (zh) * | 2009-04-28 | 2011-06-01 | 思科技术公司 | 用于虚拟机的流量转发 |
CN103763367A (zh) * | 2014-01-17 | 2014-04-30 | 浪潮(北京)电子信息产业有限公司 | 一种云计算数据中心分布式虚拟网络设计方法及系统 |
CN107493180A (zh) * | 2016-06-13 | 2017-12-19 | 阿里巴巴集团控股有限公司 | 一种虚拟交换机的升级方法以及装置 |
CN106470121A (zh) * | 2016-08-30 | 2017-03-01 | 锐捷网络股份有限公司 | 虚拟交换单元vsu系统的升级方法、装置及vsu系统 |
CN106817259A (zh) * | 2017-01-18 | 2017-06-09 | 杭州迪普科技股份有限公司 | Vsm系统的升级方法及装置 |
Non-Patent Citations (1)
Title |
---|
基于虚拟交换机的虚拟机监管系统的设计与实现;王凯;《中国优秀硕士学位论文全文数据库--信息科技辑》;20150315(第03期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110166355A (zh) | 2019-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110166355B (zh) | 一种报文转发方法及装置 | |
US8904139B2 (en) | Migrating virtual machines across sites | |
US8274881B2 (en) | Altering access to a fibre channel fabric | |
US10686890B2 (en) | Keep-alive scheduler in a network device | |
US9298566B2 (en) | Automatic cluster-based failover handling | |
US11811784B2 (en) | Integrity verified paths between entities in a container-orchestration system | |
US11777804B2 (en) | Automatic system provisioning for NVME-over-fabric storage | |
US20210336867A1 (en) | Dynamic discovery of service nodes in a network | |
CN107589955A (zh) | 一种双cmc固件版本的升级方法及系统 | |
WO2018137520A1 (zh) | 一种业务恢复方法及装置 | |
JP5531487B2 (ja) | サーバシステム及びサーバシステムの管理方法 | |
EP3582442A1 (en) | Method, remote device and computer-readable medium for reselecting principal core device | |
CN112799602B (zh) | 一种云硬盘在线扩容方法 | |
CN112596371A (zh) | 控制卡切换方法、装置、电子设备及存储介质 | |
CN107360015B (zh) | 切换共享存储的方法和设备 | |
EP3974989A1 (en) | Link state setting method and device for virtual network interface card, and storage medium | |
CN107317710A (zh) | 一种基于SDN网络对虚拟网卡进行QoS配置的方法与装置 | |
JP7603711B2 (ja) | ネットワーク・ファブリックにおける非応答ポートの隔離 | |
CN116010307A (zh) | 服务器资源分配系统、方法和装置 | |
WO2020244067A1 (zh) | 故障检测方法及相关设备 | |
CN109428821A (zh) | 服务器、管理互备设备路由的方法和存储介质 | |
WO2021244500A1 (zh) | 一种备份状态确定方法、装置及系统 | |
WO2016054906A1 (zh) | 计费方法和设备、接入设备、服务质量控制方法和设备 | |
CN116248551A (zh) | 一种实现串口设备在kvm虚拟化环境中高可用的方法 | |
CN115001950A (zh) | 一种数据库集群的故障处理方法、存储介质与设备 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20210622 |
|
CF01 | Termination of patent right due to non-payment of annual fee |