私は開発者であり、Quartz.Netを使用しています。これは、SQLバッキングストアで広く使用されているスケジューリングライブラリを使用して、ジョブサーバーのクラスター(ESXIクラスター上のVM)を実行しています。
Quartz.Net 必須 ジョブサーバーインスタンス間で時刻が同期されるため、NTPを使用することをお勧めします。
クロックは互いに1秒以内でなければなりません。
Windowsを使用しているシステム管理者NTPドメインコントローラーと時刻を同期します。VMとESXIホストの同期はオフです。
彼らは、「秒以内」は正しい要件ではなく、ハードウェアGPS同期デバイスなしでは満たすことができないと主張し続けています。 SLA&監視レベルは「3分以内」です。
定期的(2〜3か月に1回)のQuartzインスタンスが同期していないため、同期がとれていない状態が続いています。
これは2018年です。Windowsは、MIFID II規制の要求に応じて、サーバーを2ミリ秒以内に同期させることができます。したがって、問題は問題ではありません。
Windowsを使用しているシステム管理者NTPドメインコントローラーと時刻を同期します。VMとESXIホストの同期はオフです。
どうして?ホストはこれを(ハードウェアとして)はるかにうまく処理でき、ユーザーははるかに少なくなります。あなたのシステム管理者は自分の足を撃ち、出血していると不平を言います。
彼らは、「秒以内」は正しい要件ではなく、ハードウェアGPS同期デバイスなしでは満たすことができないと主張し続けています。 SLA&監視レベルは「3分以内」です。
OLD-Ancient-Kerberosチケットには5分の有効期間があったため、Windowsはその時間枠内で同期しました。
しかし、私が言ったように、これは2018年です。最近、金融業界には非常に残忍な要件があり、MSはそれを処理しました-2012年以来、と思います。 2016年はそれを完全に実施した。インターネット経由のミリ秒の精度は解決された問題です。50年前に実際に適切な接続で解決されました。 NTPで対応できます。トラフィックを削減したい場合は、安価なハードウェアボックスを用意する必要があります(つまり、独自の階層3を作成するNTP時間ソース)、しかし、それもまた高価ではありません。
「秒以内」を要求するのは正しいですか、それともQuartzを完全に破棄する必要がありますか?
ハードウェアの場合と同様に、時々発生する問題をプログラムする必要があります。しかし、「秒以内」は要件の冗談です-通常の状況で満たすのは簡単です。
いくつかの参照:
https://docs.Microsoft.com/en-us/windows-server/networking/windows-time-service/accurate-time
政府の規制など:米国のFINRAの精度は50 ms、EUのESMA(MiFID II)は1 ms。
たくさんの詳細と指示があります。この問題を解決する必要がある場合、これは実際には素晴らしい読み物です。ハイパーバイザーをアップグレードする必要があるかもしれません-彼らはHyper-Vについてすべて話します。 VMWareでも同じことができるはずですが、バージョンが何歳かはわかりません。
「秒以内」を要求するのは正しいですか、それともQuartzを完全に破棄する必要がありますか?
さまざまなアプリケーションスタックが厳密な時間制御を必要とする非常に多くの非常に良い理由があり、Quartzが求めていることは珍しくありません。
はいの場合、セットアップで推奨される変更は何ですか?
最善の策は、システムのすべての部分でNTPを使用し、同じNTPサーバーのペアを指すようにすることです。そのため、ESXiホストと実行中のVMはそれらのすべてで、同じNTPソース、他の関係するものすべて同じ)を使用します。これにより、NTPサーバーが「オフタイム」であっても、少なくともすべてのシステムの一部が互いに最新のものである。
https://docs.Microsoft.com/en-us/windows-server/networking/windows-time-service/support-boundary
Windows 8.1および2012 R2(またはそれ以前)の高精度サポート
以前のバージョンのWindows(Windows 10 1607またはWindows Server 2016 1607より前)では、正確な時刻を保証できません。これらのシステムのWindowsタイムサービス:
Kerberosバージョン5認証要件を満たすために必要な時間精度を提供
共通のActive Directoryフォレストに参加しているWindowsクライアントおよびサーバーに正確ではない時間を提供しました
より厳しい精度要件は、これらのオペレーティングシステムでのWindowsタイムサービスの設計仕様の範囲外であり、サポートされていません。
Windows 10およびWindows Server 2016
Windows 10およびWindows Server 2016の時間精度は大幅に改善され、以前のバージョンのWindowsとの完全な後方互換性を維持していますNTP互換性があります。適切な動作条件下で、Windows 10またはWindows Server 2016以降を実行しているシステムリリースでは、1秒、50ミリ秒(ミリ秒)、または1ミリ秒の精度を実現できます。
目標精度:1秒(1秒)
非常に正確なタイムソースと比較して、特定のターゲットマシンで1sの精度を達成するには:
ターゲットシステムはWindows 10、Windows Server 2016を実行している必要があります。
ターゲットシステムは、NTPタイムサーバーの階層からの時間を同期する必要があります。その結果、非常に正確でWindows互換のNTPタイムソースになります。
上記のNTP階層内のすべてのWindowsオペレーティングシステムは、高精度システムの構成ドキュメントに記載されているように構成する必要があります。
ターゲットとソース間の累積的な一方向のネットワーク遅延は100ミリ秒を超えてはなりません。累積ネットワーク遅延は、ターゲットで始まりソースで終わる階層内のNTPクライアントサーバーノード)のペア間の個別の一方向遅延を追加することによって測定されます。詳細については、高精度の時刻同期ドキュメント。