Ir para o conteúdoIr para navegação de página: página anterior [tecla de acesso p]/próxima página [tecla de acesso n]
documentation.suse.com / Documentação do SUSE Linux Enterprise Desktop / Guia de Administração / Serviços / Sincronização de horário com NTP
Aplica-se a SUSE Linux Enterprise Desktop 15 SP6

39 Sincronização de horário com NTP

O mecanismo NTP (network time protocol) é um protocolo para sincronizar o horário do sistema na rede. Primeiro, uma máquina pode obter o horário de um servidor, que é uma fonte de horário confiável. Segundo, a máquina pode agir como uma fonte de horário para outros computadores na rede. O objetivo é duplo: manter o tempo absoluto e a sincronização do horário do sistema de todas as máquinas na rede.

Manter um horário exato do sistema é importante em várias situações. Geralmente, o relógio do hardware incorporado não atende aos requisitos dos aplicativos, como bancos de dados ou clusters. A correção manual do horário do sistema levaria a problemas severos pois, por exemplo, um pulo inverso pode causar o mau funcionamento de aplicativos críticos. Em uma rede, geralmente é necessário sincronizar o horário do sistema de todas as máquinas, porém, o ajuste manual do horário não é um bom método. O NTP dispõe de um mecanismo para resolver esses problemas. O serviço NTP ajusta continuamente o horário do sistema com servidores de horário confiáveis na rede. Ele habilita também o gerenciamento de relógios de referência local como relógios controlados pelo rádio.

A partir do SUSE Linux Enterprise Desktop 15, o chrony é a implementação padrão do NTP. O chrony inclui duas partes: chronyd é um daemon que pode ser iniciado no momento da inicialização, e chronyc é um programa de interface de linha de comando que monitora o desempenho do chronyd e muda os parâmetros operacionais em runtime.

A partir do SUSE Linux Enterprise Desktop 15.2, o módulo do YaST para configuração do cliente NTP define o systemd-timer, em vez do daemon cron, para executar o chrony, quando ele não está configurado para ser executado como um daemon.

Nota
Nota

Para habilitar a sincronização de horário por meio do diretório ativo, siga as instruções em Procedure 7.2, “Joining an Active Directory domain using Windows domain membership.

39.1 Configurando um cliente NTP com YaST

O daemon do NTP (chronyd) que acompanha o pacote chrony vem predefinido para usar o relógio do hardware do computador local como referência de horário. A precisão de um relógio de hardware depende substancialmente da sua fonte de horário. Por exemplo, um relógio atômico ou um receptor GPS é uma fonte de horário precisa, enquanto um chip RTC comum não é uma fonte de horário confiável. O YaST simplifica a configuração de um cliente NTP.

Na janela de configuração do cliente NTP do YaST (Serviços de Rede › Configuração do NTP), você pode especificar quando iniciar o daemon do NTP, o tipo de fonte de configuração e adicionar servidores de horário personalizados.

Janela de configuração do NTP
Figura 39.1: Janela de configuração do NTP

39.1.1 Início do daemon do NTP

Há três opções que você pode escolher para iniciar o daemon do NTP:

Apenas manualmente

Selecione Apenas manualmente para iniciar manualmente o daemon chrony.

Sincronizar sem Daemon

Selecione Sincronizar sem Daemon para definir o horário do sistema periodicamente sem a execução permanente do chrony. Você pode definir o Intervalo da Sincronização em Minutos.

Agora e ao inicializar

Selecione Agora e ao inicializar para iniciar o chronyd automaticamente quando o sistema for inicializado. Essa configuração é recomendada.

39.1.2 Tipo de fonte de configuração

Na caixa suspensa Fonte de Configuração, selecione Dinâmico ou Estático. Defina como Estático se o seu servidor usa apenas um conjunto fixo de servidores NTP (públicos). A opção Dinâmico é melhor quando sua rede interna oferece servidores NTP via DHCP.

39.1.3 Configurar servidores de horário

Os servidores de horário para consulta do cliente estão listados na parte inferior da janela Configuração do NTP. Modifique esta lista conforme necessário com Adicionar, Editar e Apagar.

Clique em Adicionar para adicionar um novo servidor de horário:

Adicionando um servidor de horário
Figura 39.2: Adicionando um servidor de horário
  1. No campo Endereço, digite o URL do servidor de horário ou do pool de servidores de horário com os quais você deseja sincronizar o horário da máquina. Depois que o URL estiver completo, clique em Testar para verificar se ele aponta para uma fonte de horário válida.

  2. Ative Sincronização Inicial Rápida para acelerar a sincronização de horário por meio do envio de mais solicitações quando o daemon chronyd é iniciado.

  3. Ative Iniciar Offline para acelerar o tempo de inicialização nos sistemas que iniciam o daemon chronyd automaticamente e podem não ter uma conexão de Internet no momento da inicialização. Essa opção é útil, por exemplo, para laptops com conexões de rede gerenciadas pelo NetworkManager.

  4. Confirme com OK.

39.2 Configurando manualmente o NTP na rede

O chrony lê sua configuração do arquivo /etc/chrony.conf. Para manter o relógio do computador sincronizado, você precisa informar ao chrony quais servidores de horário devem ser usados. Você pode usar nomes de servidores ou endereços IP específicos. Por exemplo:

0.suse.pool.ntp.org
1.suse.pool.ntp.org
2.suse.pool.ntp.org
3.suse.pool.ntp.org

Você também pode especificar o nome de um pool. O nome do pool é resolvido para vários endereços IP:

pool pool.ntp.org
Dica
Dica: Computadores na mesma rede

