CN110071880B - 报文转发方法、转发装置、服务器及存储介质 - Google Patents

报文转发方法、转发装置、服务器及存储介质 Download PDF

Info

Publication number
CN110071880B
CN110071880B CN201810069233.5A CN201810069233A CN110071880B CN 110071880 B CN110071880 B CN 110071880B CN 201810069233 A CN201810069233 A CN 201810069233A CN 110071880 B CN110071880 B CN 110071880B
Authority
CN
China
Prior art keywords
virtual switch
initialization
result data
memory
data
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
Application number
CN201810069233.5A
Other languages
English (en)
Other versions
CN110071880A (zh
Inventor
李光伟
董玢
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Jinxun Ruibo Network Technology Co Ltd
Beijing Kingsoft Cloud Network Technology Co Ltd
Beijing Kingsoft Cloud Technology Co Ltd
Original Assignee
Beijing Jinxun Ruibo Network Technology Co Ltd
Beijing Kingsoft Cloud Network Technology Co Ltd
Beijing Kingsoft Cloud Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Jinxun Ruibo Network Technology Co Ltd, Beijing Kingsoft Cloud Network Technology Co Ltd, Beijing Kingsoft Cloud Technology Co Ltd filed Critical Beijing Jinxun Ruibo Network Technology Co Ltd
Priority to CN201810069233.5A priority Critical patent/CN110071880B/zh
Priority to PCT/CN2018/125951 priority patent/WO2019144777A1/zh
Publication of CN110071880A publication Critical patent/CN110071880A/zh
Application granted granted Critical
Publication of CN110071880B publication Critical patent/CN110071880B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/354Switches specially adapted for specific applications for supporting virtual local area networks [VLAN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/55Prevention, detection or correction of errors
    • H04L49/557Error correction, e.g. fault recovery or fault tolerance
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9063Intermediate storage in different physical parts of a node or terminal
    • H04L49/9078Intermediate storage in different physical parts of a node or terminal using an external memory or storage device

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明实施例提供了一种基于虚拟交换机的报文转发方法、转发装置、服务器及存储介质,其中方法包括:创建第一进程;在第一进程中进行虚拟交换机的初始化,得到初始化结果数据,并将初始化结果数据缓存至内存中;在已创建的第二进程中,通过已初始化的虚拟交换机使用初始化结果数据转发接收的报文;当第二进程发生异常时,重新创建第二进程,并从内存中获取初始化结果数据;在重新创建的第二进程中,通过已初始化的虚拟交换机使用获取的初始化结果数据转发接收的报文,从而能够消除因重新进行虚拟交换机的初始化而耗费的时间,使虚拟交换机尽快恢复报文转发业务,提高报文转发效率。

Description

报文转发方法、转发装置、服务器及存储介质
技术领域
本发明涉及虚拟交换机技术领域,特别是涉及一种基于虚拟交换机的报文转发方法、转发装置、服务器及存储介质。
背景技术
虚拟交换机是一种通过软件模拟物理交换机功能的交换机。虚拟交换机用于连接不同虚拟机之间的虚拟网络接口,实现虚拟机间的数据交换。现有的虚拟交换机,通常基于DPDK(Data Plane Development Kit,数据平面开发套件)开发。DPDK能够在虚拟交换机的开发过程中,提供用于数据包快速处理的函数库和驱动。
现有的计算机在运行基于DPDK开发的虚拟交换机时,通常是在一个进程中先进行虚拟机初始化,再在该进程中进行报文的转发。其具体过程为:计算机启动操作系统后,在操作系统中建立运行虚拟交换机的进程,首先在该进程中进行大页内存初始化及虚拟交换机网卡驱动初始化,得到大页内存数据和网卡驱动数据,然后在该进程中通过已初始化的虚拟交换机,使用上述大页内存数据和网卡驱动数据,转发接收的报文。
有时由于转发报文出现异常,致使上述进程状态异常(例如进程停止响应),则需要重新启动上述进程。在重新启动上述进程时,操作系统需重新进行大页内存初始化及网卡驱动初始化,待初始化完成后,才能继续转发报文,而重新进行大页内存初始化及网卡驱动初始化花费较长等待时间,导致报文转发效率低。
发明内容
本发明实施例的目的在于提供一种基于虚拟交换机的报文转发方法、转发装置、服务器及存储介质,实现提高虚拟交换机报文转发效率的目的。具体技术方案如下:
第一方面,本发明实施例提供了一种基于虚拟交换机的报文转发方法,包括:
创建第一进程;
在所述第一进程中进行虚拟交换机的初始化,得到初始化结果数据,并将所述初始化结果数据缓存至内存中;
在已创建的第二进程中,通过已初始化的虚拟交换机使用所述初始化结果数据转发接收的报文;
当所述第二进程发生异常时,重新创建第二进程,并从内存中获取所述初始化结果数据;
在重新创建的第二进程中,通过已初始化的虚拟交换机使用获取的所述初始化结果数据转发接收的报文。
可选地,所述创建第一进程,包括:
在操作系统启动的过程中创建第一进程。
可选地,所述在所述第一进程中进行虚拟交换机的初始化,得到初始化结果数据,并将所述初始化结果数据缓存至内存中,包括:
在所述第一进程中进行大页内存初始化及网卡驱动初始化,得到大页内存数据和网卡驱动数据,并将所述大页内存数据和所述网卡驱动数据缓存至内存中。
可选地,所述当所述第二进程发生异常时,重新创建第二进程,并从内存中获取所述初始化结果数据之前,所述方法还包括:
检测所述第二进程是否处于正常状态。
可选地,所述检测所述第二进程是否处于正常状态,包括:
通过第一进程向所述第二进程发送应答请求;
如果接收到所述第二进程的响应,确定所述第二进程状态正常;
如果未接收到所述第二进程的响应,确定所述第二进程状态异常。
可选地,所述通过第一进程向所述第二进程发送应答请求,包括:
每隔预设时间间隔,通过第一进程向所述第二进程发送应答请求。
可选地,所述如果未接收到所述第二进程的回应,确定所述第二进程状态异常之后,所述方法还包括:
生成所述第二进程状态异常的通知消息并显示所述通知消息。
第二方面,本发明实施例提供了一种基于虚拟交换机的报文转发装置,包括:
创建模块,用于创建第一进程;
初始化模块,用于在所述第一进程中进行虚拟交换机的初始化,得到初始化结果数据,并将所述初始化结果数据缓存至内存中;
转发模块,用于在已创建的第二进程中,通过已初始化的虚拟交换机使用所述初始化结果数据转发接收的报文;
所述创建模块,还用于当所述第二进程发生异常时,重新创建第二进程,并从内存中获取所述初始化结果数据;
所述转发模块,还用于在重新创建的第二进程中,通过已初始化的虚拟交换机使用获取的所述初始化结果数据转发接收的报文。
可选地,所述创建模块,具体用于:
在操作系统启动的过程中创建第一进程。
可选地,所述初始化模块,具体用于:
在所述第一进程中进行大页内存初始化及网卡驱动初始化,得到大页内存数据和网卡驱动数据,并将所述大页内存数据和所述网卡驱动数据缓存至内存中。
可选地,所述装置还包括:
检测模块,用于检测所述第二进程是否处于正常状态。
可选地,所述检测模块,包括:
发送子模块,用于通过第一进程向所述第二进程发送应答请求;
确定子模块,用于如果接收到所述第二进程的响应,确定所述第二进程状态正常;如果未接收到所述第二进程的响应,确定所述第二进程状态异常。
可选地,所述发送子模块,具体用于:
每隔预设时间间隔,通过第一进程向所述第二进程发送应答请求。
可选地,所述装置还包括:
生成模块,用于生成所述第二进程状态异常的通知消息并显示所述通知消息。
第三方面,本发明实施例提供了一种服务器,包括处理器、通信接口、存储器和通信总线,其中,所述处理器、所述通信接口、所述存储器通过所述通信总线完成相互间的通信;
机器可读存储介质存储有能够被处理器执行的机器可执行指令,处理器被机器可执行指令促使:实现上述第一方面提供的基于虚拟交换机的报文转发方法步骤。
第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时,实现上述第一方面提供的基于虚拟交换机的报文转发方法步骤。
第五方面,本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面提供的基于虚拟交换机的报文转发方法步骤。
第六方面,本发明实施例还提供了一种计算机程序,当其在计算机上运行时,使得计算机执行上述第一方面提供的基于虚拟交换机的报文转发方法步骤。
本发明实施例提供的一种基于虚拟交换机的报文转发方法、转发装置、服务器及存储介质,通过在第一进程中进行虚拟交换机的初始化并将初始化结果数据缓存至内存中,虚拟交换机能够在第二进程中使用初始化结果数据转发接收的报文,即使第二进程发生异常,重新创建第二进程后,虚拟交换机也能够直接使用所获取的初始化结果数据继续进行报文的转发。由于不需要在第二进程再进行初始化操作,相比于现有技术而言,本申请能够消除因重新进行虚拟交换机的初始化而耗费的时间,使虚拟交换机尽快恢复报文转发业务,从而提高报文转发效率。当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的基于虚拟交换机的报文转发方法的一种流程示意图;
图2为本发明实施例提供的基于虚拟交换机的报文转发方法中,第一进程和第二进程间信息传输的流程示意图;
图3为本发明实施例提供的基于虚拟交换机的报文转发方法的另一种流程示意图;
图4为本发明实施例提供的基于虚拟交换机的报文转发方法中,检测第二进程是否处于正常状态的流程示意图;
图5为本发明实施例提供的基于虚拟交换机的报文转发装置的结构示意图;
图6为本发明实施例提供的基于虚拟交换机的报文转发装置的另一种结构示意图;
图7为本发明实施例提供的基于虚拟交换机的报文转发装置中,检测模块的结构示意图;
图8为本发明实施例提供的一种服务器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
现有的虚拟交换机通常基于DPDK(Data Plane Development Kit,数据平面开发套件)开发。DPDK由6WIND、Intel等多家公司开发,主要基于Linux系统运行,用于快速数据包处理的函数库与驱动集合,可以极大提高数据处理性能和吞吐量,提高数据平面应用程序的工作效率。
其优势主要包括:通过大页减少缓存失效,利用内核旁路技术,将网卡直接映射到用户态,使数据包路径不需要经过复杂的协议栈处理等。
同时,DPDK也有相应的不足制约虚拟交换机的性能发挥,例如,基于DPDK框架的虚拟交换机在启动时,由于需要进行大页内存的映射、大量配置加载、网卡驱动的初始化等过程,启动加载时间长。
并且,现有的服务器在运行基于DPDK开发的虚拟交换机时,通常是在一个进程中先进行虚拟机初始化,再在该进程中进行报文的转发。如果出现转发报文异常,致使上述进程状态异常(例如进程停止响应),则需要重新启动上述进程。在重新启动上述进程时,操作系统需重新进行大页内存初始化、大量配置加载、网卡驱动初始化等过程,待初始化完成后,才能继续转发报文。而重新进行大页内存初始化及网卡驱动初始化花费较长等待时间,导致报文转发效率低。
方法实施例1
如图1所示,本发明实施例提供了一种基于虚拟交换机的报文转发方法,可以应用于服务器,当然也可以应用于其他类型的具有数据处理运算功能的设备,该过程可以包括以下步骤:
S101,创建第一进程。
服务器中通常可以部署多台虚拟机,这些虚拟机之间可以通过虚拟交换机进行数据交换。具体来说,可以在服务器的进程中运行虚拟交换机服务,通过虚拟交换机连接各个虚拟机的虚拟网络接口(虚拟网卡的端口),利用虚拟交换机进行报文转发。
如前文所述,现有的虚拟交换机在运行时,通常是在一个进程中先进行虚拟机初始化,再在该进程中进行报文的转发。本发明实施例中,可以先创建一个进程,称之为第一进程,具体地,可以在Linux操作系统中创建第一进程。在Linux操作系统中创建进程的过程可以由现有的进程创建方法得到,在此不再赘述。
S102,在第一进程中进行虚拟交换机的初始化,得到初始化结果数据,并将初始化结果数据缓存至内存中。
本发明实施例中,通过所创建的第一进程,可以在第一进程中进行虚拟交换机的初始化。容易理解的是,虚拟交换机在初始化过程中,需进行大页内存初始化、网卡驱动初始化等过程,耗费的时间多。基于上述考虑,不妨可以将虚拟交换机的在初始化过程单独放在一个进程中进行。
由于内存具有极高的数据读取/写入速度,因此,利用这一特点,可以将初始化后所得的初始化结果数据缓存至内存中。当服务器需要调用这些初始化结果数据时,可以快速地从内存中读取所缓存的数据。
进一步地,虚拟交换机的初始化可以包括大页内存初始化、网卡驱动初始化、网卡队列初始化等与虚拟交换机初始化相关的操作,从而可以得到大页内存数据、网卡驱动数据、网卡队列信息等数据。
作为本发明实施例一种可选的实施方式,为了能够尽快完成虚拟交换机的初始化,可以在服务器操作系统启动的过程中创建第一进程,并在第一进程中进行虚拟交换机的初始化。待虚拟交换机初始化完毕并将初始化结果数据缓存至内存中后,服务器可以进入等待状态,随时等待调用命令调用所缓存的初始化结果数据。
通过上述在服务器操作系统启动的过程中创建第一进程,并在第一进程中进行虚拟交换机的初始化,可以使虚拟交换机的初始化在服务器启动时进行,而不是等待服务器进入操作系统的操作界面后才进行虚拟交换机的初始化,从而使虚拟交换机的初始化提前进行,有利于提升虚拟交换机的启动速度。
S103,在已创建的第二进程中,通过已初始化的虚拟交换机使用初始化结果数据转发接收的报文。
本发明实施例中,可以在操作系统中创建第二进程,其中,第二进程是不同于第一进程的一个进程,它们分别运行于服务器的操作系统中。在第二进程中,已初始化的虚拟交换机可以通过使用所缓存的初始化结果数据,实现转发接收的报文。
具体地,所创建的第二进程可以与第一进程共享内存,从而获取内存中所缓存的初始化结果数据,例如大页内存数据、网卡驱动数据、网卡队列信息等数据。已初始化的虚拟交换机获取上述数据后,便可以在第二进程中进行报文的接收、报文的转发。
本发明实施例中,在第一进程中可以只进行虚拟交换机的初始化,从而使第一进程功能简单,达到稳定运行的目的。在第二进程中可以只进行报文的接收与转发,即使第二进程发生异常,也不会影响第一进程。
S104,当第二进程发生异常时,重新创建第二进程,并从内存中获取初始化结果数据。
在第二进程中,由于虚拟交换机转发报文出现异常,可能会致使上述第二进程状态异常,例如第二进程停止响应。此时需要通过创建模块重新创建第二进程,从而使虚拟交换机重新进行报文转发。
本发明实施例在重新创建第二进程的过程中,由于第一进程已经进行了虚拟交换机的初始化,并将初始化结果数据缓存至内存中,因此第二进程不需要再进行上述初始化操作,而是可以直接从内存中获取所缓存的初始化结果数据,例如大页内存数据、网卡驱动数据、网卡队列信息等数据。不难看出,由于不需要在第二进程再进行上述初始化操作,相比于现有技术而言,本申请能够消除重新进行虚拟交换机的初始化而耗费的时间,使虚拟交换机尽快恢复报文转发业务。
S105,在重新创建的第二进程中,通过已初始化的虚拟交换机使用获取的初始化结果数据转发接收的报文。
本发明实施例中,如前文所述,可以重新创建第二进程,并可以从内存中获取初始化结果数据,服务器可以利用所获取的初始化结果数据。因此在重新创建的第二进程中,已初始化的虚拟交换机可以通过使用所获取的初始化结果数据,实现转发接收的报文。
具体地例如,服务器重新创建的第二进程后,可以获取内存中所缓存大页内存数据、网卡驱动数据、网卡队列信息等数据。已初始化的虚拟交换机可以直接使用上述数据,在第二进程中进行报文的接收、报文的转发。
作为本发明实施例一种可选的实施方式,可以在一台服务器中启动多台虚拟交换机进行报文转发。具体地,服务器可以创建一个第一进程,并在第一进程中进行虚拟交换机的初始化,得到初始化结果数据,并将初始化结果数据缓存至内存中;可以创建多个第二进程,多个第二进程各自对应一台虚拟交换机,且在各第二进程中,对应的虚拟交换机均可以通过第一进程得到的初始化结果数据转发接收的报文。
当某一个第二进程发生异常时,可以重新创建该第二进程,并从内存中获取初始化结果数据,从而在重新创建的该第二进程中,对应的虚拟交换机使用所获取的初始化结果数据,转发接收的报文。本发明实施例中,通过在一台服务器中启动多台虚拟交换机进行报文转发,相比于一台虚拟交换机进行报文转发,提高了报文转发效率;通过创建多个第二进程,各第二进程各自对应一台虚拟交换机,当其中一个第二进程异常时,只需重新创建该第二进程并从内存中获取初始化结果数据,即可通过对应的虚拟交换机继续进行报文转发,而不必对该虚拟交换机重新进行初始化,使虚拟交换机尽快恢复报文转发业务,节约了因虚拟交换机初始化而损失的时间。
图2为第一进程和第二进程间信息传输的示意图,如图2所示,该过程包括:
S201,服务器创建第一进程;
S202,在第一进程中进行虚拟交换机的初始化,可以包括大页内存初始化及网卡驱动初始化等;
S203,将初始化结果数据缓存至内存中;
S204,第一进程常驻内存,进入睡眠等待状态;
S205,服务器创建第二进程;
S206,从内存中获取初始化结果数据,包括大页内存初始化及网卡驱动初始化等;
S207,虚拟交换机使用获取的初始化结果数据转发接收的报文。
需要说明的是,本发明实施例中,由于第二进程中的报文转发业务需要使用第一进程所生成的初始化结果数据,因此可以将第一进程看作是主进程,将第二进程看作是从进程。但是,第一进程和第二进程间是相对独立的,即使第二进程停止响应,也不会影响第一进程。
本发明实施例提供的一种基于虚拟交换机的报文转发方法,通过在第一进程中进行虚拟交换机的初始化并将初始化结果数据缓存至内存中,虚拟交换机能够在第二进程中使用初始化结果数据转发接收的报文,即使第二进程发生异常,重新创建第二进程后,虚拟交换机也能够直接使用所获取的初始化结果数据继续进行报文的转发。由于不需要在第二进程再进行初始化操作,相比于现有技术而言,本申请能够消除因重新进行虚拟交换机的初始化而耗费的时间,使虚拟交换机尽快恢复报文转发业务,从而提高报文转发效率。
方法实施例2
如图3所示,本发明实施例还提供了一种基于虚拟交换机的报文转发方法,可以应用于服务器,当然也可以应用于其他类型的具有数据处理运算功能的设备,包括以下步骤:
S301,创建第一进程。
一台服务器中通常可以部署多台虚拟机,这些虚拟机之间可以通过虚拟交换机进行数据交换。具体来说,可以在服务器的进程中运行虚拟交换机服务,通过虚拟交换机连接各个虚拟机的虚拟网络接口,利用虚拟交换机进行报文转发。
现有的虚拟交换机在运行时,通常是在一个进程中先进行虚拟机初始化,再在该进程中进行报文的转发。本发明实施例中,可以先创建一个进程,称之为第一进程,具体地,可以在Linux操作系统中创建第一进程。在Linux操作系统中创建进程的过程可以由现有的进程创建方法得到,在此不再赘述。
S302,在第一进程中进行虚拟交换机的初始化,得到初始化结果数据,并将初始化结果数据缓存至内存中。
本发明实施例中,通过所创建的第一进程,可以在第一进程中进行虚拟交换机的初始化。容易理解的是,虚拟交换机在初始化过程中,需进行大页内存初始化、网卡驱动初始化等过程,耗费的时间多,可以将虚拟交换机的在初始化过程单独放在一个进程中进行。
由于内存具有极高的数据读取/写入速度,因此,利用这一特点,可以将初始化后所得的初始化结果数据缓存至内存中。当服务器需要调用这些初始化结果数据时,可以快速地从内存中读取所缓存的数据。
进一步地,虚拟交换机的初始化可以包括大页内存初始化、网卡驱动初始化、网卡队列初始化等与虚拟交换机初始化相关的操作,从而可以得到大页内存数据、网卡驱动数据、网卡队列信息等数据。
作为本发明实施例一种可选的实施方式,为了能够尽快完成虚拟交换机的初始化,可以在服务器操作系统启动的过程中创建第一进程,并在第一进程中进行虚拟交换机的初始化。待虚拟交换机初始化完毕并将初始化结果数据缓存至内存中后,服务器可以进入等待状态,随时等待调用命令调用所缓存的初始化结果数据。通过上述在服务器操作系统启动的过程中创建第一进程,并在第一进程中进行虚拟交换机的初始化,可以使虚拟交换机的初始化在服务器启动时进行,而不是等待服务器进入操作系统的操作界面后才进行虚拟交换机的初始化,从而使虚拟交换机的初始化提前进行,有利于提升虚拟交换机的启动速度。
S303,在已创建的第二进程中,通过已初始化的虚拟交换机使用初始化结果数据转发接收的报文。
本发明实施例中,可以在操作系统中创建第二进程,其中,第二进程是不同于第一进程的一个进程,它们分别运行于服务器的操作系统中。在第二进程中,已初始化的虚拟交换机可以通过使用所缓存的初始化结果数据,实现转发接收的报文。
具体地,所创建的第二进程可以与第一进程共享内存,从而可以获取内存中所缓存的初始化结果数据,例如大页内存数据、网卡驱动数据、网卡队列信息等数据。已初始化的虚拟交换机获取上述数据后,便可以在第二进程中进行报文的接收、报文的转发。
本发明实施例中,在第一进程中可以只进行虚拟交换机的初始化,从而使第一进程功能简单,达到稳定运行的目的。在第二进程中可以只进行报文的接收与转发,即使第二进程发生异常,也不会影响第一进程。并且,虚拟交换机初始化后,在第二进程中启动并转发报文的过程可以达到毫秒级别时间,具有启动速度快的特点。
S304,检测第二进程是否处于正常状态。
本发明实施例中,已初始化的虚拟交换机使用初始化结果数据,在第二进程中转发所接收的报文过程中,可能出现由于报文转发错误,导致第二进程状态异常的情况,严重时甚至可能导致服务器宕机。为了及时发现第二进程是否处于异常状态,避免因第二进程异常而导致服务器宕机,可以对第二进程的状态进行检测。
进一步可选地,服务器可以通过第一进程,检测第二进程是否处于正常状态。
具体地,如图4所示,上述S304可以包括以下步骤:
S3041,通过第一进程向第二进程发送应答请求。
操作系统的各个进程间可以存在通信机制,实现进程间的通信,例如共享内存、套接字等。本发明实施例中,可以通过第一进程向第二进程发送应答请求,以使第二进程对应答请求作出回应。
S3042,如果接收到第二进程的响应,确定第二进程状态正常。
容易理解的是,如果服务器接收到第二进程的响应,例如对应答请求作出回应,或者返回包含自己健康状态的数据包,则说明第二进程运行状态正常,无需对第二进程进行进一步操作。
S3043,如果未接收到第二进程的响应,确定第二进程状态异常。
如果未接收到第二进程的响应,例如第二进程没有对应答请求作出回应,或者没有返回包含自己健康状态的数据包,则第二进程可能已经停止响应,说明第二进程运行状态异常,可以对第二进程进行进一步操作,从而恢复第二进程。
S305,当第二进程发生异常时,重新创建第二进程,并从内存中获取初始化结果数据。
本发明实施例中,如果服务器检测到第二进程发生异常,则服务器可以注销停止响应的第二进程,释放运行第二进程所占用的内存空间,并可以重新创建第二进程。
在第二进程中,由于虚拟交换机转发报文出现异常,可能会致使上述第二进程状态异常,例如第二进程停止响应。此时需要重新启动第二进程,从而使虚拟交换机重新进行报文转发。
本发明实施例在重新创建第二进程的过程中,由于第一进程已经进行了虚拟交换机的初始化,并将初始化结果数据缓存至内存中,因此第二进程不需要再进行上述初始化操作,而是可以直接从内存中获取所缓存的初始化结果数据,例如大页内存数据、网卡驱动数据、网卡队列信息等数据。不难看出,由于不需要在第二进程再进行上述初始化操作,相比于现有技术而言,本申请能够消除重新进行虚拟交换机的初始化而耗费的时间,使虚拟交换机尽快恢复报文转发业务。
S306,在重新创建的第二进程中,通过已初始化的虚拟交换机使用获取的初始化结果数据转发接收的报文。
本发明实施例中,如前文所述,服务器可以重新创建第二进程,并可以从内存中获取初始化结果数据,服务器可以利用所获取的初始化结果数据,因此在重新创建的第二进程中,已初始化的虚拟交换机可以通过使用所获取的初始化结果数据,实现转发接收的报文。
具体地例如,服务器重新创建的第二进程后,可以获取内存中所缓存大页内存数据、网卡驱动数据、网卡队列信息等数据。已初始化的虚拟交换机可以直接使用上述数据,在第二进程中进行报文的接收、报文的转发。
作为本发明实施例一种可选的实施方式,为了进一步及时检测第二进程的状态,通过第一进程向第二进程发送应答请求时,可以每隔预设时间间隔,向第二进程发送应答请求。
示例性地,可以每隔5分钟,服务器通过第一进程向第二进程发送一次应答请求,如果第二进程对应答请求作出回应,说明第二进程运行正常。
作为本发明实施例另一种可选的实施方式,如果服务器检测到第二进程状态异常,为了能够使运维管理人员尽快地获知第二进程状态异常,服务器可以生成包含第二进程状态异常信息的通知消息,并可以将该通知消息发送至运维人员所使用的客户端,例如电脑、平板电脑或者手机等移动设备,方便运维人员随时随刻接收并查看该通知消息。或者,服务器还可以将通知消息显示于运维系统的显示设备中,使运维人员及时看到该通知消息,及时对问题定位并修复问题。
当与虚拟交换机报文转发相关的程序需要升级时,现有的基于一个进程的报文转发方法中,需要注销进程,待虚拟交换机报文转发相关的程序文件升级后,再在进程中重新进行大页内存初始化及虚拟交换机网卡驱动初始化,得到大页内存数据和网卡驱动数据,然后才能转发报文。显然这种方法会耗费大量时间。
当虚拟交换机对应的进程停止响应或者虚拟交换机升级时,虚拟交换机是不可用的,需要再次启动虚拟交换机进而恢复报文转发业务。作为本发明实施例另一种可选的实施方式,本发明实施例中具有第一进程和第二进程,可以将第二进程注销后,释放内存空间,升级虚拟交换机报文转发相关的程序文件后,重新创建第二进程,可以直接从内存中获取所缓存的初始化结果数据,启动虚拟交换机,由于初始化结果数据已缓存至内存,恢复第二进程中的业务,不需要再进行虚拟交换机的初始化。
作为本发明实施例另一种可选的实施方式,如前文所述,服务器中通常可以部署多台虚拟机,每台虚拟机都可以具有一个虚拟网卡,可以将一台虚拟机的虚拟网卡转发报文业务放在一个进程中进行,从而可以在多个进程中进行多个报文转发业务,提高业务的并行处理能力。
本发明实施例提供的一种基于虚拟交换机的报文转发方法,通过检测第二进程的状态,能够及时发现第二进程是处于正常状态还是异常状态,如果状态正常,则继续在第二进程中转发报文,如果状态异常,则重新启动第二进程,从而根据不同的检测结果进行不同的处理,避免因第二进程异常而导致服务器宕机,提高了服务器的可靠性。
相应于上面的方法实施例,本发明实施例还提供了相应的装置实施例。
装置实施例1
如图5所示,本发明实施例提供了一种基于虚拟交换机的报文转发装置,包括:
创建模块401,用于创建第一进程。
服务器中通常可以部署多台虚拟机,这些虚拟机之间可以通过虚拟交换机进行数据交换。具体来说,可以在服务器的进程中运行虚拟交换机服务,通过虚拟交换机连接各个虚拟机的虚拟网络接口(虚拟网卡的端口),利用虚拟交换机进行报文转发。
如前文所述,现有的虚拟交换机在运行时,通常是在一个进程中先进行虚拟机初始化,再在该进程中进行报文的转发。本发明实施例中,可以通过创建模块先创建一个进程,称之为第一进程,具体地,可以在Linux操作系统中创建第一进程。在Linux操作系统中创建进程的过程可以由现有的进程创建方法得到,在此不再赘述。
初始化模块402,用于在第一进程中进行虚拟交换机的初始化,得到初始化结果数据,并将初始化结果数据缓存至内存中。
本发明实施例中,通过创建模块所创建的第一进程,可以在第一进程中进行虚拟交换机的初始化。容易理解的是,虚拟交换机在初始化过程中,需进行大页内存初始化、网卡驱动初始化等过程,耗费的时间多,可以通过初始化模块将虚拟交换机的初始化过程单独放在一个进程中进行。
由于内存具有极高的数据读取/写入速度,因此,利用这一特点,可以将初始化后所得的初始化结果数据缓存至内存中。当服务器需要调用这些初始化结果数据时,可以快速地从内存中读取所缓存的数据。
进一步地,虚拟交换机的初始化可以包括大页内存初始化、网卡驱动初始化、网卡队列初始化等与虚拟交换机初始化相关的操作,从而可以得到大页内存数据、网卡驱动数据、网卡队列信息等数据。
作为本发明实施例一种可选的实施方式,为了能够尽快完成虚拟交换机的初始化,可以在服务器操作系统启动的过程中创建第一进程,并在第一进程中进行虚拟交换机的初始化。待虚拟交换机初始化完毕并将初始化结果数据缓存至内存中后,服务器可以进入等待状态,随时等待调用命令调用所缓存的初始化结果数据。通过上述在服务器操作系统启动的过程中创建第一进程,并在第一进程中进行虚拟交换机的初始化,可以使虚拟交换机的初始化在服务器启动时进行,而不是等待服务器进入操作系统的操作界面后才进行虚拟交换机的初始化,从而使虚拟交换机的初始化提前进行,有利于提升虚拟交换机的启动速度。
转发模块403,用于在已创建的第二进程中,通过已初始化的虚拟交换机使用初始化结果数据转发接收的报文。
本发明实施例中,创建模块可以在操作系统中创建第二进程,其中,第二进程是不同于第一进程的一个进程,它们分别运行于服务器的操作系统中。在第二进程中,转发模块可以通过已初始化的虚拟交换机使用所缓存的初始化结果数据,实现转发接收的报文。
具体地,所创建的第二进程可以与第一进程共享内存,从而可以获取内存中所缓存的初始化结果数据,例如大页内存数据、网卡驱动数据、网卡队列信息等数据。已初始化的虚拟交换机获取上述数据后,便可以在第二进程中进行报文的接收、报文的转发。
本发明实施例中,在第一进程中可以只进行虚拟交换机的初始化,从而使第一进程功能简单,达到稳定运行的目的。在第二进程中可以只进行报文的接收与转发,即使第二进程发生异常,也不会影响第一进程。
其中,创建模块401,还用于当第二进程发生异常时,重新创建第二进程,并从内存中获取初始化结果数据。
本发明实施例中,如果检测到第二进程发生异常,则服务器可以注销停止响应的第二进程,释放运行第二进程所占用的内存空间,并可以通过创建模块重新创建第二进程。
在第二进程中,由于虚拟交换机转发报文出现异常,可能会致使上述第二进程状态异常,例如第二进程停止响应。此时需要通过创建模块重新创建第二进程,从而使虚拟交换机重新进行报文转发。
本发明实施例在重新创建第二进程的过程中,由于第一进程已经进行了虚拟交换机的初始化,并将初始化结果数据缓存至内存中,因此第二进程不需要再进行上述初始化操作,而是可以直接从内存中获取所缓存的初始化结果数据,例如大页内存数据、网卡驱动数据、网卡队列信息等数据。不难看出,由于不需要在第二进程再进行上述初始化操作,相比于现有技术而言,本申请能够消除重新进行虚拟交换机的初始化而耗费的时间,使虚拟交换机尽快恢复报文转发业务。
其中,转发模块402,还用于在重新创建的第二进程中,通过已初始化的虚拟交换机使用获取的初始化结果数据转发接收的报文。
本发明实施例中,如前文所述,可以重新创建第二进程,并可以从内存中获取初始化结果数据,服务器可以利用所获取的初始化结果数据,因此在重新创建的第二进程中,已初始化的虚拟交换机可以通过使用所获取的初始化结果数据,实现转发接收的报文。
具体地例如,服务器重新创建的第二进程后,可以获取内存中所缓存大页内存数据、网卡驱动数据、网卡队列信息等数据。已初始化的虚拟交换机可以直接使用上述数据,在第二进程中进行报文的接收、报文的转发。
本发明实施例提供的一种基于虚拟交换机的报文转发装置,通过在第一进程中进行虚拟交换机的初始化并将初始化结果数据缓存至内存中,虚拟交换机能够在第二进程中使用初始化结果数据转发接收的报文,即使第二进程发生异常,重新创建第二进程后,虚拟交换机也能够直接使用所获取的初始化结果数据继续进行报文的转发。由于不需要在第二进程再进行初始化操作,相比于现有技术而言,本申请能够消除因重新进行虚拟交换机的初始化而耗费的时间,使虚拟交换机尽快恢复报文转发业务,从而提高报文转发效率。
装置实施例2
如图6所示,本发明实施例还提供了一种基于虚拟交换机的报文转发装置,包括:
创建模块401,用于创建第一进程。
服务器中通常可以部署多台虚拟机,这些虚拟机之间可以通过虚拟交换机进行数据交换。具体来说,可以在服务器的进程中运行虚拟交换机服务,通过虚拟交换机连接各个虚拟机的虚拟网络接口(虚拟网卡的端口),利用虚拟交换机进行报文转发。
如前文所述,现有的虚拟交换机在运行时,通常是在一个进程中先进行虚拟机初始化,再在该进程中进行报文的转发。本发明实施例中,可以通过创建模块先创建一个进程,称之为第一进程,具体地,可以在Linux操作系统中创建第一进程。在Linux操作系统中创建进程的过程可以由现有的进程创建方法得到,在此不再赘述。
初始化模块402,用于在第一进程中进行虚拟交换机的初始化,得到初始化结果数据,并将初始化结果数据缓存至内存中。
本发明实施例中,通过创建模块所创建的第一进程,可以在第一进程中进行虚拟交换机的初始化。容易理解的是,虚拟交换机在初始化过程中,需进行大页内存初始化、网卡驱动初始化等过程,耗费的时间多,可以通过初始化模块将虚拟交换机的初始化过程单独放在一个进程中进行。
由于内存具有极高的数据读取/写入速度,因此,利用这一特点,可以将初始化后所得的初始化结果数据缓存至内存中。当服务器需要调用这些初始化结果数据时,可以快速地从内存中读取所缓存的数据。
进一步地,虚拟交换机的初始化可以包括大页内存初始化、网卡驱动初始化、网卡队列初始化等与虚拟交换机初始化相关的操作,从而可以得到大页内存数据、网卡驱动数据、网卡队列信息等数据。
作为本发明实施例一种可选的实施方式,为了能够尽快完成虚拟交换机的初始化,可以在服务器操作系统启动的过程中创建第一进程,并在第一进程中进行虚拟交换机的初始化。待虚拟交换机初始化完毕并将初始化结果数据缓存至内存中后,服务器可以进入等待状态,随时等待调用命令调用所缓存的初始化结果数据。通过上述在服务器操作系统启动的过程中创建第一进程,并在第一进程中进行虚拟交换机的初始化,可以使虚拟交换机的初始化在服务器启动时进行,而不是等待服务器进入操作系统的操作界面后才进行虚拟交换机的初始化,从而使虚拟交换机的初始化提前进行,有利于提升虚拟交换机的启动速度。
转发模块403,用于在已创建的第二进程中,通过已初始化的虚拟交换机使用初始化结果数据转发接收的报文。
本发明实施例中,创建模块可以在操作系统中创建第二进程,其中,第二进程是不同于第一进程的一个进程,它们分别运行于服务器的操作系统中。在第二进程中,转发模块可以通过已初始化的虚拟交换机使用所缓存的初始化结果数据,实现转发接收的报文。
具体地,所创建的第二进程可以与第一进程共享内存,从而可以获取内存中所缓存的初始化结果数据,例如大页内存数据、网卡驱动数据、网卡队列信息等数据。已初始化的虚拟交换机获取上述数据后,便可以在第二进程中进行报文的接收、报文的转发。
本发明实施例中,在第一进程中可以只进行虚拟交换机的初始化,从而使第一进程功能简单,达到稳定运行的目的。在第二进程中可以只进行报文的接收与转发,即使第二进程发生异常,也不会影响第一进程。
检测模块404,用于检测第二进程是否处于正常状态。
本发明实施例中,已初始化的虚拟交换机使用初始化结果数据,在第二进程中转发所接收的报文过程中,可能出现由于报文转发错误,导致第二进程状态异常的情况,严重时甚至可能导致服务器宕机。为了及时发现第二进程是否处于异常状态,避免因第二进程异常而导致服务器宕机,可以通过检测模块对第二进程的状态进行检测。
进一步可选地,如图7所示,检测模块404可以包括:
发送子模块4041,用于通过第一进程向第二进程发送应答请求。
操作系统的各个进程间可以存在通信机制,实现进程间的通信,例如共享内存、套接字等。本发明实施例中,可以通过第一进程向第二进程发送应答请求,以使第二进程对应答请求作出回应。
确定子模块4042,用于如果接收到第二进程的响应,确定第二进程状态正常;如果未接收到第二进程的响应,确定第二进程状态异常。
容易理解的是,如果服务器接收到第二进程的响应,例如对应答请求作出回应,或者返回包含自己健康状态的数据包,则说明第二进程运行状态正常,无需对第二进程进行进一步操作。
如果未接收到第二进程的响应,例如第二进程没有对应答请求作出回应,或者没有返回包含自己健康状态的数据包,则第二进程可能已经停止响应,说明第二进程运行状态异常,可以对第二进程进行进一步操作,从而恢复第二进程。
其中,创建模块401,还用于当第二进程发生异常时,重新创建第二进程,并从内存中获取初始化结果数据。
本发明实施例中,如果检测到第二进程发生异常,则服务器可以注销停止响应的第二进程,释放运行第二进程所占用的内存空间,并可以通过创建模块重新创建第二进程。
在第二进程中,由于虚拟交换机转发报文出现异常,可能会致使上述第二进程状态异常,例如第二进程停止响应。此时需要通过创建模块重新创建第二进程,从而使虚拟交换机重新进行报文转发。
本发明实施例在重新创建第二进程的过程中,由于第一进程已经进行了虚拟交换机的初始化,并将初始化结果数据缓存至内存中,因此第二进程不需要再进行上述初始化操作,而是可以直接从内存中获取所缓存的初始化结果数据,例如大页内存数据、网卡驱动数据、网卡队列信息等数据。不难看出,由于不需要在第二进程再进行上述初始化操作,相比于现有技术而言,本申请能够消除重新进行虚拟交换机的初始化而耗费的时间,使虚拟交换机尽快恢复报文转发业务。
其中,转发模块402,还用于在重新创建的第二进程中,通过已初始化的虚拟交换机使用获取的初始化结果数据转发接收的报文。
本发明实施例中,如前文所述,可以重新创建第二进程,并可以从内存中获取初始化结果数据,服务器可以利用所获取的初始化结果数据,因此在重新创建的第二进程中,已初始化的虚拟交换机可以通过使用所获取的初始化结果数据,实现转发接收的报文。
具体地例如,服务器重新创建的第二进程后,可以获取内存中所缓存大页内存数据、网卡驱动数据、网卡队列信息等数据。已初始化的虚拟交换机可以直接使用上述数据,在第二进程中进行报文的接收、报文的转发。
本发明实施例提供的一种基于虚拟交换机的报文转发装置,通过检测第二进程的状态,能够及时发现第二进程是处于正常状态还是异常状态,如果状态正常,则继续在第二进程中转发报文,如果状态异常,则重新启动第二进程,从而根据不同的检测结果进行不同的处理,避免因第二进程异常而导致服务器宕机,提高了服务器的可靠性。
本发明实施例还提供了一种服务器,如图8所示,该服务器500包括处理器501和机器可读存储介质502,机器可读存储介质存储有能够被处理器执行的机器可执行指令,处理器被机器可执行指令促使实现以下步骤:
创建第一进程;
在所述第一进程中进行虚拟交换机的初始化,得到初始化结果数据,并将所述初始化结果数据缓存至内存中;
在已创建的第二进程中,通过已初始化的虚拟交换机使用所述初始化结果数据转发接收的报文;
当所述第二进程发生异常时,重新创建第二进程,并从内存中获取所述初始化结果数据;
在重新创建的第二进程中,通过已初始化的虚拟交换机使用获取的所述初始化结果数据转发接收的报文。
机器可读存储介质502可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本发明实施例提供的虚拟交换机,通过在第一进程中进行虚拟交换机的初始化并将初始化结果数据缓存至内存中,虚拟交换机能够在第二进程中使用初始化结果数据转发接收的报文,即使第二进程发生异常,重新创建第二进程后,虚拟交换机也能够直接使用所获取的初始化结果数据继续进行报文的转发。由于不需要在第二进程再进行初始化操作,相比于现有技术而言,本申请能够消除因重新进行虚拟交换机的初始化而耗费的时间,使虚拟交换机尽快恢复报文转发业务,从而提高报文转发效率。
本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时,用以执行如下步骤:
创建第一进程;
在所述第一进程中进行虚拟交换机的初始化,得到初始化结果数据,并将所述初始化结果数据缓存至内存中;
在已创建的第二进程中,通过已初始化的虚拟交换机使用所述初始化结果数据转发接收的报文;
当所述第二进程发生异常时,重新创建第二进程,并从内存中获取所述初始化结果数据;
在重新创建的第二进程中,通过已初始化的虚拟交换机使用获取的所述初始化结果数据转发接收的报文。
本发明实施例提供的计算机可读存储介质,通过在第一进程中进行虚拟交换机的初始化并将初始化结果数据缓存至内存中,虚拟交换机能够在第二进程中使用初始化结果数据转发接收的报文,即使第二进程发生异常,重新创建第二进程后,虚拟交换机也能够直接使用所获取的初始化结果数据继续进行报文的转发。由于不需要在第二进程再进行初始化操作,相比于现有技术而言,本申请能够消除因重新进行虚拟交换机的初始化而耗费的时间,使虚拟交换机尽快恢复报文转发业务,从而提高报文转发效率。
本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行以下步骤:
创建第一进程;
在所述第一进程中进行虚拟交换机的初始化,得到初始化结果数据,并将所述初始化结果数据缓存至内存中;
在已创建的第二进程中,通过已初始化的虚拟交换机使用所述初始化结果数据转发接收的报文;
当所述第二进程发生异常时,重新创建第二进程,并从内存中获取所述初始化结果数据;
在重新创建的第二进程中,通过已初始化的虚拟交换机使用获取的所述初始化结果数据转发接收的报文。
本发明实施例提供的包含指令的计算机程序产品,通过在第一进程中进行虚拟交换机的初始化并将初始化结果数据缓存至内存中,虚拟交换机能够在第二进程中使用初始化结果数据转发接收的报文,即使第二进程发生异常,重新创建第二进程后,虚拟交换机也能够直接使用所获取的初始化结果数据继续进行报文的转发。由于不需要在第二进程再进行初始化操作,相比于现有技术而言,本申请能够消除因重新进行虚拟交换机的初始化而耗费的时间,使虚拟交换机尽快恢复报文转发业务,从而提高报文转发效率。
本发明实施例还提供了一种计算机程序,当其在计算机上运行时,使得计算机执行以下步骤:
创建第一进程;
在所述第一进程中进行虚拟交换机的初始化,得到初始化结果数据,并将所述初始化结果数据缓存至内存中;
在已创建的第二进程中,通过已初始化的虚拟交换机使用所述初始化结果数据转发接收的报文;
当所述第二进程发生异常时,重新创建第二进程,并从内存中获取所述初始化结果数据;
在重新创建的第二进程中,通过已初始化的虚拟交换机使用获取的所述初始化结果数据转发接收的报文。
本发明实施例提供的包含指令的计算机程序,通过在第一进程中进行虚拟交换机的初始化并将初始化结果数据缓存至内存中,虚拟交换机能够在第二进程中使用初始化结果数据转发接收的报文,即使第二进程发生异常,重新创建第二进程后,虚拟交换机也能够直接使用所获取的初始化结果数据继续进行报文的转发。由于不需要在第二进程再进行初始化操作,相比于现有技术而言,本申请能够消除因重新进行虚拟交换机的初始化而耗费的时间,使虚拟交换机尽快恢复报文转发业务,从而提高报文转发效率。
对于装置/服务器/存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (14)

1.一种基于虚拟交换机的报文转发方法,其特征在于,所述方法包括:
创建第一进程;
在所述第一进程中进行虚拟交换机的初始化,得到初始化结果数据,并将所述初始化结果数据缓存至内存中;
在已创建的第二进程中,通过已初始化的虚拟交换机使用所述初始化结果数据转发接收的报文;
检测所述第二进程是否处于正常状态;
当所述第二进程发生异常时,重新创建第二进程,并从内存中获取所述初始化结果数据;
在重新创建的第二进程中,通过已初始化的虚拟交换机使用获取的所述初始化结果数据转发接收的报文。
2.根据权利要求1所述的报文转发方法,其特征在于,所述创建第一进程,包括:
在操作系统启动的过程中创建第一进程。
3.根据权利要求1所述的报文转发方法,其特征在于,所述在所述第一进程中进行虚拟交换机的初始化,得到初始化结果数据,并将所述初始化结果数据缓存至内存中,包括:
在所述第一进程中进行大页内存初始化及网卡驱动初始化,得到大页内存数据和网卡驱动数据,并将所述大页内存数据和所述网卡驱动数据缓存至内存中。
4.根据权利要求1所述的报文转发方法,其特征在于,所述检测所述第二进程是否处于正常状态,包括:
通过第一进程向所述第二进程发送应答请求;
如果接收到所述第二进程的响应,确定所述第二进程状态正常;
如果未接收到所述第二进程的响应,确定所述第二进程状态异常。
5.根据权利要求4所述的报文转发方法,其特征在于,所述通过第一进程向所述第二进程发送应答请求,包括:
每隔预设时间间隔,通过第一进程向所述第二进程发送应答请求。
6.根据权利要求4或5所述的报文转发方法,其特征在于,所述如果未接收到所述第二进程的回应,确定所述第二进程状态异常之后,所述方法还包括:
生成所述第二进程状态异常的通知消息并显示所述通知消息。
7.一种基于虚拟交换机的报文转发装置,其特征在于,所述装置包括:
创建模块,用于创建第一进程;
初始化模块,用于在所述第一进程中进行虚拟交换机的初始化,得到初始化结果数据,并将所述初始化结果数据缓存至内存中;
转发模块,用于在已创建的第二进程中,通过已初始化的虚拟交换机使用所述初始化结果数据转发接收的报文;
检测模块,用于检测所述第二进程是否处于正常状态;
所述创建模块,还用于当所述第二进程发生异常时,重新创建第二进程,并从内存中获取所述初始化结果数据;
所述转发模块,还用于在重新创建的第二进程中,通过已初始化的虚拟交换机使用获取的所述初始化结果数据转发接收的报文。
8.根据权利要求7所述的报文转发装置,其特征在于,所述创建模块,具体用于:
在操作系统启动的过程中创建第一进程。
9.根据权利要求7所述的报文转发装置,其特征在于,所述初始化模块,具体用于:
在所述第一进程中进行大页内存初始化及网卡驱动初始化,得到大页内存数据和网卡驱动数据,并将所述大页内存数据和所述网卡驱动数据缓存至内存中。
10.根据权利要求7所述的报文转发装置,其特征在于,所述检测模块,包括:
发送子模块,用于通过第一进程向所述第二进程发送应答请求;
确定子模块,用于如果接收到所述第二进程的响应,确定所述第二进程状态正常;如果未接收到所述第二进程的响应,确定所述第二进程状态异常。
11.根据权利要求10所述的报文转发装置,其特征在于,所述发送子模块,具体用于:
每隔预设时间间隔,通过第一进程向所述第二进程发送应答请求。
12.根据权利要求10或11所述的报文转发装置,其特征在于,所述装置还包括:
生成模块,用于生成所述第二进程状态异常的通知消息并显示所述通知消息。
13.一种服务器,其特征在于,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现权利要求1至6任一项所述的方法步骤。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至6任一项所述的方法步骤。
CN201810069233.5A 2018-01-24 2018-01-24 报文转发方法、转发装置、服务器及存储介质 Active CN110071880B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201810069233.5A CN110071880B (zh) 2018-01-24 2018-01-24 报文转发方法、转发装置、服务器及存储介质
PCT/CN2018/125951 WO2019144777A1 (zh) 2018-01-24 2018-12-30 报文转发方法、转发装置、服务器及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810069233.5A CN110071880B (zh) 2018-01-24 2018-01-24 报文转发方法、转发装置、服务器及存储介质

Publications (2)

Publication Number Publication Date
CN110071880A CN110071880A (zh) 2019-07-30
CN110071880B true CN110071880B (zh) 2021-06-18

Family

ID=67365679

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810069233.5A Active CN110071880B (zh) 2018-01-24 2018-01-24 报文转发方法、转发装置、服务器及存储介质

Country Status (2)

Country Link
CN (1) CN110071880B (zh)
WO (1) WO2019144777A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110569126A (zh) * 2019-09-09 2019-12-13 南京中孚信息技术有限公司 目标应用的数据包处理方法、装置及电子设备
CN110650100A (zh) * 2019-10-16 2020-01-03 南京中孚信息技术有限公司 抓取网卡数据包的方法、装置及电子设备
CN111897681A (zh) * 2020-07-14 2020-11-06 绿盟科技集团股份有限公司 一种报文转发方法、装置、计算设备及存储介质
CN113064748B (zh) * 2021-04-08 2023-02-28 中国第一汽车股份有限公司 进程接替的方法、装置、电子设备及存储介质
CN113630341B (zh) * 2021-08-03 2023-06-06 武汉绿色网络信息服务有限责任公司 数据信息处理的方法和服务器
CN113839889B (zh) * 2021-09-18 2024-04-05 深圳震有科技股份有限公司 一种报文处理方法、终端及计算机可读存储介质
CN115150464B (zh) * 2022-06-22 2024-03-15 北京天融信网络安全技术有限公司 应用代理方法、装置、设备及介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1540927A (zh) * 2003-10-31 2004-10-27 港湾网络有限公司 L3交换机海量配置的快速恢复方法
CN102262558A (zh) * 2011-08-04 2011-11-30 中兴通讯股份有限公司 虚拟机同步方法及系统
CN102467403A (zh) * 2011-10-14 2012-05-23 海尔集团技术研发中心 一种基于进程迁出/迁入的软件快速切换方法及装置
CN103370693A (zh) * 2011-02-18 2013-10-23 起元技术有限责任公司 重启进程
CN105447033A (zh) * 2014-08-28 2016-03-30 国际商业机器公司 在复制初始化中生成初始副本的方法和装置
CN108183871A (zh) * 2017-11-23 2018-06-19 北京三快在线科技有限公司 一种虚拟交换机、虚拟交换机启动方法,电子设备

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3415494B2 (ja) * 1999-07-01 2003-06-09 日本電気通信システム株式会社 仮想lan対応lanスイッチ二重化方法及び装置
CN101217462A (zh) * 2005-07-15 2008-07-09 华为技术有限公司 虚交换中进行故障恢复的方法
CN102681891B (zh) * 2012-05-04 2015-09-09 北京奇虎科技有限公司 一种浏览器输入控件的进程控制方法和装置
CN103425535B (zh) * 2013-06-05 2016-08-10 浙江大学 云环境下的敏捷弹性伸缩方法
CN103297277A (zh) * 2013-06-19 2013-09-11 北京华胜天成科技股份有限公司 虚拟网络修复的方法及系统
CN104239120B (zh) * 2014-08-28 2018-06-05 华为技术有限公司 一种虚拟机的状态信息同步的方法、装置及系统
CN106339254B (zh) * 2015-07-15 2020-06-12 中兴通讯股份有限公司 一种虚拟机快速启动方法、装置及管理节点
CN107368358B (zh) * 2016-05-11 2020-07-24 华为技术有限公司 实现客户端所在虚拟机在不同主机间迁移的装置和方法
CN107483237A (zh) * 2017-08-02 2017-12-15 赛尔网络有限公司 基于dpdk转发的性能优化系统及方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1540927A (zh) * 2003-10-31 2004-10-27 港湾网络有限公司 L3交换机海量配置的快速恢复方法
CN103370693A (zh) * 2011-02-18 2013-10-23 起元技术有限责任公司 重启进程
CN102262558A (zh) * 2011-08-04 2011-11-30 中兴通讯股份有限公司 虚拟机同步方法及系统
CN102467403A (zh) * 2011-10-14 2012-05-23 海尔集团技术研发中心 一种基于进程迁出/迁入的软件快速切换方法及装置
CN105447033A (zh) * 2014-08-28 2016-03-30 国际商业机器公司 在复制初始化中生成初始副本的方法和装置
CN108183871A (zh) * 2017-11-23 2018-06-19 北京三快在线科技有限公司 一种虚拟交换机、虚拟交换机启动方法,电子设备

Also Published As

Publication number Publication date
CN110071880A (zh) 2019-07-30
WO2019144777A1 (zh) 2019-08-01

Similar Documents

Publication Publication Date Title
CN110071880B (zh) 报文转发方法、转发装置、服务器及存储介质
CN103201724B (zh) 在高可用性虚拟机环境中提供高可用性应用程序
US8910172B2 (en) Application resource switchover systems and methods
US11144416B2 (en) Device fault processing method, apparatus, and system
US20150149813A1 (en) Failure recovery system and method of creating the failure recovery system
WO2018095414A1 (zh) 虚拟机故障的检测和恢复方法及装置
US20090150528A1 (en) Method for setting up failure recovery environment
CN111988230B (zh) 虚拟机通信方法、装置、系统及电子设备
CN109683818B (zh) 一种数据存储方法、设备及存储介质
EP3015985A1 (en) Retrieving console messages after device failure
JP2021524104A (ja) マスター・スタンドバイコンテナシステム切替
US20180095681A1 (en) Utilization of non-volatile random access memory for information storage in response to error conditions
WO2020015751A1 (zh) 容器服务快照的管理方法和装置
JP5186551B2 (ja) ピア・プログラマブル・ハードウェア・デバイスの自動ファームウェア復元方法及びプログラム
CN111147615B (zh) Ip地址的接管方法、系统、计算机可读存储介质及服务器
CN109257235B (zh) 网络异常恢复方法、装置、设备及计算机可读存储介质
CN116185571B (zh) 数据迁移方法、设备、存储介质及装置
US10454773B2 (en) Virtual machine mobility
CN116126457A (zh) 容器迁移方法和服务器集群
CN112416698B (zh) 监控系统的扩展方法及装置、存储介质及电子设备
CN107783855B (zh) 虚拟网元的故障自愈控制装置及方法
US7770054B2 (en) Apparatus, system, and method to prevent queue stalling
CN116578446B (zh) 虚拟机备份方法、装置、系统、电子设备及存储介质
CN116820686B (zh) 物理机的部署方法、虚拟机和容器统一监控的方法及装置
JP6822706B1 (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