3流プログラマのメモ書き

元開発職→社内SE→派遣で営業支援→開発戻り浦島太郎状態の三流プログラマのIT技術メモ書き。 このメモが忘れっぽい自分とググってきた技術者の役に立ってくれれば幸いです。

Hyper-V上でドメインコントローラ作るときは時刻同期に注意!

複数ドメインコントローラが有る環境で、PDCエミュレータ機能を有するドメインコントローラにこの設定をしたんですが、他のドメインコントローラがPDCメコンのNTPに同期してくれません。(PDCエミュレータドメインコントローラは、ドメインコントローラを外部のNTPサーバと時刻同期で外部NTPサーバに同期するよう設定し、正常に動いています。)

ちなみにPDCエミュレータドメインコントローラは実サーバ、その他のドメインコントローラは Hyper-V仮想マシンとして構築しています。

PDCエミュレータに時刻同期できないFSMO以外のドメインコントローラのイベントビューアをみると、下記のエラーと警告が延々とでてます。

タイム プロバイダ NtpClient は到達できないか、現在 pdcDC.hogedomain.local (ntp.d|192.168.0.111:123->192.168.0.100:123) から有効な時間データを受信中です

 ↓

タイム プロバイダ NtpClient: ドメイン コントローラ pdcDC.hogedomain.local へのアクセスを 8 回試行し ましたが、有効な応答が得られませんでした。このドメイン コントローラは、タイム ソースとしては破棄され、NtpClient は同期先となる新しいドメイン コントローラの 発見を開始します。

 ↓

1 つまたは複数のタイム ソースから時間を取得するようにタイム プロバイダ NtpClient は 構成されていますが、どのソースも現在アクセスすることはできません。 ソースへのアクセスの試行は、あと 15 分間実行されません。NtpClient が正しい時間を 参照できるソースがありません。

いろいろ調べたところ、ゲストOSのWindowsServer2003でw32timeエラーが多発に原因と解決策が載ってました。

それは Hyper-V の仮想インスタンス毎の設定にある、統合サービスの「時刻の同期」が有効になっていたためでした。

確かにこれを有効にしてると、ゲストOSはホストOSの時刻に合わせようとします。しかし、ドメインのメンバサーバたるホストOSは近いところにある(つまり今回の環境ではHyper-V上の)ドメインコントローラに時刻を合わせようとします。

これにより、時刻同期がうまくできなかったわけですね。

この統合サービスの時刻の同期チェックを外すと問題なくPDCに同期できるようになりました。

まぁ注意深く考えたらすぐに原因がひらめきそうなもんですが、結局原因わかるまで1日かかっちゃいました。

最近ボケ気味の3流PGです。