一种虚拟机的时间同步方法及装置与流程

文档序号:19250040发布日期:2019-11-27 20:05阅读:156来源:国知局
一种虚拟机的时间同步方法及装置与流程
本申请涉及云计算虚拟化
技术领域
,尤其涉及一种虚拟机的时间同步方法及装置。
背景技术
:本部分旨在为权利要求书中陈述的本申请的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。随着云计算虚拟化技术的发展,各领域对终端设备中虚拟机的时间精度的要求也越来越高,如,军事指挥作战领域以及工业控制领域。因此,需要将云平台中的各虚拟机进行时间同步。现有技术下,通常采用以下几种方式对虚拟机进行时间同步。第一种方式为:参阅图1a所示,为基于网络时间协议(networktimeprotocol,ntp)协议的时间同步系统架构示意图,终端设备中的虚拟机采用ntp协议向虚拟机监视器发送时间同步请求消息,并获得虚拟机监视器返回的ntp服务器的时钟源时间。其中,ntp服务器基于物理网卡获取时钟源时间,并将时钟源时间返回至虚拟机监视器。但是,采用这种方式,由于采用ntp协议与虚拟机监视器进行通讯,延迟时间较多,因此,时间同步的精度较低。第二种方式为:参阅图1b所示,为硬实时同步系统架构示意图,终端设备将物理网卡穿透至本地设置的虚拟机,直接通过该物理网卡获取时钟源时间。其中,虚拟机不需要采用网络传输协议以及通过虚拟机监视器获得时钟源时间。但是,采用这种方式,由于需要采用支持精确时钟同步协议(precisiontimeprotocol,ptp)协议的物理网卡,并需要在虚拟机中安装物理网卡驱动后,将该物理网卡穿透到虚拟机中,而物理网卡的穿透性还需要采用价格昂贵的物理主板硬件的支持,成本较高。另外,针对每一个虚拟机分别配置一个相应的物理网卡,与物理网卡进行了绑定,这会限制云平台中虚拟机的规模,也无法支持虚拟机的在线迁移。第三种方式为:参阅图1c所示,为软实时同步架构示意图。终端设备中的虚拟机设置有支持ptp协议的虚拟网卡,虚拟机通过ptp协议向虚拟机监视器发送时间请求消息,并接收虚拟机监视器返回的时钟源时间,以及基于时钟源时间对进行时间同步。但是。采用这种方式,时间同步的精度较低。技术实现要素:本申请实施例提供一种虚拟机的时间同步方法及装置,用以提高虚拟机进行时间同步的精确性。第一方面,提供虚拟机的时间同步方法,包括:按照预设时长向本地设置的虚拟机监视器发送时间同步指令;接收虚拟机监视器基于时间同步指令返回的时钟源时间;基于时钟源时间,对本地设置的虚拟机进行时间同步。这样,基于内核的时间同步指令,通过虚拟机监视器获取时钟源时间,减少了时间延迟,提高了时间同步的精确度。较佳的,时间同步指令为hypercall指令。这样,直接采用内核指令即hypercall指令,与虚拟机监视器进行时间信息的通讯,仅需要几个cpu周期,与现有技术下通过网络传输协议进行通讯相比,极大地减少了通讯延迟时间。不需要将物理网卡穿透到虚拟机中,也不需要将物理网卡与虚拟机绑定,降低了时间同步的成本,避免了对虚拟机的功能和性能的限制。较佳的,接收虚拟机监视器基于时间同步指令返回的时钟源时间,具体包括:确定虚拟机监视器接收到时间同步指令,通过虚拟机监视器获取物理机时间;接收虚拟机返回的物理机时间,并将物理机时间作为时钟源时间。这样,虚拟机基于接收的虚拟机发送的hypercall指令,直接获取以及返回物理机时间,与现有技术下通过网络传输协议等方式进行传输,减少了时间延迟。较佳的,在接收虚拟机监视器基于时间同步指令返回的时钟源时间之前,包括:周期性获取时钟源的时钟源时间;基于时钟源时间,将物理机时间与获取的时钟源时间进行同步。这样,将物理网卡与本地的时钟源进行连接,获取时钟源时间,以将物理机时间与时钟源时间进行时间同步,与现有技术下通过服务器请求服务器的时钟源时间相比,减少了时间延迟,进一步地,不需要针对每一个虚拟机设置相应的物理网卡,也不需要将虚拟机与物理网卡进行绑定,仅通过物理网卡对物理机时间进行时间同步即可。第二方面,一种虚拟机的时间同步装置,包括:发送单元,用于按照预设时长向本地设置的虚拟机监视器发送时间同步指令;接收单元,用于接收虚拟机监视器基于时间同步指令返回的时钟源时间;同步单元,用于基于时钟源时间,对本地设置的虚拟机进行时间同步。较佳的,时间同步指令为hypercall指令。较佳的,在接收虚拟机监视器基于时间同步指令返回的时钟源时间时,接收单元具体用于:确定虚拟机监视器接收到时间同步指令,通过虚拟机监视器获取物理机时间;接收虚拟机返回的物理机时间,并将物理机时间作为时钟源时间。较佳的,在接收所述虚拟机监视器基于所述时间同步指令返回的时钟源时间之前,所述接收单元还用于:周期性获取时钟源的时钟源时间;基于所述时钟源时间,将物理机时间与获取的时钟源时间进行同步。第三方面,提供一种终端设备,包括至少一个处理单元、以及至少一个存储单元,其中,存储单元存储有计算机程序,当程序被处理单元执行时,使得处理单元执行上述任一虚拟机的时间同步方法的步骤。第四方面,提供一种计算机可读介质,其存储有可由终端设备执行的计算机程序,当程序在终端设备上运行时,使得终端设备执行上述任一虚拟机的时间同步方法的步骤。本申请实施例提供的一种虚拟机的时间同步方法及装置中,按照预设时长向本地设置的虚拟机监视器发送时间同步指令;接收所述虚拟机监视器基于所述时间同步指令返回的时钟源时间;基于所述时钟源时间,对本地设置的虚拟机进行时间同步。这样,通过时间同步指令获取时钟源时间,仅需要几个cpu周期,减少了时间同步的延迟时间,提高了时间同步的精度。本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。附图说明此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:图1a为本申请提供的一种基于ntp协议的时间同步系统架构示意图;图1b为本申请提供的一种硬实时同步系统架构示意;图1c为本申请提供的一种软实时同步架构示意图;图1d为本申请提供的一种虚拟机的时间同步系统的架构示意图;图2为本申请实施方式中虚拟机的时间同步方法的实施流程图;图3为本申请实施方式中虚拟机的时间同步装置的结构示意图。具体实施方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,并不是全部的实施例。基于本申请实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。为了提高虚拟机进行时间同步的精确性,以及降低时间同步的成本,本申请实施例提供了一种虚拟机的时间同步方法及装置。本申请实施例提供的一种虚拟机的时间同步方法,可应用于终端设备中,如,计算机等。参阅图1d所示,为一种虚拟机的时间同步系统的架构示意图。虚拟机的时间同步系统应用于终端设备100中,包括多个虚拟机101,虚拟机监视器102,物理网卡103以及时钟源104。其中,虚拟机101包括用户空间和内核两部分,虚拟机101用于通过内核向虚拟机监视器102发送时间同步指令。虚拟机101可以为1个,也可以为多个。可选的,时间同步指令可以为超级调用(hypercall)指令,并且hypercall指令消耗的时间仅为多个cpu执行周期。每一个虚拟机在启动时,虚拟机监视器均会为该虚拟机建立一个半虚拟化字符设备即虚拟化精确时钟同步协议(virtualprecisiontimeprotocol,vptp)模块,并对vptp模块进行初始化。其中,vptp模块位于内核中,用于确定接收到虚拟机的时钟同步后台应用程序按照预设时长发送的时间同步请求时,向虚拟机监视器发送时间同步指令。预设时长为时间值,例如,预设时长为1s。可选的,时间同步指令可以为超级调用(hypercall)指令。通常hypercall指令消耗的时间仅为多个cpu执行周期。其中,终端设备100基于物理网卡103,通过网络传输协议获得时钟源104的时钟源时间,并基于时钟源时间对物理机时间进行时间同步。其中,虚拟机监视器102用于接收到虚拟机101发送的时间同步指令时,获取终端设备的物理机时间,并将上述物理机时间发送至虚拟机101。以下结合说明书附图对本申请的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明,并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。参阅图2所示,为本申请提供的虚拟机的时间同步方法的实施流程图。该方法的具体实施流程如下:步骤200:虚拟机按照预设时长向虚拟机监视器发送时间同步指令。这样,直接向虚拟机监视器发送时间同步指令,与现有技术中采用网络传输协议发送时间同步请求消息的方式相比,极大地提高了虚拟机时间同步的效率。步骤201:虚拟机监视器基于接收的时间同步指令,获取时钟源时间。具体的,在执行步骤201之前,参阅图1d所示,终端设备100基于物理网卡103,周期性通过网络传输协议获得时钟源104的时钟源时间,并基于获取的时钟源时间对终端设备的物理机时间进行时间同步。可选的,网络传输协议通常为ptp协议。其中,物理机时间与时钟源时间之间的时间精度在纳秒级。然后,虚拟机监视器获取物理机时间,作为时钟源时间。这样,就可以获取时钟源时间。步骤202:虚拟机接收虚拟机监视器返回的时钟源时间,并基于时钟源时间进行时间同步。这样,采用虚拟化技术的hypercall技术,通过虚拟机内核发出时间同步指令,由于每一个时间同步指令调用消耗的时间仅需要几个cpu执行周期,因此,极大地减少了获取时钟源时间的传输时间,总的时间同步的延迟时间在纳秒级,提高了虚拟机时间同步的精度。进一步地,本申请实施例中,不需要额外的硬件支持,也不需要对虚拟机进行相应的网络配置,降低了时间同步的成本,简化了操作步骤。下面采用一个具体的应用场景对上述虚拟机的时间同步方法进行进一步详细说明。首先,搭建应用的云平台。即采用多个服务器以及一台ptp时钟源设备搭建成云平台,其中,每一台服务器至少需要2张支持硬件实时同步功能的物理网卡,其中一张物理网卡用于支持与时钟源的连接,以进行后续的时间同步。然后,分别在每一个服务器中安装多个虚拟机,并在虚拟机中安装vptp模块,以及将vptp进行初始化。进一步地,虚拟机设置预设时长为1s,通过vptp模块每隔1s向虚拟机监视器发送一次hypercall指令,并接收虚拟机监视器返回的与时钟源时间同步后的物理机时间,以及基于获取的物理机时间,进行时间同步。参阅表1所示,为终端设备的物理机时间和虚拟机时间的时间同步误差表。表1服务器同步误差(纳秒)硬实时同步误差(纳秒)虚拟机的时间同步误差(纳秒)184-174202614148-744174826248-1086显然,基于网络传输协议的时间同步的服务器同步误差较大,采用硬实时同步方法时的硬实时同步误差相对较小,而本申请实施例中虚拟机的时间同步误差极低,极大地提高了虚拟机的时间同步的精度。本申请实施例中,一种电子设备,包括:一个或多个处理器;以及一个或多个计算机可读介质,可读介质上存储有用于虚拟机的时间同步程序,其中,程序被一个或多个处理器执行时,实现上述实施例中的各个步骤。本申请实施例中,一个或多个计算机可读介质,可读介质上存储有用于虚拟机的时间同步程序,其中,程序被一个或多个处理器执行时,使得通信设备可以执行上述实施例中的各个步骤。基于同一发明构思,本申请实施例中还提供了虚拟机的时间同步装置,由于上述装置及设备解决问题的原理与虚拟机的时间同步方法相似,因此,上述装置的实施可以参见方法的实施,重复之处不再赘述。如图3所示,其为本申请实施例提供的虚拟机的时间同步装置的结构示意图,包括:发送单元30,用于按照预设时长向本地设置的虚拟机监视器发送时间同步指令;接收单元31,用于接收虚拟机监视器基于时间同步指令返回的时钟源时间;同步单元32,用于基于时钟源时间,对本地设置的虚拟机进行时间同步。较佳的,时间同步指令为hypercall指令。较佳的,在接收虚拟机监视器基于时间同步指令返回的时钟源时间时,接收单元31具体用于:确定虚拟机监视器接收到时间同步指令,通过虚拟机监视器获取物理机时间;接收虚拟机返回的物理机时间,并将物理机时间作为时钟源时间。较佳的,在接收所述虚拟机监视器基于所述时间同步指令返回的时钟源时间之前,所述接收单元31还用于:周期性获取时钟源的时钟源时间;基于所述时钟源时间,将物理机时间与获取的时钟源时间进行同步。本申请实施例提供的一种虚拟机的时间同步方法及装置中,按照预设时长向本地设置的虚拟机监视器发送时间同步指令;接收所述虚拟机监视器基于所述时间同步指令返回的时钟源时间;基于所述时钟源时间,对本地设置的虚拟机进行时间同步。这样,通过时间同步指令获取时钟源时间,仅需要几个cpu周期,减少了时间同步的延迟时间,提高了时间同步的精度。为了描述的方便,以上各部分按照功能划分为各模块(或单元)分别描述。当然,在实施本申请时可以把各模块(或单元)的功能在同一个或多个软件或硬件中实现。本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1