aviso de kernel nos logs: set_rtc_mmss não pode atualizar de 0 a 58

5

Eu tenho visto um monte dessas mensagens de log

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

Eles ocorrem em VMs do CentOS 6.4 em execução no VMware. Eu entendo que é algo a ver com o relógio de hardware não sendo definido corretamente no sistema operacional convidado. Eu encontrei este comando que define o relógio do hardware para a hora atual do sistema:

sudo hwclock --systohc

Esta é a configuração correta para uma máquina virtual? Além disso, onde isso pode ser definido por isso é persistente? Nos parâmetros de inicialização do kernel? Gostaria que as VMs recém-provisionadas não tivessem esse problema.

UPDATE 1

Conforme solicitado:

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

Eu vejo que o vmwaretools está desatualizado nesta VM. Talvez o módulo de fantoches que eu tenho para gerenciar a instalação do vmwaretools não tenha sido instalado corretamente. Vou dar uma olhada e voltar para você.

UPDATE 2

Sim, as ferramentas VMware estão instaladas e na versão mais recente.

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

UPDATE 3

Eu tentei ativar o "Sincronizar tempo do convidado com o host" na VM:

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

mas ainda estou recebendo essas mensagens. Na verdade, date e hwclock --show estão separados por vários minutos agora, enquanto costumavam ser bem curtos.

No passado, as VMs do SLES 9 mais antigas se beneficiavam das configurações no artigo da VMware Melhores Práticas de Registro de Tempo para Convidados Linux , mas afirma que os convidados do CentOS / RHEL 6 não precisam de nenhum conjunto adicional de parâmetros do kernel.

UPDATE 4

A atualização para o CentOS 6.5 não ajudou. O kernel é:

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
    
por Banjer 03.01.2014 / 14:34

3 respostas

1

Com base em tudo o que li, parece que esses avisos são benignos, especialmente se o date em seus servidores estiver bom. Um pouco irritante embora.

Eu deixarei este detalhe do ntp.org me deixar à vontade:

Por link :

8.3.4.1.1. What does set_rtc_mmss: can't update from 54 to 5 mean?

The function set_rtc_mmss() updates minutes and seconds of the CMOS clock from system time. It does not update the hour or date to avoid problems with timezones.[1] The message shown was added to make users and implementers aware of the problem that not all time updates will succeed.

Imagine the system time is 17:56:23 while the CMOS clock is already at 18:03:45. Updating just minutes and seconds would set the hardware clock to 18:56:23, a wrong value. The solution for this problem is either to wait a few minutes, or to install a kernel patch that fixes the problem. Normally a wrong time in the hardware clock will not show up until after reboot, or maybe after APM slowed down your system.

    
por 24.01.2014 / 15:02
2

O VMWare tem algumas sugestões na base de conhecimento sobre como configurar o cliente ntp no seu guest. A primeira coisa é certificar-se de que o timesync vmware-toolbox esteja desabilitado, já que você só quer que o ntp atualize o tempo.

De Práticas recomendadas de cronometragem para convidados do Linux :

Esta é a amostra /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 

A primeira linha ( tinker panic 0 ) permite grandes saltos no tempo. (por exemplo, o estado do sistema foi salvo / restaurado)

Uma alternativa seria desabilitar o ntp no seu guest e habilitar a sincronização de tempo do vmware-tools.

    
por 15.01.2014 / 16:53
2

Você está executando a versão mais recente do kernel para o CentOS 6.4? Eu tentaria arrancar com clocksource = acpi_pm. Além disso, eu faria ntpdate -u tick.usno.navy.mil & & hwclock --systohc e deixe as coisas ficarem. Se as coisas continuarem, adicione divizor = 10 também.

Honestamente, eu suspeito que o problema seja em parte relacionado ao código em seu kernel específico para configurar e ler o relógio de tempo real - é o que faz com que você receba a mensagem de erro. A outra parte é devido a interrupções de tempo virtuais não serem entregues regularmente o suficiente ou o manipulador de interrupção de temporizador não redimensionar a hora do kernel corretamente - e isto é o que faz com que você acesse o relógio.

Forçar o ntp a ser mais agressivo é apenas uma muleta para o problema, infelizmente.

Existe um novo kernel disponível para você? Essa pode ser sua aposta mais segura. Boa sorte.

    
por 20.01.2014 / 17:31