Melhor maneira de dizer “sincronizar todos os relógios do sistema para este servidor, quando e SOMENTE quando eu digo isso?” Configuração mista de servidores Windows + Linux

2

Título praticamente explica isso. Digamos que há 100 servidores, várias versões do Windows e Linux e um servidor Windows é o "relógio mestre". Eu olhei para essa pergunta:

Como faço para sincronizar os relógios entre o Linux e o Windows?

Isso sugere que o ntp pode fazer o que eu quero se eu executar "ntpd -q" em um cliente (?). Se eu instalar o ntp, eu também preciso garantir que ele somente sincronizará as vezes em que eu o forço. Melhor ainda se eu tiver um registro que me informe toda vez que uma sincronização for realizada.

Estou fazendo testes de benchmark e preciso dizer algo assim: "Os relógios foram sincronizados em todos os sistemas de benchmark às 09:42:01 no master. Uma corrida de benchmark foi então iniciada e permitida a execução por seis horas. Nenhum dos relógios do sistema foi alterado durante este intervalo de tempo. "

Eu entendo que há uma mudança no relógio subseqüente, mas por enquanto é assim que estamos fazendo as coisas e estou fazendo isso com um processo manual. Eu prefiro pelo menos automatizar a sincronização única.

    
por twblamer 26.06.2011 / 00:28

4 respostas

2

Você está procurando o comando específico para iniciar / parar o NTP no Linux e no Windows? Essas são diferentes em diferentes distribuições do Linux. Será algo como "/etc/init.d/ntpd stop" em alguns, diferente em outros, e não tenho certeza no Windows.

Existem duas maneiras de fazer isso e uma ressalva.

Método 1: Execute o NTP normalmente, mas pare-o para o benchmark.

Método 2: Não execute o NTP, mas execute o NTP no modo "one-shot" antes de o benchmark ser executado. (No linux seria "ntpdate SERVERNAME" no Unix / Linux ou [i think] "ntp -q" no windows)

O método 1 tem algumas vantagens em que o relógio estará correto todas as vezes que você não estiver executando benchmarks. O relógio também será definido com mais precisão para o benchmark. Ou seja, o NTP mantém o relógio com muita precisão, mesmo entre os pacotes NTP. Os pacotes NTP na rede são simplesmente ótimos ajustes. Entre pacotes O NTP usa a experiência passada para acelerar ou desacelerar o relógio do sistema. A desvantagem é que quando você inicia o NTP novamente, ele se recusará a iniciar se o relógio estiver muito longe. Isso não é um bug, ele faz isso de propósito para evitar a sincronização com um servidor que está indo mal. Para evitar isso, faça um "ntpdate" ou "ntp -q" antes de reiniciar o NTP.

O método 2 tem a vantagem de ser mais simples de implementar. No entanto, o relógio não será muito preciso. O modo "one shot" não define o relógio com a mesma precisão que o NTP. É principalmente para consertar um relógio distante antes de iniciar o NTP (veja acima). No entanto, se o seu benchmark tiver que ser preciso até cerca de 1/10 de segundo, você estará bem.

A ressalva é que os benchmarks podem não estar comparando com o que você acha que eles estão fazendo benchmarking se você desligar o NTP. O relógio do computador vai deriva sem NTP rodando constantemente. Tudo bem se você está avaliando o quanto de drift o computador tem, mas não muito mais.

(E eu deveria notar ... a tendência será diferente não apenas da marca para a marca, mas entre máquinas específicas.)

HTH!

    
por 26.06.2011 / 01:22
5

Se você estivesse apenas usando Linux, eu usaria mcollective para a execução paralela do comando ntpdate. Meu ntpd não tem uma opção -q.

Não estou familiarizado com ferramentas semelhantes para o Windows.

Só para ficar claro, é mais provável que você obtenha um tempo consistente ao executar o ntpd continuamente, uma vez que ele também mantém o drift do relógio sob controle. Computadores diferentes têm velocidades de clock ligeiramente diferentes, e apenas sincronizar os relógios no início não garante que eles fiquem sincronizados pelas próximas seis horas. O ntpd é projetado especificamente para corrigir isso.

    
por 26.06.2011 / 00:57
2

ntpd é projetado para manter uma sincronização constante, daí o "d". ntpdate vai te dar uma sincronização única.

Para o Windows, eu acho que você faria algo assim ... (Eu não testei se isso funciona bem)

w32tm /config /manualpeerlist:"valid.ntp.server,0x9"
w32tm /resync /rediscover
w32tm /config /manualpeerlist:"bogus.invalid.server,0x9"

Por que não apenas permitir que os dispositivos permaneçam sincronizados o tempo todo?

    
por 26.06.2011 / 01:14
0

A sincronização manual pode ser sua única opção para o Windows sem software adicional. Veja este artigo:

link

Para alternativas, esta página parece promissora:

link

Tenha em mente que fazer uma sincronização periódica / manual NÃO é melhor de forma alguma do que contínua. As alterações no tempo de registro devido ao desvio do relógio por longos períodos sem sincronização não fornecerão um nível supremo de precisão. Os relógios não necessariamente se movem a uma taxa consistente; pode mudar com base na temperatura e outras flutuações que você não consegue medir.

Qual o nível de precisão que você está procurando? +/- 1 segundo, +/- 0.0001 segundos, ...?

    
por 26.06.2011 / 07:09