Synchronisation temporelle Hyper-V pour le contrôleur de domaine VM

13

Nous avons 2 serveurs hyper-V physiques exécutant 8 VM entre eux, chaque serveur physique a un contrôleur de domaine sur lui fonctionnant dans une VM et tous les serveurs sont 2008R2

Le VM PDC est défini sur NTP et à synchroniser avec time.microsoft.com et le reste, y compris les serveurs physiques, est NT5DS. Cette machine virtuelle principale PDC détient définitivement le FSMO et est UDP 123 est actif

quand je lance w32tm / query / status

Je reçois VM IC Time Synchronization Provider sur les deux VM DC, je sais que cela signifie la synchronisation avec l'hôte.

Quand je lance w32tm / resync / rediscover

J'ai obtenu "n'a pas resynchronisé car aucune donnée de temps n'était disponible" et un ID d'événement 134 dans les journaux des idées à ce sujet?

J'ai également regardé les journaux et j'ai eu les événements 144 et 12

J'ai suivi les détails de MS KB sur la configuration d'une source de temps externe et effectué toutes les modifications du registre, mais je pense que le DNS m'obtient?

Mais lorsque je modifie l'heure sur l'une des machines physiques, c'est à partir de cette heure que l'heure est définie. Peut-être que si je les désinscris tous et que je m'inscris, les mets à jour et les synchronise, mais je crains que cela ne crée un plus gros problème!

J'essaie de laisser la synchronisation de l'heure entre la machine virtuelle et l'hôte Hyper-V activée car je pense que c'est la meilleure pratique d'après ce que j'ai lu.

Merci de votre aide



Je l'ai enfin fait fonctionner! L'objectif est d'aider les personnes qui commencent au début de la définition de l'heure des domaines.

Dans cet exemple, tous les serveurs, contrôleur de domaine principal (PDC), autres contrôleurs de domaine (DC) et autres serveurs exécutent Windows 2008 R2 et sont virtualisés avec Hyper-V.

Tout d'abord, vous lirez pour désactiver le 'Time Synchronization Integration Service' sur n'importe quelle machine virtuelle dans Hyper-V, mais à la place, vous devez manipuler le service de temps Windows (service w32tm) à partir du contrôleur de domaine virtuel, vous ne devez pas le désactiver car lorsqu'un La VM redémarre, cela causera des problèmes, cela devrait être fait avec w32tm. http://blogs.msdn.com/b/virtual_pc_guy/archive/2010/11/19/time-synchronization-in-hyper-v.aspx

Vous devrez découvrir quel serveur est le PDC et exécuter les rôles FSMO. Exécutez ceci: netdom query fsmo Le résultat devrait être votre PDC et c'est là que vous effectuez la plupart de vos modifications.

Assurez-vous que dans le pare-feu il y a une règle "Outbound" sur UDP123 et que le programme est% SystemRoot% \ System32 \ w32tm.exe, il suffit de parcourir le répertoire Windows et de trouver l'exe pour le temps

C'est là que les modifications du registre descendent! HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ services \ W32Time

Assurez-vous que le PDC sous config dans l'adresse de registre ci-dessus est défini sur NTP pour «type» et que tous les autres serveurs sont NT5DS, cela signifie que NTP est le papa! La meilleure pratique consiste à faire en sorte que le PDC recherche le temps et tout ce qui est synchronisé avec lui.

Exécutez cela sur tous les contrôleurs de domaine (y compris PDC), cela désactivera partiellement le temps de Windows afin qu'il ne regarde pas la machine hôte pendant longtemps, ce qui est important car nous sommes virtualisés. reg ajouter HKLM \ SYSTEM \ CurrentControlSet \ Services \ W32Time \ TimeProviders \ VMICTimeProvider / v Enabled / t reg_dword / d 0

Vous pouvez aller sur le site ntp.org http://support.ntp.org/bin/view/Servers/WebHome pour trouver un serveur le plus proche de vous pour synchroniser votre temps externe. Je recommande de ne pas utiliser Microsoft car ils sont très utilisés et peuvent glisser à cause de cela.

La commande ci-dessous définira le PDC pour qu'il regarde de l'extérieur, mais vérifie également les paramètres de registre définis ici pour se synchroniser en externe (vous devez faire les deux) http://support.microsoft.com/kb/816042

Exécutez ceci sur PDC w32tm / config /manualpeerlist::0.pool.ntp.org,0x1 ”/ syncfromflags: MANUEL / fiable: oui w32tm / config / update w32tm / resync w32tm / resync / rediscover

