Wie synchronisiert man die Zeit auf virtuellen ESXi-Windows-Maschinen innerhalb einer Sekunde?

Wie synchronisiert man die Zeit auf virtuellen ESXi-Windows-Maschinen innerhalb einer Sekunde?

Ich bin Entwickler und wir verwenden Quartz.Net, eine weit verbreitete Planungsbibliothek mit SQL-Backing Store, um Cluster von Job-Servern (VMs auf ESXI-Clustern) auszuführen.

Quartz.NeterfordertDiese Zeit wird zwischen den Jobserverinstanzen synchronisiert. Es wird empfohlen, hierfür NTP zu verwenden.

Die Uhren müssen im Abstand von einer Sekunde zueinander stehen.

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 einer Sekunde“ keine korrekte Anforderung ist und diese ohne Hardware-GPS-Synchronisierungsgeräte nicht erfüllt werden kann. Ihr SLA und Überwachungslevel sind „innerhalb von 3 Minuten“.

Wir stellen regelmäßig (einmal in 2–3 Monaten) ein nicht synchrones Verhalten der Quartz-Instanzen fest, das mit einer nicht synchronen Zeit übereinstimmt.

  1. Ist es richtig, dass wir „innerhalb einer Sekunde“ verlangen, oder müssen wir Quartz ganz aufgeben?
  2. Wenn ja, welche Änderungen werden für unser Setup empfohlen?

Antwort1

Wir schreiben das Jahr 2018. Windows ist in der Lage, Server innerhalb von etwa 2 ms zu synchronisieren, wie es die MIFID-II-Vorschriften verlangen. 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 damit viel besser umgehen (da es sich um Hardware handelt) und Sie haben viel weniger. Ihre Systemadministratoren schießen sich selbst ins Bein und beschweren sich dann, dass sie bluten.

Sie bestehen darauf, dass „innerhalb einer Sekunde“ keine korrekte Anforderung ist und diese ohne Hardware-GPS-Synchronisierungsgeräte nicht erfüllt werden kann. Ihr SLA und Überwachungslevel sind „innerhalb von 3 Minuten“.

ALT – uralt – Windows wurde innerhalb dieses Zeitrahmens synchronisiert, da die Kerberos-Tickets eine Gültigkeit von 5 Minuten hatten.

Aber wir schreiben, wie gesagt, das Jahr 2018. Die Finanzbranche hat heutzutage ziemlich brutale Anforderungen, und MS bewältigt diese seit – ich glaube seit 2012. 2016 ist es dann voll in Kraft getreten. Millisekundengenauigkeit im Internet ist ein gelöstes Problem – eigentlich schon vor 50 Jahren gelöst, für eine anständige Verbindung. NTP kann damit umgehen. Sie müssen möglicherweise eine billige Hardwarebox installieren, wenn Sie den Datenverkehr reduzieren möchten (d. h. Ihre eigene Tier-3-NTP-Zeitquelle erstellen), aber das ist wiederum nicht einmal teuer.

Ist es richtig, dass wir „innerhalb einer Sekunde“ verlangen, oder müssen wir Quartz ganz aufgeben?

Sie müssen gelegentliche Zeitprobleme einkalkulieren – wie Sie es auch bei Hardware tun würden. Aber „innerhalb einer Sekunde“ ist eine lächerliche Anforderung – sie ist unter normalen Umständen trivial zu erfüllen.

Einige Referenzen:

https://docs.microsoft.com/en-us/windows-server/networking/windows-time-service/accurate-time

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

Dort gibt es jede Menge Details und Anleitungen. Das ist wirklich eine tolle Lektüre, wenn Sie dieses Problem lösen müssen. Möglicherweise müssen Sie Ihren Hypervisor aktualisieren – es wird alles über Hyper-V gesprochen. VMWare sollte das Gleiche können, aber ich bin mir nicht sicher, wie alt Ihre Version ist.

Antwort2

Ist es richtig, dass wir „innerhalb einer Sekunde“ verlangen, oder müssen wir Quartz ganz aufgeben?

Es gibt viele gute Gründe dafür, dass verschiedene Anwendungsstapel eine strenge Zeitkontrolle erfordern, und die Anforderungen von Quartz sind alles andere als ungewöhnlich.

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

Am besten ist es, wenn jeder einzelne Teil Ihres Systems NTP verwendet und auf dasselbe Paar NTP-Server verweist. So verwenden ESXi-Hosts und die darauf laufenden VMs alle dieselben NTP-Quellen, und das Gleiche gilt für alles andere. Auf diese Weise ist zumindest jeder Teil Ihres Systems auf dem neuesten Stand, auch wenn die NTP-Server „außerhalb der Zeit“ sind.

Antwort3

https://docs.microsoft.com/en-us/windows-server/networking/windows-time-service/support-boundary

Hohe Genauigkeitsunterstützung für Windows 8.1 und 2012 R2 (oder älter)

Frühere Versionen von Windows (vor Windows 10 1607 oder Windows Server 2016 1607) können keine hochgenaue Zeit garantieren. Der Windows-Zeitdienst auf diesen Systemen:

  • Bietet die notwendige Zeitgenauigkeit, um die Authentifizierungsanforderungen von Kerberos Version 5 zu erfüllen

  • Bereitstellung einer einigermaßen genauen Zeit für Windows-Clients und -Server, die mit einer gemeinsamen Active Directory-Gesamtstruktur verbunden sind

Strengere Genauigkeitsanforderungen lagen außerhalb der Designspezifikation des Windows-Zeitdienstes auf diesen Betriebssystemen 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 Abwärtskompatibilität mit älteren Windows-Versionen von NTP erhalten blieb. Unter den richtigen Betriebsbedingungen können Systeme mit 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 für eine bestimmte Zielmaschine eine Genauigkeit von 1 Sekunde im Vergleich zu einer hochgenauen Zeitquelle:

  • Auf dem Zielsystem muss Windows 10 oder Windows Server 2016 ausgeführt werden.

  • Das Zielsystem muss die Zeit aus einer NTP-Hierarchie von Zeitservern synchronisieren, was in einer hochpräzisen, Windows-kompatiblen NTP-Zeitquelle gipfelt.

  • Alle Windows-Betriebssysteme in der oben genannten NTP-Hierarchie müssen wie in der Dokumentation „Konfigurieren von Systemen für hohe Genauigkeit“ beschrieben konfiguriert werden.

  • Die kumulative Einweg-Netzwerklatenz zwischen Ziel und 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 addiert werden, beginnend beim Ziel und endend bei der Quelle. Weitere Informationen finden Sie im Dokument zur hochgenauen Zeitsynchronisierung.

https://docs.microsoft.com/en-us/windows-server/networking/windows-time-service/configuring-systems-for-high-accuracy

verwandte Informationen