CN111338748B - 时间同步方法、装置、设备及存储介质 - Google Patents
时间同步方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN111338748B CN111338748B CN202010084427.XA CN202010084427A CN111338748B CN 111338748 B CN111338748 B CN 111338748B CN 202010084427 A CN202010084427 A CN 202010084427A CN 111338748 B CN111338748 B CN 111338748B
- Authority
- CN
- China
- Prior art keywords
- value
- clock source
- virtual machine
- frequency
- host
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 104
- 230000005012 migration Effects 0.000 claims abstract description 55
- 238000013508 migration Methods 0.000 claims abstract description 55
- 230000008569 process Effects 0.000 claims abstract description 48
- 238000012545 processing Methods 0.000 claims description 18
- 230000006870 function Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 5
- 238000012512 characterization method Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/12—Synchronisation of different clock signals provided by a plurality of clock generators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请提供一种时间同步方法、装置、设备及存储介质。该方法包括:获取第一时钟源数值,其中,所述第一时钟源数值为在虚拟机迁移过程中从所述源主机的时钟源中最后一次读取到的数值;获取第二时钟源数值,其中,所述第二时钟源数值为在虚拟机迁移过程中从所述目的主机的时钟源中第一次读取到的数值;根据所述第一时钟源数值和所述第二时钟源数值,确定并存储所述虚拟机的时钟源的偏差值,其中,所述偏差值用于在所述虚拟机运行于所述目的主机上时,对所述目的主机的时钟源数值进行补偿得到所述虚拟机的时钟源数值。本申请能够从软件层面解决时间同步问题,不需要特定的硬件支持,扩大适用范围。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种时间同步方法、装置、设备及存储介质。
背景技术
虚拟机迁移是将虚拟机从源主机上迁移到目的主机上的过程,被广泛应用于集群、数据中心和云平台系统等场景。在虚拟机迁移到目的主机后需要进行虚拟机与目的主机的时间同步。
一般地,硬件平台为虚拟机专门设置一个半虚拟化时钟源,例如在X86架构(TheX86 architecture)的硬件平台上半虚拟化时钟源为kvmclock。在虚拟机迁移到目的主机后,根据目的主机的时钟源调整kvmclock,从而实现虚拟机与目的主机的时间同步。
然而,半虚拟化时钟源需要硬件平台上相关的硬件寄存器作为支持,缺少相关硬件寄存器的硬件平台无法实现半虚拟化时钟源,因此,采用半虚拟化时钟源进行时间同步的方法适用范围较小。
发明内容
本申请实施例提供一种时间同步方法、装置、设备及存储介质,以解决目前时间同步的方法适用范围较小的问题。
第一方面,本申请实施例提供一种时间同步方法,包括:
获取第一时钟源数值,其中,所述第一时钟源数值为在虚拟机迁移过程中从所述源主机的时钟源中最后一次读取到的数值;
获取第二时钟源数值,其中,所述第二时钟源数值为在虚拟机迁移过程中从所述目的主机的时钟源中第一次读取到的数值;
根据所述第一时钟源数值和所述第二时钟源数值,确定并存储所述虚拟机的时钟源的偏差值,其中,所述偏差值用于在所述虚拟机运行于所述目的主机上时,对所述目的主机的时钟源数值进行补偿得到所述虚拟机的时钟源数值。
在一种可能的实施方式中,根据所述第一时钟源数值和所述第二时钟源数值,确定所述虚拟机的时钟源的偏差值,包括:
计算所述第一时钟源数值与所述第二时钟源数值之间的差值,将所述差值确定为所述偏差值。
在一种可能的实施方式中,所述方法还包括:
在所述虚拟机运行于所述目的主机上时,将每次从所述目的主机的时钟源读取到的数值加上所述偏差值,得到所述虚拟机的时钟源数值。
在一种可能的实施方式中,所述方法还包括:
获取第一频率值和第二频率值,其中,所述第一频率值为所述源主机的频率值,所述第二频率值为所述目的主机的频率值;
对比所述第一频率值和所述第二频率值;
在所述第一频率值与所述第二频率值不相等时,设置表征频率调整的中断,其中,所述表征频率调整的中断用于指示所述虚拟机在所述目的主机上启动后根据所述第一频率值和所述第二频率值确定并更新所述虚拟机的频率参数。
在一种可能的实施方式中,所述表征频率调整的中断还用于指示所述虚拟机在所述目的主机上启动后根据更新后的频率参数对时间显示系统中的时间显示参数进行更新。
在一种可能的实施方式中,所述频率参数包括以下中的至少一种:
时钟源的频率参数、时钟事件设备的频率参数。
在一种可能的实施方式中,获取第一时钟源数值,包括:
接收所述虚拟机的状态数据,其中,所述状态数据中包括所述第一时钟源数值;
从所述状态数据中获取所述第一时钟源数值。
在一种可能的实施方式中,所述方法还包括:
显示通知消息,其中,所述通知消息用于指示所述偏差值存储完成。
第二方面,本申请实施例提供一种时间同步装置,包括:
第一获取模块,用于获取第一时钟源数值,其中,所述第一时钟源数值为在虚拟机迁移过程中从所述源主机的时钟源中最后一次读取到的数值;
第二获取模块,用于获取第二时钟源数值,其中,所述第二时钟源数值为在虚拟机迁移过程中从所述目的主机的时钟源中第一次读取到的数值;
处理模块,用于根据所述第一时钟源数值和所述第二时钟源数值,确定并存储所述虚拟机的时钟源的偏差值,其中,所述偏差值用于在所述虚拟机运行于所述目的主机上时,对所述目的主机的时钟源数值进行补偿得到所述虚拟机的时钟源数值。
在一种可能的实施方式中,所述处理模块,具体用于:
计算所述第一时钟源数值与所述第二时钟源数值之间的差值,将所述差值确定为所述偏差值。
在一种可能的实施方式中,所述处理模块,还用于:
在所述虚拟机运行于所述目的主机上时,将每次从所述目的主机的时钟源读取到的数值加上所述偏差值,得到所述虚拟机的时钟源数值。
在一种可能的实施方式中,所述方法还包括更新模块;
所述更新模块,用于:
获取第一频率值和第二频率值,其中,所述第一频率值为所述源主机的频率值,所述第二频率值为所述目的主机的频率值;
对比所述第一频率值和所述第二频率值;
在所述第一频率值与所述第二频率值不相等时,设置表征频率调整的中断,其中,所述表征频率调整的中断用于指示所述虚拟机在所述目的主机上启动后根据所述第一频率值和所述第二频率值确定并更新所述虚拟机的频率参数。
在一种可能的实施方式中,所述表征频率调整的中断还用于指示所述虚拟机在所述目的主机上启动后根据更新后的频率参数对时间显示系统中的时间显示参数进行更新。
在一种可能的实施方式中,所述频率参数包括以下中的至少一种:
时钟源的频率参数、时钟事件设备的频率参数。
在一种可能的实施方式中,所述第一获取模块,用于:
接收所述虚拟机的状态数据,其中,所述状态数据中包括所述第一时钟源数值;
从所述状态数据中获取所述第一时钟源数值。
在一种可能的实施方式中,所述装置还包括显示模块;
所述显示模块,用于:
显示通知消息,其中,所述通知消息用于指示所述偏差值存储完成。
第三方面,本申请实施例提供一种时间同步设备,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如上第一方面以及第一方面各种可能的实施方式所述的时间同步方法。
第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上第一方面以及第一方面各种可能的实施方式所述的时间同步方法。
本申请实施例提供的时间同步方法、装置、设备及存储介质,通过获取在虚拟机迁移过程中从源主机的时钟源中最后一次读取到的第一时钟源数值;虚拟机从源主机迁移到目的主机;并获取在虚拟机迁移过程中从目的主机的时钟源中第一次读取到的第二时钟源数值;然后根据第一时钟源数值和第二时钟源数值,确定并存储虚拟机的时钟源的偏差值,以便在虚拟机运行于目的主机上时,通过偏差值对目的主机的时钟源数值进行补偿得到虚拟机的时钟源数值,能够通过偏差值实现虚拟机与目的主机的时间同步,从软件层面解决时间同步问题,不需要特定的硬件支持,能够适用于更多的硬件平台,扩大适用范围。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请一实施例提供的虚拟机迁移系统的架构示意图;
图2为本申请一实施例提供的时间同步方法的流程示意图;
图3为本申请又一实施例提供的时间同步方法的流程示意图;
图4为本申请实施例提供的对状态数据进行保存和恢复的示意图;
图5为本申请另一实施例提供的时间同步方法的流程示意图;
图6为本申请实施例提供的对虚拟机进行频率调整的示意图;
图7为本申请一实施例提供的时间同步装置的结构示意图;
图8为本申请又一实施例提供的时间同步装置的结构示意图;
图9为本申请一实施例提供的时间同步设备的硬件结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
虚拟机迁移是将虚拟机从源主机上迁移到目的主机上的过程,被广泛应用于集群、数据中心和云平台系统等场景。在虚拟机迁移到目的主机后需要进行虚拟机与目的主机的时间同步。图1为本申请一实施例提供的虚拟机迁移系统的架构示意图。如图1所示,本实施例提供的虚拟机迁移系统包括源主机11和目的主机12。其中,源主机11和目的主机12可以为台式计算机、笔记本电脑、平板电脑等设备,在此不作限定。源主机11和目的主机12的中央处理器(Central Processing Unit,CPU)所支持的指令集相同,或者目的主机12的CPU兼容支持源主机11的CPU的指令集。源主机11和目的主机12的CPU可以为RISC(ReducedInstruction Set Computing,精简指令集计算机)处理器、CSIC(Complex InstructionSet Computer,复杂指令系统计算机)处理器等,在此不对源主机11和目的主机12的CPU的硬件平台架构做限定,本实施例提供的时间同步方法能适用于多种硬件平台架构。可以通过虚拟机迁移技术将在源主机11上运行的虚拟机迁移到目的主机12上。
虚拟机迁移可以为动态迁移,例如通过基于NFS(Network File System,网络文件系统)共享存储的动态迁移和非共享存储的动态迁移等。下面通过基于NFS共享存储的动态迁移方式对虚拟机迁移过程进行说明。基本流程如下:首先,源主机将虚拟机所有内存页标记为脏;然后,源主机持续迭代拷贝脏页至目的主机,直到脏页减少到一定数量;最后,源主机停止虚拟机的运行,拷贝剩余的脏页和状态数据至目的主机,从而使得虚拟机在目的主机上开始运行。虚拟机迁移的过程中,源主机调用状态保存函数将虚拟机的状态数据和虚拟机的设备状态数据保存到状态数据结构体中,目的主机调用状态加载函数从状态数据结构体中恢复虚拟机的状态数据和虚拟机的设备状态数据,最后调用加载函数进行虚拟机恢复,具体实现原理这里不详细展开讨论。例如,虚拟机的状态包括虚拟机使用的寄存器资源、时钟源相关参数等。时钟源相关参数可以存储在虚拟机的状态数据结构里面。当虚拟机从源主机迁移到目的主机后,如果目的主机与源主机的时钟源数值和频率不同,虚拟机会存在因时间发生跳变导致的卡顿以及时间显示不准确的问题。因此,在虚拟机迁移到目的主机后需要进行虚拟机与目的主机的时间同步。
一般地,硬件平台为虚拟机专门设置一个半虚拟化时钟源。例如,在X86架构的硬件平台上半虚拟化时钟源为kvmclock。在虚拟机迁移到目的主机后,根据目的主机的时钟源调整kvmclock,从而实现虚拟机与目的主机的时间同步。
然而,半虚拟化时钟源需要硬件平台上相关的硬件寄存器作为支持,缺少相关硬件寄存器的硬件平台无法实现半虚拟化时钟源。因此,采用半虚拟化时钟源进行时间同步的方法适用范围较小。以MIPS(Microprocessor without interlocked piped stagesarchitecture,无内部互锁流水级的微处理器)架构为例,MIPS架构的硬件平台没有支持半虚拟化时钟源的硬件寄存器,无法使用半虚拟化时钟。MIPS架构的硬件平台上,虚拟机guest和宿主机host使用相同的时钟源,如在龙芯处理器平台上为64位时钟源计数器nodecounter,nodecounter随着开机时间而单调递增。guest的时间系统采用全虚拟化方案,相关参数在guest初始化期间完成设置,guest运行起来后无法进行参数修改。guest通过MMIO(Memory-mapped I/O,内存映射I/O)的方式陷入host读nodecounter的数值,结合相关参数来进行各类时间的更新,从而与host保持时间的实时同步。在guest迁移到目的主机后,如果目的主机与源主机的时钟源数值不一致,会导致guest的时间发生跳变,进而导致guest卡顿以及时间显示不准确等问题。
本申请实施例中虚拟机从源主机迁移到目的主机,通过获取在虚拟机迁移过程中从源主机的时钟源中最后一次读取到的第一时钟源数值;并获取在虚拟机迁移过程中从目的主机的时钟源中第一次读取到的第二时钟源数值;然后根据第一时钟源数值和第二时钟源数值,确定并存储虚拟机的时钟源的偏差值,以便在虚拟机运行于目的主机上时,通过偏差值对目的主机的时钟源数值进行补偿得到虚拟机的时钟源数值,能够通过偏差值实现虚拟机与目的主机的时间同步,从软件层面解决时间同步问题,不需要特定的硬件支持,能够适用于更多的硬件平台,扩大适用范围。下面结合实施例进行具体说明。
图2为本申请一实施例提供的时间同步方法的流程示意图。该方法的执行主体为目的主机。该方法适用的硬件平台在此不作限定,例如可以包括但不限于MIPS架构、X86架构、ARM(Advanced RISC Machine,进阶精简指令集机器)架构等。如图2所示,该方法包括:
S201、获取第一时钟源数值,其中,所述第一时钟源数值为在虚拟机迁移过程中从所述源主机的时钟源中最后一次读取到的数值。
本实施例中,虚拟机迁移过程是指虚拟机从源主机向目的主机迁移的过程。在虚拟机迁移前,虚拟机运行在源主机上时,虚拟机读取源主机的时钟源的数值,根据读取到的数值进行自身各类时间的更新。本实施例将在虚拟机迁移过程中从源主机的时钟源中最后一次读取到的数值称为第一时钟源数值。例如,第一时钟源数值可以是虚拟机陷入到源主机的KVM(Kernel-based Virtual Machine)读取到的。在虚拟机结束在源主机上的运行后,源主机将第一时钟源数值发送到目的主机。目的主机接收源主机发送的第一时钟源数值。例如,第一时钟源数值可以包含于虚拟机的状态数据中,由源主机发送至目的主机。
S202、获取第二时钟源数值,其中,所述第二时钟源数值为在虚拟机迁移过程中从所述目的主机的时钟源中第一次读取到的数值。
本实施例中,在虚拟机迁移到目的主机后,虚拟机开始运行前,目的主机读取目的主机的时钟源的数值。本实施例中将在虚拟机迁移过程中目的主机从目的主机的时钟源中第一次读取到的数值称为第二时钟源数值。
例如,虚拟机为动态迁移,虚拟机迁移过程可以包括脏页拷贝阶段和停机拷贝阶段。其中,第一时钟源数值和第二时钟源数值可以都是在停机拷贝阶段中分别在源主机和目地主机读取到的,即,在虚拟机迁移过程中的停机拷贝阶段,源主机将从源主机的时钟源中读取第一时钟源数值,将第一时钟源数值发送至目的主机,并且目的主机从目的主机的时钟源中读取第二时钟源数值。
S203、根据所述第一时钟源数值和所述第二时钟源数值,确定并存储所述虚拟机的时钟源的偏差值,其中,所述偏差值用于在所述虚拟机运行于所述目的主机上时,对所述目的主机的时钟源数值进行补偿得到所述虚拟机的时钟源数值。
本实施例中,在虚拟机迁移到目的主机后,虚拟机开始运行前,目的主机根据第一时钟源数值和第二时钟源数值计算虚拟机的时钟源的偏差值,并将该偏差值进行保存。在后续虚拟机运行于目的主机上时,通过该偏差值对目的主机的时钟源数值进行补偿,从而得到相应的虚拟机的时钟源数值。例如,在虚拟机运行于目的主机上时,将每次从目的主机的时钟源读取到的数值加上该偏差值,从而得到相应的虚拟机的时钟源数值,然后虚拟机根据得到的时钟源数值进行时间显示和定时器的管理,以此来保证虚拟机迁移后时钟源不发生跳变,实现与目的主机的时间同步。
本申请实施例中虚拟机从源主机迁移到目的主机,目的主机通过获取在虚拟机迁移过程中从源主机的时钟源中最后一次读取到的第一时钟源数值;并获取在虚拟机迁移过程中从目的主机的时钟源中第一次读取到的第二时钟源数值;然后根据第一时钟源数值和第二时钟源数值,确定并存储虚拟机的时钟源的偏差值,以便在虚拟机运行于目的主机上时,通过偏差值对目的主机的时钟源数值进行补偿得到虚拟机的时钟源数值,相对于传统的通过半虚拟化时钟源实现虚拟机与目的主机的时间同步方式,从软件层面解决时间同步问题,不需要特定的硬件支持,能够适用于更多的硬件平台,扩大适用范围。
可选地,S202可以包括:
计算所述第一时钟源数值与所述第二时钟源数值之间的差值,将所述差值确定为所述偏差值。
本实施例中,目的主机可以将第一时钟源数值减去第二时钟源数值得到差值,将该差值作为虚拟机的时钟源的偏差值。其中,偏差值可以为正值,也可以为负值,与源主机和目的主机的开机时间相关。一台主机的开机时间越长则时钟源的数值越大,若源主机的开机时长大于目的主机的开机时长,则偏差值为正值;若源主机的开始时长小于目的主机的开机时长,则偏差值为负值。例如,若第一时钟源数值为1329,第二时钟源数值为934,则偏差值为1329-934=395;若第一时钟源数值为1329,第二时钟源数值为1763,则偏差值为1329-1763=-434。
可选地,目的主机可以将第一时钟源数值、第二时钟源数值、偏差值存储到相应的变量中。例如,可以定义以下几个变量用于时间调整:
unsigned long nodecounter_src
unsigned long nodecounter_dest
signed long nodecounter_offset
其中,nodecounter_src中存储第一时钟源数值,nodecounter_dest中存储第二时钟源数值,nodecounter_offset中存储偏差值。目的主机可以将nodecounter_src减去nodecounter_dest的差值保存到nodecounter_offset中。nodecounter_offset是一个有符号的值,该值在目的主机运行虚拟机的过程中保持不变,目的主机每次读出的时钟源的数值都加上该值来作为迁移后每次虚拟机的时钟源的值,以此来保证虚拟机迁移后时钟源不发生跳变。
可选地,上述方法还包括:
显示通知消息,其中,所述通知消息用于指示所述偏差值存储完成。
本实施例中,目的主机在成功存储偏差值后,可以在屏幕上显示通知消息,以提示用户偏差值存储完成。
图3为本申请又一实施例提供的时间同步方法的流程示意图。本实施例对获取第一时钟源数值的具体实现过程进行了详细说明。如图3所示,该方法包括:
S301、接收所述虚拟机的状态数据,其中,所述状态数据中包括第一时钟源数值,所述第一时钟源数值为在虚拟机迁移过程中从所述源主机的时钟源中最后一次读取到的数值。
本实施例中,在虚拟机迁移过程中,源主机将虚拟机的状态数据发送至目的主机,以便目的主机根据状态数据对虚拟机进行恢复。状态数据中包含第一时钟源数值,源主机将第一时钟源数值添加到状态数据中,随虚拟机的其他状态数据一起发送给目的主机。目的主机接收源主机发送的状态数据。
S302、从所述状态数据中获取所述第一时钟源数值。
本实施例中,目的主机接收到状态数据后可以从其中得到第一时钟源数值。例如,源主机可以将第一时钟源数值存储到状态数据结构体中,然后将状态数据结构体发送至目的主机,目的主机接收到状态数据结构体后,从其中提取出第一时钟源数值。其中,状态数据结构体用于存储虚拟机的状态数据,不同的硬件平台架构下状态数据结构体的形式可以不同,此处不对状态数据结构体的具体形式进行限定。
具体地,源主机可以调用状态保存函数将包含第一时钟源数值的虚拟机的状态数据保存到状态数据结构体中,然后源主机将状态数据结构体传送给目的主机。目的主机调用状态加载函数从状态数据结构体中恢复虚拟机的状态数据,从状态数据结构体中提取出第一时钟源数值。
下面以MIPS架构的硬件平台为例对上述第一时钟源数值的传送过程进行说明。MIPS架构的硬件平台中,状态数据结构体可以表示为vmstate_mips_cpu。源主机可以将第一时钟源数值存储到vmstate_mips_cpu中,其中,vmstate_mips_cpu是一种VMStateDescription类型的结构体,通过将vmstate_mips_cpu由源主机发送到目的主机,实现第一时钟源数值的传送。下面通过图4对第一时钟源数值的传送过程进行说明,在此之前,首先说明传送过程中所需用到的几个数据结构:
其中,第一变量nodecounter_value中存储第一时钟源数值,第二变量is_migrate中存储虚拟机是否发生迁移的标志,第三变量cpu_freq中存储源主机的频率。上述几个结构中,第一结构体MIPSCPU是描述虚拟机状态的结构体,包括虚拟机使用的寄存器资源等跟CPU相关的一些参数,时钟源相关参数在定义在该结构体。vmstate_mips_cpu将MIPSCPU结构体中需要保存和恢复的变量定义在结构体VMStateDescription的成员变量,以此来保证迁移的过程中不改变。
第二结构体kvm_mips_vcpu_state是在qemu和kvm都定义了一个相同的结构体,用于在qemu和kvm之间拷贝数据(通过调用copy_to_user和copy_from_user进行拷贝)。在虚拟机迁移时在源主机通过KVM_MIPS_GET_VCPU_STATE的ioctl陷入kvm获取第一时钟源数值存入kvm_mips_vcpu_state的nodecouner_value,通过copy_to_user将该值拷贝到qemu中kvm_mips_vcpu_state的nodecouner_value变量中,最后将该值赋值给MIPSCPU的nodecounter_value,因为MIPSCPU的nodecounter_value定义成了结构体VMStateDescription的成员变量,在源主机保存后在目的主机恢复以此保证该值不变。
目的主机通过在qemu中将MIPSCPU的nodecounter_value赋值给kvm_mips_vcpu_state的nodecounter_value,调用KVM_MIPS_SET_VCPU_STATE的ioctl陷入kvm,通过copy_from_user将qemu端的kvm_mips_vcpu_state的nodecounter_value拷贝到kvm中的kvm_mips_vcpu_state的nodecounter_value,同时此时读取目的主机的第二时钟源数据,根据两者计算差值,将该差值存放到跟struct kvm_arch结构体相关的成员变量中。
需要注意的是,本实施例是以MIPS架构的硬件平台为例对第一时钟源数值的传送过程进行说明,但并不作为限定。在X86架构、ARM架构等架构的硬件平台上可以采用类似的方式实现第一时钟源数值的传送,在此不再赘述。
图4为本申请实施例提供的对状态数据进行保存和恢复的示意图。下面结合图4的示例对停机拷贝阶段中状态数据在源主机保存以及在目的主机的恢复过程进行说明。本示例以MIPS架构的硬件平台为例进行说明。其中,源主机和目的主机上均包含qemu和KVM。
参照图4,在停机拷贝阶段,源主机对虚拟机的状态数据进行保存。具体过程是:源主机上的qemu先后通过vmstate_save方法、cpu_pre_save方法,来调用KVM_MIPS_GET_VCPU_STATE中的ioctl,从而陷入到内核中;利用KVM将虚拟机的状态数据(包括第一时钟源数值、迁移标志位、频率)存储到KVM的kvm_mips_vcpu_state结构中;KVM再将kvm_mips_vcpu_state结构通过copy_to_user拷贝到源主机的qemu对应的kvm_mips_vcpu_state中。然后源主机上的qemu将kvm_mips_vcpu_state结构中的变量值赋值给定义为VMStateDescription结构的MIPSCPU。源主机将VMStateDescription发送给目的主机。
目的主机对虚拟机的状态数据进行恢复。具体过程是:目的主机的qemu先后通过vmstate_load方法、cpu_post_load方法,将MIPSCPU赋值给kvm_mips_vcpu_state,然后调用KVM_MIPS_SET_VCPU_STATE结构体中的ioctl,从而陷入到内核中,通过copy_from_user将qemu端的kvm_mips_vcpu_state(包括第一时钟源数值、迁移标志、频率)拷贝到KVM中的kvm_mips_vcpu_state,从而实现虚拟机的状态数据的恢复。
另外,目的主机得到源主机的第一时钟源数值、cpu的频率及是否进行了迁移的标志后,根据is_migrate判断虚拟机是否在进行迁移,如果是,则将nodecounter_src减去nodecounter_dest的差值保存到nodecounter_offset中,实现对偏差值的计算和存储。该偏差值在虚拟机运行的过程中保持不变,虚拟机每次读出的目的主机的时钟源数值都加上该偏差值来作为迁移后每次读取的时钟源的数值,以此来保证虚拟机迁移后时钟源不发生跳变。
需要注意的是,图4中的示例是以MIPS架构的硬件平台为例对虚拟机的状态数据进行保存和恢复过程进行说明,但并不作为限定。在X86架构、ARM架构等架构的硬件平台上可以采用类似的方式实现虚拟机的状态数据的保存和恢复,在此不再赘述。
S303、获取第二时钟源数值,其中,所述第二时钟源数值为在虚拟机迁移过程中从所述目的主机的时钟源中第一次读取到的数值。
本实施例中,S303与图2实施例中的S202类似,此处不再赘述。
S304、根据所述第一时钟源数值和所述第二时钟源数值,确定并存储所述虚拟机的时钟源的偏差值,其中,所述偏差值用于在所述虚拟机运行于所述目的主机上时,对所述目的主机的时钟源数值进行补偿得到所述虚拟机的时钟源数值。
本实施例中,S304与图2实施例中的S203类似,此处不再赘述。
本实施例中目的主机接收源主机发送的虚拟机的状态数据,从状态数据中获取第一时钟源数值,能够通过将第一时钟源数值添加到虚拟机的状态数据中,随状态数据进行传输,对传统的虚拟机迁移过程改动较小,便于实施。
图5为本申请另一实施例提供的时间同步方法的流程示意图。本实施例在源主机的频率和目的主机的频率不同时,还对虚拟机进行频率调整。如图5所示,该方法包括:
S501、获取第一时钟源数值,其中,所述第一时钟源数值为在虚拟机迁移过程中从所述源主机的时钟源中最后一次读取到的数值。
本实施例中,S501与图2实施例中的S201类似,此处不再赘述。
S502、获取第二时钟源数值,其中,所述第二时钟源数值为在虚拟机迁移过程中从所述目的主机的时钟源中第一次读取到的数值。
本实施例中,S502与图2实施例中的S202类似,此处不再赘述。
S503、根据所述第一时钟源数值和所述第二时钟源数值,确定并存储所述虚拟机的时钟源的偏差值,其中,所述偏差值用于在所述虚拟机运行于所述目的主机上时,对所述目的主机的时钟源数值进行补偿得到所述虚拟机的时钟源数值。
本实施例中,S503与图2实施例中的S203类似,此处不再赘述。
S504、获取第一频率值和第二频率值,其中,所述第一频率值为所述源主机的频率值,所述第二频率值为所述目的主机的频率值。
本实施例中,虚拟机在不同频率的主机之间迁移时,由于虚拟机频率与源主机的频率保持一致,和目的主机频率不一致,虚拟机在目的主机上运行会引发虚拟机的时间和定时器异常。因此,在源主机和目的主机的频率不一致时,需要对迁移过程中虚拟机的频率进行调整。本实施例中将源主机的频率称为第一频率值,将目的主机的频率称为第二频率值。源主机可以将第一频率值包含于虚拟机的状态数据中,发送给目的主机。目的主机从虚拟机的状态数据中获取第一频率值。目的主机可以获取自身的频率作为第二频率值。
S505、对比所述第一频率值和所述第二频率值。
S506、在所述第一频率值与所述第二频率值不相等时,设置表征频率调整的中断,其中,所述表征频率调整的中断用于指示所述虚拟机在所述目的主机上启动后根据所述第一频率值和所述第二频率值确定并更新所述虚拟机的频率参数。
本实施例中,目的主机对比第一频率值和第二频率值是否相等。若第一频率值和第二频率值相等,则不需要对虚拟机的频率进行调整,虚拟机可以直接运行于目标主机上。若第一频率值和第二频率值不相等,则需要对虚拟机的频率进行调整。在第一频率值与第二频率值不相等时,目的主机设置表征频率调整的中断。本实施例中专门设置一个中断作为用于触发虚拟机进行频率调整的中断。
频率参数用于根据虚拟机的时钟源数值计算相应的显示时间、定时器时间等。需要注意的是,目的主机执行S504至S506时虚拟机还未开始运行。目的主机在虚拟机还未开始运行时,若判断出第一频率值与第二频率值不相等,则为虚拟机设置一个表征频率调整的中断。这样后续虚拟机开始在目的主机上运行后,会检测到该中断,然后执行该中断对应的处理程序对自身的频率参数进行调整,具体是虚拟机根据第一频率值和第二频率值来确定并更新虚拟机的频率参数,从而实现对自身频率的调整。
下面结合图6的示例进行说明。该示例中以MIPS架构的硬件平台为例对虚拟机的频率调整过程进行说明。参照图6,在第一频率值与第二频率值不相等时,目的主机可以调用中断设置函数queue_io_int设置频率调整中断的中断标志位,其中,频率调整中断即本实施例中设置的用于指示虚拟机对频率进行调整的中断。在虚拟机迁移到目的主机后且开始运行前,目的主机可以调用中断传递函数kvm_mips_deliver_interrupts根据之前设置的频率调整中断的中断标志位,来设置对应的虚拟机的中断寄存器cause的值。
虚拟机开始运行时,读取中断寄存器cause的值来判断是否有频率调整中断,如果有就进入频率调整中断对应的中断处理函数。虚拟机执行该函数以MMIO方式陷入到目的主机获取其频率,并在MMIO处理的过程中清除频率调整中断。虚拟机根据目的主机的频率对虚拟机的频率参数进行更新,以使后续虚拟机的频率与目的主机的频率保持一致。
需要注意的是,图6中的示例是以MIPS架构的硬件平台为例对虚拟机的频率调整过程进行说明,但并不作为限定。在X86架构、ARM架构等架构的硬件平台上可以采用类似的方式实现虚拟机的频率调整,在此不再赘述。
本实施例中,目的主机通过对比第一频率值和第二频率值,在第一频率值和第二频率值不相等时设置用于触发虚拟机进行频率调整的中断,以便通过该中断提示虚拟机运行时进行频率调整。虚拟机执行该中断对应的中断程序可以对虚拟机的频率参数进行更新,实现频率调整,避免由于虚拟机频率和目的主机频率不一致引发虚拟机的时间和定时器异常问题,保证虚拟机时间系统的正常运行。
可选地,所述频率参数包括但不限于以下中的至少一种:
时钟源的频率参数、时钟事件设备的频率参数。
本实施例中,虚拟机的频率参数包括时钟源的频率参数和时钟事件设备的频率参数。虚拟机可以具有一个或多个中央处理器(Central Processing Unit,CPU),每个CPU对应于一个时钟事件设备,每个时钟事件设备具有相应的频率参数。虚拟机可以根据目标主机的频率和源主机的频率分别计算时钟源的频率参数和各个时钟事件设备的频率参数。例如,时钟源的频率参数可以包括mult参数、shift参数等。虚拟机还可以调整每个CPU的一个cpu_data结构体的udelay_val成员变量的值,该值主要用于proc文件系统下显示当前各个CPU的运行频率。
可选地,所述表征频率调整的中断还用于指示所述虚拟机在所述目的主机上启动后根据更新后的频率参数对时间显示系统中的时间显示参数进行更新。
本实施例中,虚拟机检测到上述中断后,除了确定并更新频率参数,还会将时间显示系统中与频率参数对应的时间显示参数进行相应的更新。例如,在时钟源的频率参数调整完成后,虚拟机需要根据更新后的mult和shift与显示时间系统的timekeeper关联起来,以保持后续各类时间显示的正确性,其中,timekeeper是Linux中一个提供时间基础的模块,用于维护Linux中各类时间的显示和处理。
由于本实施例采用全虚拟化方式实现虚拟机的时间系统,频率参数在虚拟机运行初期就已经初始化好了,后面没法从外面改变它们,故通过中断通知的方式让虚拟机自己来调整。这样可以保证虚拟机各种时间的正常显示,保证整个时间系统的正常运行。
图7为本申请一实施例提供的时间同步装置的结构示意图。如图7所示,该时间同步装置70包括:第一获取模块701、第二获取模块702及处理模块703。
第一获取模块701,用于获取第一时钟源数值,其中,所述第一时钟源数值为在虚拟机迁移过程中从所述源主机的时钟源中最后一次读取到的数值。
第二获取模块702,用于获取第二时钟源数值,其中,所述第二时钟源数值为在虚拟机迁移过程中从所述目的主机的时钟源中第一次读取到的数值。
处理模块703,用于根据所述第一时钟源数值和所述第二时钟源数值,确定并存储所述虚拟机的时钟源的偏差值,其中,所述偏差值用于在所述虚拟机运行于所述目的主机上时,对所述目的主机的时钟源数值进行补偿得到所述虚拟机的时钟源数值。
本申请实施例中虚拟机从源主机迁移到目的主机,目的主机通过获取在虚拟机迁移过程中从源主机的时钟源中最后一次读取到的第一时钟源数值;并获取在虚拟机迁移过程中从目的主机的时钟源中第一次读取到的第二时钟源数值;然后根据第一时钟源数值和第二时钟源数值,确定并存储虚拟机的时钟源的偏差值,以便在虚拟机运行于目的主机上时,通过偏差值对目的主机的时钟源数值进行补偿得到虚拟机的时钟源数值,能够通过偏差值实现虚拟机与目的主机的时间同步,从软件层面解决时间同步问题,不需要特定的硬件支持,能够适用于更多的硬件平台,扩大适用范围。
图8为本申请又一实施例提供的时间同步装置的结构示意图。如图8所示,本实施例提供的时间同步装置70在图7所示实施例提供的时间同步装置的基础上,还可以包括:更新模块704、显示模块705。
可选地,所述处理模块703,具体用于:
计算所述第一时钟源数值与所述第二时钟源数值之间的差值,将所述差值确定为所述偏差值。
可选地,所述处理模块703,还用于:
在所述虚拟机运行于所述目的主机上时,将每次从所述目的主机的时钟源读取到的数值加上所述偏差值,得到所述虚拟机的时钟源数值。
可选地,所述更新模块704,用于:
获取第一频率值和第二频率值,其中,所述第一频率值为所述源主机的频率值,所述第二频率值为所述目的主机的频率值;
对比所述第一频率值和所述第二频率值;
在所述第一频率值与所述第二频率值不相等时,设置表征频率调整的中断,其中,所述表征频率调整的中断用于指示所述虚拟机在所述目的主机上启动后根据所述第一频率值和所述第二频率值确定并更新所述虚拟机的频率参数。
可选地,所述表征频率调整的中断还用于指示所述虚拟机在所述目的主机上启动后根据更新后的频率参数对时间显示系统中的时间显示参数进行更新。
可选地,所述频率参数包括以下中的至少一种:
时钟源的频率参数、时钟事件设备的频率参数。
可选地,所述第一获取模块701,用于:
接收所述虚拟机的状态数据,其中,所述状态数据中包括所述第一时钟源数值;
从所述状态数据中获取所述第一时钟源数值。
所述显示模块705,用于:
显示通知消息,其中,所述通知消息用于指示所述偏差值存储完成。
本申请实施例提供的时间同步装置,可用于执行上述的方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。
图9为本申请一实施例提供的时间同步设备的硬件结构示意图。如图9所示,本实施例提供的时间同步设备90包括:至少一个处理器901和存储器902。该时间同步设备90还包括通信部件903。其中,处理器901、存储器902以及通信部件903通过总线904连接。
在具体实现过程中,至少一个处理器901执行所述存储器902存储的计算机执行指令,使得至少一个处理器901执行如上的时间同步方法。
处理器901的具体实现过程可参见上述方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。
在上述的图9所示的实施例中,应理解,处理器可以是中央处理单元(英文:Central Processing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:Digital Signal Processor,简称:DSP)、专用集成电路(英文:Application SpecificIntegrated Circuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合申请所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器。
总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component Interconnect,PCI)总线或扩展工业标准体系结构(Extended Industry Standard Architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。
本申请还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上的时间同步方法。
上述的计算机可读存储介质,上述可读存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。可读存储介质可以是通用或专用计算机能够存取的任何可用介质。
一种示例性的可读存储介质耦合至处理器,从而使处理器能够从该可读存储介质读取信息,且可向该可读存储介质写入信息。当然,可读存储介质也可以是处理器的组成部分。处理器和可读存储介质可以位于专用集成电路(Application Specific IntegratedCircuits,简称:ASIC)中。当然,处理器和可读存储介质也可以作为分立组件存在于设备中。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (14)
1.一种时间同步方法,其特征在于,包括:
获取第一时钟源数值,其中,所述第一时钟源数值为在虚拟机迁移过程中从源主机的时钟源中最后一次读取到的数值;
获取第二时钟源数值,其中,所述第二时钟源数值为在虚拟机迁移过程中从目的主机的时钟源中第一次读取到的数值;
根据所述第一时钟源数值和所述第二时钟源数值,确定并存储所述虚拟机的时钟源的偏差值;
在所述虚拟机运行于所述目的主机上时,将每次从所述目的主机的时钟源读取到的数值加上所述偏差值,得到所述虚拟机的时钟源数值;
所述方法还包括:
获取第一频率值和第二频率值,其中,所述第一频率值为所述源主机的频率值,所述第二频率值为所述目的主机的频率值;
对比所述第一频率值和所述第二频率值;
在所述第一频率值与所述第二频率值不相等时,设置表征频率调整的中断;
在所述虚拟机运行于所述目的主机上时,读取中断寄存器的值来判断是否有表征频率调整的中断,如果有,根据所述第一频率值和所述第二频率值确定并更新所述虚拟机的频率参数。
2.根据权利要求1所述的方法,其特征在于,根据所述第一时钟源数值和所述第二时钟源数值,确定所述虚拟机的时钟源的偏差值,包括:
计算所述第一时钟源数值与所述第二时钟源数值之间的差值,将所述差值确定为所述偏差值。
3.根据权利要求1所述的方法,其特征在于,所述表征频率调整的中断还用于指示所述虚拟机在所述目的主机上启动后根据更新后的频率参数对时间显示系统中的时间显示参数进行更新。
4.根据权利要求1所述的方法,其特征在于,所述频率参数包括以下中的至少一种:
时钟源的频率参数、时钟事件设备的频率参数。
5.根据权利要求1-4任一项所述的方法,其特征在于,获取第一时钟源数值,包括:
接收所述虚拟机的状态数据,其中,所述状态数据中包括所述第一时钟源数值;
从所述状态数据中获取所述第一时钟源数值。
6.根据权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:
显示通知消息,其中,所述通知消息用于指示所述偏差值存储完成。
7.一种时间同步装置,其特征在于,包括:
第一获取模块,用于获取第一时钟源数值,其中,所述第一时钟源数值为在虚拟机迁移过程中从源主机的时钟源中最后一次读取到的数值;
第二获取模块,用于获取第二时钟源数值,其中,所述第二时钟源数值为在虚拟机迁移过程中从目的主机的时钟源中第一次读取到的数值;
处理模块,用于根据所述第一时钟源数值和所述第二时钟源数值,确定并存储所述虚拟机的时钟源的偏差值;
在所述虚拟机运行于所述目的主机上时,将每次从所述目的主机的时钟源读取到的数值加上所述偏差值,得到所述虚拟机的时钟源数值;
所述装置还包括更新模块;
所述更新模块,用于:
获取第一频率值和第二频率值,其中,所述第一频率值为所述源主机的频率值,所述第二频率值为所述目的主机的频率值;
对比所述第一频率值和所述第二频率值;
在所述第一频率值与所述第二频率值不相等时,设置表征频率调整的中断;
在所述虚拟机运行于所述目的主机上时,读取中断寄存器的值来判断是否有表征频率调整的中断,如果有,根据所述第一频率值和所述第二频率值确定并更新所述虚拟机的频率参数。
8.根据权利要求7所述的装置,其特征在于,所述处理模块,具体用于:
计算所述第一时钟源数值与所述第二时钟源数值之间的差值,将所述差值确定为所述偏差值。
9.根据权利要求7所述的装置,其特征在于,所述表征频率调整的中断还用于指示所述虚拟机在所述目的主机上启动后根据更新后的频率参数对时间显示系统中的时间显示参数进行更新。
10.根据权利要求7所述的装置,其特征在于,所述频率参数包括以下中的至少一种:
时钟源的频率参数、时钟事件设备的频率参数。
11.根据权利要求7-10任一项所述的装置,其特征在于,所述第一获取模块,用于:
接收所述虚拟机的状态数据,其中,所述状态数据中包括所述第一时钟源数值;
从所述状态数据中获取所述第一时钟源数值。
12.根据权利要求7-10任一项所述的装置,其特征在于,所述装置还包括显示模块;
所述显示模块,用于:
显示通知消息,其中,所述通知消息用于指示所述偏差值存储完成。
13.一种时间同步设备,其特征在于,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如权利要求1-6任一项所述的时间同步方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如权利要求1-6任一项所述的时间同步方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010084427.XA CN111338748B (zh) | 2020-02-10 | 2020-02-10 | 时间同步方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010084427.XA CN111338748B (zh) | 2020-02-10 | 2020-02-10 | 时间同步方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111338748A CN111338748A (zh) | 2020-06-26 |
CN111338748B true CN111338748B (zh) | 2024-03-19 |
Family
ID=71183391
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010084427.XA Active CN111338748B (zh) | 2020-02-10 | 2020-02-10 | 时间同步方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111338748B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113626142B (zh) * | 2021-07-14 | 2024-04-05 | 麒麟软件有限公司 | 一种虚拟时统卡热迁移方法 |
CN113687916B (zh) * | 2021-08-17 | 2023-01-10 | 锐捷网络股份有限公司 | 数据处理方法及装置、时间更新方法及装置、电子设备 |
CN113890665A (zh) * | 2021-09-23 | 2022-01-04 | 北京超星未来科技有限公司 | 一种时间同步方法、系统、存储介质及处理器 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014134989A (ja) * | 2013-01-11 | 2014-07-24 | Hitachi Ltd | 計算機システム及び計算機管理方法 |
CN107544619A (zh) * | 2017-06-27 | 2018-01-05 | 新华三云计算技术有限公司 | 时间同步方法及装置 |
CN110502310A (zh) * | 2018-05-18 | 2019-11-26 | 北京东土科技股份有限公司 | 一种虚拟机的时间同步方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10712766B2 (en) * | 2017-09-19 | 2020-07-14 | Microsoft Technology Licensing, Llc | Hypervisors timer techniques |
-
2020
- 2020-02-10 CN CN202010084427.XA patent/CN111338748B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014134989A (ja) * | 2013-01-11 | 2014-07-24 | Hitachi Ltd | 計算機システム及び計算機管理方法 |
CN107544619A (zh) * | 2017-06-27 | 2018-01-05 | 新华三云计算技术有限公司 | 时间同步方法及装置 |
CN110502310A (zh) * | 2018-05-18 | 2019-11-26 | 北京东土科技股份有限公司 | 一种虚拟机的时间同步方法及装置 |
Non-Patent Citations (1)
Title |
---|
车翔.QEMU-KVM设备虚拟化研究与改进.《中国优秀硕士学位论文全文数据库 信息科技辑》.2013,(第2期),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN111338748A (zh) | 2020-06-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111338748B (zh) | 时间同步方法、装置、设备及存储介质 | |
CN109478135B (zh) | 计算机系统和用于重新引导计算机系统的方法 | |
US10139876B2 (en) | Efficient reboot of an operating system executed in a virtual machine | |
US20220197851A1 (en) | Systems and methods for multi-architecture computing | |
US10621029B2 (en) | Restoring an application from a system dump file | |
US9547346B2 (en) | Context agent injection using virtual machine introspection | |
US9081734B2 (en) | Restoring from a legacy OS environment to a UEFI pre-boot environment | |
US7421431B2 (en) | Providing access to system management information | |
WO2014139177A1 (en) | Booting method for computer system with multiple central processing units | |
US11397587B2 (en) | Processor core isolation for execution of multiple operating systems on a multicore computer system | |
CN108292233B (zh) | 开启虚拟机的应用处理器 | |
US20190286496A1 (en) | Kernel configuration information management method and device, and electronic apparatus | |
WO2012163275A1 (zh) | 控制方法、控制装置以及计算机系统 | |
US7840792B2 (en) | Utilizing hand-off blocks in system management mode to allow independent initialization of SMBASE between PEI and DXE phases | |
US20120102252A1 (en) | Hotplug removal of a device in a virtual machine system | |
US7500244B2 (en) | Adaptive algorithm for selecting a virtualization algorithm in virtual machine environments | |
US11269606B2 (en) | Firmware publication of multiple binary images | |
US9852100B2 (en) | Guest-programmable location of advanced configuration and power interface (ACPI) tables in virtualized systems | |
US10379870B2 (en) | Supporting soft reboot in multi-processor systems without hardware or firmware control of processor state | |
US9959225B2 (en) | Computer apparatus and control method of computer apparatus | |
US9483360B1 (en) | Guest-driven virtual machine backups | |
US10860242B1 (en) | Method for automatic instant access mount point cleanup | |
US10884763B2 (en) | Loading new code in the initial program load path to reduce system restarts | |
Kim et al. | Exploiting asymmetric CPU performance for fast startup of subsystem in mobile smart devices | |
CN117311764A (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 | ||
CB02 | Change of applicant information |
Address after: 100095 Building 2, Longxin Industrial Park, Zhongguancun environmental protection technology demonstration park, Haidian District, Beijing Applicant after: Loongson Zhongke Technology Co.,Ltd. Address before: 100095 Building 2, Longxin Industrial Park, Zhongguancun environmental protection technology demonstration park, Haidian District, Beijing Applicant before: LOONGSON TECHNOLOGY Corp.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |