** サーバの時計が狂っていたでござる [#u107654d]

amatsukami.jp 宛に来るメールがいつも 3min 程度送れてきていた。&br;
なんか SMTP Gateway 関連の何らかの仕様のせいかなぁ~なんて思っていたんだけど、今日、ふと自分のサイトにアクセスしたのね。23:59 頃。そしたら、サーバのカウンターが次の日って扱いになってた。&br;
なんだと!? と思い、サーバで時間を表示してみたら、216 秒ほど進んでいた。&br;
そんなバカな!?&br;
だいたい、サーバはプロバイダの NTP サーバと同期をしているわけで、狂うはずがない……と w32tm コマンドで NTP サーバとの時差を調べて見たら、216 秒進んでるとか表示されるwww どゆこと?www&br;
で、無理矢理どうきとらせても、216 秒進んだままwwww&br;
なんだこれ────────!!!??

で、原因は Hyper-V の時計同期機能でした。&br;
そもそも PDC というかメインのドメイン・コントローラが Hyper-V 上のサーバってのがまず問題があった。つまり  Active Directory に参加している全てのマシンは、この  Hyper-V 上のドメイン・コントローラに時間を問い合わせに行くのだ。&br;
さて、このドメイン・コントローラは Hyper-V 上で動く仮想マシンなワケだが、Hyper-V は Hyper-V で Hyper-V 上の全てのマシンの時計を同期させる機能がある。これはホスト OS と非同期で動かせるようにしたモノらしいのだが、コイツが NTP サービスとなんら連携をとっていなかったため、内部タイマに任せっきりの動作となり徐々に時計がずれていたのだ。そしてその時計にドメイン・コントローラが同期し、さらに  Active Directory 上のマシンたちはその狂ったドメイン・コントローラに同期していたのだ。

というわけで、まず Hyper-V の時刻同期機能を OFF にし、その上で Hyper-V 上のドメイン・コントローラを改めてプロバイダの NTP と同期するように仕掛けた。また、Hyper-V には Active Directory に参加していないサーバがあり、これらは単独で Active Directory と同期をとるように設定。&br;
全てのマシンで、w32tm /resync を実行し、やっとこさサーバの時計があったのである(汗&br;
いやもー、恥ずかしいミスだわー。&br;
ちなみにメールが遅延していた理由は、サーバの時計が進みすぎていたため、メールを出した日付よりもサーバが未来に存在することになり、メールの日付が過ぎるまで SMTP Gateway が留保するという仕様だったからのようだ(予測でしかないが)。&br;
時計があったら、すぐにメールが届くようになった。

あーもう!

#article


    ホーム 一覧 検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS