如何处理Linux虚拟机时间漂移的问题

[复制链接]
发表于 : 2017-8-1 10:37:58 最新回复:2017-08-01 10:38:11
2908 1
wangxm  导师  

摘要

本文主要介绍如何处理Linux虚拟机使用自由时钟模式运行一段时间后,虚拟机系统时钟会出现时间漂移的问题。或者虚拟机进行热迁移之后。

适用操作系统

Linux

适用版本

适用V100R001/R002所有版本

适用产品线

SingleCloud解决方案/Galax8800/FusionSphere

背景及现象描述

Linux虚拟机使用自由时钟模式运行一段时间后,虚拟机系统时钟会出现时间漂移的现象。

原因分析

虚拟化平台上面的虚拟机的时间依赖于一个可靠的时钟源准确计时,而在虚拟机里面的时钟源的准确性受限于虚拟化平台的各种影响因素,同时虚拟机中的VCPU处理时钟中断的能力也会影响系统时钟的准确性,在Linux内核2.6版本后,时钟中断的频率被设置为1000HZVCPU有些时候无法处理每秒钟1000次的时钟中断,进而导致虚拟机时间发生漂移。

解决办法

将对应Linux版本的内核参数添加到Linux系统的“/boot/grub/menu.lst”文件的内核启动参数后面即可。相关Linux系统需要添加的内核参数请参见1

1 内核参数

操作系统

操作系统位数

内核参数

说明

Red Hat Enterprise Linux 5.2

64

notsc divider=10

-

Red Hat Enterprise Linux 5.1   (with RHSA-2007:0993-13)

64

notsc divider=10

RHSA-2007:0993-13Red Hat的更新补丁。

Red Hat Enterprise Linux 5.1    (without RHSA-2007:0993-13)

64

notsc

-

Red Hat Enterprise Linux 4.8

64

notsc divider=10

-

Red Hat Enterprise Linux 4.6

64

notsc

-

Red Hat Enterprise Linux 4.5

64

notsc

-

CentOS 5.8

64

divider=10

-

CentOS 5.7

64

divider=10

-

CentOS 5.5

64

divider=10

-

CentOS 5.3

64

notsc divider=10

-

CentOS 5.2

64

notsc divider=10

-

CentOS 5.1

64

notsc

-

CentOS 4.8

64

notsc divider=10

-

CentOS 4.7

64

notsc divider=10

-

CentOS 4.6

64

notsc

-

CentOS 4.4

64

notsc

-

Novell SUSE Linux Enterprise Server 11系列

64

clocksource=jiffies notsc

-

Ubuntu 10.04 desktop

64

clocksource=jiffies notsc

-

Red Hat Enterprise Linux 5.3

32

divider=10 clocksource=acpi_pm

-

Red Hat Enterprise Linux 5.2

32

divider=10 clocksource=acpi_pm

-

Red Hat Enterprise Linux 5.1

32

divider=10 clocksource=acpi_pm

-

Red Hat Enterprise Linux 5.0

32

clocksource=acpi_pm

-

Red Hat Enterprise Linux 4.8

32

clock=acpi_pm divider=10

-

Red Hat Enterprise Linux 4.5

32

clock=acpi_pm

-

CentOS 5.8

32

divider=10

-

CentOS 5.7

32

divider=10

-

CentOS 5.6

32

divider=10

-

CentOS 5.3

32

divider=10 clocksource=acpi_pm

-

CentOS 5.1

32

divider=10 clocksource=acpi_pm

-

CentOS 4.7

32

clock=acpi_pm divider=10

-

CentOS 4.6

32

clock=acpi_pm

-

CentOS 4.4

32

clock=acpi_pm

-

Novell SUSE Linux Enterprise Server 11系列

32

clocksource=jiffies notsc

-

说明: 因为Linux 2.6版本的内核每秒发出1000个时钟的中断要求,导致虚拟机器难以跟上,虚拟机时间发生漂移。为了补救这个问题,使用以往提供时钟速率设置为100Hz的内核 ,“divider=10”的作用就是进行分频。“notsc ”等参数的含义就是不使用tsc时钟源。

Red Hat Enterprise Linux 4.8 64位)系统为例,添加内核参数“notsc divider=10”的操作方法如下:

 1.Linux终端中执行命令“vi /boot/grub/menu.lst”,打开menu.lst文件。

 2.kernel启动参数的最后加入“notsc divider=10”这个参数。

 3.保存修改后的menu.lst文件。

 4.重启虚拟机使用修改生效。

 

 

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

本帖被以下专题推荐:

  • x
  • 常规:

点评 回复

跳转到指定楼层
wangxm  导师   发表于 2017-8-1 10:38:11 已赞(0) 赞(0)

如何处理Linux虚拟机时间漂移的问题
  • x
  • 常规:

点评 回复

发表回复
您需要登录后才可以回帖 登录 | 注册

内容安全提示:尊敬的用户您好,为了保障您、社区及第三方的合法权益,请勿发布可能给各方带来法律风险的内容,包括但不限于政治敏感内容,涉黄赌毒内容,泄露、侵犯他人商业秘密的内容,侵犯他人商标、版本、专利等知识产权的内容,侵犯个人隐私的内容等。也请勿向他人共享您的账号及密码,通过您的账号执行的所有操作,将视同您本人的行为,由您本人承担操作后果。详情请参看“隐私声明
如果附件按钮无法使用,请将Adobe Flash Player 更新到最新版本!

登录参与交流分享

登录
快速回复 返回顶部