Linux

VMware stun 後立即修復系統時鐘

  • March 19, 2018

VMware的一個已知問題是它在某些操作(例如 vmotion 和快照創建/刪除)期間執行所謂的“眩暈”。在這個 stun 期間,客戶作業系統被凍結,所以當它回來時,系統時鐘落後了。現在,眩暈通常在人類方面非常快(亞秒級),但在機器方面它們相當長,幾百毫秒。對於具有更大磁碟或更多記憶體的虛擬機來說,情況會變得更糟,這些虛擬機通常是更關鍵的虛擬機。對於相互通信的系統,這些時間差異可能會導致問題。

但無論如何,我要解決的問題是時鐘。最終要求是在發生眩暈後立即使系統時鐘恢復同步。“立即”可能是一個模糊的術語,所以可以說在 1 秒內時鐘應該重新同步。

我們確實使用 ntp 進行時鐘同步,但是 ntp 需要幾分鐘(或更長時間)才能讓系統重新同步,因為它不了解剛剛發生的事情。需要一段時間才能再次驗證時間是否穩定(漂移率沒有飆升),然後慢慢糾正。所以速度還不夠快。

我最好的想法是ntpdate在發生眩暈時立即執行,但我不知道來賓作業系統有什麼方法可以發現發生了眩暈。

有問題的系統是 Linux (CentOS/7)。

有關此問題的官方 VMWare 文章和解決方案可在此處找到:https ://kb.vmware.com/s/article/2108828

如果事實證明對 NTP 的調整不足以減輕由於虛擬機遷移造成的時差影響,請將 VMware 工具的一次性時間同步配置為具有較低的門檻值。

執行使用 vmx option 的命令pref.timeLagInMilliseconds,預設時間為 1000(1 秒):

例如,如果您希望來賓時鐘與主機同步,則只要遷移後時間落後於 100 毫秒以上,請將其添加到您的 vmx 文件中。

pref.timeLagInMilliseconds = 100

vmx可在此處找到有關編輯文件的文件: https ://kb.vmware.com/s/article/1714

因此,對於我的情況,我將值設置為10,這樣如果在 stun 後時間關閉超過 10 毫秒,那麼它會被 VMware 同步。然後我讓 NTP 從那里處理更精細的調整。

VM 主機是否也使用與來賓相同的 NTP 源?

這些

$$ timesync disable $$選項不會禁用 VMware Tools 針對諸如工具啟動、拍攝快照、從快照恢復、從掛起恢復或 vMotion 等事件執行的一次性同步。這些事件使客戶作業系統中的時間與主機作業系統中的時間同步,因此確保主機作業系統的時間正確非常重要。 Linux 來賓的計時最佳實踐

可以設置較小的 NTP 步長門檻值,但數據庫尤其不能很好地處理倒退的時間。

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