じいじの勘違い(BLOG版)

はてな日記から移動してみました。はてさて、どちらが使いやすいのかな?

Hyper-V2.0配下の、ゲストOSにおけるADドメイン時刻同期

比較的廉価なサーバを3台以上使用し、Windows2008R2 でクラスタを構築し、Hyper-V2.0による仮想サーバでドメインを構築しておられる方は、本番環境以外にも、MSDN や Technet の評価用ライセンスを利用した、自己研鑽のための評価用環境を含めれば結構多いかと思います。

ここで、ドメイン認証サーバに関しては、下記URLにある通り、MSのサジェスチョンに従って、Hyper-V2.0の統合機能から、「時刻同期」機能を「OFF」にして運用していられると思いますが、Guest OS に関しては如何でしょうか?

私が構築した、お客様へ納入した仮想サーバの評価用環境では、5台の廉価版サーバを用いて、認証サーバ2台、Windows2008R2 DataCenter x64 クラスタノード用物理ホスト3台として構築し、認証サーバは敢えてWindows2008 Enterprise SP2 x64 を導入して、Microsoft iSCSI を例の方法で修正して認証サーバへ導入し、iSCSIサーバと兼用しています。

で、2台の物理認証サーバはクラスタ構築専用に特化して構築しており、業務評価用の認証サーバは全て仮想環境へ構築してしています。
先ず、最初は、認証サーバの時刻同期が、必ず失敗する原因が不明でしたが、下記URL??のサジェスチョンに従って、仮想ゲストOS側の設定で Hyper-V2.0統合機能から、「時刻同期」を「OFF」にする事で、外部のNTPサーバ(MFEEDやNICT)などと同期が行えました。

? http://technet.microsoft.com/ja-jp/virtualization/gg491389
? http://support.microsoft.com/kb/976924/ja
? http://technet.microsoft.com/ja-jp/library/dd348449(WS.10).aspx

ところが、今度は、Windows2003R2SP2で構築した、仮想メンバサーバ側で認証サーバと時刻同期が不可能となります。

1.サーバ再起動後または、W32TIMEサービス再起動後は、時刻同期に必ず成功する。
?正副何れかの認証サーバへ、正常に同期する。
?「VM IC Time Synchronization Provider」と、正常に同期する。

2.しかし、翌日以降は時刻同期に連続して失敗し、イベントログへ以下のログが記録される。
?イベントID:24 ソース:W32TIME
タイム プロバイダ NtpClient: ドメイン コントローラ
xxxxx.hogehoge.local へのアクセスを 8 回試行しましたが、
有効な応答が得られませんでした。このドメイン コントローラは、
タイム ソースとしては破棄され、NtpClient は同期先となる新しい
ドメイン コントローラの 発見を開始します。
?イベントID:29 ソース:W32TIME
1つまたは複数のタイムソースから時間を取得するようにタイム
プロバイダ NtpClient は 構成されていますが、どのソースも
現在アクセスすることはできません。 ソースへのアクセスの試行は、
あと 15 分間実行されません。
NtpClient が正しい時間を 参照できるソースがありません。

そうです。見事に失敗します。しかも、延々と・・・

お客様環境でも同様の状態であり、彷徨い続けること数ヶ月ほど・・・そうすると、上の啓示を得たのです。(大げさですね)

http://serverfault.com/questions/24298/w32time-sync-problems-for-hyper-v-guests-w32time-event-ids-38-24-29-35
http://social.technet.microsoft.com/Forums/ja-JP/hypervja/thread/a04f9b1c-4ad3-4881-a66b-8899e0a80944/
http://ja.w3support.net/index.php?db=sf&id=24298

はい、認証サーバと同様に、仮想ゲストOS側の設定でHyper-V2.0統合機能から、「時刻同期」を「OFF」にする事で、仮想メンバサーバも無事に認証サーバと時刻同期ができました。

それにしても、URL?で、次のような記述があり「ドメイン環境で時刻遅れは不味いよね」と思って、統合機能側の「時刻同期=ON」にしていたと言うのに・・・

ヒント: Hyper-V 仮想化環境におけるゲスト OS の時刻同期について
Hyper-V では、ゲスト OS の時刻を進めるためのClock tick を Hypervisor 内で
>エミュレートしております。
>このため、Hypervisor の負荷が高い場合など、ゲスト OS が Clock tick を失う
>可能性があります。
>Clock tick を失うことによってゲスト OS は時々時刻を進められ
>なくなるため、Hypervisor 型の仮想化環境におけるゲスト OS は
>総じて時刻が遅れやすい状態にあります。

普通、上記のように書いてあれば、時刻同期をONにしますって・・・
結局、Standalone 環境限定で、時刻同期をHyper-Vサーバ側にお任せする、とかの補記が欲しいと思うのは、私だけなんでしょうかね?