Como sincronizar o tempo em máquinas virtuais Windows do ESXi dentro de um segundo?

11

Sou um desenvolvedor e estamos usando o Quartz.Net, uma biblioteca de agendamento amplamente usada com o armazenamento de backup SQL para executar o cluster de servidores de tarefas (VMs no cluster ESXI).

Quartz.Net requer que o tempo ser sincronizado entre as instâncias do servidor de trabalho e recomenda usar o NTP para ele.

The clocks must be within a second of each other.

Nossos sysadmins 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 segundos" não é um requisito correto e que não pode ser atendido sem dispositivos de sincronização de GPS de hardware. O seu SLA & nível de monitoramento são "dentro de 3 minutos".

Estamos experimentando instâncias de Quartz periódicas (uma vez em 2 a 3 meses) fora de sincronia que são consistentes com o tempo estar fora de sincronia.

  1. É correto pedirmos "dentro de segundo" ou precisamos abandonar o Quartz inteiramente?
  2. Se sim, quais alterações são recomendadas para nossa configuração?
por Leotsarev 05.09.2018 / 09:35

3 respostas

20

Isso é 2018. O Windows é capaz de manter servidores sincronizados dentro de 2 ms ou mais, conforme exigido pelos Regulamentos MIFID II. Então, seu problema não é um problema.

Our sysadmins using windows NTP to sync time with domain controller. Synchronization of VMs with ESXI host is off.

Por quê? O host pode lidar com isso muito melhor (sendo hardware) e você tem muito menos. Seus sysadmins se atiram no pé, depois reclamam que estão sangrando.

They keep insisting that's "within second" is not correct requirement and that cannot be met w/o hardware GPS-syncing devices. Their SLA & monitoring level are "within 3 minutes".

OLD - antigo - O Windows sincronizou dentro desse período porque os tíquetes Kerberos tinham uma validade de 5 minutos.

Mas isto é, como eu disse, 2018. A indústria financeira tem exigências bastante brutais nos dias de hoje e a MS lidou com isso por - desde 2012, eu acho. 2016 colocá-lo totalmente em vigor. A precisão de milissegundos na internet é um problema resolvido - resolvido há 50 anos, para uma conexão decente. NTP pode lidar com isso. Você pode ter que colocar uma caixa de hardware barata se você quiser reduzir o tráfego (ou seja, fazer sua própria fonte de tempo NTP de nível 3), mas isso de novo não é nem mesmo caro.

Is it correct for us to ask for "within second" or we need to ditch Quartz entirely?

Você precisa programar problemas ocasionais - como faria com o hardware. Mas "dentro de segundo" é uma piada de um requisito - é trivial para atender em circunstâncias normais.

Algumas referências:

link

Government Regulations like: 50 ms accuracy for FINRA in the US 1 ms ESMA (MiFID II) in the EU.

Muitos detalhes e instruções. Esta é uma leitura incrível, na verdade, se você tiver que resolver esse problema. Você pode ter que atualizar seu hipervisor - eles falam sobre o Hyper-V. O VMWare deve ser capaz de fazer o mesmo, mas não tem certeza da idade da sua versão.

    
por 05.09.2018 / 09:58
6

Is it correct for us to ask for "within second" or we need to ditch Quartz entirely?

Existem muitas razões muito boas para várias pilhas de aplicativos precisarem de controle de tempo apertado e o que o Quartz está pedindo está longe de ser incomum.

If yes, what changes are recommended for our setup?

A melhor aposta é fazer com que cada parte do seu sistema use o NTP e aponte-as para o mesmo par de servidores NTP. Portanto, os hosts ESXi e as VMs são executados neles, todos usando as mesmas origens NTP, mesmo para qualquer outra coisa envolvida. Desta forma, mesmo que os servidores NTP estejam fora do horário, pelo menos todas as partes do seu sistema estarão atualizadas entre si.

    
por 05.09.2018 / 09:42
4

link

Suporte de alta precisão para o 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 de tempo do Windows nesses sistemas:

  • Forneceu a precisão de tempo necessária para satisfazer os requisitos de autenticação do Kerberos versão 5

  • Tempo livre e preciso para clientes e servidores Windows associados a uma floresta comum do Active Directory

Requisitos de precisão mais rígidos estavam fora da especificação de design do Serviço de Tempo do Windows nesses sistemas operacionais e não são suportados.

Windows 10 e Windows Server 2016

A precisão de tempo no Windows 10 e no Windows Server 2016 foi substancialmente aprimorada, mantendo a compatibilidade total com versões anteriores do NTP com versões mais antigas 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 do alvo: 1 segundo (1s)

Para obter precisão de 1s para uma máquina de destino específica, em comparação 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 de uma hierarquia de servidores de horário NTP, 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 Configuring Systems for High Accuracy.

  • A latência de rede unidirecional cumulativa entre o destino e a origem não deve exceder 100ms. O atraso cumulativo 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.

link

    
por 05.09.2018 / 12:23