Relógio sincronizado NTP ao lado do relógio do sistema

1

O daemon NTP (ntpd) fornece algum tipo de relógio virtual que ele disciplina e serve, mas não toca no relógio do sistema?

Objetivo:

Em um sistema operacional Linux em tempo real, temos um relógio NTP sincronizado ao lado do relógio do sistema, para que as alterações de horário ntp não causem problemas no sistema, mas eu posso usar o tempo NTP para fins de depuração, por exemplo.

Problema:

Estamos adicionando o NTP a um sistema já existente, anteriormente não nos preocupamos com a hora do sistema, mas agora estamos adicionando o NTP para permitir uma melhor depuração

Configuração:

  • Alguns dos aplicativos no sistema dependem do REALTIME em vez do tempo MONOTONIC
  • Tenho relógio local como um dos servidores NTP
  • Por padrão, nenhum conjunto de servidores NTP externo
  • Na inicialização, o ntpd está configurado para sincronizar instantaneamente o relógio do sistema com o primeiro relógio não local disponível e sair, depois iniciar outra instância do ntpd normalmente
  • Quando nenhum servidor NTP externo estiver configurado, o sistema apenas será executado com o ntpd com o clock local

cenário:

  • Vamos dizer, no tempo de inicialização, que nenhum servidor NTP está definido, e um decide não definir nenhum servidor NTP
  • As candidaturas começam a correr contra o REALTIME, sem problemas
  • Alguém decide configurar um servidor NTP, mas não reinicializar o sistema
  • Suponha que o servidor NTP recém-adicionado seja uma boa fonte de tempo melhor que o relógio local, mas há um deslocamento (pode ser um minuto, um dia ou até um mês)
  • Se o ntpd na inicialização estiver configurado para permitir um grande deslocamento de deslocamento, ele o faria sem problemas, mas os aplicativos no sistema poderiam entrar em pânico (tempo limite, etc)
  • Se o ntpd na inicialização estiver configurado para permitir somente a mudança, mas não a etapa, devido ao enorme deslocamento, o sistema poderá levar uma eternidade para sincronizar com o tempo real do servidor NTP
por Vikyboss 28.03.2016 / 23:35

1 resposta

2

Parece-me que você está perguntando como ter o Linux com um relógio de cérebro dividido: um que nunca muda, mas pode estar errado, para o kernel, e um que está certo, mas pode mudar, por tudo outro. Infelizmente, o Linux não suporta essa ideia, e seria preciso muito trabalho para fazê-lo.

Na sua situação, as coisas que você pode fazer para melhorar os assuntos incluem:

  1. Não execute ntpd com o relógio local configurado como fonte, a menos que o relógio local seja altamente preciso (o que no seu caso não é, ou o problema não teria surgido).

  2. Não permita que as pessoas reconfigurem e / ou iniciem ntpd em um sistema em execução, a menos que saibam o que estão fazendo.

  3. Certifique-se de que o sistema execute hwclock --systohc no encerramento para que a hora do sistema seja gravada no relógio do hardware. Em algum momento, é provável que o sistema adquira um bom sinal de tempo, e isso ajudará a preservá-lo. Após esse ponto, o sistema terá um bom relógio a partir da inicialização, e a aquisição pós-inicialização de um servidor ntp decente estará dentro da capacidade corretiva do relógio.

por 30.03.2016 / 09:00