Comment synchroniser l'heure sur les machines virtuelles ESXi Windows en une seconde?

12

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é.

  1. Est-il correct pour nous de demander «en moins d'une seconde» ou devons-nous abandonner entièrement le Quartz?
  2. Si oui, quels changements sont recommandés pour notre configuration?
Leotsarev
la source
11
La synchronisation à une seconde n'est rien , même sur des serveurs virtuels (qui ont notoirement une mauvaise stabilité temporelle par eux-mêmes). Trois minutes?! Rire. Vous ne pouvez pas gérer un réseau de cette façon.
Courses de légèreté en orbite le

Réponses:

20

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.

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.

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.

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".

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.

Est-il correct pour nous de demander «en moins d'une seconde» ou devons-nous abandonner entièrement le Quartz?

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

Réglementations gouvernementales telles que: précision de 50 ms pour la FINRA aux États-Unis 1 ms ESMA (MiFID II) dans l'UE.

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.

TomTom
la source
FWIW, la conformité à MiFID II dans le secteur financier [britannique] est scandaleusement faible (les banques préfèrent payer les amendes dérisoires plutôt que de s'embêter avec tout ça) mais vous avez bien sûr techniquement raison.
Courses de légèreté en orbite le
Il ne s'agit pas de conformité, il s'agit de la CAPACITÉ d'être conforme. MS a résolu cela il y a longtemps. En tant que tel, les "3 minutes précises" dont OP parle de plaisanterie de zone.
TomTom
Je suis d'accord; c'était juste un aparté.
Courses de légèreté en orbite le
2
Je suis avec vous que le NTP est plus que suffisamment rapide, mais VMware ne recommande pas d'utiliser les services d'intégration pour synchroniser le temps, dans la plupart des cas (mais pas tous) le NTP normal fait un travail meilleur et plus rapide.
HoD
Comme votre préoccupation concerne le temps relatif entre les serveurs, vous pouvez utiliser NTP pour les synchroniser avec des commutateurs réseau qui à leur tour se synchronisent avec votre FAI - aucun matériel supplémentaire requis.
grahamj42
6

Est-il correct pour nous de demander «en moins d'une seconde» ou devons-nous abandonner entièrement le Quartz?

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.

Si oui, quels changements sont recommandés pour notre configuration?

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.

Chopper3
la source
4

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

Greg Askew
la source
En fait, nous utilisons Windows 2012R2. Semble être à l'origine du problème (ainsi que la non-synchronisation avec l'hôte ESXI)
Leotsarev
1
@Leotsarev: s'il s'agit de membres du domaine, ils ne doivent pas se synchroniser avec l'hôte VM.
Greg Askew