Para sincronizar o horário em vários computadores na mesma rede, não é recomendável sincronizar todos eles com um servidor externo. Convém especificar um computador como servidor de horário, que é sincronizado com um servidor de horário externo, e o outro computador atua como cliente dele. Adicione uma diretiva local ao /etc/chrony.conf do servidor para diferenciá-lo de um servidor de horário autorizado:

local stratum 10

Para iniciar o chrony, execute:

systemctl start chronyd.service

Após a inicialização do chronyd, levará um tempo para estabilizar o horário, e o arquivo drift que corrige o relógio do computador local será criado. Com o arquivo DRIFT, o erro sistemático do relógio do hardware pode ser registrado quando o computador é ligado. A correção é usada imediatamente, resultando em uma estabilidade maior do horário do sistema.

Para habilitar o serviço que permite iniciar o chrony automaticamente no momento da inicialização, execute:

systemctl enable chronyd.service
Atenção
Atenção: Serviço yast-timesync.service conflitante

Além do serviço chronyd.service, o SLED inclui o yast-timesync.service. O yast-timesync.service é acionado por um temporizador a cada 5 minutos e executa o chronyd com a opção -q para definir o horário do sistema e sair. Como apenas uma instância do chronyd pode estar em execução a qualquer momento, não habilite nem inicie os dois serviços relacionados ao chronyd simultaneamente.

39.3 Configurar o chronyd em tempo de execução usando o chronyc

Você pode usar o chronyc para mudar o comportamento do chronyd em tempo de execução. Ele também gera relatórios de status sobre a operação do chronyd.

Você pode executar o chronyc no modo interativo ou não interativo. Para executar o chronyc interativamente, digite chronyc na linha de comando. Esse procedimento exibe um prompt e aguarda a entrada do seu comando. Por exemplo, para verificar quantas fontes NTP estão online ou offline, execute:

# chronyc
chronyc> activity
200 OK
4 sources online
2 sources offline
1 sources doing burst (return to online)
1 sources doing burst (return to offline)
0 sources with unknown address

Para sair do prompt do chronyc, digite quit ou exit.

Se você não precisa usar o prompt interativo, digite o comando diretamente:

# chronyc activity
Nota
Nota: Mudanças temporárias

As mudanças feitas com o chronyc não são permanentes. Elas serão perdidas após a próxima reinicialização do chronyd. Para mudanças permanentes, modifique o /etc/chrony.conf.

Para obter uma lista completa dos comandos do chronyc, consulte a página de manual dele (man 1 chronyc).

39.4 Sincronização de horário dinâmica em tempo de execução

Embora o chronyd seja inicializado normalmente em um sistema que inicializa sem uma conexão de rede, a ferramenta não pode resolver os nomes DNS dos servidores de horário especificados no arquivo de configuração.

O chronyd continua tentando resolver os nomes de servidor de horário especificados pelas diretivas server, pool e peer em um intervalo de tempo crescente até obter êxito.

Se o servidor de horário não puder ser acessado quando o chronyd for iniciado, você poderá especificar a opção offline:

server server_address offline

O chronyd não tentará fazer poll no servidor até ser habilitado usando o seguinte comando:

# chronyc online server_address

Quando a opção auto_offline está definida, o chronyd pressupõe que o servidor de horário estava offline quando duas solicitações foram enviadas a ele sem receber uma resposta. Essa opção evita a necessidade de executar o comando offline do chronyc ao desconectar o link de rede.

39.5 Configurando um relógio de referência local

O pacote de software chrony depende de outros programas (como gpsd) para acessar os dados de horário por meio do driver SHM ou SOCK. Use a diretiva refclock em /etc/chrony.conf para especificar um relógio de referência de hardware a ser usado como fonte de horário. Ela tem dois parâmetros obrigatórios: um nome de driver e um parâmetro específico do driver. Os dois parâmetros são seguidos de zero ou de mais opções do refclock. O chronyd inclui os seguintes drivers:

  • PPS: driver para a API do kernel pulse per second. Por exemplo:

    refclock PPS /dev/pps0 lock NMEA refid GPS
  • SHM: driver de memória compartilhada do NTP. Por exemplo:

    refclock SHM 0 poll 3 refid GPS1
    refclock SHM 1:perm=0644 refid GPS2
  • SOCK: driver de soquete de domínio do Unix. Por exemplo:

    refclock SOCK /var/run/chrony.ttyS0.sock
  • PHC: driver de relógio do hardware PTP. Por exemplo:

    refclock PHC /dev/ptp0 poll 0 dpoll -2 offset -37
    refclock PHC /dev/ptp1:nocrossts poll 3 pps

Para obter mais informações sobre as opções de drivers individuais, consulte man 8 chrony.conf.

39.6 Sincronização do relógio com uma Referência de Horário Externa (ETR, External Time Reference)

O suporte para sincronização do relógio com uma referência de horário externa (ETR) está disponível. A referência de horário externa envia um sinal do oscilador e um sinal de sincronização a cada 2**20 (2 elevado à potência de 20) microssegundos para manter sincronizados os relógios TOD de todos os servidores conectados.

Para disponibilidade, é possível conectar duas unidades ETR a uma máquina. Se a diferença do relógio for maior do que a tolerância da verificação de sincronização, todas as CPUs terão suas máquinas marcadas indicando que o relógio não está sincronizado. Se isso acontecer, todos os dispositivos DASD de E/S habilitados para XRC serão parados até o relógio ser novamente sincronizado.

O suporte a ETR é ativado por meio de dois atributos sysfs. Execute os seguintes comandos como root:

echo 1 > /sys/devices/system/etr/etr0/online
echo 1 > /sys/devices/system/etr/etr1/online