Wie synchronisiere ich die Zeit auf virtuellen ESXi-Windows-Maschinen innerhalb einer Sekunde?

12

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.

  1. Ist es richtig, dass wir nach "innerhalb von Sekunden" fragen, oder müssen wir Quarz komplett wegwerfen?
  2. Wenn ja, welche Änderungen werden für unser Setup empfohlen?
Leotsarev
quelle
11
Die Synchronisierung auf eine Sekunde ist selbst auf virtuellen Servern (die für sich genommen eine notorisch schlechte Zeitstabilität aufweisen) nichts . Drei Minuten?! Lachen. Auf diese Weise können Sie kein Netzwerk betreiben.
Leichtigkeit Rennen mit Monica

Antworten:

20

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.

Unsere Systemadministratoren verwenden Windows NTP, um die Zeit mit dem Domänencontroller zu synchronisieren. Die Synchronisierung von VMs mit dem ESXI-Host ist deaktiviert.

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.

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

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.

Ist es richtig, dass wir nach "innerhalb von Sekunden" fragen, oder müssen wir Quarz komplett wegwerfen?

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

Regierungsvorschriften wie: 50 ms Genauigkeit für FINRA in den USA 1 ms ESMA (MiFID II) in der EU.

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.

TomTom
quelle
FWIW, MiFID II-Konformität in der Finanzbranche in Großbritannien ist schockierend schlecht (Banken würden lieber die dürftigen Bußgelder zahlen, als sich um all das zu kümmern), aber Sie haben technisch natürlich Recht.
Leichtigkeit Rennen mit Monica
Es geht nicht um Compliance, sondern um die FÄHIGKEIT, konform zu sein. MS hat das schon längst gelöst. Als solches spricht die "3 Minuten genaue", dass OP Bereich Witz.
TomTom
Genau; Das war nur eine Seite.
Leichtigkeit Rennen mit Monica
2
Ich bin mit Ihnen einverstanden, dass NTP mehr als schnell genug ist, aber VMware rät von der Verwendung von Integrationsdiensten zur Zeitsynchronisierung ab. In den meisten (wenn auch nicht allen) Fällen erledigt reguläres NTP einen besseren und schnelleren Job.
5.
Da Sie sich mit der relativen Zeit zwischen Servern befassen, können Sie NTP verwenden, um sie mit Netzwerk-Switches zu synchronisieren, die wiederum mit Ihrem ISP synchronisiert werden. Es ist keine zusätzliche Hardware erforderlich.
Grahamj42
6

Ist es richtig, dass wir nach "innerhalb von Sekunden" fragen, oder müssen wir Quarz komplett wegwerfen?

Es gibt viele sehr gute Gründe, warum verschiedene Anwendungsstapel eine strenge Zeitsteuerung erfordern, und was Quarz verlangt, ist alles andere als ungewöhnlich.

Wenn ja, welche Änderungen werden für unser Setup empfohlen?

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.

Chopper3
quelle
4

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

Greg Askew
quelle
Tatsächlich verwenden wir Windows 2012R2. Scheint, dass die Wurzel des Problems ist (zusammen mit der Nicht-Synchronisierung mit ESXI-Host)
Leotsarev
1
@Leotsarev: Wenn dies Domänenmitglieder sind, sollten sie nicht mit dem VM-Host synchronisiert werden.
Greg Askew