Exécutez ces 2 commandes à tout moment sur n'importe quel serveur pour voir leur source et lors de leur dernière mise à jour, elles seront utilisées tout au long de cet exercice pour vous assurer que votre PDC et les autres serveurs obtiennent l'heure au bon endroit w32tm / query / status w32tm / query /la source

Ensuite, exécutez cela sur tous les DC, sauf le PDC, cela leur fera regarder le PDC pour le temps et le resynchroniser w32tm / config / syncfromflags: DOMHIER / update net stop w32time net start w32time w32tm / resync / force

Problèmes: lorsque vous exécutez la requête État ou Source, accordez-leur une minute ou 2 après les modifications, vous ne devez pas regarder l'horloge CMOS locale et vous ne devez pas non plus utiliser le fournisseur de synchronisation horaire vm ic comme source.

En cas de succès, le PDC doit lire le site externe que vous avez défini et les autres serveurs doivent indiquer le PDC comme source

J'espère que cela aide les gens à bonne chance!

Karl
la source
Bonjour, les réponses vont dans la section Réponse, pas comme des modifications à la question.
Michael Hampton
2
Cela ne fonctionne pas complètement dans le plus récent Hyper-V 2012R2 avec les dernières mises à jour d'intégration, car l'heure revient immédiatement à l'hôte sous-jacent après avoir été définie par le serveur NTP. Même après s'être assis pendant un moment, il était coincé au mauvais moment. J'ai constaté qu'en modifiant également la clé de registre TimeProviders / VMICTimeProvider / InputProvider = 0, le serveur a cessé de revenir si facilement à l'hôte sous-jacent.
Brain2000
1
J'ai formaté votre réponse ci-dessous pour une meilleure lisibilité. Pourrait vouloir supprimer la réponse de votre question et ne faire référence qu'à votre réponse.
Tilo

Réponses:

12

@PSaul est généralement correct. Vous ne souhaitez pas utiliser time.microsoftou time.windows.comcomme source de temps pour votre contrôleur de domaine qui détient le rôle FSMO de l'émulateur PDC. Par défaut, ils sont fortement utilisés, souvent lents en raison du manque de localité et parfois indisponibles. Choisissez un pool NTP le plus proche de vous.

Cependant, ne désactivez pas l' intégration de synchronisation temporelle Hyper-V. Il est requis pour certaines fonctions comme la réinitialisation de l'heure après un redémarrage ou lorsque la machine virtuelle revient d'un état enregistré. Ce que vous voulez faire est de dire à vos contrôleurs de domaine virtualisés d'ignorer leur hôte Hyper-V comme source de temps.

Cela peut être fait comme suit:

reg add HKLM\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\VMICTimeProvider /v Enabled /t reg_dword /d 0

Cette commande supprime la source de temps Hyper-V en tant que source possible pour W32Time.

w32tm /config /syncfromflags:DOMHIER /update

Dites maintenant à W32Time d'aller chercher la meilleure source de temps possible dans la hiérarchie de domaine. Si vous souhaitez utiliser une source externe pour les deux contrôleurs de domaine, vous pouvez la configurer pour ce faire à l'aide des commandes @PSaul publiées ou d' ici . De manière générale, le contrôleur de domaine détenant le rôle d'émulateur PDC doit se synchroniser à partir de la source externe et vos autres contrôleurs de domaine doivent se synchroniser à partir de celle-ci.

net stop w32time & net start w32time
w32tm /resync /force

Redémarrez le service de temps et forcez une resynchronisation.

w32tm /query /source

Enfin, vous devez confirmer que vos contrôleurs de domaine ont la bonne source de temps.

Voir l'excellent article de blog de Ben Armstrong pour plus de détails.


