CN108491278B - 一种处理业务数据的方法和网络设备 - Google Patents

一种处理业务数据的方法和网络设备 Download PDF

Info

Publication number
CN108491278B
CN108491278B CN201810205185.8A CN201810205185A CN108491278B CN 108491278 B CN108491278 B CN 108491278B CN 201810205185 A CN201810205185 A CN 201810205185A CN 108491278 B CN108491278 B CN 108491278B
Authority
CN
China
Prior art keywords
storage space
processing
sub
service data
target
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810205185.8A
Other languages
English (en)
Other versions
CN108491278A (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.)
Shenzhen Aijieyun Technology Co ltd
Original Assignee
Wangsu Science and 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 Wangsu Science and Technology Co Ltd filed Critical Wangsu Science and Technology Co Ltd
Priority to CN201810205185.8A priority Critical patent/CN108491278B/zh
Priority to US16/330,205 priority patent/US20210334210A1/en
Priority to PCT/CN2018/081555 priority patent/WO2019174074A1/zh
Priority to EP18880058.5A priority patent/EP3567483B1/en
Publication of CN108491278A publication Critical patent/CN108491278A/zh
Application granted granted Critical
Publication of CN108491278B publication Critical patent/CN108491278B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/70Virtual switches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/152Virtualized environment, e.g. logically partitioned system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)
  • Stored Programmes (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Multi Processors (AREA)

Abstract

本发明公开了一种处理业务数据的方法和网络设备,属于虚拟化技术领域。所述方法包括:第一处理进程在启动时,调用Virtio接口,与部署在虚拟交换机上的Vhost接口建立通信连接;所述第一处理进程申请目标存储空间,将所述目标存储空间划分为多个子存储空间;第二处理进程在启动时,在所述多个子存储空间中确定目标子存储空间,并基于所述目标子存储空间进行业务数据的处理。采用本发明,可以节省网络设备的处理资源,保证处理业务数据的效率。

Description

一种处理业务数据的方法和网络设备
技术领域
本发明涉及虚拟化技术领域,特别涉及一种处理业务数据的方法和网络设备。
背景技术
Vhost/Virtio技术是一种半虚拟化的设备抽象接口规范,DPDK框架中大多利用Vhost/Virtio接口来实现业务数据的收发。DPDK技术改造的项目中可以存在虚拟出的多个处理进程同时对收发的业务数据进行处理,每个处理进程都可以通过Vhost/Virtio接口实现与物理网卡之间的数据交互。
以处理进程为基于网络中多层通信协议对业务数据进行封装、解封装的协议栈为例,为了节省CPU内核协议栈解析业务数据的过程中的CPU中断时间和数据读取时间,技术人员可以使用DPDK(Data Plane Development Kit,数据平面开发套件)技术来改造其处理过程,使得物理网卡接收到业务数据后,经DPDK框架重载的网卡驱动不会通过中断请求通知CPU,而是直接将业务数据拷贝至应用层,再经由独立的协议栈来对业务数据进行解封装处理。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
同一时间内Vhost接口只允许一个处理进程调用Virtio接口与之建立通信连接,故而,多个处理进程需要频繁交替调用Virtio接口与Vhost接口建立通信连接才能实现业务数据的收发,因此大大耗费了网络设备的处理资源、降低了处理业务数据的效率。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种处理业务数据的方法和网络设备。所述技术方案如下:
第一方面,提供了一种处理业务数据的方法,所述方法包括:
第一处理进程在启动时,调用Virtio接口,与部署在虚拟交换机上的Vhost接口建立通信连接;
所述第一处理进程申请目标存储空间,将所述目标存储空间划分为多个子存储空间;
第二处理进程在启动时,在所述多个子存储空间中确定目标子存储空间,并基于所述目标子存储空间进行业务数据的处理。
可选的,所述基于所述目标子存储空间进行业务数据的处理,包括:
所述第二处理进程周期性检测所述目标子存储空间;
如果所述目标子存储空间中存在待处理的业务数据,所述第二处理进程则获取所述待处理的业务数据,对所述待处理的业务数据进行处理。
可选的,所述方法还包括:
所述虚拟交换机获取物理网卡接收到的待处理的业务数据;
所述虚拟交换机确定所有处理进程的当前负载,将所述待处理的业务数据存入所述当前负载最低的处理进程对应的子存储空间。
可选的,所述基于所述目标子存储空间进行业务数据的处理,包括:
所述第二处理进程获取待处理的业务数据,对所述待处理的业务数据进行处理;
所述第二处理进程将处理后的业务数据存入所述目标子存储空间。
可选的,所述方法还包括:
如果检测到多个子存储空间中的目标子存储空间存储有处理后的业务数据,所述虚拟交换机则提取所述处理后的业务数据,将所述处理后的业务数据提供给物理网卡。
可选的,所述第一处理进程申请目标存储空间,将所述目标存储空间划分为多个子存储空间,包括:
所述第一处理进程读取预设的配置文件,确定处理进程的总数;
所述第一处理进程申请目标存储空间,根据所述处理进程的总数,将所述目标存储空间划分为多个子存储空间。
可选的,所述方法还包括:
所述第一处理进程与所述Vhost接口进行数据协商,生成协商结果;
所述第一处理进程在所述多个子存储空间中设置共享子存储空间,将所述协商结果存入所述共享子存储空间;
所述第二处理进程在确定所述目标子存储空间后,访问所述共享子存储空间获取所述协商结果,并基于所述协商结果初始化所述目标子存储空间。
第二方面,提供了一种处理业务数据的网络设备,所述网络设备设置有虚拟交换机,并执行有多个处理进程,其中:
所述多个处理进程中的第一处理进程,用于在启动时,调用Virtio接口,与部署在所述虚拟交换机上的Vhost接口建立通信连接;
所述第一处理进程,用于申请目标存储空间,将所述目标存储空间划分为多个子存储空间;
所述多个处理进程中的第二处理进程,用于在启动时,在所述多个子存储空间中确定目标子存储空间,并基于所述目标子存储空间进行业务数据的处理。
可选的,所述第二处理进程,具体用于:
周期性检测所述目标子存储空间;
如果所述目标子存储空间中存在待处理的业务数据,则获取所述待处理的业务数据,对所述待处理的业务数据进行处理。
可选的,所述网络设备设置有物理网卡,其中:
所述虚拟交换机,用于获取所述物理网卡接收到的待处理的业务数据,确定所有处理进程的当前负载,将所述待处理的业务数据存入所述当前负载最低的处理进程对应的子存储空间。
可选的,所述第二处理进程,具体用于:
获取待处理的业务数据,对所述待处理的业务数据进行处理;
将处理后的业务数据存入所述目标子存储空间。
可选的,所述网络设备设置有物理网卡,其中:
所述虚拟交换机,用于如果检测到多个子存储空间中的目标子存储空间存储有处理后的业务数据,则提取所述处理后的业务数据,将所述处理后的业务数据提供给物理网卡。
可选的,所述第一处理进程,具体用于:
读取预设的配置文件,确定处理进程的总数;
申请目标存储空间,根据所述处理进程的总数,将所述目标存储空间划分为多个子存储空间。
可选的,所述第一处理进程,还用于与所述Vhost接口进行数据协商,生成协商结果,在所述多个子存储空间中设置共享子存储空间,将所述协商结果存入所述共享子存储空间;
所述第二处理进程,还用于在确定所述目标子存储空间后,访问所述共享子存储空间获取所述协商结果,并基于所述协商结果初始化所述目标子存储空间。
本发明实施例提供的技术方案带来的有益效果是:
本发明实施例中,第一处理进程在启动时,调用Virtio接口,与部署在虚拟交换机上的Vhost接口建立通信连接;第一处理进程申请目标存储空间,将目标存储空间划分为多个子存储空间;第二处理进程在启动时,在多个子存储空间中确定目标子存储空间,并基于目标子存储空间进行业务数据的处理。这样,一个处理进程调用Virtio接口与Vhost接口建立通信连接,多个处理进程以共享存储空间的方式,通过上述同一通信连接实现业务数据的收发,无需多个处理进程交替调用Virtio接口与Vhost接口建立通信连接,从而节省了网络设备的处理资源,保证了处理业务数据的效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种处理业务数据的场景框架图;
图2是本发明实施例提供的一种处理业务数据的方法流程图;
图3是本发明实施例提供的一种共享存储空间的结构示意图;
图4是本发明实施例提供的一种网络设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本发明实施例提供了一种处理业务数据的方法,该方法的执行主体可以是网络设备,网络设备可以是具备数据收发功能的任意设备,如计算机、服务器。网络设备中可以执行有至少一个网络业务的项目进程和多个处理进程,每个处理进程均可以用于对项目进程的业务数据进行处理,该处理可以是如背景技术中提及的对业务数据的解析处理(包含封装和解封装),也可以是其它的数据处理。网络设备可以采用DPDK技术来实现上述虚拟化处理,支持DPDK框架设置虚拟交换机,虚拟交换机一端可以与网络设备的物理网卡连接,一端可以通过Vhost/Virtio接口与处理进程进行数据交互。DPDK框架下Vhost/Virtio接口具有很高数据吞吐性能,Vhost/Virtio接口可以服务于上述多个处理进程,每个处理进程均可以通过Vhost/Virtio接口实现和物理网卡的数据交互,从而实现业务数据的收发,具体场景框架可以参考图1。上述网络设备中可以包括处理器、存储器、收发器,处理器可以用于进行下述流程中业务数据的处理,存储器可以用于存储下述处理过程中需要的数据以及产生的数据,收发器可以用于接收和发送下述处理过程中的相关数据。本实施例中以业务数据的解析处理为例进行说明,其它处理过程与之类似,不再赘述。
下面将以解析业务为例,结合具体实施方式,对图2所示的处理流程进行详细的说明,内容可以如下:
步骤201,第一处理进程在启动时,调用Virtio接口,与部署在虚拟交换机上的Vhost接口建立通信连接。
其中,在解析业务数据的场景下,处理进程可以为执行在网络设备的CPU上的独立的协议栈,该独立的协议栈可以是网络设备侧的技术人员开发的,不同CPU上原有的内核协议栈。
在实施中,第一处理进程启动时,可以判断自身是否为第一个启动的数据处理进程,如果是,即执行初始化处理,具体则可以调用虚拟网卡的Virtio接口,与部署在虚拟交换机上的Vhost接口建立linux domain socket的通信连接。第一处理进程如果不是第一个启动的处理进程,则可以参考下述步骤203的处理,查找对应的子存储空间。需要说明的是,技术人员也可以预先指定调用Virtio接口与Vhost接口建立通信连接的处理进程,然后将指定结果记录至配置文件,并将配置文件载入网络设备,这样,第一处理进程则可以在启动后查找上述配置文件,以确定是否调用Virtio接口与Vhost接口建立通信连接。
步骤202,第一处理进程申请目标存储空间,将目标存储空间划分为多个子存储空间。
在实施中,第一处理进程在调用Virtio接口与Vhost建立通信连接后,可以创建共享结构体,即从网络设备的操作系统处申请目标存储空间,该目标存储空间可以作为多个处理进程的共享存储空间。之后,第一处理进程可以将目标存储空间划分为多个子存储空间,每个子存储空间可以提供给一个处理进程来存储业务数据。进一步的,每个处理进程可以对应有唯一的标识信息,第一处理进程可以在划分子存储空间时,根据标识信息对每个子存储空间进行标记。可以理解,第一处理进程同样用于处理业务数据,故而目标存储空间中也存在第一处理进程对应的子存储空间。值得一提的是,每个子存储空间还可以进一步分为两个部分,一部分用于存储接收到的待解封装的业务数据,另一部分用于存储待发送的封装后的业务数据。
可选的,第一处理进程可以根据处理进程的总数,创建多个子存储空间,相应的,步骤202的处理可以如下:第一处理进程读取预设的配置文件,确定处理进程的总数;第一处理进程申请目标存储空间,根据处理进程的总数,将目标存储空间划分为多个子存储空间。
在实施中,技术人员可以预先在配置文件中记录网络设备上运行的处理进程的总数,然后将配置文件存储至网络设备中。这样,第一处理进程在创建共享结构体时,可以先读取上述预设的配置文件,确定网络设备上处理进程的总数。之后,第一处理进程可以在从网络设备的操作系统处申请目标存储空间后,将目标存储空间划分为多个子存储空间,以使子存储空间的个数与处理进程的总数相同。另外,技术人员还可以预先设定每个子存储空间的大小,并将其写入配置文件中,这样,第一处理进程可以根据每个子存储空间的大小,和处理进程的总数,从网络设备的操作系统处申请相应大小的目标存储空间。
步骤203,第二处理进程在启动时,在多个子存储空间中确定目标子存储空间,并基于目标子存储空间进行业务数据的处理。
其中,第二处理进程是不同于第一处理进程的任意处理进程。
在实施中,第二处理进程启动后,可以查找第一处理进程创建的共享结构体,具体的,第一处理进程在创建共享结构体时,可以为共享结构体设置默认的标识信息,从而第二处理进程可以根据该默认的标识信息查找到上述共享结构体。进一步的,第二处理进程可以根据自己的标识信息,在共享结构体中的多个子存储空间中确定标记有第二处理进程的标识信息的目标子存储空间。这样,第二处理进程则可以基于目标子存储空间进行业务数据的处理。可以理解,基于上述处理,每个处理进程均可以依托于目标存储空间中的一个子存储空间对业务数据的进行处理。
可选的,处理进程基于子存储空间对业务数据进行的处理过程,主要可以分为业务数据的接收阶段和业务数据的发送阶段,具体内容可以分别如下:
其一,业务数据的接收阶段:第二处理进程周期性检测目标子存储空间;如果目标子存储空间中存在待处理的业务数据,第二处理进程则获取待处理的业务数据,对待处理的业务数据进行处理。
在实施中,每个处理进程在启动后,可以通过对应的子存储空间获取待处理(待解封装)的业务数据。具体的,以第二处理进程为例,第二处理进程在启动后,可以周期性检测目标子存储空间,如果目标子存储空间中存在待解封装的业务数据,第二处理进程则可以提取该待解封装的业务数据,然后对待解封装的业务数据进行解封装处理。进而,第二处理进程可以将解封装后的业务数据提供给相应的项目进程。
可选的,上述待处理的业务数据可以是虚拟交换机从物理网卡读取并写入子存储空间的,具体的处理可以如下:虚拟交换机获取物理网卡接收到的待处理的业务数据;虚拟交换机确定所有处理进程的当前负载,将待处理的业务数据存入当前负载最低的处理进程对应的子存储空间。
在实施中,在外界向网络设备发送某一项目进程的业务数据后,网络设备的物理网卡可以接收到相应的业务数据,在解析业务数据的场景下,该业务数据可以是经过多层网络通信协议封装后的待解封装的业务数据。之后,虚拟交换机可以获取物理网卡接收到的待解封装的业务数据,然后可以根据每个处理进程当前待处理的数据量确定所有处理进程的当前负载。进而,虚拟交换机可以挑选当前负载最低的处理进程,将待解封装的业务数据存入该处理进程对应的子存储空间中。如果存在多个当前负载并列最低的处理进程,虚拟交换机则可以在其中随机选择一个处理进程。
其二,业务数据的发送阶段:第二处理进程获取待处理的业务数据,对待处理的业务数据进行处理;第二处理进程将处理后的业务数据存入目标子存储空间。
在实施中,当网络设备上的项目进程需要向外界发送业务数据时,可以先将业务数据提供给一个处理进程进行处理(封装),此处以第二处理进程为例,第二处理进程获取到项目进程提供的待封装的业务数据后,可以对待封装的业务数据进行封装处理。不难想到,如果网络设备上有多个处理进程服务于上述项目进程,项目进程则可以基于负载均衡的处理,在多个处理进程中选择当前负载最低的处理进程对业务数据进行处理。第二处理进程在对待封装的业务数据进行封装处理之后,可以将封装后的业务数据存入其对应的目标子存储空间中。
可选的,虚拟交换机可以将各子存储空间中处理后的业务数据提供给网络设备的物理网卡进行发送,相应的处理可以如下:如果检测到多个子存储空间中的目标子存储空间存储有处理后的业务数据,虚拟交换机则提取处理后的业务数据,将处理后的业务数据提供给物理网卡。
在实施中,第一处理进程创建了目标存储空间后,可以将目标存储空间的访问地址发送给虚拟交换机,这样,虚拟交换机可以按照目标存储空间的访问地址,周期性地依次查询多个子存储空间中是否存储有处理(封装)后的业务数据。如果检测到多个子存储空间中的目标子存储空间存储有封装后的业务数据,虚拟交换机则可以提取该封装后的业务数据,然后将封装后的业务数据提供给网络设备的物理网卡,从而物理网卡可以将封装后的业务数据发送至指定的网络地址。当然,在另一种情况下,当目标子存储空间中存储有待封装后的业务数据时,虚拟交换机可以接收到相应的提示信息,这样,虚拟交换机也可以检测到目标子存储空间存储有封装后的业务数据,从而可以进行后续处理。
综上所述,一方面,网络设备对接收的业务数据进行处理的过程可以如下,物理网卡接收业务数据,虚拟交换机获取业务数据,通过Vhost/Virtio接口将业务数据写入子存储空间,处理进程从子存储空间中提取业务数据,并对业务数据进行处理,将处理后的业务数据提供给项目进程;另一方面,网络设备对待发送的业务数据进行处理的过程可以如下,处理进程获取项目进程的待发送的业务数据,对业务数据进行处理,并存入子存储空间,虚拟交换机通过Vhost/Virtio接口读取子存储空间中的业务数据,通过物理网卡发送。
可选的,第一处理进程与Vhost接口进行数据协商,生成协商结果,第一处理进程在多个子存储空间中设置共享子存储空间,将协商结果存入共享子存储空间,第二处理进程在确定目标子存储空间后,访问共享子存储空间获取协商结果,并基于协商结果初始化目标子存储空间。
在实施中,第一处理进程调用Virtio接口,与部署在虚拟交换机上的Vhost接口建立通信连接时,还可以与Vhost接口进行数据协商,生成协商结果,协商结果可以包括网络设备的底层硬件特性和目标存储空间的参数信息(如目标存储空间的大小、访问地址,子存储空间的数量等)。第一处理进程在将目标存储空间划分为多个子存储空间后,可以在多个子存储空间中设置共享子存储空间,然后可以将上述协商结果存入该共享子存储空间中,目标存储空间的结构可以如图3所示。进而,当处理进程在确定了各自的子存储空间后,可以先访问上述共享子存储空间,获取其中存储的协商结果,再基于协商结果对目标子存储空间进行初始化处理。
本发明实施例中,第一处理进程在启动时,调用Virtio接口,与部署在虚拟交换机上的Vhost接口建立通信连接;第一处理进程申请目标存储空间,将目标存储空间划分为多个子存储空间;第二处理进程在启动时,在多个子存储空间中确定目标子存储空间,并基于目标子存储空间进行业务数据的处理。这样,一个处理进程调用Virtio接口与Vhost接口建立通信连接,多个处理进程以共享存储空间的方式,通过上述同一通信连接实现业务数据的收发,无需多个处理进程交替调用Virtio接口与Vhost接口建立通信连接,从而节省了网络设备的处理资源,保证了处理业务数据的效率。
基于相同的技术构思,本发明实施例还一种处理业务数据的网络设备,所述网络设备设置有虚拟交换机,并执行有多个处理进程,其中:
所述多个处理进程中的第一处理进程,用于在启动时,调用Virtio接口,与部署在所述虚拟交换机上的Vhost接口建立通信连接;
所述第一处理进程,用于申请目标存储空间,将所述目标存储空间划分为多个子存储空间;
所述多个处理进程中的第二处理进程,用于在启动时,在所述多个子存储空间中确定目标子存储空间,并基于所述目标子存储空间进行业务数据的处理。
可选的,所述第二处理进程,具体用于:
周期性检测所述目标子存储空间;
如果所述目标子存储空间中存在待处理的业务数据,则获取所述待处理的业务数据,对所述待处理的业务数据进行处理。
可选的,所述网络设备设置有物理网卡,其中:
所述虚拟交换机,用于获取所述物理网卡接收到的待处理的业务数据,确定所有处理进程的当前负载,将所述待处理的业务数据存入所述当前负载最低的处理进程对应的子存储空间。
可选的,所述第二处理进程,具体用于:
获取待处理的业务数据,对所述待处理的业务数据进行处理;
将处理后的业务数据存入所述目标子存储空间。
可选的,所述网络设备设置有物理网卡,其中:
所述虚拟交换机,用于如果检测到多个子存储空间中的目标子存储空间存储有处理后的业务数据,则提取所述处理后的业务数据,将所述处理后的业务数据提供给物理网卡。
可选的,所述第一处理进程,具体用于:
读取预设的配置文件,确定处理进程的总数;
申请目标存储空间,根据所述处理进程的总数,将所述目标存储空间划分为多个子存储空间。
可选的,所述第一处理进程,还用于与所述Vhost接口进行数据协商,生成协商结果,在所述多个子存储空间中设置共享子存储空间,将所述协商结果存入所述共享子存储空间;
所述第二处理进程,还用于在确定所述目标子存储空间后,访问所述共享子存储空间获取所述协商结果,并基于所述协商结果初始化所述目标子存储空间。
本发明实施例中,第一处理进程在启动时,调用Virtio接口,与部署在虚拟交换机上的Vhost接口建立通信连接;第一处理进程申请目标存储空间,将目标存储空间划分为多个子存储空间;第二处理进程在启动时,在多个子存储空间中确定目标子存储空间,并基于目标子存储空间进行业务数据的处理。这样,一个处理进程调用Virtio接口与Vhost接口建立通信连接,多个处理进程以共享存储空间的方式,通过上述同一通信连接实现业务数据的收发,无需多个处理进程交替调用Virtio接口与Vhost接口建立通信连接,从而节省了网络设备的处理资源,保证了处理业务数据的效率。
图4是本发明实施例提供的网络设备的结构示意图。该网络设备400可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器422(例如,一个或一个以上处理器)和存储器432,一个或一个以上存储应用程序442或数据444的存储介质430(例如一个或一个以上海量存储设备)。其中,存储器432和存储介质430可以是短暂存储或持久存储。存储在存储介质430的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对网络设备中的一系列指令操作。更进一步地,中央处理器422可以设置为与存储介质430通信,在网络设备400上执行存储介质430中的一系列指令操作。
网络设备400还可以包括一个或一个以上电源429,一个或一个以上有线或无线网络接口450,一个或一个以上输入输出接口458,一个或一个以上键盘456,和/或,一个或一个以上操作系统441,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
网络设备400可以包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行上述处理业务数据的指令。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (14)

1.一种处理业务数据的方法,其特征在于,所述方法包括:
第一处理进程在启动时,调用Virtio接口,与部署在虚拟交换机上的Vhost接口建立通信连接;
所述第一处理进程申请目标存储空间,将所述目标存储空间划分为多个子存储空间;
第二处理进程在启动时,在所述多个子存储空间中确定目标子存储空间,并基于所述目标子存储空间进行业务数据的处理。
2.根据权利要求1所述的方法,其特征在于,所述基于所述目标子存储空间进行业务数据的处理,包括:
所述第二处理进程周期性检测所述目标子存储空间;
如果所述目标子存储空间中存在待处理的业务数据,所述第二处理进程则获取所述待处理的业务数据,对所述待处理的业务数据进行处理。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
所述虚拟交换机获取物理网卡接收到的待处理的业务数据;
所述虚拟交换机确定所有处理进程的当前负载,将所述待处理的业务数据存入所述当前负载最低的处理进程对应的子存储空间。
4.根据权利要求1所述的方法,其特征在于,所述基于所述目标子存储空间进行业务数据的处理,包括:
所述第二处理进程获取待处理的业务数据,对所述待处理的业务数据进行处理;
所述第二处理进程将处理后的业务数据存入所述目标子存储空间。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
如果检测到多个子存储空间中的目标子存储空间存储有处理后的业务数据,所述虚拟交换机则提取所述处理后的业务数据,将所述处理后的业务数据提供给物理网卡。
6.根据权利要求1所述的方法,其特征在于,所述第一处理进程申请目标存储空间,将所述目标存储空间划分为多个子存储空间,包括:
所述第一处理进程读取预设的配置文件,确定处理进程的总数;
所述第一处理进程申请目标存储空间,根据所述处理进程的总数,将所述目标存储空间划分为多个子存储空间。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述第一处理进程与所述Vhost接口进行数据协商,生成协商结果;
所述第一处理进程在所述多个子存储空间中设置共享子存储空间,将所述协商结果存入所述共享子存储空间;
所述第二处理进程在确定所述目标子存储空间后,访问所述共享子存储空间获取所述协商结果,并基于所述协商结果初始化所述目标子存储空间。
8.一种处理业务数据的网络设备,其特征在于,所述网络设备设置有虚拟交换机,并执行有多个处理进程,其中:
所述多个处理进程中的第一处理进程,用于在启动时,调用Virtio接口,与部署在所述虚拟交换机上的Vhost接口建立通信连接;
所述第一处理进程,用于申请目标存储空间,将所述目标存储空间划分为多个子存储空间;
所述多个处理进程中的第二处理进程,用于在启动时,在所述多个子存储空间中确定目标子存储空间,并基于所述目标子存储空间进行业务数据的处理。
9.根据权利要求8所述的网络设备,其特征在于,所述第二处理进程,具体用于:
周期性检测所述目标子存储空间;
如果所述目标子存储空间中存在待处理的业务数据,则获取所述待处理的业务数据,对所述待处理的业务数据进行处理。
10.根据权利要求9所述的网络设备,其特征在于,所述网络设备设置有物理网卡,其中:
所述虚拟交换机,用于获取所述物理网卡接收到的待处理的业务数据,确定所有处理进程的当前负载,将所述待处理的业务数据存入所述当前负载最低的处理进程对应的子存储空间。
11.根据权利要求8所述的网络设备,其特征在于,所述第二处理进程,具体用于:
获取待处理的业务数据,对所述待处理的业务数据进行处理;
将处理后的业务数据存入所述目标子存储空间。
12.根据权利要求11所述的网络设备,其特征在于,所述网络设备设置有物理网卡,其中:
所述虚拟交换机,用于如果检测到多个子存储空间中的目标子存储空间存储有处理后的业务数据,则提取所述处理后的业务数据,将所述处理后的业务数据提供给物理网卡。
13.根据权利要求8所述的网络设备,其特征在于,所述第一处理进程,具体用于:
读取预设的配置文件,确定处理进程的总数;
申请目标存储空间,根据所述处理进程的总数,将所述目标存储空间划分为多个子存储空间。
14.根据权利要求8所述的网络设备,其特征在于,所述第一处理进程,还用于与所述Vhost接口进行数据协商,生成协商结果,在所述多个子存储空间中设置共享子存储空间,将所述协商结果存入所述共享子存储空间;
所述第二处理进程,还用于在确定所述目标子存储空间后,访问所述共享子存储空间获取所述协商结果,并基于所述协商结果初始化所述目标子存储空间。
CN201810205185.8A 2018-03-13 2018-03-13 一种处理业务数据的方法和网络设备 Active CN108491278B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201810205185.8A CN108491278B (zh) 2018-03-13 2018-03-13 一种处理业务数据的方法和网络设备
US16/330,205 US20210334210A1 (en) 2018-03-13 2018-04-02 Method and network device for processing service data
PCT/CN2018/081555 WO2019174074A1 (zh) 2018-03-13 2018-04-02 一种处理业务数据的方法和网络设备
EP18880058.5A EP3567483B1 (en) 2018-03-13 2018-04-02 Method for processing service data, and network device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810205185.8A CN108491278B (zh) 2018-03-13 2018-03-13 一种处理业务数据的方法和网络设备

Publications (2)

Publication Number Publication Date
CN108491278A CN108491278A (zh) 2018-09-04
CN108491278B true CN108491278B (zh) 2020-09-18

Family

ID=63338805

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810205185.8A Active CN108491278B (zh) 2018-03-13 2018-03-13 一种处理业务数据的方法和网络设备

Country Status (4)

Country Link
US (1) US20210334210A1 (zh)
EP (1) EP3567483B1 (zh)
CN (1) CN108491278B (zh)
WO (1) WO2019174074A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110879748B (zh) * 2018-09-06 2023-06-13 阿里巴巴集团控股有限公司 一种共享资源分配方法、装置和设备
CN109976820B (zh) * 2019-04-09 2020-03-03 苏州浪潮智能科技有限公司 一种应用程序运行方法和应用程序架构
CN110489358B (zh) * 2019-07-12 2021-05-28 优刻得科技股份有限公司 一种交互控制方法及设备系统
CN111241201B (zh) * 2020-01-14 2023-02-07 厦门网宿有限公司 一种分布式数据处理方法及系统
CN112181512B (zh) * 2020-09-14 2022-11-11 锐捷网络股份有限公司 一种业务进程管理方法、装置、电子设备及存储介质
CN112543137A (zh) * 2020-11-30 2021-03-23 中国电子科技集团公司第五十四研究所 基于半虚拟化和ovs-dpdk的虚拟机网络加速系统

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101009593A (zh) * 2006-12-28 2007-08-01 杭州华为三康技术有限公司 一种实现终端和伪终端设备绑定的方法、装置及系统
CN102591715A (zh) * 2012-01-05 2012-07-18 北京航空航天大学 一种使用多队列技术的虚拟机网络性能优化的实现方法
CN104468594A (zh) * 2014-12-15 2015-03-25 北京奇虎科技有限公司 一种数据请求的方法、装置及系统
CN105183922A (zh) * 2015-10-26 2015-12-23 北京美数信息科技有限公司 一种高并发的存储装置
CN105718305A (zh) * 2016-03-15 2016-06-29 南京南瑞继保电气有限公司 一种基于进程的仿真任务并行调度方法
CN106095580A (zh) * 2016-06-14 2016-11-09 上海交通大学 一种针对半虚拟化网卡的数据包高效发送方法
CN106201349A (zh) * 2015-12-31 2016-12-07 华为技术有限公司 一种在物理主机中处理读/写请求的方法和装置
CN106681842A (zh) * 2017-01-18 2017-05-17 迈普通信技术股份有限公司 一种多进程系统中共享内存的管理方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10635474B2 (en) * 2016-05-09 2020-04-28 Marvell Asia Pte, Ltd. Systems and methods for virtio based optimization of data packet paths between a virtual machine and a network device for live virtual machine migration

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101009593A (zh) * 2006-12-28 2007-08-01 杭州华为三康技术有限公司 一种实现终端和伪终端设备绑定的方法、装置及系统
CN102591715A (zh) * 2012-01-05 2012-07-18 北京航空航天大学 一种使用多队列技术的虚拟机网络性能优化的实现方法
CN104468594A (zh) * 2014-12-15 2015-03-25 北京奇虎科技有限公司 一种数据请求的方法、装置及系统
CN105183922A (zh) * 2015-10-26 2015-12-23 北京美数信息科技有限公司 一种高并发的存储装置
CN106201349A (zh) * 2015-12-31 2016-12-07 华为技术有限公司 一种在物理主机中处理读/写请求的方法和装置
CN105718305A (zh) * 2016-03-15 2016-06-29 南京南瑞继保电气有限公司 一种基于进程的仿真任务并行调度方法
CN106095580A (zh) * 2016-06-14 2016-11-09 上海交通大学 一种针对半虚拟化网卡的数据包高效发送方法
CN106681842A (zh) * 2017-01-18 2017-05-17 迈普通信技术股份有限公司 一种多进程系统中共享内存的管理方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"半虚拟化框架Virtio的网络请求性能优化";刘禹燕等;《小型微型计算机系统》;20180131;第105-110 *

Also Published As

Publication number Publication date
CN108491278A (zh) 2018-09-04
WO2019174074A1 (zh) 2019-09-19
US20210334210A1 (en) 2021-10-28
EP3567483A4 (en) 2019-12-18
EP3567483A1 (en) 2019-11-13
EP3567483B1 (en) 2020-10-28

Similar Documents

Publication Publication Date Title
CN108491278B (zh) 一种处理业务数据的方法和网络设备
US11599490B1 (en) Packet queueing for network device
CN108268328B (zh) 数据处理装置及计算机
US10120705B2 (en) Method for implementing GPU virtualization and related apparatus, and system
US9154451B2 (en) Systems and methods for sharing devices in a virtualization environment
US9128893B2 (en) Remote direct memory access socket aggregation
EP4160424A2 (en) Zero-copy processing
WO2016115831A1 (zh) 一种虚拟机容错的方法、装置及系统
US9910687B2 (en) Data flow affinity for heterogenous virtual machines
CN114218133A (zh) 一种数据传输方法及装置
US10013388B1 (en) Dynamic peer-to-peer configuration
US9621633B2 (en) Flow director-based low latency networking
CN112764877B (zh) 一种用于硬件加速设备与docker内进程通信的方法与系统
US20150113092A1 (en) Method and apparatus for distributed enterprise data pattern recognition
CN115269213A (zh) 数据接收方法、数据发送方法、装置、电子设备及介质
WO2022170946A1 (zh) 一种访问控制方法及相关装置
US11042394B2 (en) Method for processing input and output on multi kernel system and apparatus for the same
US11467998B1 (en) Low-latency packet processing for network device
WO2016095644A1 (zh) 数据库的高可用解决方法和装置
US8041902B2 (en) Direct memory move of multiple buffers between logical partitions
CN109656674B (zh) 一种计算机设备、虚拟化芯片及数据传输方法
CN115549858A (zh) 数据传输方法以及装置
US11775328B2 (en) Virtual bond for efficient networking of virtual machines
CN111371723B (zh) 一种在dpdk框架下实现pptp vpn网络隔离的方法和装置
US11924336B1 (en) Cryptographic artifact generation using virtualized security modules

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
TR01 Transfer of patent right

Effective date of registration: 20210809

Address after: 518000 b1-1302, building B, Kexing Science Park, No. 15, Keyuan Road, Science Park community, Yuehai street, Nanshan District, Shenzhen, Guangdong

Patentee after: Shenzhen aijieyun Technology Co.,Ltd.

Address before: 5 / F, building a, Guangqi Cultural Plaza, 2899 Xietu Road, Xuhui District, Shanghai, 200030

Patentee before: WANGSU SCIENCE & TECHNOLOGY Co.,Ltd.

TR01 Transfer of patent right