Linux

主機重啟時 KVM 來賓時間偏移

  • January 17, 2013

我已經安裝了 Ubuntu 伺服器 12.04 作為 KVM 主機,並創建了一個也執行 Ubuntu 伺服器 12.04 的 Ubuntu 來賓。伺服器位於 AST 時區,即 UTC + 3 小時。在使用正確設置來賓中的時間後,date -s我可以盡可能多地重新啟動來賓,並在重新啟動之間保留正確的時間。

但是,如果 KVM 主機重新啟動(主機在重新啟動之間沒有時間問題),那麼一旦我啟動我的 KVM 來賓,所有它們都比正確時間晚了 3 小時。下面的輸出顯示了主機和來賓上的系統時間和硬體時鐘時間。

root@kvmhost1:~# date
Wed Jan 16 14:10:38 AST 2013
root@kvmhost1:~# hwclock 
Wed 16 Jan 2013 02:10:40 PM AST  -0.187899 seconds

root@kvmguest1:~# date
Wed Jan 16 11:10:45 AST 2013
root@kvmguest1:~# hwclock 
Wed 16 Jan 2013 02:10:47 PM AST  -0.521226 seconds

一旦客人的時間得到糾正,他們就可以重新啟動,而不會錯誤地改變時間。

我嘗試過/測試過的東西

  • 我在三個單獨的物理伺服器上嘗試了這個,它們都表現出相同的行為。
  • 其中一台 kvm 主機正在執行 Ubuntu 11.04,並且發生了相同的行為。
  • 我考慮過使用時間伺服器來解決這個問題,但Ubuntu 建議不要在 KVM guest 上使用 NTP在KVM guest clock synchronization中有一個很好的討論,這表明在 guest 中執行的 kvm-clock 應該處理這個問題。
  • 我已經dmesg | grep kvm-clock在客戶機上執行,它確認 kvm 時鍾正在使用中。

更新

我使用命令--localtime上的選項將硬體時鐘設置為使用本地時間。hwclock同樣的問題仍然存在。輸出更清晰一些,因為軟體和硬體時鐘設置為相同的時間。

root@kvmhost1:~# date
Wed Jan 16 15:50:26 AST 2013
root@kvmhost1:~# hwclock 
Wed 16 Jan 2013 03:50:29 PM AST  -0.750378 seconds

root@kvmguest1:~# date
Wed Jan 16 12:50:29 AST 2013
root@kvmguest1:~# hwclock 
Wed 16 Jan 2013 12:50:31 PM AST  -0.849677 seconds

解決方案

下面邁克爾漢普頓的回答解決了這個問題。來賓是使用 kickstart 文件創建的,預設情況下不會將硬體時鐘設置為 UTC 時間。我在 kickstart 時區選項中添加了 –utc 選項,它解決了這個問題。kickstart 選項現在如下所示:

timezone --utc Asia/Bahrain

看來您以某種方式安裝了您的客人,它認為硬體時鐘是當地時間。KVM 來賓應始終以 UTC 時間考慮他們的硬體時鐘,除非他們是 Windows 來賓(但即使是那些也可以設置為 UTC 硬體時鐘)……

編輯/etc/default/rcS文件,然後更改UTC=noUTC=yes. 然後重置​​您的客人時鐘。

引用自:https://serverfault.com/questions/469598