如何禁用 Azure 虚拟机的日期时间同步

问题描述

由于 Azure 虚拟机的特殊性,物理主机会实时同步虚拟机的时间和日期。当有特殊需求时,客户想要停止日期时间的同步,但是一些常见的关闭 NTP 服务等操作都会失败。

解决方案

Important

强烈不建议禁用 Azure 虚拟机的日期时间同步以避免不可预测的潜在风险。 如果有特殊需求的客户,请参照如下步骤来实现。

Windows 虚拟机

点击 “开始” -> “运行” -> “services.msc

在打开的 Windows 服务管理列表中,找到服务 “Hyper-V Time Synchronization Service”。

选择该服务,右键选择“关闭”。

之后,物理主机与虚拟机的日期时间同步就会停止。

重新启动该服务,就会恢复日期时间的同步。

如何禁用 Azure 虚拟机的日期时间同步_第1张图片

Linux 虚拟机

执行下列命令,获取 lsvmbus 工具:# wget https://raw.githubusercontent.com/torvalds/linux/master/tools/hv/lsvmbus # chmod u+x lsvmbus

执行命令,获取同步日期时间的驱动设备:

复制

# python lsvmbus -vvv  |grep -A 4 -i "Time Synchronization"

VMBUS ID 11: Class_ID = {9527e630-d0ae-497b-adce-e80ab0175caf} - [Time Synchronization]

Device_ID = {2dd1ce17-079e-403c-b352-a1921ee207ee}

Sysfs path: /sys/bus/vmbus/devices/vmbus_11

Rel_ID=11, target_cpu=0

记录上述高亮显示的设备 ID。

执行命令:

复制

# echo 2dd1ce17-079e-403c-b352-a1921ee207ee > /sys/bus/vmbus/drivers/hv_util/unbind

至此,日期时间同步已被禁用,可以通过 date 等命令来自行调整。

重启虚拟机,即可恢复日期时间同步,如果需要永久禁用,可以在 rc.local 文件中,手工编辑启动脚本来实现。

立即访问http://market.azure.cn

你可能感兴趣的:(如何禁用 Azure 虚拟机的日期时间同步)