web-dev-qa-db-ja.com

Hyper-Vを介して仮想化されたドメインコントローラーの時刻同期

Windows Server 2008 R2サーバーのグループに対して、現在構成しているものよりも優れたドメイン時刻同期を構成する方法を誰かが推奨できるかどうかを知りたいです。すべてHyper-Vゲストである3つのドメインコントローラーがあります。これらすべてのDCで、統合サービスのホストの時刻同期機能が無効になっています。 DCは信頼できるタイムサーバーとして構成されており、FSMODC1サーバーはパブリックnist-aサーバーとnist-bサーバーをタイムソースとして使用します。 DC2、DC3、およびこの環境内の他のすべてのサーバー(ホストとゲストの両方)は、1つのドメインのメンバーであり、DC1に時間をかけます。残りのすべてのゲスト(つまり、DCではない)に対して、統合サービスの時刻同期機能が有効になります。この投稿の理由は、次の段落に続くメッセージが散発的に表示されているためです。すべてのサーバー(ホストとゲストの両方)の時間をできるだけ正確に設定したいと思います。

タイムサービスが900秒間5000ミリ秒を超える時差を検出しました。時差は、精度の低いタイムソースとの同期または最適でないネットワーク状態が原因である可能性があります。タイムサービスは同期されなくなり、提供できません他のクライアントへの時刻またはシステムクロックを更新します。タイムサービスプロバイダーから有効なタイムスタンプを受信すると、タイムサービスは自動的に修正します。

誰かが仮想化されたDCで同様の設定をしていて、ドメイン内のすべてのサーバー間で非常に正確な時刻同期を達成している場合は、入力をいただければ幸いです。

ありがとう。

3
Chris

仮想化ドメイン環境で時間を維持する最も信頼できる方法は、PDC物理を維持し、すべての仮想化DCおよびドメインメンバー、および問題のすべてのVMのホスト-ゲスト時間同期を無効にします。

これが問題の疑似説明です(私がこれを見たのは久しぶりです):

マシン(ワークステーション、サーバー、VM)が起動すると、RTC(マザーボード/ BIOS上のバッテリーバックアップクロックチップ)から時間を読み取り、各CPUティックの期間を計算します。 。次に、OSは最初の読み取りが行われてから発生したクロックティックの数をカウントし、それからの時間を起動時に取得された元の時間の読み取りに加算します。これにより、現在の時刻がわかります。

問題は、ホストがVMから発生する実際のクロックサイクルを難読化することです。 A VMは、ホストで実際に500クロックサイクルが発生したときに100クロックサイクルが発生した可能性があります。したがって、この時間計算方法は機能しなくなり、VMでの時間のずれが発生します。

VSphereおよびHyper-Vにインストールされたvmツール/拡張パッケージを介したホスト-ゲスト時間の同期は、これを解決するために何らかの方法で役立ちますが、完全ではありません(一部のセットアップでは、VMリアルタイムより遅れている場合は転送しますが、VMリアルタイムより進んでいる場合は転送します)はジャンプしません。

これは、マルチコアセットアップ(タイミングカウンターは基本的に各コアでエミュレートされます)およびクロック速度をオンザフライで変更できるセットアップ(これがどのように維持されるかについてはおかしな考えがありません)でクロックサイクルがカウントされる方法によってさらに複雑になります。 a VMは1つのコアで1クロックサイクルを実行し、次のサイクルで別のコアにジャンプできる別のCPUでという考えを考慮に入れてください。本当にひどい。

つまり、元のポイントに戻ります。デフォルトでは、ドメイン時間はPDCから始まり、他のDCに流れ落ち、そこからメンバーサーバーとワークステーションに流れていきます。したがって、PDCが(物理的に維持することにより)本当に信頼できるタイムソースであることを確認し、他のすべてのドメインメンバーでホスト-ゲスト同期を無効にすると、安定した比較的正確な時間が保証されます。インフラ。

PDCを物理サーバーとして実行し、そのサーバーでHyper-Vを有効にして、それにゲストを追加することも、Hyper-Vを有効にすると適切な修正ではない可能性があることに注意してください。 「ベース」OSは実際には仮想化OSにもなります(サイレント)。したがって、1台の物理サーバーをPDCとして保持し、Hyper-Vをボックスから除外します。

注意すべき興味深いサイドポイント:XP/2003以降にWindowsに組み込まれている準拠したNTPサービスを使用している場合でも、Windows時刻同期に関するMicrosoftの公式のスタンスは15秒です。実際にはそれを取得できます。 100ミリ秒未満までですが、サポートされるのは15秒以内の同期だけです。ちょっと理にかなっています。ほとんどのMS環境のコアにある時間に敏感なキーコンポーネントはKerberosだけで、デフォルトでは、それが長く動作します。 5分の許容範囲内にあるため。

1
Chris Thorpe

ええ実際には物理ドメインコントローラーでもある1つのサーバーを除いて、同期をオフにしないでください。

私は同じセットアップをしていて、時間を提供するマシンが物理ドメインコントローラー-小さなボックスであることを確認しました。すべての仮想DCは、Hyper-Vから時間同期されます。

本当の危険は、ホストとクライアント間のフィードバックループであり、このようにしてループが壊れます。

ところで、これは非常に正確ではありません-ウィンドウは決して正確ではありません。非常に悪い精度でしか同期しません。財務データを収集し、外部ホストへのミリ秒に同期する別のマシンがあります(1時間あたりの平均スキュー:統計によると37ミリ秒);)これは正確です。

2
TomTom