この記事は、WINDOWS Server 2016 で DPM または ReFS ボリュームが応答しなくなる問題を解決するのに役立ちます。
適用対象: Windows Server 2016
元の KB 番号: 4035951
症状
データ保護管理 (DPM) を使用する回復性のあるファイル システム (ReFS) ボリュームは、バックアップの実行時 (特に DPM が大規模なブロッククローン操作を発行した場合) に応答しなくなるかフリーズします。
原因
DPM はループバック マウント VHD を使用します。 これらは OS の通常のディスクのように表示されます。 そのため、これらのディスクは、Windows エクスプローラー、Diskmgt、およびその他の GUI ツールに表示されます。 これらのツールは、ディスクが正しく機能していることを確認するために、定期的にディスクをポーリングします。 これにより、IO がループバック スタックから ReFS ボリュームに送信されます。 ReFS ボリュームがビジー状態の場合、これらの IO は待機する必要があります。 そのため、ReFS がフラッシュや大規模なブロッククローン呼び出しなどの長時間の操作を実行する場合、これらの IO は長く待機する必要があります。 これらの IO がスタックすると、エクスプローラーまたは Diskmgt の UI は更新されません。 その結果、ディスクがハングまたはマウント解除されているように見えます。
さらに、ループバック マウント ミニポート ドライバー (vhdmp) は、IO が 30 秒以内に完了しない場合に警告イベントの生成を開始します。
注意
このプロセス中に IO またはファイル システム操作が失敗しません。 すべての操作は成功し、時間がかかります。 また、ボリュームはマウント解除されません。 この問題は、ファイル システム操作の待機時間の問題に過ぎません。これにより、UI がスタックし、ポート ドライバーがエラーをログに記録します。
解決方法
この問題は、 2017 年 7 月 18 日の累積的な更新プログラムで解決されています。 修正プログラムには次のものが含まれます。
- 3 つの調整可能なレジストリ パラメーター
- 不要なボリューム フラッシュを回避するポリシーの変更。これにより、ReFS が進行中の ReFS IO に長い待機時間を追加できなくなります。
その他の情報
調整可能なパラメーターを設定する方法
重要
これらの手順を実行する前に、 KB の記事4016173で説明されているように、3 つのレジストリ パラメーターを読んで実装していることを確認してください。 発生した問題に適切に対処できない場合は、これらのレジストリ パラメーターを無効にしないでください。 これらのパラメーターとこのセクションで説明するパラメーターは機能上重複しないため、一緒に使用できます。
この更新プログラムでは、「現象」セクションで説明されている待機時間の問題に対処するのに役立つ追加のレジストリ パラメーターについて説明します。 これらのパラメーターは、任意の組み合わせで使用できます。
警告
レジストリ エディターを使用するか、別の方法を使用してレジストリを誤って変更すると、重大な問題が発生する可能性があります。 これらの問題が起きた場合、オペレーティング システムを再インストールしなければならない場合があります。 Microsoft は、これらの問題を解決できることを保証できません。 リスクを理解した上でレジストリを変更してください。
重要
- これらのパラメーターの変更を有効にするには、再起動が必要です。
- これらのパラメーターは、フェールオーバー クラスターのすべてのノードで一貫して設定する必要があります。
チューニング可能パラメーター
オプション 1
このオプションでは、キャッシュされたピンが無効になります。これは、大きなアクティブなワーキング セットの主な原因でした。
次のサブキーで、指定された値を指定します。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem
- 値の名前: RefsDisableCachedPins
- RefsDisableCachedPins を 1 に設定する
- 値の種類: REG_DWORD
オプション 2
このオプションは、ReFS チェックポイント処理ロジックにヒューリスティックを追加します。これにより、削除キューが特定のサイズに達したときに ReFS がチェックポイント処理されます。 チェックポイント ロジックが大きな削除キューの処理を停止するため、IO は ReFS でスタックします。
次のサブキーで、指定された値を指定します。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem
- 値の名前: RefsProcessedDeleteQueueEntryCountThreshold
- RefsProcessedDeleteQueueEntryCountThresholdの設定を2048に設定する
- 値の種類: REG_DWORD
注意
RefsProcessedDeleteQueueEntryThreshold を小さい値に設定すると、ReFS のチェックポイントの頻度が高くなります。 値を 2048 に設定し、値を 1024、512 に減らします。
オプション 3
重複するエクステントの呼び出しが大きいと、システムに待機時間が発生します。その他の操作は、実行時間の長い操作が完了するまで待機する必要があります。 このオプションにより、重複エクステント呼び出しのサイズが小さくなります。
注意
DPM は、このレジストリ キーの変更を UR4 の一部として既定値として設定します。これは 2017 年 8 月内にリリースされます。
次のサブキーで、指定された値を指定します。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft Data Protection Manager\Configuration\DiskStorage
- 値名: DuplicateExtentBatchSizeinMB
- DuplicateExtentBatchSizeinMB = 100 を設定します。 (既定値は 2000 [2 GB] です。1 ~ 4095 の任意の値を受け入れます)。
- 値の種類: REG_DWORD
オプション 4
このオプションは、TimeOutValue を拡張します。
次のサブキーで、指定された値を指定します。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Disk
- 値の名前: TimeOutValue
- TimeOutValue の設定 (秒単位) = 0x78
- 値の種類: REG_DWORD
注意
TimeOutValue の既定値は 0x41 (10 進数 65) です。 0x78は 10 進数 120 に変換されます。