DFSR の デバッグログについて

はじめまして。Windows プラットフォームサポート担当の 比留間 友一(ひるまともかず)です。

今回は、Windows Server 2003 R2 以降で導入された、DFS Replication (DFSR) のトラブルシューティングにおける影の主役、デバッグログについてお話したいと思います。

1. DFSR のデバッグログとは?

DFSR サービスは、バックグラウンドで人知れず(?) 循環形式のデバッグログを出力しつづけています。

いざトラブルシューティング! となった際には、このデバッグログを解析する必要が出てくる場合も少なくありません。

私たちサポート担当者にとっては、まさしく命綱とも言える存在ですが、「デバッグログ」という名の通り、トラブルが発生しない限りは見る必要もありませんので、少しでもディスクの使用量や I/O を節約したい環境では、出力先のドライブを変えたいと思うこともあるかもしれません。

一方で、大規模なレプリケーショングループを構成している環境では、デフォルトの出力設定ではログサイズが足りず、肝心な情報が上書きされてしまっていて記録が残っていない、といった事も起こり得ます。

2. 現在のデバッグログの出力設定を確認する

既定の状態で、DFSR デバッグログは、 %windir%\debug フォルダに出力されます。

1ファイルにつき、約 200,000 行のエントリを出力し、100世代のファイルで循環出力を行います。

この設定で、およそ 50 – 100 MB程度のディスク容量を使用します。

現在ログが出力されているログファイルは DFSRxxxxx.log というファイル名で、その他のログファイルは、DFSRxxxxx.log.gz というファイル名で、GZ 形式で圧縮されています。

(xxxxx の部分には通し番号が入ります。)

現在のデバッグログの出力設定は、以下のコマンドで確認することができます。

コマンド構文

Dfsrdiag DumpMachineCfg /mem:<サーバー名>

s_dfsrdiag

3. デバッグログの出力設定を変更する

DFSRサービスを実行しているサーバー上で、WMIC コマンドを使用することで、デバッグログの出力設定を変更することができます。

なお、デバッグログの出力設定は、レプリケーションの対象となりませんので、各サーバーごとに個別に設定する必要があります。

 

出力対象となるログの重要度(DebugLogSeverity)を変更する:

既定値:4

有効範囲:1 – 5

コマンド構文

wmic /namespace:\\root\microsoftdfs path dfsrmachineconfig set debuglogseverity=5

DebugLogSeverity の説明は以下のとおりです。

5 で最も詳細な出力になります。

既定で 4 が設定されていますが、詳細なトラブルシューティングの場合を除けば、通常、この設定の出力で十分です。

1 … ログのヘッダ部分のみ記録します。

2 … エラー [ERROR] イベントおよび、上記の全てを出力します。

3 … 警告 [WARN] イベントおよび、上記の全てを出力します。

4 … 情報レベルのイベントおよび、上記の全てを出力します。

5 … 内部処理の詳細なトレース情報および、上記の全てを出力します。

 

1ファイルあたりに書き込まれるログエントリ数 (MaxDebugLogMessages) を変更する:

既定値:200000

有効範囲:1000 - 4294967295 (FFFFFFFF)

コマンド構文

wmic /namespace:\\root\microsoftdfs path dfsrmachineconfig set maxdebuglogmessages=500000

使用するログファイル数 (DebugLogFiles) を変更する:

既定値:100

有効範囲:1 – 10000

コマンド構文

wmic /namespace:\\root\microsoftdfs path dfsrmachineconfig set maxdebuglogfiles=200

ログの出力先パス (DebugLogFilePath) を変更する:

既定値:%windir%\debug

コマンド構文

wmic /namespace:\\root\microsoftdfs path dfsrmachineconfig set debuglogfilepath="d:\dfsrlogs"

注意:出力先のパスは事前に手動で作成しておく必要があります。

指定されたパスが存在しない場合、 DFSR サービスの再起動時に、既定の %windir%\debug に設定が戻ります。

デバッグログの出力の有無 (EnableDebugLog) を変更する:

既定値:TRUE

有効範囲:TRUE または FALSE

コマンド構文

wmic /namespace:\\root\microsoftdfs path dfsrmachineconfig set enabledebuglog=true

注意:FALSE 設定にすると、デバッグログが一切出力されなくなります。これにより、トラブルの発生時に原因の特定が困難になる可能性があります。デバッグログの出力自体がシステムに何らかの悪影響を及ぼしている場合以外は、デバッグログの出力を無効にすることはお勧めできません。

「コミュニティにおけるマイクロソフト社員による発言やコメントは、マイクロソフトの正式な見解またはコメントではありません。」