Centos

日誌中的核心警告:set_rtc_mmss 無法從 0 更新到 58

  • June 3, 2019

我一直在看到一堆這樣的日誌消息

Jan 3 00: 58: 57 foo kernel: set_rtc_mmss: can't update from 0 to 58

它們發生在 VMware 上執行的 CentOS 6.4 虛擬機上。我知道這與來賓作業系統上未正確設置硬體時鐘有關。我發現這個命令將硬體時鐘設置為目前系統時間:

sudo hwclock --systohc

這是虛擬機的正確設置嗎?另外,在哪裡可以設置它以使其持久化?在核心啟動參數?我希望新配置的虛擬機沒有這個問題。

更新 1

按照要求:

me@foo:~> ntpq -p
    remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
LOCAL(0)        .LOCL.          10 l   43   64  377    0.000    0.000   0.000
+dtc-nist01.ntp. .ACTS.           1 u  174 1024  377    3.311   -8.554   0.497
*nist1-nj.ustimi .ACTS.           1 u  205 1024  377    6.737    3.775   0.433
+nist1-pa.ustimi .ACTS.           1 u   55 1024  377    8.610    4.688   0.337

我看到這個虛擬機上的 vmwaretools 已經過時了。也許我用於管理 vmwaretools 安裝的 puppet 模組沒有正確安裝它。我去看看然後回复你。

更新 2

是的,vmware tools 已安裝並且是最新版本。

me@foo:~> ps aux | grep vmtools
root     56021  0.0  0.1  59508  4156 ?        S    Jan09   3:29 /usr/sbin/vmtoolsd

更新 3

我嘗試在虛擬機上啟用“與主機同步訪客時間”:

me@foo:~> vmware-toolbox-cmd timesync status
Disabled
me@foo:~> vmware-toolbox-cmd timesync enable
me@foo:~> vmware-toolbox-cmd timesync status
Enabled

但我仍然收到這些消息。事實上,date現在hwclock --show相隔幾分鐘,而過去它們很緊。

過去,較舊的 SLES 9 虛擬機受益於 VMware 文章Timekeeping best practice for Linux guest中的設置,但它指出 CentOS/RHEL 6 來賓不需要設置任何額外的核心參數。

更新 4

升級到 CentOS 6.5 並沒有幫助。核心是:

Linux foo 2.6.32-431.1.2.0.1.el6.x86_64 #1 SMP Fri Dec 13 13:06:13 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

VMWare 在知識庫中確實有一些關於如何在您的來賓作業系統中配置 ntp 客戶端的建議。首先要確保禁用 vmware-toolbox timesync,因為您只希望 ntp 更新時間。

來自Linux 客人的計時最佳實踐

這是他們的樣本/etc/ntp.conf

tinker panic 0
restrict 127.0.0.1
restrict default kod nomodify notrap
server 0.vmware.pool.ntp.org
server 1.vmware.pool.ntp.org
server 2.vmware.pool.ntp.org
driftfile /var/lib/ntp/drift 

第一行 ( tinker panic 0) 允許大時間跳躍。(例如係統狀態被保存/恢復)

另一種方法是在來賓中禁用 ntp 並啟用 vmware-tools 時間同步。

您正在執行 CentOS 6.4 的最新核心版本嗎?我會嘗試使用clocksource=acpi_pm 啟動。另外,我會做 ntpdate -u tick.usno.navy.mil && hwclock –systohc 讓事情坐下來。如果事情繼續,那麼添加 divizor=10 為好。

老實說,我懷疑問題部分與您特定核心中用於設置和讀取實時時鐘的程式碼有關 - 這就是您收到錯誤消息的原因。另一部分是由於虛擬時間中斷沒有足夠定期地傳遞,或者定時器中斷處理程序沒有正確縮放核心時間——這就是讓你時鐘漂移的原因。

不幸的是,迫使 ntp 更具侵略性只是解決問題的一個拐杖。

是否有更新的核心可供您使用?這可能是你最安全的選擇。祝你好運。

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