一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种时间同步方法、装置、计算机设备及存储介质与流程

2021-11-22 13:55:00 来源:中国专利 TAG:


1.本发明涉及计算机技术领域,尤其涉及一种时间同步方法、装置、计算机设备及存储介质。


背景技术:

2.虚拟机(英文全称:virtual machine)是指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。宿主机就是计算机主机,这个概念是相对于虚拟机而言的,比如某一计算机上安装有虚拟机,那么相对于虚拟机而言该计算机就是宿主机。目前较为常见虚拟机软件有vmware(vmware ace)、virtual box和virtual pc,它们都能在windows系统上虚拟出多个计算机,每个虚拟计算机可以独立运行,可以安装各种软件与应用等。宿主机和主机上各自运行操作系统,每个操作系统都具有系统时间,为了保证时间相对有效需要对二者的系统时间进行同步。
3.目前,传统的宿主机与虚拟机的时间同步策略是以宿主机的时间为准,对该宿主机上运行的虚拟机进行同步。例如在virtualbox虚拟化平台中提供了宿主机与虚拟机时间同步的机制,当宿主机时间做了变更,虚拟机中的时间会更新为宿主机的时间。也就是,虚拟机中的时间是以宿主机的时间为基准,当且仅当宿主机的时间变化时,虚拟机中的时间才能变化。如果通过应用程序或者手动的修改虚拟机中时间,宿主机中的时间不会同步进行变更,而且虚拟机中的时间会自动再次变更为与宿主机一致的时间,对虚拟机的时间设定无法保持,需要反复设定,给使用者带来极大不便。


技术实现要素:

4.有鉴于此,有必要针对以上技术问题,提供一种时间同步方法、装置、计算机设备及存储介质。
5.根据本发明的第一方面,提供了一种时间同步方法,所述方法包括:
6.在宿主机运行的第一操作系统中创建并运行虚拟化管理软件,并通过所述虚拟化管理软件启动至少一个虚拟机,其中,每一虚拟机均运行第二操作系统;
7.在所述至少一个虚拟机对应的第二操作系统中运行监控软件,其中,所述监控软件用于监测第二操作系统的时间设定事件;
8.响应于所述监控软件监测到时间设定事件,则将所述监控软件对应的虚拟机作为目标虚拟机,并获取所述目标虚拟机的第二操作系统的当前时间;
9.基于第二操作系统的当前时间确定第一时间;
10.利用所述虚拟化管理软件基于所述第一时间对所述宿主机的第一操作系统的时间进行同步。
11.在一些实施例中,所述基于第二操作系统的当前时间确定第一时间包括:
12.将第二操作系统的当前时间与第一预设时间之和作为所述第一时间。
13.在一些实施例中,所述利用所述虚拟化管理软件基于所述第一时间对所述宿主机
的第一操作系统的时间进行同步包括:
14.利用虚拟化管理软件调用第一操作系统的时间设定函数接口;
15.通过第一操作系统的时间设定函数接口将第一操作系统的系统时间修改为第一时间。
16.在一些实施例中,所述方法还包括:
17.响应于所述宿主机的第一操作系统完成时间同步,则获取所述第一操作系统当前时间;
18.基于所述第一操作系统的当前时间确定第二时间;
19.利用所述虚拟化管理软件基于所述第二时间对所述至少一个虚拟机中除所述目标虚拟机以外的每一虚拟机进行时间同步。
20.在一些实施例中,所述基于所述第一操作系统的当前时间确定第二时间包括:
21.将第一操作系统的当前时间与第二预设时间之和作为所述第二时间。
22.在一些实施例中,所述利用所述虚拟化管理软件基于所述第二时间对所述至少一个虚拟机中除所述目标虚拟机以外的每一虚拟机进行时间同步,包括:
23.利用虚拟化管理软件调用所述至少一个虚拟机中除所述目标虚拟机以外的每一虚拟机对应的第二操作系统的时间设定函数接口;
24.通过每一虚拟机对应的第二操作系统的时间设定函数接口将对应的第二操作系统的系统时间修改为第二时间。
25.在一些实施例中,所述第一操作系统和第二操作系统均包括:linux系统,unix系统,ubuntu系统、mac系统、windows,所述虚拟化管理软件为virtualbox软件,所述监控软件为guesttools软件。
26.根据本发明的第二方面,提供了一种时间同步装置,所述装置包括:
27.虚拟机创建模块,配置为在宿主机运行的第一操作系统中创建并运行虚拟化管理软件,并通过所述虚拟化管理软件启动至少一个虚拟机,其中,每一虚拟机均运行第二操作系统;
28.监控模块,配置为在所述至少一个虚拟机对应的第二操作系统中运行监控软件;
29.时间获取模块,配置为响应于所述监控软件监测到时间设定事件,则将所述监控软件对应的虚拟机作为目标虚拟机,并获取所述目标虚拟机的第二操作系统的当前时间;
30.时间确定模块,配置为基于第二操作系统的当前时间确定第一时间;
31.同步模块,配置为利用所述虚拟化管理软件基于所述第一时间对所述宿主机的第一操作系统的时间进行同步。
32.根据本发明的第三方面,还提供了一种计算机设备,该计算机设备包括:
33.至少一个处理器;以及
34.存储器,存储器存储有可在处理器上运行的计算机程序,处理器执行程序时执行前述的时间同步方法。
35.根据本发明的第四方面,还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时执行前述的时间同步方法。
36.上述一种时间同步方法,首先利用第一操作系统的虚拟化管理软件启动至少一个虚拟机,在每个虚拟机的第二操作系统中运行监控软件以监控第二操作的时间设定事件,
若第二操作系统存在时间设定事件,则将该第二操作系统对应的虚拟机作为目标虚拟机,然后通过目标虚拟机的当前时间确定第一时间,最后利用虚拟化管理软件基于第一时间对宿主机的第一操作系统时间进行同步,实现了虚拟机到宿主机的由下向上时间同步,丰富了时间同步的种类,提高了时间设定的灵活性。
37.此外,本发明还提供了一种时间同步装置、一种计算机设备和一种计算机可读存储介质,同样能实现上述技术效果,这里不再赘述。
附图说明
38.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
39.图1为本发明一个实施例提供的由下向上的一种时间同步方法100的流程示意图;
40.图2为本发明另一个实施例提供的双向时间的另一种时间同步方法200的流程示意图;
41.图3为本发明一个实施例提供的宿主机与虚拟机的通信示意图;
42.图4为本发明一个实施例提供的一种时间同步装置300的结构示意图;
43.图5本发明另一个实施例中计算机设备的内部结构图。
具体实施方式
44.为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
45.需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
46.在一个实施例中,请参照图1所示,本发明提供了对宿主机与虚拟机进行单向时间同步的一种时间设定方法100,具体来说该方法包括以下步骤:
47.s101,在宿主机运行的第一操作系统中创建并运行虚拟化管理软件,并通过所述虚拟化管理软件启动至少一个虚拟机,其中,每一虚拟机均运行第二操作系统;
48.需要说明的是,本实施例中不对第一操作系统和第二操作系统的具体类型和版本进行限定,第一操作系统和第二操作系统可以是任何现有的操作系统,比如第一操作系统可以是linux操作系统,而第二操作系统可以是windows操作系统,而以上提及的linux操作系统和windows操作系统的版本可以是任意现有或者未来可能更新的操作的版本。需要说明的是第一操作系统和第二操作系统可以相同,当然第一操作系统和第二操作系统也可以采用不同的操作系统,对于具有多个虚拟机的情形第二操作系统可以相同也可以不同,例如部分虚拟机操作系统为windows操作系统,部分虚拟机操作系统为linux操作系统。在具体实施过程中可根据用户的需要在宿主机或虚拟机中安装合适的操作系统。虚拟化管理软件可以是任何现有的能够启动并管理虚拟机的软件,例如虚拟化管理软件可以选自vmware(vmware ace)、virtual box和virtual pc。
49.s102,在所述至少一个虚拟机对应的第二操作系统中运行监控软件,其中,所述监控软件用于监测第二操作系统的时间设定事件;具体来说时间设定事件可以是人为在虚拟机操作系统中进行时间设定的行为,也可以是利用运行在第二操作系统中的程序或命令实现的时间设定行为。
50.s103,响应于所述监控软件监测到时间设定事件,则将所述监控软件对应的虚拟机作为目标虚拟机,并获取所述目标虚拟机的第二操作系统的当前时间;
51.s104,基于第二操作系统的当前时间确定第一时间;
52.s105,利用所述虚拟化管理软件基于所述第一时间对所述宿主机的第一操作系统的时间进行同步。
53.上述一种时间同步方法,首先利用第一操作系统的虚拟化管理软件启动至少一个虚拟机,在每个虚拟机的第二操作系统中运行监控软件以监控第二操作的时间设定事件,若第二操作系统存在时间设定事件,则将该第二操作系统对应的虚拟机作为目标虚拟机,然后通过目标虚拟机的当前时间确定第一时间,最后利用虚拟化管理软件基于第一时间对宿主机的第一操作系统时间进行同步,实现了虚拟机到宿主机的由下向上时间同步,丰富了时间同步的种类,提高了时间设定的灵活性。
54.在一些实施例中,前述步骤104具体可以采用以下方式实施:
55.将第二操作系统的当前时间与第一预设时间之和作为所述第一时间。
56.举例来说,在具体实施过程中第二操作系统和第一操作系统进行通信需要一定的时间,而且获取操作系统当前时间也需要时间,对于一些时间精确度要求较高的应用场景,为了尽可能的减少时间设定的误差,可以利用经验或者其他现有的测量技术对第二操作系统与第一操作系统通信所需时间进行预测从而设置第一预设时间,例如假设用户获取到第二操作系统的当前时间为2020年4月1日19点12分36秒,而依据经验第一预设时间为2秒,那么所确定的第一时间即为2020年4月1日19点12分38秒,后续第一操作系统可以基于该新确定的第一时间进行时间同步。需要说明的是虽然本实施精确到秒,但是对于时间设定要求精确度较高的应用场景第一预设时间还可精确到毫秒或者更精确时间单位。
57.在一些实施例中,前述步骤105具体可以采用以下步骤实施:
58.利用虚拟化管理软件调用第一操作系统的时间设定函数接口;
59.通过第一操作系统的时间设定函数接口将第一操作系统的系统时间修改为第一时间。
60.在又一个实施例中,请参照图2所示,在前述实施例的基础上本发明还提供了能对宿主机与虚拟机进行双向时间同的另一种时间同步方法200,具体来说该方法包括以下步骤:
61.s201,在宿主机运行的第一操作系统中创建并运行虚拟化管理软件,并通过所述虚拟化管理软件启动至少一个虚拟机,其中,每一虚拟机均运行第二操作系统;
62.需要说明的是,本实施例中不对第一操作系统和第二操作系统的具体类型和版本进行限定,第一操作系统和第二操作系统可以是任何现有的操作系统,比如第一操作系统可以是linux操作系统,而第二操作系统可以是windows操作系统,而以上提及的linux操作系统和windows操作系统的版本可以是任意现有或者未来可能更新的操作的版本。需要说明的是第一操作系统和第二操作系统可以相同,当然第一操作系统和第二操作系统也可以
采用不同的操作系统,对于具有多个虚拟机的情形第二操作系统可以相同也可以不同,例如部分虚拟机操作系统为windows操作系统,部分虚拟机操作系统为linux操作系统。在具体实施过程中可根据用户的需要在宿主机或虚拟机中安装合适的操作系统。虚拟化管理软件可以是任何现有的能够启动并管理虚拟机的软件,例如虚拟化管理软件可以选自vmware(vmware ace)、virtual box和virtual pc。
63.s202,在所述至少一个虚拟机对应的第二操作系统中运行监控软件,其中,所述监控软件用于监测第二操作系统的时间设定事件;具体来说时间设定事件可以是人为在虚拟机操作系统中进行时间设定的行为,也可以是利用运行在第二操作系统中的程序或命令实现的时间设定行为。
64.s203,响应于所述监控软件监测到时间设定事件,则将所述监控软件对应的虚拟机作为目标虚拟机,并获取所述目标虚拟机的第二操作系统的当前时间;
65.s204,基于第二操作系统的当前时间确定第一时间;
66.s205,利用所述虚拟化管理软件基于所述第一时间对所述宿主机的第一操作系统的时间进行同步;
67.s206,响应于所述宿主机的第一操作系统完成时间同步,则获取所述第一操作系统当前时间;
68.s207,基于所述第一操作系统的当前时间确定第二时间;
69.s208,利用所述虚拟化管理软件基于所述第二时间对所述至少一个虚拟机中除所述目标虚拟机以外的每一虚拟机进行时间同步。
70.需要说明的是与前一实施例的区别是,本实施例还提供宿主机与其他虚拟机的由上向下的时间同步,通过将宿主机修改以后的时间作为第二时间,然后利用该确定的第二时间对运行在宿主机上的其他虚拟机进行时间同步,即采用自上向下对虚拟机的时间进行同步,使得该宿主机上运行的虚拟机可以采用相同的时间,避免了在多个虚拟机上进行单独时间设定操作,极大的减小了同一宿主机上各个虚拟机的时间差异,简化了用户对虚拟机的时间设定流程,提高了虚拟机与宿主机之间的时间设定效率
71.在一些实施例中,前述步骤207具体可以采用一些方式实施:
72.将第一操作系统的当前时间与第二预设时间之和作为所述第二时间。
73.举例来说,在具体实施过程中第一操作系统和每个第二操作系统进行通信需要一定的时间,而且获取操作系统当前时间也需要时间,对于一些时间精确度要求较高的应用场景,为了尽可能的减少时间设定的误差,可以利用经验或者其他现有的测量技术度对第一操作系统与第二操作系统通信所需时间进行预测从而设置第二预设时间,例如假设用户获取到第一操作系统的当前时间为2020年4月1日16点33分2秒,而依据经验第一预设时间为1秒,那么所确定的第二时间即为2020年4月1日19点33分3秒,后续每个第二操作系统可以基于该新确定的第二时间进行时间同步。需要说明的是虽然本实施精确到秒,但是对于时间设定要求精确度较高的应用场景第一预设时间还可精确到毫秒或者更精确时间单位。
74.在一些实施例中,前述步骤s208具体包括以下步骤:
75.利用虚拟化管理软件调用所述至少一个虚拟机中除所述目标虚拟机以外的每一虚拟机对应的第二操作系统的时间设定函数接口;
76.通过每一虚拟机对应的第二操作系统的时间设定函数接口将对应的第二操作系
统的系统时间修改为第二时间。
77.优选地,所述第一操作系统和第二操作系统均包括:linux系统,unix系统,ubuntu系统、mac系统、windows,所述虚拟化管理软件为virtualbox软件,所述监控软件为guesttools软件。
78.在一些实施例中,为了便于理解本发明的技术方案,下面以一个具体的应用场景为例,请结合图3所示,本实施例以宿主机第一操作系统为ubuntu系统为例,该宿主机上运行一个虚拟机,该虚拟机的操作系统为windows系统,本发明方法分为三个部分;
79.第一部分是guesttools,该工具是virtualbox提供的虚拟机中安装的增强软件。guesttools能够与virtualbox虚拟化层进行通信,当宿主机的时间变更时,virutalbox虚拟化层就将当前时间通知到guesttools中,由guesttools设置虚拟机的时间,这样就实现了宿主机与虚拟机之间的单向(即由上向下)的时间同步。
80.本在上述宿主机与虚拟机之间时间同步的基础上,增加了基于事件触发的时间感知机制,由于虚拟机中的操作系统(假设为windows7操作系统)提供了时间设定的事件回调机制,所以需要在guesttools中捕获时间设定事件,当虚拟机中的时间被设定时,windows7操作系统能够自动触发该事件,并且guesttools中能够自动捕获到该事件。
81.第二部分是guesttools与virtualbox虚拟化层之间的通信消息。virtualbox已经提供了虚拟化层与guesttools之间的通信通道,当guesttools基于上述的原理捕获到时间变更的事件时,会将该事件封装为一个消息,并将该消息通过已有的通道发送到virtualbox的虚拟化层。
82.第三部分是virtualbox虚拟化层,该层安装在宿主机中,基于上述的原理,virtualbox虚拟化层会接收到虚拟机时间变更的事件消息,基于消息的类型,调用宿主机操作系统(假设是ubuntu操作系统)的时间设定的函数接口,进行宿主机的时间设定。
83.具体实现方法如下:
84.步骤一,在宿主机中安装ubuntu16.04.2操作系统,安装virtualbox6.0虚拟化软件,启动一个虚拟机,该虚拟机安装windows7操作系统。
85.步骤二,在虚拟机中安装guesttools软件,该软件增加了windows时间变更事件处理函数,当该函数捕获到windows的时间变更事件时,将事件封装为时间变更消息,调用virutalbox已有的消息通道的函数,将消息发送到virutalbox的虚拟化层。
86.步骤三,virtualbox虚拟化层增加接收windows时间变更消息的处理函数,该消息包含虚拟机变更后的时间。该处理函数通过调用宿主操作系统的时间设定函数,使得虚拟机中时间能够同步到宿主机中。
87.本实施例的时间同步方法,通过利用guesttools软件与virtualbox虚拟化层已预先创建的通信通道,实现了虚拟机与宿主机之间的向下时间同步,无需在宿主机和虚拟机之间重新搭建新的通信通道,节省了时间同步成本,具有较佳的通用性。
88.在又一个实施例中,请参照图4所示,本发明还提供了一种时间同步装置300,所述装置包括:
89.虚拟机创建模块301,配置为在宿主机运行的第一操作系统中创建并运行虚拟化管理软件,并通过所述虚拟化管理软件启动至少一个虚拟机,其中,每一虚拟机均运行第二操作系统;
90.监控模块302,配置为在所述至少一个虚拟机对应的第二操作系统中运行监控软件;
91.时间获取模块303,配置为响应于所述监控软件监测到时间设定事件,则将所述监控软件对应的虚拟机作为目标虚拟机,并获取所述目标虚拟机的第二操作系统的当前时间;
92.时间确定模块304,配置为基于第二操作系统的当前时间确定第一时间;
93.同步模块305,配置为利用所述虚拟化管理软件基于所述第一时间对所述宿主机的第一操作系统的时间进行同步。
94.需要说明的是,关于时间同步装置的具体限定可以参见上文中对时间同步方法的限定,在此不再赘述。上述时间同步装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
95.根据本发明的另一方面,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图请参照图4所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时实现以上所述的时间同步方法,具体来说,所述方法包括以下步骤:
96.在宿主机运行的第一操作系统中创建并运行虚拟化管理软件,并通过所述虚拟化管理软件启动至少一个虚拟机,其中,每一虚拟机均运行第二操作系统;
97.在所述至少一个虚拟机对应的第二操作系统中运行监控软件,其中,所述监控软件用于监测第二操作系统的时间设定事件;
98.响应于所述监控软件监测到时间设定事件,则将所述监控软件对应的虚拟机作为目标虚拟机,并获取所述目标虚拟机的第二操作系统的当前时间;
99.基于第二操作系统的当前时间确定第一时间;
100.利用所述虚拟化管理软件基于所述第一时间对所述宿主机的第一操作系统的时间进行同步。
101.根据本发明的又一方面,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以上所述的时间同步方法,具体来说,包括执行以下步骤:
102.在宿主机运行的第一操作系统中创建并运行虚拟化管理软件,并通过所述虚拟化管理软件启动至少一个虚拟机,其中,每一虚拟机均运行第二操作系统;
103.在所述至少一个虚拟机对应的第二操作系统中运行监控软件,其中,所述监控软件用于监测第二操作系统的时间设定事件;
104.响应于所述监控软件监测到时间设定事件,则将所述监控软件对应的虚拟机作为目标虚拟机,并获取所述目标虚拟机的第二操作系统的当前时间;
105.基于第二操作系统的当前时间确定第一时间;
106.利用所述虚拟化管理软件基于所述第一时间对所述宿主机的第一操作系统的时间进行同步。
107.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
108.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
109.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献