Je suis développeur et nous utilisons Quartz.Net, une bibliothèque de planification largement utilisée avec un magasin de sauvegarde SQL pour exécuter un cluster de serveurs de travaux (VM sur un cluster ESXI).
Quartz.Net requiert que l'heure soit synchronisée entre les instances du serveur de travaux et recommande d'utiliser NTP pour cela.
Les horloges doivent être à moins d'une seconde l'une de l'autre.
Nos administrateurs système utilisent Windows NTP pour synchroniser l'heure avec le contrôleur de domaine. La synchronisation des machines virtuelles avec l'hôte ESXI est désactivée.
Ils continuent d'insister sur le fait que "dans la seconde" n'est pas une exigence correcte et que cela ne peut pas être satisfait sans dispositifs de synchronisation GPS matériels. Leur niveau de SLA et de surveillance sont "dans les 3 minutes".
Nous rencontrons des instances de Quartz périodiques (une fois tous les 2 à 3 mois) qui sont désynchronisées et qui correspondent au temps non synchronisé.
- Est-il correct pour nous de demander «en moins d'une seconde» ou devons-nous abandonner entièrement le Quartz?
- Si oui, quels changements sont recommandés pour notre configuration?
la source
Réponses:
Nous sommes en 2018. Windows est capable de maintenir les serveurs synchronisés dans un délai de 2 ms environ, comme l'exige la réglementation MIFID II. Donc, votre problème n'est pas un problème.
Pourquoi? L'hôte peut gérer cela beaucoup mieux (étant du matériel) et vous en avez beaucoup moins. Vos administrateurs système se tirent une balle dans le pied, puis se plaignent qu'ils saignent.
ANCIEN - ancien - Windows synchronisé dans ce délai car les tickets Kerberos avaient une validité de 5 minutes.
Mais c'est, comme je l'ai dit, 2018. Le secteur financier a des exigences assez brutales ces jours-ci et MS s'en occupe depuis - depuis 2012, je pense. 2016 l'a pleinement mis en œuvre. La précision en millisecondes sur Internet est un problème résolu - résolu il y a 50 ans en fait, pour une connexion décente. NTP peut le gérer. Vous devrez peut-être mettre en place une boîte matérielle bon marché si vous souhaitez réduire le trafic (c'est-à-dire créer votre propre source de temps NTP de niveau 3), mais là encore, ce n'est même pas cher.
Vous devez programmer pour des problèmes de temps occasionnels - comme vous le feriez avec du matériel. Mais «en moins d'une seconde» est une plaisanterie d'une exigence - il est trivial de s'y conformer dans des circonstances normales.
Quelques références:
https://docs.microsoft.com/en-us/windows-server/networking/windows-time-service/accurate-time
Beaucoup de détails et d'instructions là-bas. Il s'agit en fait d'une lecture incroyable si vous devez résoudre ce problème. Vous devrez peut-être mettre à niveau votre hyperviseur - ils parlent tous d'Hyper-V. VMWare devrait être en mesure de faire de même, mais pas sûr de l'âge de votre version.
la source
Il y a beaucoup de très bonnes raisons pour lesquelles différentes piles d'applications nécessitent un contrôle du temps serré et ce que Quartz demande est loin d'être inhabituel.
Le meilleur pari est de faire en sorte que chaque partie de votre système utilise NTP et de les pointer vers la même paire de serveurs NTP. Ainsi, les hôtes ESXi et les machines virtuelles s'exécutant sur eux, tous utilisant les mêmes sources NTP, de même pour tout le reste. De cette façon, même si les serveurs NTP sont «hors temps», au moins chaque partie de votre système est à jour les uns avec les autres.
la source
https://docs.microsoft.com/en-us/windows-server/networking/windows-time-service/support-boundary
Prise en charge de haute précision pour Windows 8.1 et 2012 R2 (ou version antérieure)
Les versions antérieures de Windows (antérieures à Windows 10 1607 ou Windows Server 2016 1607) ne peuvent garantir une heure extrêmement précise. Le service Windows Time sur ces systèmes:
Fourni la précision de temps nécessaire pour satisfaire aux exigences d'authentification Kerberos version 5
Fourni une heure approximativement précise pour les clients et serveurs Windows joints à une forêt Active Directory commune
Les exigences de précision plus strictes étaient en dehors des spécifications de conception du service de temps Windows sur ces systèmes d'exploitation et ne sont pas prises en charge.
Windows 10 et Windows Server 2016
La précision de l'heure dans Windows 10 et Windows Server 2016 a été considérablement améliorée, tout en conservant une compatibilité NTP complète avec les anciennes versions de Windows. Dans les bonnes conditions de fonctionnement, les systèmes exécutant Windows 10 ou Windows Server 2016 et les versions plus récentes peuvent fournir une précision de 1 seconde, 50 ms (millisecondes) ou 1 ms.
Précision de la cible: 1 seconde (1s)
Pour obtenir une précision de 1 s pour une machine cible spécifique par rapport à une source de temps très précise:
Le système cible doit exécuter Windows 10, Windows Server 2016.
Le système cible doit synchroniser l'heure à partir d'une hiérarchie NTP de serveurs de temps, aboutissant à une source de temps NTP compatible Windows très précise.
Tous les systèmes d'exploitation Windows dans la hiérarchie NTP mentionnée ci-dessus doivent être configurés comme indiqué dans la documentation Configuring Systems for High Accuracy.
La latence cumulée du réseau unidirectionnel entre la cible et la source ne doit pas dépasser 100 ms. Le retard réseau cumulé est mesuré en ajoutant les retards unidirectionnels individuels entre des paires de nœuds client-serveur NTP dans la hiérarchie commençant par la cible et se terminant à la source. Pour plus d'informations, veuillez consulter le document de synchronisation temporelle de haute précision.
https://docs.microsoft.com/en-us/windows-server/networking/windows-time-service/configuring-systems-for-high-accuracy
la source