Sou desenvolvedor e estamos usando o Quartz.Net, biblioteca de agendamento amplamente usada com armazenamento de backup SQL para executar servidores de cluster de trabalhos (VMs no cluster ESXI).
O Quartz.Net exige que o tempo seja sincronizado entre as instâncias do servidor de trabalho e recomenda o uso do NTP.
Os relógios devem estar dentro de um segundo um do outro.
Nossos administradores de sistema usando o Windows NTP para sincronizar o tempo com o controlador de domínio. A sincronização de VMs com o host ESXI está desativada.
Eles continuam insistindo que "dentro de um segundo" não é um requisito correto e que não pode ser atendido sem dispositivos de sincronização GPS de hardware. Seu nível de SLA e monitoramento é "dentro de 3 minutos".
Estamos enfrentando um comportamento fora de sincronia periódico (uma vez a cada dois meses), de quartzo, consistente com o tempo fora de sincronia.
- É correto pedirmos "dentro de um segundo" ou precisamos abandonar inteiramente o quartzo?
- Se sim, quais alterações são recomendadas para a nossa configuração?
fonte
Respostas:
Isso é 2018. O Windows é capaz de manter os servidores sincronizados em até 2 ms, conforme exigido pelos regulamentos do MIFID II. Portanto, seu problema não é um problema.
Por quê? O host pode lidar com isso muito melhor (sendo hardware) e você tem muito menos. Seus administradores de sistemas se atiram no pé e depois reclamam que estão sangrando.
ANTIGO - antigo - Windows sincronizado nesse período de tempo porque os tíquetes Kerberos tinham validade de 5 minutos.
Mas isso é, como eu disse, 2018. Atualmente, o setor financeiro tem requisitos bastante brutais e a MS administra isso desde 2012, eu acho. 2016 colocou totalmente em vigor. A precisão de milissegundos na Internet é um problema resolvido - resolvido há 50 anos, na verdade, para uma conexão decente. NTP pode lidar com isso. Pode ser necessário instalar uma caixa de hardware barata se você quiser reduzir o tráfego (por exemplo, criar sua própria fonte de tempo NTP de nível 3), mas isso nem sempre é caro.
Você precisa programar para problemas de tempo ocasionais - como faria com o hardware. Mas "dentro de um segundo" é uma piada de um requisito - é trivial atender em circunstâncias normais.
Algumas referências:
https://docs.microsoft.com/en-us/windows-server/networking/windows-time-service/accurate-time
Muitos detalhes e instruções lá. Esta é uma leitura incrível, na verdade, se você precisar resolver esse problema. Pode ser necessário atualizar seu hypervisor - eles falam sobre o Hyper-V. O VMWare deve poder fazer o mesmo, mas não sabe quantos anos sua versão tem.
fonte
Existem muitas razões muito boas para várias pilhas de aplicativos precisarem de controle de tempo apertado e o que o Quartz está solicitando está longe de ser incomum.
A melhor aposta é fazer com que cada parte do seu sistema use o NTP e aponte-o para o mesmo par de servidores NTP. Portanto, o ESXi hospeda e as VMs em execução neles, todos usando as mesmas fontes NTP, iguais para qualquer outra coisa envolvida. Dessa forma, mesmo que os servidores NTP estejam "fora do horário", pelo menos todas as partes do seu sistema estarão atualizadas.
fonte
https://docs.microsoft.com/en-us/windows-server/networking/windows-time-service/support-boundary
Suporte de alta precisão para Windows 8.1 e 2012 R2 (ou anterior)
As versões anteriores do Windows (anteriores ao Windows 10 1607 ou Windows Server 2016 1607) não podem garantir um tempo altamente preciso. O serviço Windows Time nesses sistemas:
Forneceu a precisão do tempo necessário para atender aos requisitos de autenticação Kerberos versão 5
Forneceu um tempo pouco preciso para clientes e servidores Windows ingressarem em uma floresta comum do Active Directory
Os requisitos de precisão mais rígidos estavam fora da especificação de design do Windows Time Service nesses sistemas operacionais e não são suportados.
Windows 10 e Windows Server 2016
A precisão do tempo no Windows 10 e no Windows Server 2016 foi substancialmente aprimorada, mantendo a compatibilidade total com NTP com versões anteriores do Windows. Sob as condições operacionais corretas, os sistemas que executam o Windows 10 ou o Windows Server 2016 e as versões mais recentes podem fornecer precisão de 1 segundo, 50ms (milissegundos) ou 1ms.
Precisão alvo: 1 segundo (1s)
Para alcançar a precisão de 1s para uma máquina de destino específica quando comparado a uma fonte de tempo altamente precisa:
O sistema de destino deve executar o Windows 10, Windows Server 2016.
O sistema de destino deve sincronizar o tempo a partir de uma hierarquia NTP de servidores de horário, culminando em uma fonte de tempo NTP altamente precisa e compatível com o Windows.
Todos os sistemas operacionais Windows na hierarquia NTP mencionados acima devem ser configurados conforme documentado na documentação Configurando sistemas para alta precisão.
A latência cumulativa da rede unidirecional entre o destino e a origem não deve exceder 100 ms. O atraso acumulado da rede é medido adicionando-se os atrasos unidirecionais individuais entre pares de nós cliente-servidor NTP na hierarquia, começando com o destino e terminando na origem. Para mais informações, consulte o documento de sincronização de tempo de alta precisão.
https://docs.microsoft.com/en-us/windows-server/networking/windows-time-service/configuring-systems-for-high-accuracy
fonte