Die einfache Tatsache ist, dass die Taktgenauigkeit innerhalb einer VM immer noch sehr schlecht ist. Dies kommt von einigen Stellen, aber das Schlimmste ist, dass die Zeitverschiebung nicht konstant ist; Der Driftfaktor ändert sich von Moment zu Moment. NTP ist ein Protokoll, in das eine Taktkompensation integriert ist, das jedoch einen statischen Driftfaktor aufweist. Wenn beispielsweise eine physische Maschine alle 30 Tage 12 Sekunden verliert, kann NTP dies kompensieren und dies funktioniert sehr gut. Wenn diese Maschine jedoch alle 30 Tage zwischen 4 und 70 Sekunden verlieren kann, ist NTP nicht in der Lage, diese Änderungsstufe zu verfolgen.
Was es für NTP wirklich schwierig macht, in einer VM-Umgebung Schritt zu halten, ist, dass die lokale Uhr, die sie sieht, ihren Driftfaktor im Laufe einer Minute ändern kann. Abhängig von der Frequenz, mit der die übergeordneten Zeitquellen überprüft werden, kann dies zu erheblichen Änderungen des Driftfaktors und zu einer weitaus häufigeren Störung der Synchronisation führen. Nicht synchronisierte Zeitkaskaden im gesamten Unternehmen.
NTP für ein lokales Netzwerk ist ein Protokoll mit relativ geringer Auswirkung und sehr geringem Speicherbedarf und kann problemlos auf andere Netzwerkinfrastrukturserver wie DNS- und DHCP-Server zurückgesetzt werden. Einige Router bieten auch NTP-Funktionen.
Idealerweise möchten Sie zwei separate Server an unterschiedlichen Standorten, die jeweils mit einer anderen Gruppe von Servern mit höherer Schicht synchronisiert werden. Es wäre auch eine sehr gute Idee, wenn beide Zeitserver so konfiguriert wären, dass sie den anderen Server als "Peer" verwenden, was die Auswirkungen auf den Zeitdienst minimiert, falls eine der Upstream-Zeitquellen ausfällt. Es wird eine Schichtänderung geben, die aber zumindest nicht als nicht synchron gemeldet wird. Und schließlich seien Sie nett zu Ihren Upstream-Zeitanbietern und konfigurieren Sie Ihre Server so, dass zwischen Abstimmungen eine sehr lange Zeit vergeht, sobald die Zeit feststeht. Dies ist der Parameter 'maxpoll' in der Zeile 'server' und eine Potenz von zwei Sekunden zwischen den Synchronisierungsversuchen.
Wenn Sie dafür unbedingt VMs verwenden müssten, würde ich nicht weniger als drei solcher NTP-Server einrichten. Jeder dieser Server muss sich auf einem anderen Host und, wenn möglich, in einem anderen Rechenzentrum befinden. Wie bei dem, was ich gerade angedeutet habe, brauchen sie unterschiedliche Zeitquellen und sollten miteinander in Kontakt treten. Konfigurieren Sie dann alle Ihre NTP-Clients so, dass alle drei als übergeordnete Quellen verwendet werden. Stellen Sie sicher, dass Ihre maxpoll-Werte niedrig genug sind, um zwischen Synchronisierungspaketen außerhalb des Netzwerks und 30 Minuten im Netzwerk nie länger als eineinhalb Stunden zu vergehen. Die Chancen stehen gut, dass mindestens einer der drei zu einem bestimmten Zeitpunkt synchron ist. Kunden, die nur mit einem Zeitrechner sprechen können, müssen sich nur mit gelegentlichen Synchronisationsproblemen abfinden. Insgesamt wäre die Zeitqualität in diesem Szenario nicht so genau wie bei physischen Servern.
Wenn ich parken müsste, würde ich sagen, dass Ihre Konsenszeit in der Pure-VM-Umgebung wahrscheinlich innerhalb von 30 bis 100 ms von True liegt. In einer rein physischen Umgebung würde Ihre Konsenszeit wahrscheinlich innerhalb von 10 ms liegen, wenn die Zeitserver lange genug für die Erledigung der Zeit in Betrieb waren.