CN108512780B - 定时器实现方法及相关装置 - Google Patents

定时器实现方法及相关装置 Download PDF

Info

Publication number
CN108512780B
CN108512780B CN201710113015.2A CN201710113015A CN108512780B CN 108512780 B CN108512780 B CN 108512780B CN 201710113015 A CN201710113015 A CN 201710113015A CN 108512780 B CN108512780 B CN 108512780B
Authority
CN
China
Prior art keywords
timer
message
virtual machine
host
queue
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
CN201710113015.2A
Other languages
English (en)
Other versions
CN108512780A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201710113015.2A priority Critical patent/CN108512780B/zh
Priority to PCT/CN2017/094935 priority patent/WO2018157543A1/zh
Publication of CN108512780A publication Critical patent/CN108512780A/zh
Application granted granted Critical
Publication of CN108512780B publication Critical patent/CN108512780B/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
    • H04L49/00Packet switching elements
    • H04L49/70Virtual switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/56Queue scheduling implementing delay-aware scheduling
    • H04L47/562Attaching a time tag to queues
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/56Queue scheduling implementing delay-aware scheduling
    • H04L47/568Calendar queues or timing rings
    • 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/45579I/O management, e.g. providing access to device drivers or storage

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请涉及计算机领域,更具体地说,涉及定时器实现技术。在一种定时器实现方法中,虚拟机接收包括定时器报文的报文队列;其中,定时器报文是根据虚拟机外部的精准定时器定时插入的;虚拟机解析报文队列中的报文,确定被解析报文的类型,响应于被解析报文的类型为定时器报文,执行预设的定时器动作。相较于现有技术,本申请提供的方案中,摒弃了使用虚拟机内部的定时器执行定时器动作的方式,而采用根据定时器报文执行预设的定时器动作的方式。又由于定时器报文是根据虚拟外部的精准定时器定时插入的,因此,定时器报文不会受到虚拟机无法工作的影响,根据定时器报文执行的定时器动作是准时的。

Description

