連載
» 2005年08月12日 00時00分 公開

Windowsネットワーク時刻同期の基礎とノウハウ:第1回 Windows OSにおける時刻同期サービスとNTP (4/4)

[小鮒通成,マイクロソフトMVP]
前のページへ 1|2|3|4       

Windows Timeサービス上でドメイン内と外部NTPサーバの両方から時刻を同期する

 前述したように、Active Directory環境では、フォレスト・ルート・ドメインのPDCエミュレータを頂点として時刻同期の階層が形成されており、外部NTPサーバとの時刻同期はPDCエミュレータのみが担当することになっている。しかし、状況によってはほかのドメイン・コントローラや特定クライアントが「信頼に足る時刻」を常に保持しなければならないケースもあるだろう。

 例えば、フォレスト・ルート・ドメインのPDCエミュレータがダウンした場合、実装上では、ほかのドメイン・コントローラは最終的には「信頼に足る時刻」を入手することはできなくなるが、これを避けてほかのドメイン・コントローラも状況に応じて外部NTPサーバから時刻を取得できるようにする方法がある。この場合、以下のように設定を行う。

 レジストリ・エディタから以下のキーおよび値を探し、以下のように変更する。

項目 内容
キー HKEY_LOCAL_MACHINEの\SYSTEM\CurrentControlSet\Services\W32Time\Parameters
値の名前 Type
REG_SZ
値の内容 ALLSync
同期方法のレジストリ設定

項目 内容
キー HKEY_LOCAL_MACHINEのSYSTEM\CurrentControlSet\Services\W32Time\Parameters
値の名前 NtpServer
REG_SZ
値の内容 <外部NTPサーバのIPアドレス>,0x2
NTPサーバとの同期方法を指定するレジストリ設定

 設定を変更したらコマンド・プロンプトから「net stop w32time & net start w32time」を実行するなどしてw32timeサービス(Windows Timeサービス)を再起動し、レジストリ内容をサービスに適用させる。

 上記の設定では、ドメイン環境で(ほかのドメイン・コントローラから)時刻同期を行うことに加え、外部のNTPサーバからも時刻を同期することを可能とするオプション「ALLSync」を利用している。NtpServerレジストリ値のパラメータ「0x2」は代替として外部NTPサーバから時刻同期を行わせるための設定値である。

 この設定については、以下のサポート技術情報を参照していただきたい。

 Windows XP以降のクライアントであれば、上記の方法をそのまま流用し設定することも可能であると考えられる。ただし、クライアント上でドメイン・コントローラでない端末と(結果的に)時刻同期した場合、kerberos認証上の問題が生じる可能性がある。よって、クライアントはドメイン・コントローラからのみ確実に時刻同期を行い、各ドメイン・コントローラの時刻同期をきちんと設定する方法をお勧めする。

Window Time サービスに関するそのほかの注意事項

 まず、時刻同期そのものに関して、データベース・システム(SQL ServerやOracleなど)を稼働させているコンピュータ上では特に注意が必要な点がある。

 データベース・システムではトランザクション・ログなどの記録にシステム時刻が利用されるが、この時刻に関しての整合性が満たされない場合、データベース・システムが正常に動作しないことがある。例えばコンピュータの時刻が進みすぎている場合に単に時刻同期を行うと、時刻が後戻りしたように見えるという問題が発生する。このような問題に対処するため、UNIX系の時刻同期では、「slew(スルー)モード」と呼ばれる、「時刻の進み方を(実際の時間よりも)少しずつ遅らせて」、時刻そのものは後戻りせずに、ゆっくりと同期させる方法が利用される(slewはすべらせる、ずらすという意味)。Windows Timeサービスにも似た実装は存在するが、時刻の進みが決められたしきい値以内(*)でなければ(つまり実際の時刻より遅いか、決められた時間以上進んでいる状態ならば)、時刻が一気に同期してしまう。トラブルを避けるためには、事前に基準となる時刻にNTPなどを利用して時刻同期を行ってから、構築を行うべきだろう。

* Windows 2000では3分以内のずれ(進み)で同様の動作をする実装があるが、Windows XPおよびWindows Server 2003では実装が変更され、ドメインに参加した環境では5分以内、ワークグループ環境では1秒以内となっている。詳細は以下のドキュメントの「How Windows Time Service Can Affect Users and Applications」の項目を参照されたい。


Windows Timeサービスに関する不具合情報

 現在Windows Timeサービスには、ある状況下で正常に同期が行えない、同期間隔の設定が正しく行えないなどの不具合がある。詳細は以下のサポート技術情報などを参照していただきたい。

 上記の問題が発生しているシステムや、時刻同期を極めて厳密にコントロールする必要がある場合は、修正プログラムの適用が必要な場合があるので注意してほしい。できれば(修正済み環境である)Windows Server 2003 Service Pack 1およびWindows XP Service Pack 2を適用した状態で運用するとよいだろう。

【更新履歴】

【2005/08/12】同期方法のレジストリ設定の表において、キーの場所を公開当初の記事では、\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\Typeと記述しておりましたが、正しくは\SYSTEM\CurrentControlSet\Services\W32Time\Parametersでした。お詫びして訂正させていただきます。



「運用」のインデックス

運用

前のページへ 1|2|3|4       

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。