Correção imediata do relógio do sistema após o atordoamento do VMware

4

É um problema conhecido com o VMware que executa o que é chamado de "stun" durante certas operações, como vmotion, e snapshot create / delete. Durante esse atordoamento, o sistema operacional convidado é congelado e, quando voltar, o relógio do sistema ficará para trás. Agora, os atordoamentos geralmente são bem rápidos em termos humanos (sub-segundo), mas em termos de máquina eles são bem longos, várias centenas de milissegundos. E os tempos pioram em VMs com discos maiores ou mais memória, que geralmente são as VMs mais críticas. Com sistemas que se comunicam entre si, essas diferenças de tempo podem causar problemas.

Mas, de qualquer forma, a questão que estou tentando abordar é o relógio. O requisito final é obter imediatamente o relógio do sistema de volta em sincronia depois que ocorrer um atordoamento. "Imediato" pode ser um termo vago, então vamos dizer que dentro de 1 segundo o relógio deve estar de volta em sincronia.

Nós usamos o ntp para sincronizar o relógio, mas o ntp leva vários minutos (ou mais) para sincronizar o sistema, pois ele não entende o que aconteceu. Demora um tempo para verificar se o tempo está estável novamente (essa taxa de desvio não aumentou) e, em seguida, corrige as coisas lentamente. Então não é rápido o suficiente.

A melhor idéia que eu tenho é correr imediatamente ntpdate quando um stun acontece, mas eu não sei de nenhuma maneira para o sistema operacional convidado descobrir que um stun aconteceu.

Os sistemas em questão são o Linux (CentOS / 7).

    
por Patrick 27.03.2017 / 19:37

2 respostas

0

O artigo e a solução oficiais da VMWare sobre esse problema podem ser encontrados aqui: link

If adjustments to NTP prove to be insufficient in mitigating effects of time differences due to virtual machine migration, configure VMware tools one-time time synchronization to have a lower threshold value.

Run the command which uses vmx option pref.timeLagInMilliseconds, and defaults the time to 1000 (for 1 second):

For example, if you want the guest clock to be synchronized with the host, whenever time falls behind more than 100 milliseconds after migration, add this to your vmx file.

pref.timeLagInMilliseconds = 100

A documentação sobre a edição do arquivo vmx pode ser encontrada aqui: link

Portanto, para a minha situação, defino o valor como 10 , de modo que, se o tempo acabar em mais de 10 milissegundos após um atordoamento, ele será sincronizado pelo VMware. Então deixo o NTP lidar com o ajuste mais granular de lá.

    
por 19.03.2018 / 22:15
0

Os hosts da VM também usam as mesmas origens NTP dos convidados?

These [timesync disable] options do not disable one-time synchronizations done by VMware Tools for events such as tools startup, taking a snapshot, resuming from a snapshot, resuming from suspend, or vMotion. These events synchronize time in the guest operating system with time in the host operating system, therefore it is important to make sure that the host operating system's time is correct. Timekeeping best practices for Linux guests

É possível definir um limiar de etapa do NTP menor, mas os bancos de dados, especialmente, não lidam bem com o tempo indo para trás.

    
por 28.03.2017 / 14:55