Sincronização de Horário para Controladores de Domínio Virtualizados Via Hyper-V

3

Gostaria de saber se alguém pode recomendar uma maneira melhor de configurar a sincronização de horário do domínio para um grupo de servidores do Windows Server 2008 R2 do que o que configuramos atualmente. Eu tenho três controladores de domínio que são todos os convidados do Hyper-V. Para todos esses DCs, o recurso de sincronização de tempo do host dos serviços de integração está desativado. Os DCs são configurados como servidores de horário autoritativos e o servidor FSMO DC1 usa os servidores públicos nist-a e nist-b como sua origem de horário. O DC2, o DC3 e todos os outros servidores neste ambiente, tanto hosts quanto convidados, são membros do domínio de um e olham para o DC1 por tempo. Para todos os convidados restantes (ou seja, não os DCs), o recurso de sincronização de horário dos serviços de integração é ativado. O motivo desta postagem é que estou esporadicamente vendo a mensagem que segue no próximo parágrafo e gostaria de obter todos os meus servidores (hosts e convidados) para que seu tempo seja o mais preciso possível:

O serviço de tempo detectou uma diferença de tempo maior que 5000 milissegundos por 900 segundos. A diferença de tempo pode ser causada pela sincronização com fontes de tempo de baixa precisão ou por condições de rede abaixo do ideal. O serviço de horário não está mais sincronizado e não pode fornecer o horário para outros clientes ou atualizar o relógio do sistema. Quando um carimbo de data / hora válido é recebido de um provedor de serviços de horário, o serviço de horário se corrigirá.

Se alguém tiver uma configuração semelhante com os DCs virtualizados e tiver alcançado uma sincronização de tempo altamente precisa em todos os servidores do domínio, sua opinião será bem-vinda.

Obrigado.

    
por Chris 13.07.2011 / 05:15

2 respostas

1

O método mais confiável de manter o tempo em um ambiente de domínio virtualizado é manter seu PDC físico, aumentar a tolerância de desvio e frequência de sincronização em todos os membros do DC e do domínio virtualizados e desabilitar a sincronização do convidado / host para todas as VMs em questão .

Aqui está uma pseudo-explicação do problema (faz muito tempo desde que eu olhei para isso):

Quando uma máquina (estação de trabalho, servidor, VM) é inicializada, ela lê a hora do RTC (chip de clock suportado por bateria na placa-mãe / BIOS) e calcula a duração de cada escala da CPU. O sistema operacional então conta o número de pulsos de clock que ocorreram desde que a leitura inicial foi feita , e acrescenta o tempo daquele tempo à leitura original do tempo tirada na inicialização. Isso te dá a hora atual.

O problema é que os hosts ocultam os verdadeiros ciclos de clock que ocorrem nas VMs. Uma VM pode ter visto 100 ciclos de clock quando ocorreram 500 ciclos de clock no host. Então, esse método de calcular o tempo se desintegra e o tempo se esvai na VM.

A sincronização de tempo do Host-Guest por meio dos pacotes de ferramentas / aprimoramentos vm instalados no vSphere e Hyper-V acelera isso, mas eles não são perfeitos (em algumas configurações eles podem encaminhar uma VM se ela estiver atrasada em tempo real) , mas eles não avançam para uma VM se ela estiver à frente do tempo real).

Isso é ainda mais complicado pela maneira como os ciclos de clock são contados em configurações multi-core (o contador de temporização é essencialmente emulado em cada núcleo) e em configurações que podem mudar as velocidades de clock rapidamente (não tenho ideia de como isso é mantido ). Fator na ideia de que uma máquina virtual pode executar um ciclo de clock em um núcleo e, em seguida, pular para um núcleo diferente em uma CPU diferente para o próximo ciclo, e isso fica realmente horrível.

Então, voltando ao ponto original: a hora do domínio, por padrão, começa no PDC, depois passa para os outros DCs, depois para os servidores membros e estações de trabalho de lá. Portanto, se você garantir que seu PDC seja uma fonte de tempo realmente confiável (mantendo-o físico) e desabilite a sincronização host-guest em todos os outros membros do domínio, você garantirá uma infraestrutura de tempo estável e relativamente precisa.

Observe que executar o PDC como um servidor físico, em seguida, habilitar o Hyper-V nesse servidor e adicionar alguns convidados a ele provavelmente não é uma correção adequada, pois acredito que, quando você ativa o Hyper-V, o sistema operacional 'base' é realmente torna-se um sistema operacional virtualizado também (silenciosamente). Portanto, mantenha um servidor físico como um PDC e mantenha o Hyper-V fora da caixa.

Interessante ponto a observar: a posição oficial da Microsoft no Windows Time Synchronization, mesmo usando o serviço NTP compatível que vem embutido no Windows desde o XP / 2003, é de 15 segundos. Na prática, você pode baixar para menos de 100 ms, mas tudo o que eles suportam é a sincronização para dentro de 15 segundos. Meio que faz sentido, o único componente chave sensível ao tempo no núcleo da maioria dos ambientes MS é o Kerberos e, por padrão, ele funcionará de maneira feliz, contanto que você esteja dentro de uma tolerância de 5 minutos.

    
por 13.07.2011 / 08:59
2

Sim. Não desligue a sincronização EXCETO no servidor que realmente é também um controlador de domínio físico.

Eu tenho a mesma configuração e tenho certeza que a máquina que serve o tempo é uma caixa pequena de controlador de domínio físico. Todos os DCs virtuais são sincronizados com o tempo do hyper-v.

O perigo real é o loop de feedback entre o host e o cliente e, dessa forma, o loop é interrompido.

Isto NÃO é altamente preciso BTW - o Windows nunca é. Só sincroniza com um grau muito ruim de precisão. Eu tenho outra máquina que coleta dados financeiros e é sincronizada com o ms para um host externo (média de inclinação por hora: 37ms de acordo com as estatísticas);) ISTO é preciso.

    
por 13.07.2011 / 06:51