基本主流的企业级虚拟化产品,安装完虚机以后,都要在虚机中安装各种Tools,用来增强虚机的性能,以及与主机的交互。而时间同步功能,在目前主流的三家产品中,默认都是启用的。安装完Tools以后,虚机会自动和Host之间同步时间,保持时间与底层主机的一致,但是这种机制在某些情况下会导致上层虚机的时间混乱,比如时区设置,时间准确定,多时区等等。
所在在某些情况下,可能需要禁用该功能。
VMware ESX:
ESX上的虚机可以通过在虚机中,编辑VMware Tools的属性来控制,在Options中去掉Time synchronization between the virtual machine and the ESX Server operating system的选中状态
虽然去掉了以上选项,但是在某些特殊情况下,ESX仍然会同步虚机的时间:
- Resume from suspend
- Migrate with VMotion to another host
- Take or revert to a snapshot
- Shrink the virtual disk
- Restart the VMware Tools service
- Power on
为了在这些情况下也禁用时间同步功能,我们可以修改下该VM的配置文件(*.vmx)
1 2 3 4 5 6 | tools.syncTime = “0” time.synchronize.continue = “0” time.synchronize.restore = “0” time.synchronize.resume.disk = “0” time.synchronize.shrink = “0” time.synchronize.tools.startup = “0” |
Hyper-V:
通过Hyper-v管理控制台,选中VM,点击设置,然后选中Action,在左侧的管理项目下找到Integration Services (交互服务),去掉时间同步(Time synchronization)的选中状态。
同样,该选项也只是静止运行期间的时间同步,在虚机启动的时候,仍然会同步时间。
XenServer:
目前官方没有提供windows主机禁用时间同步的说明
针对Linux guest,我们可以参考以下操作设置来禁用时间同步功能
1、一种方法,使用root账号登录的虚机,输入以下命令
echo 1 > /proc/sys/xen/independent_wallclock
为了让设置用就生效,防止重启后恢复,我们需要编辑/etc/sysctl.conf 文件,并加入以下内容
# Set independent wall clock time
xen.independent_wallclock=1
2、作为第一种方法的替代解决方案,我们可以把设置写入到虚机的启动参数中即可,增加如下启动参数:
independent_wallclock=1