la source
Merci pour l'info, j'avais lu le blog de Ben Armstrong et je voulais m'en tenir aux meilleures pratiques. Sur la machine virtuelle qui est le PDC aujourd'hui, j'ai exécuté: w32tm / config /manualpeerlist: TM0.pool.ntp.org,0x1 ”/ syncfromflags: MANUAL / fiable: oui w32tm / config / update w32tm / resync w32tm / resync / rediscover
Karl
Dans le registre 0.pool.ntp.org, 0x1 est maintenant la valeur du serveur NTP. Je peux cingler 0.pool.ntp.org du PDC mais ne peux pas cingler time.windows.com que j'ai trouvé étrange! L'heure est définie par l'un des hôtes, j'en suis sûr, mais il est défini sur NT5DS et il / query / status me dit qu'il utilise le PDC, dois-je exécuter certaines commandes sur l'hôte pour le faire resynchroniser au VM PDC? J'ai vu la commande reg add et je suppose que cela doit être fait sur tous les DC? Je me demande si le w32tm / config / syncfromflags: DOMHIER / update doit également être exécuté sur le PDC ou tout simplement tous les autres DC?
Karl
Je pense que la fin du premier commentaire est manquante, après avoir exécuté les commandes ci-dessous sur le PDC. Tout a été couronné de succès, mais lorsque j'ai exécuté w32tm / query / status, j'avais toujours une source de «fournisseur de synchronisation horaire vm ic» w32tm / config /manualpeerlist:“0.pool.ntp.org,0x1 »/ syncfromflags: MANUAL / fiable: oui w32tm / config / update w32tm / resync w32tm / resync / rediscover et start and stop
Karl
Merci pour tous les conseils, je pense que je l'ai enfin, mais je partirai pendant quelques jours pour confirmer, puis je mettrai à jour ce que j'ai fait pour corriger
Karl
5

Je l'ai enfin fait fonctionner! L'objectif est d'aider les personnes qui commencent au début de la définition de l'heure des domaines.

Dans cet exemple, tous les serveurs, le contrôleur de domaine principal (PDC), les autres contrôleurs de domaine (DC) et les autres serveurs exécutent Windows 2008 R2 et sont virtualisés avec Hyper-V.

Tout d'abord, vous lirez pour désactiver le 'Time Synchronization Integration Service' sur n'importe quelle machine virtuelle dans Hyper-V, mais à la place, vous devez manipuler le service de temps Windows (service w32tm) à partir du contrôleur de domaine virtuel, vous ne devez pas le désactiver car lorsqu'un La VM redémarre, cela causera des problèmes, cela devrait être fait avec w32tm. Informations MSDN

Vous devrez découvrir quel serveur est le PDC et exécuter les rôles FSMO. Exécutez ceci: netdom query fsmo Le résultat devrait être votre PDC et c'est là que vous effectuez la plupart de vos modifications.

Assurez-vous que dans le pare-feu il y a une règle "Outbound" sur UDP123 et que le programme est % SystemRoot% \ System32 \ w32tm.exe, il suffit de parcourir le répertoire Windows et de trouver l'exe pour le temps

C'est là que les modifications du registre descendent!

HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ services \ W32Time

Assurez-vous que le PDC sous config dans l'adresse de registre ci-dessus est défini sur NTP pour « Type » et que tous les autres serveurs sont NT5DS, cela signifie que NTP est le papa! La meilleure pratique consiste à faire en sorte que le PDC recherche le temps et tout ce qui est synchronisé avec lui.

Exécutez cela sur tous les contrôleurs de domaine (y compris PDC), cela désactivera partiellement le temps de Windows afin qu'il ne regarde pas la machine hôte pendant le temps, important car nous sommes virtuels.

reg add HKLM\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\VMICTimeProvider /v Enabled /t reg_dword /d 0

Vous pouvez aller sur le site ntp.org pour trouver un serveur le plus proche de vous pour synchroniser votre temps externe. Je recommande de ne pas utiliser Microsoft car ils sont très utilisés et peuvent glisser à cause de cela.

La commande ci-dessous définira le PDC pour qu'il regarde de l'extérieur, mais vérifie également les paramètres de registre tels que définis ici pour se synchroniser en externe (vous devez faire les deux) MS KB 816042

Exécutez ceci sur PDC

w32tm /config /manualpeerlist:"0.pool.ntp.org,0x1" /syncfromflags:MANUAL /reliable:yes   
w32tm /config /update   
w32tm /resync 
w32tm /resync /rediscover

Exécutez ces 2 commandes à tout moment sur n'importe quel serveur pour voir leur source et lors de leur dernière mise à jour, elles seront utilisées tout au long de cet exercice pour vous assurer que votre PDC et les autres serveurs obtiennent l'heure au bon endroit

w32tm /query /status  
w32tm /query /source

Ensuite, exécutez cela sur tous les DC, sauf le PDC , cela leur fera regarder le PDC pour le temps et le resynchroniser

w32tm /config /syncfromflags:DOMHIER /update 
net stop w32time 
net start w32time 
w32tm /resync /force

Problèmes : lorsque vous exécutez la requête État ou Source, accordez-leur une minute ou 2 après les modifications, vous ne devez pas regarder l' horloge CMOS locale et vous ne devez pas non plus utiliser le fournisseur de synchronisation d' horloge VM IC comme source.

En cas de succès, le PDC doit lire le site externe que vous avez défini et les autres serveurs doivent indiquer le PDC comme source

