CN105260227A - 一种数据修正方法及电子设备 - Google Patents
一种数据修正方法及电子设备 Download PDFInfo
- Publication number
- CN105260227A CN105260227A CN201510632096.8A CN201510632096A CN105260227A CN 105260227 A CN105260227 A CN 105260227A CN 201510632096 A CN201510632096 A CN 201510632096A CN 105260227 A CN105260227 A CN 105260227A
- Authority
- CN
- China
- Prior art keywords
- time
- time source
- source
- virtual machine
- current
- 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.)
- Granted
Links
Landscapes
- Hardware Redundancy (AREA)
Abstract
本申请提供了一种数据修正方法及电子设备,在检测到虚拟机进行备份操作而暂停运行,将读取多个待选时间源各自的第一当前时间并保存,当该虚拟机对备份操作的备份内容进行恢复操作时,按照第一预设规则,从这多个待选时间源中选定目标时间源,读取该目标时间源的第二当前时间,将其与第一当前时间进行比较,获得从备份操作到恢复操作过程的目标时间差值,即虚拟机暂停时间,此时,无论虚拟机暂停时间多长,当前虚拟化环境是否构建有NTP服务器,本申请都会利用该目标时间差值,对虚拟机的系统时间进行准确校正,以解决虚拟机进行备份和恢复操作中产生的时间漂移问题,保证其输出时间准确、可靠。
Description
技术领域
本发明主要涉及虚拟化技术领域,更具体地说是涉及一种数据修正方法及电子设备。
背景技术
虚拟机的在线迁移技术是指将在源物理主机上运行的虚拟机操作系统及应用程序移动到目标物理主机上或虚拟机上,并在该目标物理主机上正常运行,无需中断物理主机,从而提高了物理主机工作的可靠性。
基于此,在实际应用中,尤其是在系统的备份和恢复应用中,当检测到有不稳定表现的物理服务器时,由于虚拟机的高可靠性这一特性,可直接将虚拟机动态迁离,这并不会影响该虚拟机中应用或服务的运行;且在分布式虚拟化环境中,可以将位于高负载物理服务器上的虚拟机动态迁移到低负载的物理服务器上,从而实现分布式环境中的负载平衡。
由此可见,虚拟机的在线迁移技术在系统的备份和恢复应用中非常实用,然而,当虚拟机从之前备份的状态文件中恢复时,由于其系统时间和真实系统时间之间会产生时间漂移,因而,现有技术中通常会使用NTP服务器及时校正虚拟机的系统时间,以保证其时间信息的正确性。
然而,在实际应用中,并不是所有虚拟化环境都搭建有NTP服务器,且其必须要连接外网才能进行时间校正,还要求虚拟机的备份操作和恢复操作的间隔时间不能太长,否则将导致时间漂移数值过大,该NTP服务器将停止时间校正,由此可见,如何解决各虚拟化环境中的时间漂移问题,以保证虚拟机输出时间可靠,成为目前亟需解决的问题。
发明内容
有鉴于此,本发明提供了一种数据修正方法及电子设备,解决了现有的数据修正方法要求当前虚拟环境必须构建NTP服务器,且能够连接外网,还要求在该虚拟化环境中进行的备份和恢复操作的间隔时间较短的前提下,才能使用该NTP服务器校正虚拟机输出时间,应用非常局限,只要其中任意一条不满足都无法解决该虚拟化环境中的时间漂移问题,从而无法保证虚拟机输出时间的准确性和可靠性。
为了实现上述目的,本申请提供了以下技术方案:
一种数据修正方法,所述方法包括:
检测到虚拟机进行备份操作,读取多个待选时间源各自的第一当前时间并保存;
检测到所述虚拟机对所述备份操作的备份内容进行恢复操作,按照第一预设规则,从所述多个待选时间源中选定目标时间源,并读取所述目标时间源的第二当前时间;
比较所述目标时间源的第一当前时间和第二当前时间,获得目标时间差值;
基于所述目标时间差值,更新所述虚拟机的虚拟时间源的当前时间。
优选的,若所述多个待选时间源包括本地时间源和至少三个第三方时间源,则所述按照第一预设规则,从所述多个待选时间源中选定目标时间源包括:
按照第一预设标准,验证所述本地时间源是否可用;
在所述本地时间源可用时,选定所述本地时间源为目标时间源;
在所述本地时间源不可用时,验证所述至少三个第三方时间源中是否存在可用的第三方时间源;
当所述至少三个第三方时间源中存在可用的第三方时间源,按照预设优先级,选定一个或多个所述可用的第三方时间源为目标时间源。
优选的,按照以下方法验证所述待选时间源是否可用,所述待选时间源具体是所述本地时间源或所述第三方时间源:
验证从发生所述备份操作到进行所述恢复操作期间,所述待选时间源所在物理机是否发生过重启;
则所述待选时间源不可用包括:
从发生所述备份操作到进行所述恢复操作期间,所述待选时间源所在物理机发生过重启。
优选的,当所述待选时间源具体是本地时间源时,在验证从发生所述备份操作到进行所述恢复操作期间,所述待选时间源所在物理机是否发生过重启之前,所述方法还包括:
验证所述恢复操作和所述备份操作是否在同一个物理机上进行;
当所述恢复操作与所述备份操作在同一个物理机上进行,执行所述验证从发生所述备份操作到进行所述恢复操作期间,所述待选时间源所在物理机是否发生过重启步骤;
则所述本地时间源可用具体为:
所述恢复操作与所述备份操作在同一个物理机上进行,且从发生所述备份操作到进行所述恢复操作期间所述物理机未发生过重启;
所述本地时间源不可用具体为:
所述恢复操作与所述备份操作不在同一个物理机上;或者,所述恢复操作与所述备份操作在同一个物理机上进行,但所述物理机在从发生所述备份操作到进行所述恢复操作期间发生过重启。
优选的,当选定多个可用的第三时间源为目标时间源时,所述比较所述目标时间源的第一当前时间和第二当前时间,获得目标时间差值包括:
比较每一个可用的第三方时间源的第一当前时间和第二当前时间,获得所述每一个可用的第三时间源对应的时间差值;
计算所获得的所述多个可用的第三方时间源对应的时间差值的平均值,将计算得到的平均时间差值作为目标时间差值。
优选的,在所述检测到虚拟机进行备份操作时,所述方法还包括:
获取每个所述待选时间源所在系统的第一当前运行时间和第一本地系统时间;
在所述检测到所述虚拟机对所述备份操作的备份内容进行恢复操作时,所述方法还包括:
获取每个所述待选时间源所在系统的第二当前运行时间和第二本地系统时间;
则所述验证从发生所述备份操作到进行所述恢复操作期间,所述待选时间源所在物理机是否发生过重启包括:
计算所述第一当前运行时间和所述第二当前运行时间的第一时间差值,以及所述第一本地系统时间和所述第二本地系统时间的第二时间差值;
判断所述第一时间差值是否小于所述第二时间差值;
则所述从发生所述备份操作到进行所述恢复操作期间,所述待选时间源所在物理机发生过重启具体为:
所述第一时间差值小于所述第二时间差值。
优选的,所述基于所述目标时间差值,更新所述虚拟机的虚拟时间源的当前时间具体为:
在所述虚拟机完成所述恢复操作且接收到第一次时钟中断信号时,利用所述目标时间差值对系统时间全局变量进行增量更新。
一种电子设备,所述电子设备包括:
时间保存装置,用于在检测到虚拟机进行备份操作时,保存读取到的多个待选时间源各自的第一当前时间;
时间恢复装置,用于在检测到所述虚拟机对所述备份操作的备份内容进行恢复操作,按照第一预设规则,从所述多个待选时间源中选定目标时间源,读取所述目标时间源的第二当前时间,比较所述目标时间源的第一当前时间和第二当前时间,获得目标时间差值,并基于所述目标时间差值,更新所述虚拟机的虚拟时间源的当前时间。
优选的,若所述多个待选时间源包括本地时间源和至少三个第三方时间源,所述时间恢复装置包括:
第一验证模块,用于按照第一预设标准,验证所述本地时间源是否可用;
第二验证模块,用于在所述第一验证模块的验证结果为否时,验证所述至少三个第三方时间源中是否存在可用的第三方时间源;
目标选定模块,用于在所述第一验证模块的验证结果为是时,选定所述本地时间源为目标时间源;在所述第二验证模块的验证结果为是时,按照预设优先级,选定一个或多个所述可用的第三方时间源为目标时间源。
优选的,所述时间恢复装置还包括:
数据传输模块,用于在所述检测到虚拟机进行备份操作时,获取每个所述待选时间源所在系统的第一当前运行时间和第一本地系统时间;在所述检测到所述虚拟机对所述备份操作的备份内容进行恢复操作时,获取每个所述待选时间源所在系统的第二当前运行时间和第二本地系统时间;
则所述第一验证模块和所述第二验证模块均具体用于计算所述第一当前运行时间和所述第二当前运行时间的第一时间差值,以及所述第一本地系统时间和所述第二本地系统时间的第二时间差值;判断所述第一时间差值是否小于所述第二时间差值。
由此可见,与现有技术相比,本申请提供了一种数据修正方法及电子设备,在检测到虚拟机进行备份操作时,该虚拟机将暂停运行,此时将读取多个待选时间源各自的第一当前时间并保存,当检测到该虚拟机对该备份操作的备份内容进行恢复操作时,按照第一预设规则,从这多个待选时间源中选定目标时间源,读取该目标时间源的第二当前时间,并将其与备份操作时保存的该目标时间源的第一当前时间进行比较,从而获得从备份操作到恢复操作过程的目标时间差值,即虚拟机暂停时间,此时,无论虚拟机暂停时间多长,当前虚拟化环境是否构建有NTP服务器,本申请都能够利用该目标时间差值,对虚拟机的系统时间进行准确校正,以解决虚拟机进行备份和恢复操作时产生的时间漂移问题。可见,本申请提供的数据修正方法及电子设备解决了现有技术中利用NTP服务器校正漂移时间的方法应用范围具有很大局限性的问题,保证了各虚拟化环境中虚拟机输出时间的准确性和可靠性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明提供的一种数据修正方法实施例的流程示意图;
图2为本发明提供的另一种数据修正方法实施例的部分流程示意图;
图3为本发明提供的一种数据修正方法具体实施例的流程示意图;
图4为本发明提供的一种电子设备实施例的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前,随着计算机技术的高速发展,为了满足实际功能需求,通常都会将大量处理器核集成到一个芯片上,但是,如何将集成的芯片发挥到最大效果,将是软件面临的严峻挑战,现有的操作系统和软件并不能充分利用硬件快速发展的并行计算能力。为了解决这个问题,如今引入了虚拟化技术,将单个硬件虚拟为数量更多的虚拟部件,从而支持使得更多的应用能够并行运行,以充分利用多核平台的并行计算能力。
在虚拟化环境中,虚拟机的备份和恢复操作为设备工作带来了很大方便,如可以根据需要暂停虚拟机的运行,之后,可在本地或异地恢复该虚拟机的运行,基于此,该特性最常运用到虚拟机的在线迁移,不仅能够将虚拟机动态迁离有不稳定表现的物理服务器,而且不影响虚拟机中应用或服务的运行,此外,其还可以将位于高负载物理服务器上的虚拟机动态迁移到低负载的物理服务器上,从而实现分布式环境中的负载平衡。
然而,在虚拟机的备份和恢复应用中,仍然存在时间漂移的问题,即在虚拟机从之前保存的状态文件中恢复时,其显示的系统时间和真实系统时间之间会产生漂移,且时间漂移的大小与该虚拟机的save和restore动作间的时间差值有关,这为用户的实际应用带来很大不便。
为了解决虚拟机的时间漂移问题,申请人对虚拟机中系统时间的维护机制进行了深入研究,发现在物理机的系统时间维护机制中,为了使系统管理时间更加灵活,能够更好地满足用户的需求,在对系统时间全局变量初始化之后,系统在每次更新系统时间时,用的是增量更新的方法而不是绝对值更新方法。同样,在虚拟机中,系统仍然采用增量更新的方法来维护系统时间,在虚拟机进行初始化时,hypervisor会为每一个虚拟机创建一个虚拟时间源,并且用自己当前的系统时间数据来初始化该虚拟时间源的时间数据,在该hypervisor定期产生时钟中断时,其除了要增量更新自己的系统时间数据外,也要采用增量更新的方式更新虚拟机对应的虚拟时间源的时间数据。
基于此,当虚拟机进行备份操作时,其会把当前所有的状态信息数据保存下来,包括与其对应的虚拟时间源的时间数据。这样,当该虚拟机进行恢复操作时,其虚拟时间源将恢复之前保存的时间数据,在此之后,该虚拟机的虚拟时间源和系统时间都会继续被增量更新,但由于虚拟机进行备份和恢复操作之间的差值被忽略了,导致该虚拟机的时间出现了漂移。
针对虚拟机的时间漂移问题,申请人经上述研究分析,得知本申请修正该时间漂移的思想,即获取虚拟机进行备份操作和恢复操作过程中产生的时间差信息,并恢复操作时,利用该时间差信息更新该虚拟机的虚拟时间源的时间数据。基于此,本申请提供了一种数据修正方法及电子设备,在检测到虚拟机进行备份操作时,该虚拟机将暂停运行,此时将读取多个待选时间源各自的第一当前时间并保存,当检测到该虚拟机对该备份操作的备份内容进行恢复操作时,按照第一预设规则,从这多个待选时间源中选定目标时间源,读取该目标时间源的第二当前时间,并将其与备份操作时保存的该目标时间源的第一当前时间进行比较,从而获得从备份操作到恢复操作过程的目标时间差值,即虚拟机暂停时间,此时,无论虚拟机暂停时间多长,当前虚拟化环境是否构建有NTP服务器,本申请都会利用该目标时间差值,对虚拟机的系统时间进行准确校正,以解决虚拟机进行备份和恢复操作时产生的时间漂移问题。可见,本申请提供的数据修正方法及电子设备的实现过程并不受时间漂移的数值大小以及当前虚拟化环境是否构建NTP服务器等条件的限制,在各种虚拟化环境中都能够保证虚拟机输出时间准确、可靠,使得该方法及电子设备具有很广的应用范围。
为了使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
图1为本发明提供的一种数据修正方法实施例的流程示意图,该方法可以包括以下步骤:
步骤S110:检测到虚拟机进行备份操作,读取多个待选时间源各自的第一当前时间并保存。
结合上述分析,本申请将选择一个不受虚拟机是否运行的影响的时间源,以得到该虚拟机备份和恢复操作的时间差,以校准恢复操作后虚拟机的系统时间,对此,为了避免所选择的时间源在该过程中出现不可用的问题,而导致最后所得时间差不准确,本实施例将预先设定多个待选的时间源,以便在进行恢复操作时,选用其中可用的时间源的时间信息,得到该虚拟机进行备份和恢复操作过程的时间差。
基于此,在本实施例中,该待选时间源可以包括本地时间源、至少三个第三方时间源等等,本申请对此不作限定。
步骤S120:检测到所述虚拟机对所述备份操作的备份内容进行恢复操作,按照第一预设规则,从所述多个待选时间源中选定目标时间源,并读取所述目标时间源的第二当前时间。
可选的,在实际应用中,对于预先设定的多个待选时间源,在这些待选时间源都可用的情况下,本地时间源是最准确的,通过网络第三方获取的时间差值信息可能会因为网络延迟的存在,而导致其时间差值存在少许偏差,所以,从得到的时间差值信息的准确性的角度考虑,在进行上述恢复操作时,可按照本地时间源、第三方时间源的顺序,设置对这多个待选时间源的优先级,但并不局限于此。
由此可见,若该上述多个待选时间源包括本地时间源和至少三个第三方时间源,如图2所示,本申请可以按照下述步骤选择目标时间源:
步骤201:按照第一预设标准,验证本地时间源是否可用,若可用,执行步骤S202;若不可用,执行步骤S203。
在本实施例中,不可用的时间源可知是指输出时间信息无法准确计算出虚拟机进行备份和恢复操作的时间差,并不一定是指该时间源故障。
基于此,对于本地时间源来说,若虚拟机进行的备份操作和恢复操作不是在同一个物理机上进行,或者说,两者是在同一个物理机上进行,但是在此期间该物理机发生过重启等情况,都会导致基于该本地时间源得到的时间差值信息不准确,也就是说,发生这种情况时,该本地时间源就是不可用的。也就是说,如该本地时间源可用,虚拟机所进行的恢复操作与所述备份操作在同一个物理机上进行,且从发生所述备份操作到进行所述恢复操作期间该物理机未发生过重启。
而对于第三方时间源来说,在虚拟机从开始进行备份操作到完成恢复操作的期间,若其所在物理机发生过重启,也会导致基于该第三方时间源得到的时间差值信息不准确,即这种情况下,该第三方时间源就是不可用的。其中,在本实施例中,为了避免在虚拟机从开始备份到完成恢复操作的期间,没有一个可用的时间源,本实施例可选择至少三个第三方时间源作为待选时间源,同时,本实施例选择至少三个第三方时间源也提高了所得时间差值信息的可信度。
由此可见,无论哪种待选时间源,只要其所在物理机发生过重启,该待选时间源就不可用了,而本地时间源还需要判断虚拟机是否在同一个物理机上执行备份和恢复操作,才能确定该本地时间源是否可用。所以,在本实施例中,待选时间源不可用可以包括:从虚拟机发生备份操作到进行恢复操作期间,该待选时间源所在物理机发生过重启。其中,判断待选时间源是否可用的具体过程可参照下文描述,本实施在此不再详述。
步骤S202:选定所述本地时间源为目标时间源。
步骤S203:验证所述至少三个第三方时间源中是否存在可用的第三方时间源,若存在,执行步骤S204;若不存在,结束流程。
如上述描述,按照预设待选时间源的优先级,当需要得知虚拟机从开始执行备份操作到完成恢复操作的时间差时,本实施例将先验证本地时间源是否可用,在该本地时间源不可用的情况下,才会从第三方时间源中选取可用的第三方时间源作为目标时间源。
步骤S204:按照预设优先级,选定一个或多个所述可用的第三方时间源为目标时间源。
在本实施例中,对于预先选定的第三方时间源也可以设定优先级,具体可以依据这些第三方时间源向该虚拟机传输时间差信息的传输方式决定,但并不局限于此。
可选的,在本实施例中,在判断本地时间源和第三方时间源是否可用时,所涉及到的判断所在物理机是否重启的过程类似,在此之前,具体是在虚拟机进行备份操作时,需要获得每个待选时间源所在系统的第一当前运行时间和第一本地系统时间,并在检测到所述虚拟机对所述备份操作的备份内容进行恢复操作时,获取每个所述待选时间源所在系统的第二当前运行时间和第二本地系统时间,在该条件下,验证从发生所述备份操作到进行所述恢复操作期间,待选时间源所在物理机是否发生过重启的步骤具体可以包括:
计算所述第一当前运行时间和所述第二当前运行时间的第一时间差值,以及所述第一本地系统时间和所述第二本地系统时间的第二时间差值;判断所述第一时间差值是否小于所述第二时间差值,若是,说明该待选时间源所在物理机发生过重启,其是不可用的;若否,将针对该待选时间源具体类型,确定该待选时间源是否可用。如若该待选时间源此时是指本地时间源,那么在此之前,还需要验证虚拟机的备份操作和恢复操作是否是在同一个物理机上进行的,若是,才需要进一步验证该物理机在此期间是否发生过重启,若否,说明该本地时间源不可用,并不需要进行后续验证。
步骤S130:比较所述目标时间源的第一当前时间和第二当前时间,获得目标时间差值。
由于待选时间源的时间更新情况并不会受虚拟机是否工作的影响,也就是说,在虚拟机完成备份而暂停后,该待选时间源仍然在更新其时间信息,所以,本实施例获得目标时间源从虚拟机进行备份操作开始,到该虚拟机针对该备份操作所备份内容完成恢复操作时的时间信息,其实际上就是该虚拟机从备份操作到恢复操作的暂停时间。
可选的,若选定的目标时间源是多个可用的第三方时间源,在利用每一个第三方时间源的第一当前时间和第二当前时间,获得每一个第三方时间源的时间差值后,可计算这多个可用的第三方时间源对应的时间差值的平均值,并将计算得到的平均时间差值作为目标时间差值,以进行后续步骤。需要说明的是,在目标时间源是多个可用时间源的情况下,获得目标时间差值的方式并不局限于这种方式。
步骤S140:基于所述目标时间差值,更新所述虚拟机的虚拟时间源的当前时间。
基于上述描述内容可知,本实施例所得目标时间差实际上就是虚拟机进行备份和恢复操作之间的时间差值,因此,在该虚拟机完成针对其备份操作所备份的内容的恢复操作时,将利用该目标时间差值对该虚拟机的虚拟时间源进行增量更新,从而使其更新后的时间准确,满足用户的需求。
其中,在本实施例实际应用中,在得到目标时间差值后,具体可以在虚拟机完成所述恢复操作且接收到第一次时钟中断信号时,利用该目标时间差值对系统时间全局变量进行增量更新,但并不局限于此。
由此可见,本实施例不仅考虑到了虚拟机进行备份和恢复操作过程中的时间漂移问题,实现了对虚拟机的系统时间的准确校正,确保其输出时间信息准确、可靠;而且,本实施例提供的数据修正方法对虚拟机的虚拟时间源进行更新时,并不需要其所在环境构建NTP服务器,不受时间漂移的数值大小的影响,所以,无论虚拟机进行备份和恢复操作间隔时间多长,当前虚拟化环境中是否构建有NTP服务器,都能够在虚拟机进行恢复操作时对该虚拟机的系统时间进行准确校正,增大了本申请技术方案的应用范围。
如图3所示,为本申请提供的一种数据修正方法具体实施例的流程示意图,该方法可以包括:
步骤S301:在检测到虚拟机进行备份操作时,获取本地时间源所在系统的第三当前运行时间和第三本地系统时间,以及各第三方时间源所在系统的第四当前运行时间和第四本地系统时间并保存。
其中,该第三当前运行时间是指当前本地时间源所在物理机的运行时间,正常情况下,物理机的运行时间是与本地系统时间一致,若该物理机重启后,其运行时间将从零开始重新计时,此时,物理机的当前运行时间与当前系统时间不同。
结合上述分析可知,在确定本地时间不可以用后,将进一步验证是否有可用的第三方时间源,所以,此时还需要获取各第三方时间源所在的系统的第四当前运行时间和第四本地系统时间。
步骤S302:检测到该虚拟机对该备份操作的备份内容进行恢复操作时,验证该恢复操作和该备份操作是否在同一个物理机上进行,若是,进入步骤S303;若否,执行步骤S307。
在本实施例实际应用中,可以在虚拟机进行备份操作和恢复操作时,获取当前所在物理机的属性信息,这样,通过对该属性进行比较,来验证备份操作和恢复操作是否在同一个物理机上进行,但并不局限这种验证方式。若不在一个物理机上进行,说明该本地时间源不可用,其所得时间差信息不能准确表示虚拟机进行备份和恢复操作之间的间隔时间,此时,可以对下一优先级的待选时间源进行验证,以确定能够准确表示该间隔时间的目标时间源。
步骤S303:获取该本地时间源所在系统的第五当前运行时间和第五本地系统时间。
步骤S304:计算第三当前运行时间和第五当前运行时间的第一时间差值,以及第三本地系统时间和第五本地系统时间的第二时间差值。
步骤S305:判断该第一时间差值是否小于该第二时间差值,若否,执行步骤S306;若是,执行步骤S307。
步骤S306:选定该本地时间源为目标时间源,并基于所述第二时间差值,更新所述虚拟机的虚拟时间源的当前时间。
在上述步骤S305的判断结果为否时,说明该本地时间源所在物理机并未重启,其是可用的,此时,上述第一时间差值和第二时间差值通常情况下是相等的,可作为目标时间差更新该虚拟机的系统时间。
步骤S307:获取各第三方时间源所在系统的第六当前运行时间和第六本地系统时间。
需要说明的是,上述第三当前运行时间、第四当前运行时间、第五当前运行时间以及第六当前运行时间表示的可以是对应待选时间源所在物理机相应时刻的运行时间。
步骤S308:计算第四当前运行时间和第六当前运行时间的第三时间差值,以及第四本地系统时间以及第六本地系统时间的第四时间差值。
步骤S309:判断至少三个第三方时间源对应的第三时间差值是否小于第四时间差值,若否,进入步骤S310;若是,结束流程。
在本实施例中,结合上述分析可知,对于任何一个第三方时间源,若其对应的第三时间差值小于第四时间差值,说明该第三方时间差值所在的物理机发生过重启,该第三方时间源是不可用的。所以,本实施例通过这种方式可在至少三个第三方时间源中确定可用的第三方时间源。
步骤S310:计算所有第三时间差值不小于第四时间差值的所有第三方时间源对应的第四时间差值的平均值,并基于该计算结果,更新虚拟机的虚拟时间源的当前时间。
综上所述,本实施例在考虑虚拟机进行备份和恢复操作过程中的时间漂移问题的同时,进一步考虑到了用于解决该时间漂移问题的目标时间源的时间差值信息的可用性问题,即该目标时间源的可用性问题,从而避免所选用的目标时间不可用而导致所得目标时间差值不准确,进而导致对虚拟机的系统时间的校正不准确。针对这种情况,本实施例在选择目标时间源时,可按照上述验证规则以及多个待选时间源的优先级,逐级验证各待选时间源是否可用,在确定该待选时间源可用后,才会利用基于其输出时间获得的时间差值,实现对虚拟机系统时间的校正,从而保证该虚拟机的输出时间的可靠性。
基于上述分析可知,本实施例提供的这种数据修正方法是否执行,与虚拟机进行备份操作和恢复操作的间隔时间的长短无关,且与当前虚拟化环境中是否构建有NTP服务器也无关,也就是说,无论当前虚拟化环境中是否构建NTP服务器,当前产生的时间漂移的数值多大,都可以利用本实施例提供的数据修正方法对虚拟机的系统时间进行校正,确保其输出时间信息准确、可靠。
如图4所示,为本申请提供的一种电子设备实施例的结构示意图,该电子设备可以包括:
时间保存装置410,用于在检测到虚拟机进行备份操作时,保存读取到的多个待选时间源各自的第一当前时间。
其中,本实施例的多个待选时间源可以包括本地时间源以及至少三个第三方时间源,而且,对于读取到的各待选时间源的第一当前时间,可以在虚拟机状态信息文件中,以供后续调用。
时间恢复装置420,用于在检测到所述虚拟机对所述备份操作的备份内容进行恢复操作,按照第一预设规则,从所述多个待选时间源中选定目标时间源,读取所述目标时间源的第二当前时间,比较所述目标时间源的第一当前时间和第二当前时间,获得目标时间差值,并基于所述目标时间差值,更新所述虚拟机的虚拟时间源的当前时间。
可选的,在本实施例实际应用中,该时间恢复装置420可以包括:
第一验证模块421,用于按照第一预设标准,验证所述本地时间源是否可用。
具体的,可先验证虚拟机进行备份操作和恢复操作是否在同一个物理机上完成的,若不是,说明该本地时间源不可用;若是,还需要进一步验证在虚拟机从开始备份到恢复所备份内容期间,本地时间源所在物理机是否发生过重启,若是,需要验证其他时间源是否可用;若否,说明该本地时间源可用,可以作为目标时间源。
其中,关于验证物理机是否重启的具体方法可参照上述方法实施例对应部分的描述,本实施在此不再赘述。
第二验证模块422,用于在所述第一验证模块的验证结果为否时,验证所述至少三个第三方时间源中是否存在可用的第三方时间源。
在本实施例中,对于每一个第三方时间源来说,可通过验证虚拟机从开始备份到恢复所备份内容期间,其所在物理机是否发生过重启,若是,说明该第三方时间源不可用,反之,说明该本地时间源可用。其中,关于验证物理机是否发生重启的方法可参照上述方法实施例对应部分的描述,本实施例在此不再赘述。
目标选定模块423,用于在所述第一验证模块的验证结果为是时,选定所述本地时间源为目标时间源;在所述第二验证模块的验证结果为是时,按照预设优先级,选定一个或多个所述可用的第三方时间源为目标时间源。
可选的,在上述各实施例的基础上,该时间恢复装置420还可以包括:
数据传输模块,用于所述检测到虚拟机进行备份操作时,获取每个所述待选时间源所在系统的第一当前运行时间和第一本地系统时间;在所述检测到所述虚拟机对所述备份操作的备份内容进行恢复操作时,获取每个所述待选时间源所在系统的第二当前运行时间和第二本地系统时间
则所述第一验证模块421和所述第二验证模块423均具体用于计算所述第一当前运行时间和所述第二当前运行时间的第一时间差值,以及所述第一本地系统时间和所述第二本地系统时间的第二时间差值;判断所述第一时间差值是否小于所述第二时间差值。
其中,若选的的目标时间源是多个可用的第三方时间源,则计算得到每一个第三方时间源对应的时间差值后,可以计算所得时间差值的平均值,并将所得平均时间差作为目标时间差,对虚拟机的系统时间进行更新。
综上所述,本实施例在检测到虚拟机进行备份操作时,该虚拟机将暂停运行,此时将读取多个待选时间源各自的第一当前时间并保存,当检测到该虚拟机对该备份操作的备份内容进行恢复操作时,按照第一预设规则,从这多个待选时间源中选定目标时间源,读取该目标时间源的第二当前时间,并将其与备份操作时保存的该目标时间源的第一当前时间进行比较,从而获得从备份操作到恢复操作过程的目标时间差值,即虚拟机暂停时间,此时,无论虚拟机暂停时间多长,当前虚拟化环境是否构建有NTP服务器,本申请都会利用该目标时间差值,对虚拟机的系统时间进行准确校正,以解决虚拟机进行备份和恢复操作时产生的时间漂移问题。可见,本申请提供的数据修正方法及电子设备的实现过程并不受时间漂移的数值大小以及当前虚拟化环境是否构建NTP服务器等条件的限制,在各种虚拟化环境中都能够保证虚拟机输出时间准确、可靠,使得该方法及电子设备具有很广的应用范围。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个装置、模块或者操作与另一个装置、模块或操作区分开来,而不一定要求或者暗示这些装置、模块或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法或者系统中还存在另外的相同要素。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的电子设备而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种数据修正方法,其特征在于,所述方法包括:
检测到虚拟机进行备份操作,读取多个待选时间源各自的第一当前时间并保存;
检测到所述虚拟机对所述备份操作的备份内容进行恢复操作,按照第一预设规则,从所述多个待选时间源中选定目标时间源,并读取所述目标时间源的第二当前时间;
比较所述目标时间源的第一当前时间和第二当前时间,获得目标时间差值;
基于所述目标时间差值,更新所述虚拟机的虚拟时间源的当前时间。
2.根据权利要求1所述的方法,其特征在于,若所述多个待选时间源包括本地时间源和至少三个第三方时间源,则所述按照第一预设规则,从所述多个待选时间源中选定目标时间源包括:
按照第一预设标准,验证所述本地时间源是否可用;
在所述本地时间源可用时,选定所述本地时间源为目标时间源;
在所述本地时间源不可用时,验证所述至少三个第三方时间源中是否存在可用的第三方时间源;
当所述至少三个第三方时间源中存在可用的第三方时间源,按照预设优先级,选定一个或多个所述可用的第三方时间源为目标时间源。
3.根据权利要求2所述的方法,其特征在于,按照以下方法验证所述待选时间源是否可用,所述待选时间源具体是所述本地时间源或所述第三方时间源:
验证从发生所述备份操作到进行所述恢复操作期间,所述待选时间源所在物理机是否发生过重启;
则所述待选时间源不可用包括:
从发生所述备份操作到进行所述恢复操作期间,所述待选时间源所在物理机发生过重启。
4.根据权利要求3所述的方法,其特征在于,当所述待选时间源具体是本地时间源时,在验证从发生所述备份操作到进行所述恢复操作期间,所述待选时间源所在物理机是否发生过重启之前,所述方法还包括:
验证所述恢复操作和所述备份操作是否在同一个物理机上进行;
当所述恢复操作与所述备份操作在同一个物理机上进行,执行所述验证从发生所述备份操作到进行所述恢复操作期间,所述待选时间源所在物理机是否发生过重启步骤;
则所述本地时间源可用具体为:
所述恢复操作与所述备份操作在同一个物理机上进行,且从发生所述备份操作到进行所述恢复操作期间所述物理机未发生过重启;
所述本地时间源不可用具体为:
所述恢复操作与所述备份操作不在同一个物理机上;或者,所述恢复操作与所述备份操作在同一个物理机上进行,但所述物理机在从发生所述备份操作到进行所述恢复操作期间发生过重启。
5.根据权利要求3所述的方法,其特征在于,当选定多个可用的第三时间源为目标时间源时,所述比较所述目标时间源的第一当前时间和第二当前时间,获得目标时间差值包括:
比较每一个可用的第三方时间源的第一当前时间和第二当前时间,获得所述每一个可用的第三时间源对应的时间差值;
计算所获得的所述多个可用的第三方时间源对应的时间差值的平均值,将计算得到的平均时间差值作为目标时间差值。
6.根据权利要求3所述的方法,其特征在于,在所述检测到虚拟机进行备份操作时,所述方法还包括:
获取每个所述待选时间源所在系统的第一当前运行时间和第一本地系统时间;
在所述检测到所述虚拟机对所述备份操作的备份内容进行恢复操作时,所述方法还包括:
获取每个所述待选时间源所在系统的第二当前运行时间和第二本地系统时间;
则所述验证从发生所述备份操作到进行所述恢复操作期间,所述待选时间源所在物理机是否发生过重启包括:
计算所述第一当前运行时间和所述第二当前运行时间的第一时间差值,以及所述第一本地系统时间和所述第二本地系统时间的第二时间差值;
判断所述第一时间差值是否小于所述第二时间差值;
则所述从发生所述备份操作到进行所述恢复操作期间,所述待选时间源所在物理机发生过重启具体为:
所述第一时间差值小于所述第二时间差值。
7.根据权利要求1-6任意一项所述的方法,其特征在于,所述基于所述目标时间差值,更新所述虚拟机的虚拟时间源的当前时间具体为:
在所述虚拟机完成所述恢复操作且接收到第一次时钟中断信号时,利用所述目标时间差值对系统时间全局变量进行增量更新。
8.一种电子设备,其特征在于,所述电子设备包括:
时间保存装置,用于在检测到虚拟机进行备份操作时,保存读取到的多个待选时间源各自的第一当前时间;
时间恢复装置,用于在检测到所述虚拟机对所述备份操作的备份内容进行恢复操作,按照第一预设规则,从所述多个待选时间源中选定目标时间源,读取所述目标时间源的第二当前时间,比较所述目标时间源的第一当前时间和第二当前时间,获得目标时间差值,并基于所述目标时间差值,更新所述虚拟机的虚拟时间源的当前时间。
9.根据权利要求8所述的电子设备,其特征在于,若所述多个待选时间源包括本地时间源和至少三个第三方时间源,所述时间恢复装置包括:
第一验证模块,用于按照第一预设标准,验证所述本地时间源是否可用;
第二验证模块,用于在所述第一验证模块的验证结果为否时,验证所述至少三个第三方时间源中是否存在可用的第三方时间源;
目标选定模块,用于在所述第一验证模块的验证结果为是时,选定所述本地时间源为目标时间源;在所述第二验证模块的验证结果为是时,按照预设优先级,选定一个或多个所述可用的第三方时间源为目标时间源。
10.根据权利要求9所述的电子设备,其特征在于,所述时间恢复装置还包括:
数据传输模块,用于在所述检测到虚拟机进行备份操作时,获取每个所述待选时间源所在系统的第一当前运行时间和第一本地系统时间;在所述检测到所述虚拟机对所述备份操作的备份内容进行恢复操作时,获取每个所述待选时间源所在系统的第二当前运行时间和第二本地系统时间;
则所述第一验证模块和所述第二验证模块均具体用于计算所述第一当前运行时间和所述第二当前运行时间的第一时间差值,以及所述第一本地系统时间和所述第二本地系统时间的第二时间差值;判断所述第一时间差值是否小于所述第二时间差值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510632096.8A CN105260227B (zh) | 2015-09-29 | 2015-09-29 | 一种数据修正方法及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510632096.8A CN105260227B (zh) | 2015-09-29 | 2015-09-29 | 一种数据修正方法及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105260227A true CN105260227A (zh) | 2016-01-20 |
CN105260227B CN105260227B (zh) | 2019-04-26 |
Family
ID=55099930
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510632096.8A Active CN105260227B (zh) | 2015-09-29 | 2015-09-29 | 一种数据修正方法及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105260227B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107346261A (zh) * | 2017-06-30 | 2017-11-14 | 联想(北京)有限公司 | 虚拟机时间同步方法、物理主机及虚拟机 |
CN109460282A (zh) * | 2018-10-17 | 2019-03-12 | 郑州云海信息技术有限公司 | 一种vTPM时钟安全保障的方法及系统 |
CN112597635A (zh) * | 2020-12-09 | 2021-04-02 | 北京智联友道科技有限公司 | 基于cbtc仿真系统的虚拟时钟系统的生成方法、装置及设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101685412A (zh) * | 2008-09-22 | 2010-03-31 | 联想(北京)有限公司 | 一种硬盘数据的备份和恢复方法、系统及计算机 |
CN102238719A (zh) * | 2010-04-27 | 2011-11-09 | 中国移动通信集团公司 | 时间同步方法、装置及分布式时间同步系统 |
US8181175B1 (en) * | 2008-01-28 | 2012-05-15 | Hewlett-Packard Development Company, L.P. | Accounting for resource usage time by a virtual machine |
CN103077067A (zh) * | 2012-12-26 | 2013-05-01 | 华为技术有限公司 | 虚拟机系统时间确定方法、装置及设备 |
CN103823711A (zh) * | 2014-03-05 | 2014-05-28 | 华为技术有限公司 | 在Java虚拟机中提供相对定时的方法及装置 |
CN104021069A (zh) * | 2013-02-28 | 2014-09-03 | 国际商业机器公司 | 基于分布式虚拟机系统的软件性能测试的管理方法和系统 |
CN104869023A (zh) * | 2015-05-29 | 2015-08-26 | 华为技术有限公司 | 一种时间校正方法、装置及系统 |
-
2015
- 2015-09-29 CN CN201510632096.8A patent/CN105260227B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8181175B1 (en) * | 2008-01-28 | 2012-05-15 | Hewlett-Packard Development Company, L.P. | Accounting for resource usage time by a virtual machine |
CN101685412A (zh) * | 2008-09-22 | 2010-03-31 | 联想(北京)有限公司 | 一种硬盘数据的备份和恢复方法、系统及计算机 |
CN102238719A (zh) * | 2010-04-27 | 2011-11-09 | 中国移动通信集团公司 | 时间同步方法、装置及分布式时间同步系统 |
CN103077067A (zh) * | 2012-12-26 | 2013-05-01 | 华为技术有限公司 | 虚拟机系统时间确定方法、装置及设备 |
CN104021069A (zh) * | 2013-02-28 | 2014-09-03 | 国际商业机器公司 | 基于分布式虚拟机系统的软件性能测试的管理方法和系统 |
CN103823711A (zh) * | 2014-03-05 | 2014-05-28 | 华为技术有限公司 | 在Java虚拟机中提供相对定时的方法及装置 |
CN104869023A (zh) * | 2015-05-29 | 2015-08-26 | 华为技术有限公司 | 一种时间校正方法、装置及系统 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107346261A (zh) * | 2017-06-30 | 2017-11-14 | 联想(北京)有限公司 | 虚拟机时间同步方法、物理主机及虚拟机 |
CN109460282A (zh) * | 2018-10-17 | 2019-03-12 | 郑州云海信息技术有限公司 | 一种vTPM时钟安全保障的方法及系统 |
CN109460282B (zh) * | 2018-10-17 | 2021-07-30 | 郑州云海信息技术有限公司 | 一种vTPM时钟安全保障的方法及系统 |
CN112597635A (zh) * | 2020-12-09 | 2021-04-02 | 北京智联友道科技有限公司 | 基于cbtc仿真系统的虚拟时钟系统的生成方法、装置及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN105260227B (zh) | 2019-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11544137B2 (en) | Data processing platform monitoring | |
US10089169B2 (en) | Identifying solutions to application execution problems in distributed computing environments | |
RU2019101794A (ru) | Способы, системы и устройство для динамического обеспечения безграничного администрирования системы высокой доступности | |
CN104239548B (zh) | 数据库容灾系统和数据库容灾方法 | |
US20170199737A1 (en) | Efficient detection of architecture related bugs during the porting process | |
US10402264B2 (en) | Packet-aware fault-tolerance method and system of virtual machines applied to cloud service, computer readable record medium and computer program product | |
WO2015176433A1 (zh) | 一种基于分区表的硬盘修复方法及装置 | |
US20140143768A1 (en) | Monitoring updates on multiple computing platforms | |
US20170063985A1 (en) | Global Logical Timestamp | |
US9329953B2 (en) | Reducing application downtime during failover | |
CN105260227A (zh) | 一种数据修正方法及电子设备 | |
CN104780075A (zh) | 一种云计算系统可用性评估方法 | |
US9396060B2 (en) | Information processing method, information processing device and recording medium | |
CN107943617B (zh) | 数据的修复方法、装置及服务器集群 | |
US20160112285A1 (en) | Apparatus and method for detecting abnormal connection | |
US9542252B2 (en) | Information processing technique for supporting data setting | |
CN109916551B (zh) | 一种刹车性能检测方法、装置及电子设备 | |
CN104506636A (zh) | 一种数据同步方法及装置 | |
CN114780208B (zh) | 验证多平台虚拟机备份有效性方法、系统、装置及存储介质 | |
CN108845772B (zh) | 一种硬盘故障处理方法、系统、设备及计算机存储介质 | |
US9411619B2 (en) | Performance management of system objects based on consequence probabilities | |
US9645857B2 (en) | Resource fault management for partitions | |
US11675602B2 (en) | Methods and systems for creating root-of-trust for computing system components | |
CN106547583B (zh) | 一种操作系统安装方法以及装置 | |
US20200110668A1 (en) | Intelligent handling of consistency level of virtual machines |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |