O anúncio de systemd-timesyncd no arquivo systemd NEWS explica bem as diferenças dessa ferramenta em comparação com o Chrony e outras ferramentas semelhantes. (ênfase minha):
Um novo daemon "systemd-timesyncd" foi adicionado para sincronizar o relógio do sistema pela rede. Ele implementa um cliente SNTP . Ao contrário das implementações NTP, como o chrony ou o servidor de referência NTP, isso apenas implementa o lado do cliente e não se preocupa com toda a complexidade do NTP, concentrando-se apenas na consulta do tempo de um servidor remoto e na sincronização do relógio local . A menos que você pretenda servir o NTP a clientes em rede ou desejar conectar-se a relógios de hardware locais, esse cliente NTP simples deve ser mais do que apropriado para a maioria das instalações. [...]
Essa configuração é um caso de uso comum para a maioria dos hosts em uma frota de servidores. Eles geralmente serão sincronizados a partir de servidores NTP locais, que são sincronizados por várias fontes, possivelmente incluindo hardware. O systemd-timesyncd tenta fornecer uma solução fácil de usar para esse caso de uso comum.
Tentando resolver suas perguntas específicas:
Quais são as diferenças do mundo real entre os dois em termos de precisão?
Acredito que você pode obter maior precisão obtendo dados de sincronização de várias fontes, o que não é especificamente um caso de uso suportado pelo systemd-timesyncd. Mas quando você o usa para obter dados de sincronização de servidores NTP centrais conectados à sua rede interna confiável, o uso de várias fontes não é realmente tão relevante e você obtém boa precisão de uma única fonte.
Se você estiver sincronizando seu servidor em um servidor confiável em uma rede local e no mesmo datacenter , a diferença de precisão entre NTP e SNTP será praticamente inexistente. O NTP pode levar em consideração o RTT e economizar tempo, mas isso não é tão benéfico quando o seu RTT é realmente pequeno, como é o caso de uma rede local rápida e de uma máquina próxima. Você também não precisa de várias fontes se puder confiar na que está usando.
Quais são as diferenças de eficiência?
Obter a sincronização de uma única fonte é muito mais simples do que obtê-la de várias fontes, pois você não precisa tomar decisões sobre quais fontes são melhores que outras e possivelmente combinar informações de várias fontes. Os algoritmos são muito mais simples e exigirão menos carga da CPU para o caso simples.
Quais são as necessidades de sincronização de tempo "não simples", também conhecidas como casos de uso do chrony como cliente NTP?
Isso é tratado na citação acima, mas, em qualquer caso, são casos de uso do Chrony que não são cobertos pelo systemd-timesyncd:
- executando o servidor NTP (para que outros hosts possam usar esse host como fonte de sincronização);
- obter informações de sincronização NTP de várias fontes (o que é importante para os hosts obterem essas informações de servidores públicos na Internet); e
- obter informações de sincronização do relógio local, que geralmente envolve hardware especializado, como dispositivos GPS, que podem obter informações precisas de hora dos satélites.
Esses casos de uso requerem Chrony ou ntpd ou similar.
Como a outra resposta afirma corretamente,
chrony
implementa NTP esystemd-timesyncd
SNTP.Do ponto de vista de um cliente de serviço de horário:
O SNTP é um protocolo muito mais simples de implementar;
O NTP permite incrementos / correções passo a passo no tempo. Uma grande vantagem do NTP é que ele também leva em consideração o RTT da resposta para obter um tempo mais exato.
De https://www.meinbergglobal.com/english/faq/faq_37.htm
De https://www.masterclock.com/company/masterclock-inc-blog/ntp-vs-sntp
Outro ponto importante que posso ver são as implementações de SNTP que fornecem mais problemas do que o NTP na virtualização, quando você tem o daemon de hipervisor e NTP tentando alterar o tempo da VM. Especialmente com o fato de eles não concordarem com o tempo com algumas configurações incorretas, os dois ficam ativos e podem causar grandes problemas. (Embora os administradores de sistema competentes mantenham ativo apenas um método para sincronização com o tempo, pode acontecer que ambos estejam ativos por um erro de configuração).
O PS
systemd-timesyncd
não deve ser uma alternativa recomendada quando não estiver em usosystemd
.fonte
systemd-timesyncd
programa sob outro gerente de serviço. Eu forneci um pacote de serviços para executá-lo sob o nosh toolkitservice-manager
desde 2018. O que você perdeu é que as pessoas do systemd (por bug Debian # 812522) incentivam os serviços de convidado do VirtualBox e outros a entrar em conflito explicitamente com osystemd-timesyncd
serviço, a fim de impedir seu uso em máquinas virtuais.systemd
.... No entanto, o vmtools timesync pode e será desativado e deve ser desativado em servidores que executam serviços NTP (por exemplo, as VMs dos servidores NTP), e alguns administradores de sistema são sincronizados pelo vmtools, outros seguem os papéis do VmWare para desativar o vmtools timesync (que deve ser usado apenas quando você sabe o que está fazendo). Esse bug não é linear para ser resolvido e será um ponto extra de configuração facilmente ignorado pelas pessoas que seguem as recomendações do VmWare de não usar o vmtools timesync.vmware-toolbox-cmd timesync disable
em meus servidores NTP, independentemente de os caras do VmWare terem ou não desativado o timesync para essas VMs. (Eu também geralmente preferem usar chrony como um cliente NTP)chrony
não é uma forma de garfo,ntpd
mas é implementada a partir do zero. Ele implementa os modos cliente e servidor do protocolo NTPv4 completo ( RFC5905 ). Em usuários de nível empresarial, estamos vendo uma tendência mudar do tradicionalntpd
para ochrony
Red Hat (RHEL 7 em diante) e o SuSE (do SLES 15).systemd-timesyncd
implemente apenas o modo de cliente protocolo SNTP ( RFC4330 ) . Portanto, casos de uso complexos não são cobertos por . Por exemplo, o SNTP não pode torná-lo mais preciso, recuperando o tempo de várias fontes, como o NTP faz por padrão. Como resultado, não é possível fornecer um tempo de alta precisão .systemd-timesyncd
systemd-timesyncd
chrony
fonte