ESXi Windows 仮想マシンの時間を 1 秒以内に同期するにはどうすればよいですか?

ESXi Windows 仮想マシンの時間を 1 秒以内に同期するにはどうすればよいですか?

私は開発者です。私たちは、ジョブ サーバーのクラスター (ESXI クラスター上の VM) を実行するために、SQL バッキング ストアを備えた広く使用されているスケジュール ライブラリである Quartz.Net を使用しています。

Quartz.Net必要ジョブ サーバー インスタンス間で時刻が同期されるため、NTP を使用することをお勧めします。

時計の誤差は 1 秒以内でなければなりません。

当社のシステム管理者は、Windows NTP を使用してドメイン コントローラーと時間を同期しています。VM と ESXi ホストの同期はオフになっています。

彼らは、「数秒以内」は正しい要件ではなく、ハードウェア GPS 同期デバイスなしでは満たせないと主張し続けています。彼らの SLA と監視レベルは「3 分以内」です。

定期的に(2 ~ 3 か月に 1 回)Quartz インスタンスが同期しなくなる動作が発生しており、これは時間の同期がずれていることと一致しています。

  1. 「1 秒以内」を求めるのは正しいのでしょうか、それとも Quartz を完全に放棄する必要があるのでしょうか?
  2. はいの場合、設定にどのような変更が推奨されますか?

答え1

今は 2018 年です。Windows は、MIFID II 規制で要求されているように、約 2 ミリ秒以内にサーバーの同期を維持することができます。したがって、あなたの問題は問題ではありません。

当社のシステム管理者は、Windows NTP を使用してドメイン コントローラーと時間を同期しています。VM と ESXi ホストの同期はオフになっています。

なぜでしょうか? ホストはこれをはるかにうまく処理できます (ハードウェアであるため)。そして、システム管理者は自分の足を撃ち抜いて、出血していると文句を言うのです。

彼らは、「数秒以内」は正しい要件ではなく、ハードウェア GPS 同期デバイスなしでは満たせないと主張し続けています。彼らの SLA と監視レベルは「3 分以内」です。

OLD - 古代 - Kerberos チケットの有効期間は 5 分であったため、Windows はその時間枠内で同期されました。

しかし、これは、私が言ったように、2018年です。金融業界は最近、かなり厳しい要件を課しており、MSは2012年からそれに対処してきました。2016年に完全に実施されました。インターネット上のミリ秒精度は解決済みの問題です。実際、適切な接続であれば50年前に解決されています。NTPはそれを処理できます。トラフィックを削減したい場合は、安価なハードウェアボックスを設置する必要があるかもしれませんが(つまり、独自のTier 3 NTPタイムソースを作成する)、これも高価ではありません。

「1 秒以内」を求めるのは正しいのでしょうか、それとも Quartz を完全に放棄する必要があるのでしょうか?

ハードウェアの場合と同様に、時々発生する時間の問題を考慮してプログラムする必要があります。しかし、「1 秒以内」というのは冗談のような要件で、通常の状況では簡単に満たすことができます。

いくつかの参考資料:

https://docs.microsoft.com/en-us/windows-server/networking/windows-time-service/正確な時間

政府規制: 米国の FINRA では 50 ミリ秒の精度、EU の ESMA (MiFID II) では 1 ミリ秒の精度。

そこにはたくさんの詳細と指示があります。この問題を解決する必要がある場合、これは実際に素晴らしい読み物です。ハイパーバイザーをアップグレードする必要があるかもしれません。Hyper-V についてすべて説明しています。VMWare でも同じことができるはずですが、バージョンがどれくらい古いかはわかりません。

答え2

「1 秒以内」を求めるのは正しいのでしょうか、それとも Quartz を完全に放棄する必要があるのでしょうか?

さまざまなアプリケーション スタックで厳密な時間制御が必要になるのには多くの理由があり、Quartz が求めているものは決して珍しいものではありません。

はいの場合、設定にどのような変更が推奨されますか?

最善策は、システムのすべての部分で NTP を使用し、同じ NTP サーバーのペアを指定することです。つまり、ESXi ホストとそこで実行されている VM はすべて同じ NTP ソースを使用し、その他の関係するすべてのものも同様です。こうすることで、NTP サーバーが「時刻がずれている」場合でも、少なくともシステムのすべての部分が互いに最新の状態になります。

答え3

https://docs.microsoft.com/en-us/windows-server/networking/windows-time-service/サポート境界

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秒 (1s)

高精度な時間ソースと比較して、特定のターゲット マシンで 1 秒の精度を達成するには、次の手順を実行します。

  • 対象システムでは、Windows 10、Windows Server 2016 が実行されている必要があります。

  • ターゲット システムは、NTP 階層のタイム サーバーから時間を同期し、非常に正確で Windows と互換性のある NTP 時間ソースを実現する必要があります。

  • 上記の NTP 階層内のすべての Windows オペレーティング システムは、「高精度のためのシステムの構成」ドキュメントに記載されているとおりに構成する必要があります。

  • ターゲットとソース間の累積的な一方向ネットワーク遅延は、100 ミリ秒を超えてはなりません。累積ネットワーク遅延は、ターゲットからソースまでの階層内の NTP クライアント サーバー ノードのペア間の個々の一方向遅延を加算することによって測定されます。詳細については、高精度の時刻同期に関するドキュメントを参照してください。

https://docs.microsoft.com/en-us/windows-server/networking/windows-time-service/高精度のためのシステムの構成

関連情報