Ext JS に関しては,新しい記事は Sunvisor Lab. ExtJS 別館 にあります。そちらもよろしくお願いいたします。

Windowsサーバでのレプリケート失敗を解決

運用しているサーバで,Active Directoryのドメインサーバ間でのレプリケートができなくなっていた。しょうがないので,NETLOGONに保存されているLogonスクリプト に変更があった場合には,二つのサーバのファイルを更新していた。しかしそれではめんどうだし,エラーが発生しているまま放置しているのも気持ちが悪いの で,本気で直すことにした。

出入りのメンテナンス業者のエンジニアに聞いたところ,サーバを設置した後,ネットワーク機器の接続を変更した りした場合にそのようなことが起きることがあるという。サーバ間のレプリケートの接続設定は,2台目のドメインサーバが追加されたときに自動設定される。 そのごネットワーク機器の変更があると,相手先のサーバが見つからない状態になってしまうらしい。まずはその対策を施すことにした。

  1. Active Directoryサイトとサービスを起動
  2. Site/Default-First-Site/Servers/Server1を展開
  3. リストビューペインでNTDS Settingsを右クリック
  4. 「新規作成」「接続」を実行。
  5. レプリケート先にServer2を指定する。
  6. 接続先が2つになるので,元々あった自動設定の接続を削除する。
  7. これらの作業をServer2からServer1への設定でも繰り返す。

これはつまり,自動設定だった接続の設定を手動で設定し直してやるという作業。ここまで作業して帰宅し,翌日確認したが,レプリケートは失敗していた。

Server1の方にはイベントID 13508の次の警告が記録されている。これは以前のまま。

ファイル レプリケーション サービスの問題のため、DNS 名 Server2.domain.local を使用して
c:\windows\sysvol\domain に対して  Server2 から Server1 へのレプリケーションを有効にできません。
再実行します。
この警告が表示される理由として次のいくつかが考えられます。
 
[1] FRS によりこのコンピュータから DNS 名 Server2.domain.local を正しく解決できません。
[2] FRS が Server2.domain.local 上で実行されていません。
[3] このレプリカに対する、Active Directory のトポロジ情報が一部の ドメイン コントローラにまだ
レプリケートされていません。
 
このイベント ログ メッセージは接続ごとに一度表示されます。問題が 解決されると、接続が確立され
たことを示す別のイベント ログ メッセージが 表示されます。

Server2の方のログを見る。こちらはID 13568のエラーが記録されている。これも以前から記録されているログである。結構長い解説が書いてある。内容をよく読んでみる。

ファイル レプリケーション サービスにより、レプリカ セット "DOMAIN SYSTEM VOLUME (SYSVOL SHARE)"
が JRNL_WRAP_ERROR の状態であることが検出されました。
 
 レプリカ セット名    : "DOMAIN SYSTEM VOLUME (SYSVOL SHARE)"
 レプリカ ルート パス   : "c:\windows\sysvol\domain"
 レプリカ ルート ボリューム : "\\.\C:"
 NTServer USN ジャーナルから読み取ろうとしているレコードが見つからない場合に、レプリカ セット
は JRNL_WRAP_ERROR の状態になります。これは次の理由のいずれかによって 発生します。
 
 [1] ボリューム "\\.\C:" がフォーマットされています。
 [2] ボリューム "\\.\C:" の NTServer USN ジャーナルが削除されています。
 [3] ボリューム "\\.\C:" の NTServer USN ジャーナルが切り詰められています。 ジャーナルの最後
で壊れたエントリが見つかった場合は、Chkdsk でジャーナルを切り詰めることができます。
 [4] このコンピュータでファイル レプリケーション サービスが長い間実行されていませんでした。
 [5] ファイル レプリケーション サービスでは、"\\.\C:" のディスクの I/O 活動速度についていくこ
とができませんでした。

うちの場合は,[4]あたりが原因だろうか。

