Ich bin Entwickler und verwende Quartz.Net, eine weit verbreitete Planungsbibliothek mit SQL-Sicherungsspeicher, um Cluster von Jobservern (VMs auf ESXI-Clustern) auszuführen.
Quartz.Net setzt voraus , dass die Zeit zwischen den Jobserver- Instanzen synchronisiert wird, und empfiehlt die Verwendung von NTP.
Die Uhren müssen innerhalb einer Sekunde voneinander sein.
Unsere Systemadministratoren verwenden Windows NTP, um die Zeit mit dem Domänencontroller zu synchronisieren. Die Synchronisierung von VMs mit dem ESXI-Host ist deaktiviert.
Sie bestehen darauf, dass "innerhalb von Sekunden" nicht die richtige Voraussetzung ist und dass dies ohne Hardware-GPS-Synchronisierungsgeräte nicht erfüllt werden kann. Ihre SLA & Überwachungsstufe sind "innerhalb von 3 Minuten".
Es tritt ein periodisches (einmal in 2-3 Monaten) nicht synchrones Verhalten von Quarzinstanzen auf, das mit der zeitlichen Abweichung vereinbar ist.
- Ist es richtig, dass wir nach "innerhalb von Sekunden" fragen, oder müssen wir Quarz komplett wegwerfen?
- Wenn ja, welche Änderungen werden für unser Setup empfohlen?
quelle
Antworten:
Dies ist 2018. Windows ist in der Lage, Server innerhalb von ca. 2 ms zu synchronisieren, wie es die MIFID II-Bestimmungen vorschreiben. Ihr Problem ist also kein Problem.
Warum? Der Host kann dies viel besser handhaben (als Hardware) und Sie haben viel weniger. Ihre Sysadmins schießen sich in den Fuß und beschweren sich dann, dass sie bluten.
ALT - Altertümlich - Windows wurde in diesem Zeitraum synchronisiert, da die Kerberos-Tickets eine Gültigkeit von 5 Minuten hatten.
Aber das ist, wie gesagt, 2018. Die Finanzbranche hat heutzutage ziemlich brutale Anforderungen, und die MS hat sich darum gekümmert - seit 2012, glaube ich. 2016 setzen Sie es voll in Kraft. Millisekundengenauigkeit über das Internet ist ein gelöstes Problem - vor 50 Jahren tatsächlich gelöst, für eine anständige Verbindung. NTP kann damit umgehen. Sie müssen möglicherweise eine billige Hardware-Box aufstellen, wenn Sie den Datenverkehr reduzieren möchten (dh Ihre eigene NTP-Zeitquelle der Stufe 3 erstellen), aber das ist wiederum nicht einmal teuer.
Sie müssen für gelegentliche Zeitprobleme programmieren - genau wie bei Hardware. "Innerhalb von Sekunden" ist jedoch ein Scherz über eine Anforderung - es ist trivial, unter normalen Umständen zu erfüllen.
Einige Referenzen:
https://docs.microsoft.com/en-us/windows-server/networking/windows-time-service/accurate-time
Viele Details und Anleitungen gibt es. Dies ist eine erstaunliche Lektüre, wenn Sie dieses Problem lösen müssen. Möglicherweise müssen Sie Ihren Hypervisor aktualisieren - er spricht alles über Hyper-V. VMWare sollte in der Lage sein, dasselbe zu tun, aber nicht sicher, wie alt Ihre Version ist.
quelle
Es gibt viele sehr gute Gründe, warum verschiedene Anwendungsstapel eine strenge Zeitsteuerung erfordern, und was Quarz verlangt, ist alles andere als ungewöhnlich.
Am besten ist es, jeden einzelnen Teil Ihres Systems dazu zu bringen, NTP zu verwenden, und sie auf dasselbe Paar von NTP-Servern zu verweisen. ESXi-Hosts und die auf ihnen ausgeführten VMs verwenden also alle dieselben NTP-Quellen, auch für alle anderen beteiligten Komponenten. Auf diese Weise ist zumindest jeder Teil Ihres Systems auf dem neuesten Stand, auch wenn die NTP-Server nicht erreichbar sind.
quelle
https://docs.microsoft.com/en-us/windows-server/networking/windows-time-service/support-boundary
Unterstützung für hohe Genauigkeit für Windows 8.1 und 2012 R2 (oder früher)
Frühere Versionen von Windows (vor Windows 10 1607 oder Windows Server 2016 1607) können keine sehr genaue Zeit garantieren. Der Windows-Zeitdienst auf diesen Systemen:
Bereitstellung der erforderlichen Zeitgenauigkeit, um die Authentifizierungsanforderungen für Kerberos Version 5 zu erfüllen
Lose genaue Zeitangabe für Windows-Clients und -Server, die einer gemeinsamen Active Directory-Gesamtstruktur angehören
Verschärfte Genauigkeitsanforderungen lagen auf diesen Betriebssystemen außerhalb der Entwurfsspezifikation des Windows-Zeitdiensts und werden nicht unterstützt.
Windows 10 und Windows Server 2016
Die Zeitgenauigkeit in Windows 10 und Windows Server 2016 wurde erheblich verbessert, während die vollständige NTP-Abwärtskompatibilität mit älteren Windows-Versionen beibehalten wurde. Unter den richtigen Betriebsbedingungen können Systeme unter Windows 10 oder Windows Server 2016 und neueren Versionen eine Genauigkeit von 1 Sekunde, 50 ms (Millisekunden) oder 1 ms liefern.
Zielgenauigkeit: 1 Sekunde (1s)
So erreichen Sie eine Genauigkeit von 1s für einen bestimmten Zielcomputer im Vergleich zu einer sehr genauen Zeitquelle:
Auf dem Zielsystem muss Windows 10, Windows Server 2016 ausgeführt werden.
Das Zielsystem muss die Zeit von einer NTP-Hierarchie von Zeitservern synchronisieren, was zu einer hochgenauen, Windows-kompatiblen NTP-Zeitquelle führt.
Alle Windows-Betriebssysteme in der oben genannten NTP-Hierarchie müssen so konfiguriert werden, wie es in der Dokumentation zum Konfigurieren von Systemen für hohe Genauigkeit dokumentiert ist.
Die kumulative Einweg-Netzwerklatenz zwischen dem Ziel und der Quelle darf 100 ms nicht überschreiten. Die kumulative Netzwerkverzögerung wird gemessen, indem die einzelnen Einwegverzögerungen zwischen Paaren von NTP-Client-Server-Knoten in der Hierarchie beginnend mit dem Ziel und endend an der Quelle addiert werden. Weitere Informationen finden Sie im Dokument für die hochgenaue Zeitsynchronisierung.
https://docs.microsoft.com/en-us/windows-server/networking/windows-time-service/configuring-systems-for-high-accuracy
quelle