定时器实现方法及相关装置
技术领域
本申请涉及计算机领域,更具体地说,涉及定时器实现技术。
背景技术
虚拟机软件(Virtual Machine ware,VMware)、内核虚拟机(Kernel-basedVirtual Machine,KVM)等环境的虚拟化技术的原理是,将一台物理机的物理资源虚拟成多个虚拟机(Virtual Machine,VM),使得每个VM都可以实现物理机的功能。
在现在方式中,虚拟机根据内部定时器执行预设的定时器动作。上述定时器动作例如可包括定时刷新信息、定时执行特定动作、计算准确的时间间隔等。
然而,虚拟机工作依赖于物理CPU的调度(也即在物理CPU上运行)。如果物理CPU上部署有多个虚拟机,则对于某一虚拟机而言,其可能得不到物理CPU的及时调度,例如,可能因被其他进程抢占而得不到物理CPU的及时调度。在虚拟机得不到及时调度的情况下,虚拟机的内部定时器也无法正常工作,进而影响定时器动作的准时执行。
发明内容
有鉴于此,本申请实施例的目的在于提供定时器实现方法及相关装置,以解决上述问题。
为实现上述目的,本申请实施例提供如下技术方案:
一方面,本申请的实施例提供一种定时器实现方法,包括:接收报文队列;其中,所述报文队列中包括定时器报文,所述定时器报文是根据外部的精准定时器定时插入所述报文队列的;解析所述报文队列中的报文,确定被解析报文的类型;响应于所述被解析报文的类型为定时器报文,执行预设的定时器动作。上述方法可应用于虚拟化场景,由虚拟机执行,在此场景下,在一个示例中,可由虚拟交换机OVS生成定时器报文并定时插入报文队列中。在虚拟化场景下,本申请实施例提供的定时器实现方法摒弃了使用虚拟机内部的定时器执行定时器动作的方式,而采用根据定时器报文执行预设的定时器动作的方式。又由于定时器报文是根据虚拟外部的精准定时器定时插入的,因此,定时器报文不会受到虚拟机无法工作的影响,根据定时器报文执行的定时器动作是准时的。此外,上述方法也可应用于非虚拟化场景,由报文的接收方执行。这样报文的接收方也可不使用其内部的定时器执行定时器动作。
在一个可能的设计中,在应用于虚拟化场景时,上述外部的精准定时器为宿主机定时器。由于host上的定时器能够保证精确性,因此可保证根据定时器报文执行的定时器动作是准时的。
在一个可能的设计中,上述定时器报文由虚拟交换机OVS根据宿主机定时器定时插入上述报文队列。这样,只要能顺序的处理报文队列中的报文,就可准时执行预设的定时器动作。
在一个可能的设计中,上述定时器报文的内容至少包含当前时间信息。定时器报文包含当前时间信息,有利于虚拟机得到两定时器报文之间的时间间隔,并根据时间间隔决定是否做一些定时器动作。此外在有需要时,虚拟机也可根据定时器报文中的时间信息更新系统当前时间。
在一个可能的设计中,上述定时器报文为以太网报文,以与业务报文保持一致。
又一方面,本申请实施例提供了一种由虚拟交换机OVS执行的定时器实现方法,该方法包括:接收报文;在接收到的报文需要发送至虚拟机时,将所述报文放入向虚拟机转发的报文队列中;在所述报文队列中定时插入定时器报文;所述定时器报文用于所述虚拟机执行预设的定时器动作;转发插入定时器报文的报文队列。在一个示例中,所述定时插入定时器报文包括:根据宿主机定时器定时插入定时器报文。
在一个可能的设计中,上述定时器报文的内容至少包含当前时间信息。定时器报文包含当前时间信息,有利于虚拟机得到两定时器报文之间的时间间隔,并根据时间间隔决定是否做一些定时器动作。此外在有需要时,虚拟机也可根据定时器报文中的时间信息更新系统当前时间。
又一方面,本申请实施例提供了一种定时器实现装置,该定时器实现装置具有实现上述方法实际中虚拟机行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。
又一方面,本申请实施例提供了一种定时器实现装置,该定时器实现装置具有实现上述方法实际中虚拟交换机行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。
又一方面,本申请实施例提供了一种宿主机Host,该Host包括:运行在Host上的OVS及中间软件层Hypervisor,所述Hypervisor上运行有至少一个虚拟机VM;所述VM具有实现上述方法实际中虚拟机行为的功能。
又一方面,本申请实施例提供了一种宿主机Host,该Host包括:运行在Host上的OVS及中间软件层Hypervisor,所述Hypervisor上运行有至少一个虚拟机VM;所述OVS具有实现上述方法实际中OVS行为的功能。
又一方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
又一方面,本申请提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
相较于现有技术,本申请提供的方案中,摒弃了使用虚拟机内部的定时器执行定时器动作的方式,而采用根据定时器报文执行预设的定时器动作的方式。又由于定时器报文是根据虚拟外部的精准定时器定时插入的,因此,定时器报文不会受到虚拟机无法工作的影响,根据定时器报文执行的定时器动作是准时的。
附图说明
图1为本申请实施例提供的、基于物理主机构建的虚拟化系统的结构示例图;
图2为本申请实施例提供的OVS与VM的应用场景示意图;
图3、5为本申请实施例提供的定时器实现方法的交互流程图;
图4a为在现有方式中,虚拟机得到及时调度时,虚拟机的刷新及报文接收情况;
图4b为在现有方式中,虚拟机未得到及时调度时,虚拟机的刷新及报文接收情况;
图4c为本申请实施例提供的、采用本申请提供的方案后,在虚拟机未得到及时调度时,虚拟机在t0~t2期间的报文接收情况;
图6为本申请实施例提供的虚拟机的示例性结构图;
图7为本申请实施例提供的虚拟交换机的示例性结构图。
具体实施方式
本申请实施例提供了定时器实现方法及相关装置(定时器实现装置、宿主机、物理主机、基于物理主机构建的虚拟化系统),以解决定时器动作无法准时执行的问题。
其中,物理主机可包括图1所示的硬盘110、中央处理器111、网络接口卡112和存储器113。
而基于上述物理主机构建的虚拟化系统104的一种可能的结构示意图可参见图1,包括3个部分,分别为硬件平台100(或称为硬件层)、中间软件层(Hypervisor)101和虚拟机执行空间102。
硬件平台100中可以包括硬盘110、中央处理器111、网络接口卡112和存储器113。
Hypervisor101和虚拟机执行空间102分别提供了虚拟机的硬件平台和软件平台。
Hypervisor101运行在宿主机(Host)上,是运行在物理服务器和操作系统之间的中间软件层,可允许多个操作系统和应用共享一套基础物理硬件。
其中,Hypervisor101包含了虚拟机监视器120a、120b¨¨120n。Hypervisor是物理硬件和虚拟机之间的中间层,负责协调各个虚拟机对硬件平台的访问。虚拟机监视器包括实现虚拟机的虚拟硬件平台。
图1中,虚拟机监视器120a中包含虚拟硬件平台121a,虚拟硬件平台中包含了虚拟出来的存储器122,中央处理器123,硬盘124,显卡125和网络接口卡126等。虚拟机执行空间102中运行了多个虚拟机103a、103b¨¨103n。虚拟机103a的软件系统运行在虚拟机监视器120a的虚拟硬件平台121a上,其他虚拟机的软件系统也运行在对应的虚拟机监视器的虚拟硬件平台上。
客户操作系统110运行在虚拟机103a中,客户操作系统110包含了一个设备驱动层132,设备驱动层132安装了虚拟显示驱动134、网络接口卡驱动136等驱动程序。
在宿主机上还运行有虚拟交换机(Open vSwitch,OVS)。
图2示出了OVS与VM的一种应用场景:不同物理主机上的VM(VM1、VM2),一个作为客户端(client),一个作为服务器(server),可通过OVS进行通信。
当然,在其他应用场景下,同一物理主机上的两个VM之间,也可通过OVS通信。
OVS作为一款开源的基于Open Flow协议的软交换机,可以部署在Linux服务器上。运行在同一物理主机上的OVS和VM,可组成小型的交换网络。在非直通模式或直通模式(例如单根I/O虚拟化(Single-Root I/O Virtualization,SR-IOV))部署下,虚拟防火墙、虚拟路由器之下往往连接OVS。
OVS的工作原理与物理交换机类似。OVS两端分别连接着物理网卡和多块虚拟网卡,同时OVS内部会维护一张映射表,根据MAC地址寻找对应的虚拟机链路进而完成数据转发。
虚拟机103a、103b¨¨103n可执行定时器动作。上述定时器动作例如可包括定时刷新信息、定时执行特定动作、计算准确的时间间隔、处理流量速率敏感业务等。
OVS与VM之间通过交互,可实现下述图3、5所示实施例提供的定时器实现方法。
从硬件角度看,中央处理器111执行存储器113中所存放的程序,以及调用其他设备,可用于实现下述图3,5所示实施例提供的定时器实现方法。
下面将基于上面的本申请涉及的共性方面,对本申请实施例进一步详细说明。
图3示出了上述定时器实现方法的一种示例性交互流程,包括:
300、OVS接收报文;
OVS可接收来自不同发送端的业务报文,例如,可接收其他物理设备发送的业务报文,OVS所在的物理主机与上述其他物理设备可通过移动通信系统、数据网络等进行连接。
更具体的,请参见图2,运行在Host B上的OVS2可接收由其他物理主机上的VM1发送的业务报文。
此外,OVS也可接收同一物理主机上各VM发送的业务报文。
301、在接收到的报文需要发送至VM时,OVS将报文放入报文队列中。
更具体的,OVS可根据报文的媒体访问控制(Medium/Media Access Control,MAC)地址寻找对应的VM,将报文放入与该VM对应的报文队列中。
302、OVS在报文队列中定时插入定时器报文。
上述定时器报文可根据VM外部的精准定时器定时插入的。在一个示例中,由于OVS在Host上运行,因此,OVS可根据Host定时器定时插入定时器报文。而Host定时器是准确的,这保证了后续VM根据定时器报文执行定时器动作的准确性。
此外,在本申请其他实施例中,除采用OVS所在Host上的定时器,还可根据其他精准定时器定时插入定时器报文。例如,在高速链路中,可由报文的发送端定时在发送的报文中插入定时器报文。或者,也可由Host上独立的定时器模块定时插入定时器报文。
定时器报文穿插在业务报文中,用于VM执行预设的定时器动作。本文后续还将介绍定时器动作,这里不作赘述。
303、OVS向该VM转发,插入定时器报文的报文队列。
更具体的,OVS可根据映射表,二层转发报文队列中的报文。
VM则会接收(包含定时器报文的)报文队列,其中,“接收报文队列”可理解为接收报文队列中的报文。
更具体的,可由VM的虚拟网卡接收报文队列中报文,将报文存储至固定的存储区域中。
304、VM解析报文队列中的报文,确定被解析报文的类型;
在一个示例中,可由VM中的Guest应用程序(例如报文处理应用程序或报文转发应用程序)解析报文,确定报文的类型。
需要说明的是,Guest应用程序需要顺序处理报文队列中的报文,这样可以保证两相邻的定时器报文之间的时间时隔是固定的。
305、响应于被解析报文的类型为定时器报文,VM执行预设的定时器动作。
当前服务器大都采用以太网接口,则VM接收到的业务报文也是以太网报文。则上述定时器报文也可为标准以太网报文,这样就可与业务报文保持一致。
定时器报文的报文格式示例性的如下表1所示:
Figure BDA0001234974020000051
表1
在表1中,0xffffffffffff表示广播地址,针对VM内部业务处理有Mac地址过滤功能的情况,采用广播地址作为目的MAC可保证所有VM都能接收到定时器报文,而不至于被过滤掉。
表1中的协议类型用于表征定时器报文的类型。在具体实现时,可选择一个非通用的协议类型来表征定时器报文的类型,以避免与采用通用协议的业务报文相混淆。
在一个示例中,定时器报文的内容至少可包含当前时间信息。这里的当前时间信息可指定时器报文的生成时间。
在定时器报文中包含当前时间信息,有利于VM计算得到两定时器报文之间的时间间隔,并根据时间间隔决定是否做一些定时器动作。相邻两定时器报文的时间间隔默认为毫秒级,其精确级别可依需要配置。
假定在VM上,业务A对应的第一定时器动作是每隔10毫秒刷新一次信息,业务B对应的第二定时器动作是每隔20毫秒发送一次心跳信息等等。并假定相邻两定时器报文之间的时间间隔为10毫秒。则:
每确定出一个定时器报文,就执行一次第一定时器动作;每确定出两个定时器报文,就执行一次第二定时器动作。
更具体的,Guest应用程序可通知相应执行模块执行定时器动作。沿用前例,Guest应用程序可通知业务A的执行模块执行第一定时器动作,通知业务B的执行模块执行第二定时器动作。
此外在有需要时,VM也可根据定时器报文中的时间信息更新系统当前时间。
可见,相较于现有技术,本申请提供的方案中,摒弃了使用虚拟机内部的定时器执行定时器动作的方式,而采用根据定时器报文执行预设的定时器动作的方式。同时,定时器报文是根据虚拟外部的精准定时器定时插入的,因此,定时器报文不会受到虚拟机无法工作的影响,根据定时器报文执行的定时器动作是准时的。
下面将以举例对比的方式来说明,与现有技术相比,本申请提供的方案如何令定时器动作准时。
以VM作为虚拟网关(虚拟防火墙或虚拟路由器)为例,虚拟网关需运行例如分布式拒绝服务(Distributed Denial of service,DDOS)防御业务、带宽限制业务等流量速率敏感业务。这些流量速率敏感业务依赖“单位时间速率”,如“每秒报文数量”、“每秒连接数量”等。
而单位时间速率又依赖于准确的时间间隔,以及在准确的时间间隔内处理的业务数量。以每秒报文数量为例,假定A类型的报文要求的每秒报文数量是100,则虚拟机每秒为A类型的报文分配100个转发权限。虚拟机需要每隔1秒刷新一次转发权限(将转发权限重新配置为100)。
在一秒钟内,每转发一个A类型的报文,上述转发权限就减1。若转发权限降到了0但还未到达1秒钟,VM则会将未被转发的A类型报文丢弃。也即,若虚拟机在1秒内接收到的A类型的报文数量为200个,那么在转发时,就有100个报文需要丢弃,不被转发。
在现有方式中,由于是依照VM内部的定时器刷新转发权限的,在VM得不到及时调度的情况下,VM的内部定时器也无法正常工作。这样,会导致流量速率业务的丢包现象。
请参见图4a,假定在得到及时调度时,VM应在t0、t1和t2时刻刷新转发权限。为简便起见,假定在t0~t1,t1~t2这两个时段,分别接收了200个A类型的报文。
则在t1时刻,会将转发权限刷新为100,之后会对t0~t1时段接收的200个A类型的报文进行转发处理:前100个报文会被转发,后100个报文会被丢弃;同理,在t2时刻,会将转发权限更新刷新为100,之后对t1~t2时段接收的200个A类型的报文进行同样的转发处理。因此,在t0~t2之间,总共会丢弃200个报文。
而若VM未得到及时调度,请参见图4b,假定VM在t1时刻未被调度,在t2时刻被调度,则VM在t1时刻无法刷新转发权限,而在t2时刻将刷新转发权限。此时,VM要处理的是t0~t2期间内接收到的400个A类型的报文,则根据转发权限,虚拟机会丢弃300个A类型的报文。
可见,与及时调度的情况相比,采用现有方式会导致额外有100个报文不能转发,从而造成报文丢失。并且,在t0~t2期间只转发了100个报文,每秒报文数量变为50,从而无法满足流量速率敏感业务的要求。
同理,其他的定时器动作也会因虚拟机得不到及时调度而变得不准确。
而采用本申请提供的方案则不同,请参见图4c,仍假定VM在t1时刻未被调度,在t2时刻被调度。则VM在t0~t2期间内接收到400个A类型的报文,此外,在400个A类型的报文中,还穿插着两个定时器报文,一个是OVS在t1时刻插入的,一个是OVS在t2时刻插入的。为区别起见,可称为第一定时器报文和第二定时器报文。
实际上,VM处理报文的能力很强大,可以快速处理多个报文。由于400个A类型的报文中,还穿插着两个定时器报文,则VM在确定出第一定时器报文时,会丢掉第一定时器报文之前的100个报文。而在确定出第二定时器报文时,会丢掉第一定时器报文与第二定时器报文之间的后100个报文。这样,与及时调度的情况相比,采用本申请提供的方案同样总共会丢弃200个报文。这样,与现有方式相比,本申请提供的方案并不会丢弃额外的报文。每秒报文数量也仍为100,从而可满足流量速率敏感业务的要求。
需要说明的是,在本申请中,单位时间速率依赖于“相对”时间间隔,以及在“相对”时间间隔内处理的业务数量,“相对”时间间隔是根据相邻两定时器报文确定的。由于定时器报文是根据外部精准定时器定时插入的,根据定时器报文确定出的相对时间间隔也是精准的,可保证计算单位时间速率的准确性,进而保证流量速率敏感业务处理的准确性。
下面,将以图2所示场景为例,对本申请提供的方案进行更为详细的介绍。
图2所示场景基于前述提及的SR-IOV。SR-IOV技术是一种基于硬件的虚拟化解决方案,允许在VM之间高效共享快速外设组件互连(Peripheral Component InterconnectExpress,PCIe)设备,并且它是在硬件中实现的,创建的新虚拟机可允许将VM直接连接到I/O设备,可获得能与本机性能媲美的I/O性能。
在图2中,VM1和VM2为两台虚拟防火墙或路由器,一个作为client,一个作为server,分别部署于不同的物理主机的Host上。两物理主机通过物理交换机(SWITCH)通信。
在两Host上(Host A和Host B)上分别运行着OVS。
其中,OVS两端分别连接着物理网卡和虚拟网卡。在OVS与VM的虚拟网卡之间,连接有虚拟网卡层(tap)设备,tap设备是Linux上的一个虚拟网络接口设备,等于以太网设备。OVS可通过tap向VM的虚拟网卡发送报文。
图5示出了基于图2所示场景的定时器实现方法的另一种示例性交互流程,包括:
501、VM1通过内部驱动、虚拟网卡1和tap1往Host A的队列发送业务报文。
502、Host A上的OVS1根据转发表(或映射表)对报文进行二层转发,报文被发给物理网卡1。
503、报文从物理网卡1发送出去,物理网卡2接收到报文。
任一物理网卡可采用现有方式发送或接收报文,当然也不排除未来有新的方式发送或接收报文。
物理网卡2接收到的报文会发送至Host B上的OVS2。
504、Host B上的OVS2发现接收的报文需要上送VM2,将报文放入报文队列。
504部分与前述实施例的步骤301相类似,相关描述请参见前述记载,在此不作赘述。
505、OVS2在报文队列中定时插入定时器报文。
在一个示例中,可在OVS上增加定时器处理单元执行步骤505。
步骤505可实现在报文上送至VM之前,定时注入定时器报文。
在本申请其他实施例中,也可直接在各种虚拟化或非虚拟化接口上集成定时器处理单元,在将报文队列上送至VM之前,定时注入定时器报文。
505与前述实施例的步骤302相类似,相关描述请参见前述记载,在此不作赘述。
506、OVS2将插入定时器报文的报文队列发送至tap2。
507、tap2将报文队列发给VM2的虚拟网卡。
步骤506和507,是前述实施例步骤303的具体实现方式,相关描述请参见前述记载,在此不作赘述。
508、VM2的内部业务通过数据面开发工具套件(Data Plane Development Kit,DPDK)或套接口(socket)收到报文,之后,对报文进行解析,进行业务转发,以及,在被解析报文的类型为定时器报文时,执行预设的定时器动作。
相关描述请参见前述实施例步骤304-305的记载,在此不作赘述。
更具体的,可由VM上运行的报文处理应用程序或报文转发应用程序完成步骤508。报文处理应用程序或报文转发应用程序在处理报文的过程中,可执行预设的定时器动作,在此过程中,无需异步维持内部的定时器。
需要说明的是,除应用在非虚拟化场景外,非虚拟化场景也可采用类似的方案:
可由报文发送方定时向报文队列中插入定时器报文,报文接收方根据定时器报文执行预设的定时器动作。这样,即使报文接收方的内部定时器不准确,也可以保证执行定时器动作的准确性。
本发明实施例还要求保护物理主机,物理主机的示例性结构可参见图1,包括硬件层、运行在该硬件层之上的Host。在Host上则运行有OVS及Hypervisor,而在Hypervisor上则运行有至少一个VM。
其中,VM具有实现上述方法实际中虚拟机行为的功能,而OVS具有实现上述方法实际中OVS行为的功能。
本发明实施例还要求保护前述的Host。前已述及,在Host上运行有OVS及Hypervisor,而在Hypervisor上运行有至少一个VM。
图6示出了上述VM的一种示例性结构,包括:
第一接收单元61,用于接收报文队列;
其中,所述报文队列中包括定时器报文,所述定时器报文是根据所述VM外部的精准定时器定时插入所述报文队列的。
相关描述请参见本文前述记载,在此不作赘述。
解析单元62,用于解析所述报文队列中的报文,确定被解析报文的类型;
相关描述请参见本文前述记载,在此不作赘述。
执行单元63,用于响应于所述被解析报文的类型为定时器报文,执行预设的定时器动作。
相关描述请参见本文前述记载,在此不作赘述。
图7示出了上述OVS的一种示例性结构,包括:
第二接收单元71,用于接收报文;
相关描述请参见本文前述记载,在此不作赘述。
报文分发单元72,在接收到的报文需要发送至虚拟机时,将所述报文放入报文队列;
其中,上述报文队列将向所述虚拟机转发。
相关描述请参见本文前述记载,在此不作赘述。
定时器处理单元73,用于在所述报文队列中定时插入定时器报文;所述定时器报文用于所述虚拟机执行预设的定时器动作;
相关描述请参见本文前述记载,在此不作赘述。
转发单元74,用于转发插入定时器报文的报文队列。
相关描述请参见本文前述记载,在此不作赘述。
其中,第二接收单元71可用于执行图3所示实施例的步骤300,以及,接收在图5所示实施例步骤503中物理网卡2发送的业务报文;
报文分发单元72可用于执行图3所示实施例的步骤301,以及,图5所示实施例的步骤504;
定时器处理单元73可用于执行图3所示实施例的步骤302,以及,图5所示实施例的步骤505;
转发单元74,可用于执行图3所示实施例的步骤303,以及,图5所示实施例的步骤506;第一接收单元61可用于接收转发单元74转发的报文队列;
解析单元62可用于执行图3所示实施例的步骤304,以及,图5所示实施例步骤508中的解析操作;
执行单元63可用于执行图3所示实施例的步骤305,并可执行图5所示实施例步骤508中的业务转发及预设的定时器动作。
本申请实施例还要求保护定时器实现装置。具体的,该定时器实现装置可为前述的VM或前述的OVS。
当上述定时器实现装置为VM时,其示例性结构可参见图6;而当上述定时器实现装置为OVS时,其示例性结构可参见图7。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可能全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介绍传输。例如,所述计算机指令可以从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如DVD)、或者半导体介质(例如固态硬盘(Solid State Disk(SSD))等。
以上所述的具体实施方式,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本申请的具体实施方式而已,并不用于限定本申请的保护范围,凡在本申请的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本申请的保护范围之内。

Claims (21)

1.一种定时器实现方法,其特征在于,应用于虚拟机,包括:
接收虚拟交换机发送的报文队列,其中,所述报文队列中包括定时器报文,所述定时器报文是由所述虚拟交换机根据所述虚拟机外部的精准定时器定时插入所述报文队列的,所述报文队列还包括除所述定时器报文外的其它报文,所述定时器报文用于指示定时信息,所述虚拟机与所述虚拟交换机位于同一宿主机;
顺序解析所述报文队列中的报文,确定被解析报文的类型;
响应于所述被解析报文的类型为定时器报文,执行预设的定时器动作。
2.如权利要求1所述的方法,其特征在于,所述外部的精准定时器为宿主机定时器。
3.如权利要求2所述的方法,其特征在于,所述定时器报文是由虚拟交换机OVS根据宿主机定时器定时插入所述报文队列的。
4.如权利要求1所述的方法,其特征在于,所述定时器报文的内容至少包含当前时间信息。
5.如权利要求1-4任一项所述的方法,其特征在于,所述定时器报文为以太网报文。
6.一种定时器实现方法,其特征在于,应用于虚拟交换机OVS,包括:
接收报文;
在接收到的报文需要发送至虚拟机时,将所述报文放入向虚拟机转发的报文队列中,所述虚拟机与所述虚拟交换机位于同一宿主机;
根据所述虚拟机外部的精准定时器在所述报文队列中定时插入定时器报文,所述定时器报文用于所述虚拟机执行预设的定时器动作,所述定时器报文用于指示定时信息;
向所述虚拟机转发插入定时器报文的报文队列。
7.如权利要求6所述的方法,其特征在于,所述定时插入定时器报文包括:根据宿主机定时器定时插入定时器报文。
8.如权利要求6或7所述的方法,其特征在于,所述定时器报文的内容至少包含当前时间信息。
9.一种定时器实现装置,其特征在于,包括:
第一接收单元,用于接收虚拟交换机发送的报文队列,其中,所述报文队列中包括定时器报文,所述定时器报文是由所述虚拟交换机根据所述定时器实现装置外部的精准定时器定时插入所述报文队列的,所述报文队列还包括除所述定时器报文外的业务报文,所述定时器报文用于指示定时信息,所述虚拟机与所述虚拟交换机位于同一宿主机;
解析单元,用于顺序解析所述报文队列中的报文,确定被解析报文的类型;
执行单元,用于响应于所述被解析报文的类型为定时器报文,执行预设的定时器动作。
10.如权利要求9所述的装置,其特征在于,所述外部的精准定时器为宿主机定时器。
11.如权利要求10所述的装置,其特征在于,所述定时器报文是由虚拟交换机OVS根据宿主机定时器定时插入所述报文队列的。
12.如权利要求9所述的装置,其特征在于,所述定时器报文的内容至少包含当前时间信息。
13.如权利要求9-12任一项所述的装置,其特征在于,所述定时器报文为以太网报文。
14.一种定时器实现装置,其特征在于,包括:
第二接收单元,用于接收报文;
报文分发单元,在接收到的报文需要发送至虚拟机时,将所述报文放入报文队列;所述报文队列将向所述虚拟机转发,所述虚拟机与所述虚拟交换机位于同一宿主机;
定时器处理单元,用于根据所述虚拟机外部的精准定时器在所述报文队列中定时插入定时器报文,所述定时器报文用于所述虚拟机执行预设的定时器动作,所述定时器报文用于指示定时信息;
转发单元,用于向所述虚拟机转发插入定时器报文的报文队列。
15.如权利要求14所述的装置,其特征在于,在所述定时插入定时器报文的方面,所述定时器处理单元具体用于:根据宿主机定时器定时插入定时器报文。
16.一种宿主机Host,其特征在于,包括:
运行在所述Host上的虚拟交换机OVS及中间软件层Hypervisor,所述Hypervisor上运行有至少一个虚拟机VM;
其中,所述VM包括:
第一接收单元,用于接收所述OVS发送的报文队列,其中,所述报文队列中包括定时器报文,所述定时器报文是由所述OVS根据所述VM外部的精准定时器定时插入所述报文队列的,所述报文队列还包括除所述定时器外的其它报文,所述定时器报文用于指示定时信息;
解析单元,用于顺序解析所述报文队列中的报文,确定被解析报文的类型;
执行单元,用于响应于所述被解析报文的类型为定时器报文,执行预设的定时器动作。
17.如权利要求16所述的宿主机,其特征在于,所述定时器报文是由虚拟交换机OVS根据宿主机定时器定时插入所述报文队列的。
18.一种宿主机Host,其特征在于,包括:
运行在所述Host上的虚拟交换机OVS及中间软件层Hypervisor,所述Hypervisor上运行有至少一个虚拟机VM;
其中,所述OVS包括:
第二接收单元,用于接收报文;
报文分发单元,在接收到的报文需要发送至所述VM时,将所述报文放入向所述VM转发的报文队列中;
定时器处理单元,用于根据所述VM外部的精准定时器在所述报文队列中定时插入定时器报文;所述定时器报文用于所述VM执行预设的定时器动作,所述定时器报文用于指示定时信息;
转发单元,用于向所述虚拟机转发插入定时器报文的报文队列。
19.如权利要求18所述的宿主机,其特征在于,在所述定时插入定时器报文的方面,所述定时器处理单元具体用于:根据宿主机定时器定时插入定时器报文。
20.一种物理主机,其特征在于,包括:硬件层、运行在所述硬件层之上的宿主机Host、运行在所述Host上的虚拟交换机OVS及中间软件层Hypervisor,所述Hypervisor上运行有至少一个虚拟机VM;
其中,所述VM用于:
接收所述OVS发送的报文队列,其中,所述报文队列中包括定时器报文,所述定时器报文是由所述OVS根据所述虚拟机外部的精准定时器定时插入所述报文队列的,所述报文队列还包括除所述定时器报文外的其它报文,所述定时器报文用于指示定时信息;
顺序解析所述报文队列中的报文,确定被解析报文的类型;
响应于所述被解析报文的类型为定时器报文,执行预设的定时器动作。
21.一种物理主机,其特征在于,包括:硬件层、运行在所述硬件层之上的宿主机Host、运行在所述Host上的虚拟交换机OVS及中间软件层Hypervisor,所述Hypervisor上运行有至少一个虚拟机VM;其中,
所述OVS用于:
接收报文;
在接收到的报文需要发送至虚拟机时,将所述报文放入向虚拟机转发的报文队列中;
根据所述VM外部的精准定时器在所述报文队列中定时插入定时器报文,所述定时器报文用于所述虚拟机执行预设的定时器动作,所述定时器报文用于指示定时信息;
向所述虚拟机转发插入定时器报文的报文队列。
CN201710113015.2A 2017-02-28 2017-02-28 定时器实现方法及相关装置 Active CN108512780B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201710113015.2A CN108512780B (zh) 2017-02-28 2017-02-28 定时器实现方法及相关装置
PCT/CN2017/094935 WO2018157543A1 (zh) 2017-02-28 2017-07-28 定时器实现方法及相关装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710113015.2A CN108512780B (zh) 2017-02-28 2017-02-28 定时器实现方法及相关装置

Publications (2)

Publication Number Publication Date
CN108512780A CN108512780A (zh) 2018-09-07
CN108512780B true CN108512780B (zh) 2020-12-15

Family

ID=63371079

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710113015.2A Active CN108512780B (zh) 2017-02-28 2017-02-28 定时器实现方法及相关装置

Country Status (2)

Country Link
CN (1) CN108512780B (zh)
WO (1) WO2018157543A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110380992B (zh) * 2019-07-24 2021-01-29 南京中孚信息技术有限公司 报文处理方法、装置及网络流量采集设备
CN112817701B (zh) * 2021-02-25 2024-03-12 北京火山引擎科技有限公司 定时器处理方法、装置、电子设备和计算机可读介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2372542A2 (en) * 2010-01-15 2011-10-05 Fujitsu Limited Virtual machine, virtual machine monitor and computer control method
CN103064739A (zh) * 2013-01-24 2013-04-24 浪潮(北京)电子信息产业有限公司 一种云计算中虚拟机的控制方法及装置
CN103853598A (zh) * 2014-02-21 2014-06-11 北京神舟航天软件技术有限公司 实现嵌入式虚拟机硬实时虚拟定时器响应的方法
CN104486262A (zh) * 2014-11-25 2015-04-01 盛科网络(苏州)有限公司 基于交换机的芯片实现Dying Gasp的控制方法及装置
CN104521199A (zh) * 2012-08-03 2015-04-15 思科技术公司 用于分布式虚拟交换机的适应性基础设施
CN105550040A (zh) * 2015-12-29 2016-05-04 四川中电启明星信息技术有限公司 基于kvm平台的虚拟机cpu资源预留算法
CN106406974A (zh) * 2015-07-30 2017-02-15 中兴通讯股份有限公司 一种用于虚拟机的高性能定时器实现方法、虚拟机

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103631651B (zh) * 2012-08-28 2018-08-03 中兴通讯股份有限公司 应用程序关闭方法及系统
CN106406981A (zh) * 2016-09-18 2017-02-15 深圳市深信服电子科技有限公司 一种读、写磁盘数据的方法及虚拟机监视器

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2372542A2 (en) * 2010-01-15 2011-10-05 Fujitsu Limited Virtual machine, virtual machine monitor and computer control method
CN104521199A (zh) * 2012-08-03 2015-04-15 思科技术公司 用于分布式虚拟交换机的适应性基础设施
CN103064739A (zh) * 2013-01-24 2013-04-24 浪潮(北京)电子信息产业有限公司 一种云计算中虚拟机的控制方法及装置
CN103853598A (zh) * 2014-02-21 2014-06-11 北京神舟航天软件技术有限公司 实现嵌入式虚拟机硬实时虚拟定时器响应的方法
CN104486262A (zh) * 2014-11-25 2015-04-01 盛科网络(苏州)有限公司 基于交换机的芯片实现Dying Gasp的控制方法及装置
CN106406974A (zh) * 2015-07-30 2017-02-15 中兴通讯股份有限公司 一种用于虚拟机的高性能定时器实现方法、虚拟机
CN105550040A (zh) * 2015-12-29 2016-05-04 四川中电启明星信息技术有限公司 基于kvm平台的虚拟机cpu资源预留算法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"嵌入式Java虚拟机中高精度定时器的实现";敖翔等;《计算机工程与应用》;20060121;全文 *

Also Published As

Publication number Publication date
CN108512780A (zh) 2018-09-07
WO2018157543A1 (zh) 2018-09-07

Similar Documents

Publication Publication Date Title
US20200213366A1 (en) Method, apparatus, and system for implementing a content switch
EP3353958B1 (en) Method and apparatus to securely measure quality of service in a network
EP3353997B1 (en) Technologies for offloading data object replication and service function chain management
US9602636B1 (en) Stateless packet segmentation and processing
US11048569B1 (en) Adaptive timeout mechanism
US9699060B2 (en) Specializing virtual network device processing to avoid interrupt processing for high packet rate applications
US10911405B1 (en) Secure environment on a server
US10637781B2 (en) Method for reliable data delivery between tunnel endpoints using BFD protocol
US20100287262A1 (en) Method and system for guaranteed end-to-end data flows in a local networking domain
US9910687B2 (en) Data flow affinity for heterogenous virtual machines
CN113326228B (zh) 基于远程直接数据存储的报文转发方法、装置及设备
US10320921B2 (en) Specializing virtual network device processing to bypass forwarding elements for high packet rate applications
US20160285771A1 (en) Technique for achieving low latency in data center network environments
CN105049464B (zh) 用于加速网络虚拟化的技术
CN108512780B (zh) 定时器实现方法及相关装置
US20180091447A1 (en) Technologies for dynamically transitioning network traffic host buffer queues
US20200358867A1 (en) Distributed inline proxy
US10659391B1 (en) Methods and apparatus to preserve packet order in a multi-fabric virtual network
US10554552B2 (en) Monitoring network addresses and managing data transfer
JP2017142647A (ja) リソース管理装置及びリソース管理方法
US9363193B2 (en) Virtualized network interface for TCP reassembly buffer allocation
US11736415B2 (en) Backpressure from an external processing system transparently connected to a router
US20210250241A1 (en) Automatic configuration of an extended service appliance for network routers
KR102409272B1 (ko) 가상 플랫폼 환경에서의 통신 대상 ip를 기반으로 공공 ip를 공유하는 방법 및 호스트 장치
WO2024069219A1 (en) Receive side application auto-scaling

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