"Enable Journal Wrap Automatic Restore" レジストリ パラメータを 1 に設定 すると、このエラー状態
から自動的に回復するために、次の回復操作が行われ ます。
[1] 5 分後に行われる最初のポーリングのときに、このコンピュータはレプリカ セット から削除されま
す。5 分間待機したくない場合は、"net stop ntfrs" を実行して から "net start ntfrs" を実行し、
ファイルレプリケーション サービスを再起動してください。
[2] 削除後のポーリングのときに、このコンピュータはレプリカ セットに再度追加されます。 コン
ピュータが再度追加されると、レプリカ セットに対して完全なツリーの同期が行われます。
 
警告: 回復プロセス中は、レプリカ ツリーのデータは利用できない可能性があります。 このエラー状態
が再度発生する場合は、自動回復により途中でデータが 利用不可になるのを防ぐために、上記のレジス
トリ パラメータを 0 にリセットする 必要があります。

このレジストリ パラメータを変更するには、"regedit" を実行します。
 
[スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックしてから "regedit" と入力
します。
 
HKEY_LOCAL_MACHINE を展開し、
キーのパス: 
   "System\CurrentControlSet\Services\NtFrs\Parameters"
を開いて、値名:
   "Enable Journal Wrap Automatic Restore"
をダブル クリックしてから値を更新します。

値名が存在しない場合、[編集] メニューにある [新規] から [DWORD 値] で追加することが できます。
上記の値名を正しく入力してください。

おっしゃるとおりにやってみることにした。

  1. regeditでEnable Journal Wrap Automatic Restoreを追加し,その値を1にした。
  2. Dosプロンプトから,
    net stop ntfrs
    net start ntfrs
    を実行してntfrsサービスを再起動した。
  3. Enable Journal Wrap Automatic Restoreの値を0にした。

そうすると,Server2のイベントには,エラーログは記録されずに,いくつかの警告ログが記録された。その中に次のログがあった。変化があったようだ。

ファイル レプリケーション サービスでは、別のドメイン コントローラのデータでシステム ボリューム
を初期化しています。この処理が完了するまでコンピュータ Server2 をドメイン コントローラ にするこ
とはできません。それからシステムボリュームは SYSVOL として共有されます。
 
SYSVOL の共有を確認するには、コマンド プロンプトで次のコマンドを実行してください:
net share
 
ファイル レプリケーション サービスで初期化の処理が完了すると、SYSVOL の共有が表示され ます。
 
システム ボリュームの初期化には時間がかかる可能性があります。 この時間はシステム ボリュームの
データ量、 ほかのドメイン コントローラの稼働状態、および ドメイン コントローラ間のレプリケー
ション間隔によります。

なんだか終わりに近づいてきた感じ。この文章の通りにnet shareで共有を確認した。管理共有や公開フォルダは表示されるが,SYSVOLやNETLOGON共有は表示されなかった。しばらくしてもう一度確認すると

H:\>net share

共有名       リソース                            注釈

-------------------------------------------------------------------------------
(中略)
NETLOGON     C:\WINDOWS\SYSVOL\sysvol\domain.local\SCRIPTS
                                             Logon server share
SYSVOL       C:\WINDOWS\SYSVOL\sysvol        Logon server share

のように,NETLOGINやSYSVOLの共有が表示された。いいじゃないですか。その後,Server1にて次の作業を行った。

 

  1. Active Directoryサイトとサービスを起動
  2. Site/Default-First-Site/Servers/Server1/NTDS Settingsを展開
  3. リストビューペインでServer2を右クリック「今すぐレプリケート」を実行。

NETLOGON共有で確かめてみると,同期がとれていた。その後,レプリケートのエラーは発生していない。

トラックバック


URL から "-MoIyadayo" を削除してトラックバックを送信してください。
トラックバックは承認後に表示されます。

ADのリプレース時にこれが原因でハマってました。 大変助か

ADのリプレース時にこれが原因でハマってました。

大変助かりました。

参考になりました

Rutaと申します。ずいぶん放置していた問題がおかげさまで解決しました。ありがとう。 

コメントありがとうございます

 お役に立てたのならうれしいです。