J'espère que cela aide les gens à bonne chance!

Karl
la source
Deux autres choses: utilisez un GPO pour configurer l'heure NTP sur le PDCE - cela signifie qu'il sera configuré automatiquement si le rôle PDCE se déplace: www.sysadminlab.net/windows/configuring-ntp-on-windows-using-gpo.
Trix
Pour définir les indicateurs sur le service NTP, pensez à utiliser 0x8 - cela signifie que c'est une source de temps fiable qui se synchronise avec une horloge matérielle quelque part. Pensez également à ne pas utiliser le 0x1 pour "intervalle de temps spécial". À moins que vous n'ayez besoin de synchroniser votre horloge à des intervalles spécifiés, c'est un peu inutile de nos jours. Si le contrôleur de domaine n'obtient pas son heure juste après le démarrage (par exemple, le réseau n'est pas prêt), il attend tout cet intervalle. Ou si vous utilisez 0x1 / 0x9, définissez une autre source avec 0xa - source de secours, est interrogé immédiatement si la ou les sources principales ne répondent pas.
Trix
1

Je voudrais suggerer:

  • NE PAS activer la synchronisation horaire entre l'hôte HyperV et les machines virtuelles invitées - en particulier pour les contrôleurs de domaine. Le titulaire du rôle PDC doit mettre à jour via NTP à partir de plusieurs sources de bon moment. L'horloge de l'hôte peut également être mise à jour via NTP, mais vous voulez que le PDC soit le "maître" des autres contrôleurs de domaine et serveurs membres. (au moins avec VMwre, je suppose la même chose avec HyperV)
  • Assurez-vous que le port UDP 123 est ouvert pour le trafic sortant.
  • Que vous pouvez résoudre le nom de domaine complet des serveurs NTP (pouvez-vous les PING?)
  • Tous les autres contrôleurs de domaine et ordinateurs membres doivent se mettre à jour automatiquement.

N'utilisez PAS SEULEMENT time.windows.com ou time.microsoft.com, utilisez l'un des serveurs * .pool.ntp.org. J'utilise north-america.pool.ntp.org ou ca.north-america.pool.ntp.org - le plus proche sera le mieux. Vous pouvez consulter: http://www.pool.ntp.org/ pour trouver des serveurs près de chez vous.

Exécutez ensuite quelque chose comme:

w32tm /config /manualpeerlist:"north-america.pool.ntp.org 0.pool.ntp.org" /syncfromflags:MANUAL /update /reliable:YES

(Ajoutez les serveurs NTP que vous voulez. Au Canada, j'utilise également time.nrc.ca)

Suivi par:

net stop w32time
net start w32time

Vous pouvez vérifier les pairs avec:

w32tm /query /peers

Vérifiez le journal système pour voir s'il est en cours de mise à jour. Vous devriez être en mesure de régler l'horloge avant 1 minute, de redémarrer le service w32time et il se mettra à jour dans les 30 secondes. [un décalage temporel inférieur à 5 min est acceptable dans un domaine AD]

PSaul
la source
0

Comme recommandé par d'autres, ne disposez certainement pas de synchronisation de l'heure matérielle de l'hôte à l'invité. Vous devez également synchroniser avec les serveurs NTP externes uniquement à partir du contrôleur de domaine qui détient le rôle d'émulateur PDC racine de forêt. Si votre contrôleur de domaine de rôle d'émulateur PDC racine de forêt ne se synchronise pas, les contrôleurs de domaine qui en dépendent auront des problèmes.

Vous pouvez également essayer le correctif suivant:

La synchronisation de l'heure n'est pas effectuée même si le service W32Time est correctement démarré dans Windows Server 2008 ou Windows Server 2008 R2

http://support.microsoft.com/kb/2493006

Vous pouvez trouver cela plus utile si vous utilisez l'indicateur / verbose pour w32tm:

w32tm /query /status /verbose /computer:dcname

Information additionnelle:

https://technet.microsoft.com/en-us/library/virtual_active_directory_domain_controller_virtualization_hyperv%28WS.10%29.aspx

"Pour les machines virtuelles configurées en tant que contrôleurs de domaine, il est recommandé de désactiver la synchronisation de l'heure entre le système hôte et le système d'exploitation invité agissant en tant que contrôleur de domaine. Cela permet à votre contrôleur de domaine invité de synchroniser l'heure à partir de la hiérarchie de domaine."

"Pour désactiver le fournisseur de synchronisation horaire Hyper-V, arrêtez la machine virtuelle et décochez la case Synchronisation horaire sous Integration Services."

Greg Askew
la source