問題描述
由于 Azure 虛擬機的特殊性,物理主機會實時同步虛擬機的時間和日期。當有特殊需求時,客戶想要停止日期時間的同步,但是一些常見的關閉 NTP 服務等操作都會失敗。
解決方案
Important
強烈不建議禁用 Azure 虛擬機的日期時間同步以避免不可預測的潛在風險。 如果有特殊需求的客戶,請參照如下步驟來實現。
Windows 虛擬機
點擊 “開始” -> “運行” -> “services.msc”
在打開的 Windows 服務管理列表中,找到服務 “Hyper-V Time Synchronization Service”。
選擇該服務,右鍵選擇“關閉”。
之后,物理主機與虛擬機的日期時間同步就會停止。
重新啟動該服務,就會恢復日期時間的同步。
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_11Rel_ID=11,target_cpu=0
記錄上述高亮顯示的設備 ID。
執行命令:
復制
# echo2dd1ce17-079e-403c-b352-a1921ee207ee >/sys/bus/vmbus/drivers/hv_util/unbind
至此,日期時間同步已被禁用,可以通過 date 等命令來自行調整。
重啟虛擬機,即可恢復日期時間同步,如果需要永久禁用,可以在 rc.local 文件中,手工編輯啟動腳本來實現。
立即訪問http://market.azure.cn