次の方法で共有


高度なデータ重複除去の設定

This document describes how to modify advanced Data Deduplication settings. For recommended workloads, the default settings should be sufficient. これらの設定を変更する主な理由は、その他の種類のワークロードでのデータ重複除去のパフォーマンス向上です。

データ重複除去ジョブ スケジュールの変更

既定のデータ重複除去ジョブ スケジュールは、(バックアップ使用法の種類に対して有効な優先順位最適化ジョブを除いて) 推奨されるワークロードで適切に動作し、可能な限り悪影響を及ぼさないように設計されています。 ワークロードには、サイズの大きいリソース要件がある場合、ジョブがアイドル状態の時間内にのみ実行されるようにしたり、データ重複除去ジョブが使用できるシステム リソースの量を増減したりできます。

データ重複除去のスケジュールの変更

データ重複除去ジョブは、Windows タスク スケジューラを使用してスケジュールされ、パス Microsoft\Windows\Deduplication で表示および編集できます。 データ重複除去には、スケジュールを簡単にするいくつかのコマンドレットが含まれます。

データ重複除去ジョブを実行する時間を変更する最も一般的な理由は、ジョブが業務時間外に実行されるようにするためです。 The following step-by-step example shows how to modify the Data Deduplication schedule for a sunny day scenario: a hyper-converged Hyper-V host that is idle on weekends and after 7:00 PM on week nights. スケジュールを変更するには、管理者コンテキストで次の PowerShell コマンドレットを実行します。

  1. Disable the scheduled hourly Optimization jobs.

     Set-DedupSchedule -Name BackgroundOptimization -Enabled $false
     Set-DedupSchedule -Name PriorityOptimization -Enabled $false
    
  2. Remove the currently scheduled Garbage Collection and Integrity Scrubbing jobs.

     Get-DedupSchedule -Type GarbageCollection | ForEach-Object { Remove-DedupSchedule -InputObject $_ }
     Get-DedupSchedule -Type Scrubbing | ForEach-Object { Remove-DedupSchedule -InputObject $_ }
    
  3. 高優先順位で、システム上のすべての CPU と使用可能なメモリを使用して午後 7時 00分に実行される、夜間の最適化ジョブを作成します。

     New-DedupSchedule -Name "NightlyOptimization" -Type Optimization -DurationHours 11 -Memory 100 -Cores 100 -Priority High -Days @(1,2,3,4,5) -Start (Get-Date "2016-08-08 19:00:00")
    

    Note

    The date part of the System.Datetime provided to -Start is irrelevant (as long as it's in the past), but the time part specifies when the job should start.

  4. 高優先順位で、システム上のすべての CPU と使用可能なメモリを使用して土曜日の午前 7時 00分に実行される、週単位のガベージ コレクション ジョブを作成します。

     New-DedupSchedule -Name "WeeklyGarbageCollection" -Type GarbageCollection -DurationHours 23 -Memory 100 -Cores 100 -Priority High -Days @(6) -Start (Get-Date "2016-08-13 07:00:00")
    
  5. 高優先順位で、システム上のすべての CPU と使用可能なメモリを使用して日曜日の午前 7時 00分に実行される、週単位の整合性スクラブ ジョブを作成します。

     New-DedupSchedule -Name "WeeklyIntegrityScrubbing" -Type Scrubbing -DurationHours 23 -Memory 100 -Cores 100 -Priority High -Days @(0) -Start (Get-Date "2016-08-14 07:00:00")
    

ジョブ全体で使用可能な設定

新規またはスケジュールされたデータ重複除去ジョブの、次の設定を切り替えることができます。

Parameter name Definition Accepted values この値を設定する理由
タイプ スケジュールする必要があるジョブの種類
  • Optimization
  • GarbageCollection
  • Scrubbing
この値は、スケジュールされるジョブの種類であるため、必要です。 タスクをスケジュールした後は、この値を変更できません。
Priority スケジュールされたジョブのシステム優先順位
  • High
  • Normal
  • Low
この値は、CPU 時間が割り当てられる方法を決定するのに役立ちます。 High will use more CPU time, low will use less.
Days 仕事が予定されている日 週の曜日を表す 0 ~ 6 の整数の配列。
  • 0 = 日曜日
  • 1 = 月曜日
  • 2 = 火曜日
  • 3 = 水曜日
  • 4 = 木曜日
  • 5 = 金曜日
  • 6 = 土曜日
スケジュールされたタスクは、少なくともいずれかの曜日に実行する必要があります。
Cores ジョブが使用するシステム上のコアの割合 (パーセントを示す) 整数 0 ~ 100 ジョブがシステム上のコンピューティング リソースに与える影響のレベルを制御するため
DurationHours ジョブの実行が許容される最大時間数。 Positive integers ワークロードの非アイドル時間にジョブが実行されるのを阻止するため
Enabled ジョブが実行されるかどうか True/false ジョブを削除せずに無効にするため
Full フル ガベージ コレクション ジョブのスケジュール Switch (true/false) 既定では、4 番目のジョブはすべてガベージ コレクション ジョブです。 このスイッチを使用して、より頻繁に実行されるフル ガベージ コレクションをスケジュールできます。
InputOutputThrottle ジョブに適用される入力/出力制御の量を指定する (パーセントを示す) 整数 0 ~ 100 調整により、ジョブが他の I/O 集中型のプロセスに干渉しなくなります。
Memory ジョブが使用するシステム上のメモリの割合 (パーセントを示す) 整数 0 ~ 100 ジョブがシステム上のコンピューティング リソースに与える影響のレベルを制御するため
Name スケジュールされたジョブの名前 String ジョブには一意に識別できる名前が必要である。
ReadOnly これは、スクラブジョブが検出した破損について処理および報告を行うが、修復アクションは実行しないことを示します。 Switch (true/false) ディスクの不適切なセクションに配置されているファイルを手動で復元する必要があります。
Start ジョブを開始する時刻の指定 System.DateTime The date part of the System.Datetime provided to Start is irrelevant (as long as it's in the past), but the time part specifies when the job should start.
StopWhenSystemBusy システムがビジー状態の場合にデータ重複除去が実行を停止するかどうかの指定 Switch (True/False) このスイッチを使用して、データ重複除去の動作を制御することができます。これは、ワークロードがアイドル状態でない場合にデータ重複除去を実行する場合に特に重要です。

データ重複除去ボリューム全体の設定の変更

ボリュームの設定の切り替え

You can set the volume-wide default settings for Data Deduplication via the usage type that you select when you enable a deduplication for a volume. データ重複除去には、ボリューム全体の設定を簡単に編集できるようにするコマンドレットが含まれています。

選択した使用法の種類からボリュームの設定を変更する主な理由は、特定のファイル (既に圧縮されているマルチメディアまたはほかのファイルの種類など) の読み込みのパフォーマンス向上、またはデータ重複除去の微調整による特定のワークロードの最適化です。 次の例は、汎用ファイル サーバーのワークロードに最も類似している一方で、頻繁に変更される大きなファイルを使用するワークロードのデータ重複除去設定を変更する方法を示します。

  1. クラスター共有ボリューム 1 の現在のボリュームの設定を確認します。

     Get-DedupVolume -Volume C:\ClusterStorage\Volume1 | Select *
    
  2. クラスター共有ボリューム 1 の OptimizePartialFiles を有効にして、MinimumFileAge ポリシーが、ファイル全体ではなくファイルのセクションに適用されるようにします。 これにより、ファイルのセクションが定期的に変更されても、ファイルの大部分が最適化されます。

     Set-DedupVolume -Volume C:\ClusterStorage\Volume1 -OptimizePartialFiles
    

ボリューム全体に適用可能な設定

Setting name Definition Accepted values この値を変更する理由
ChunkRedundancyThreshold チャンクがチャンク ストアのホット スポット セクションに複製される前に参照される回数。 ホット スポット セクションの値は、頻繁に参照され、アクセス時間を向上させるために複数のアクセス パスを持つ、いわゆる "ホット" チャンクの値です。 Positive integers この数を変更する主な理由は、重複率の高いボリュームの削減率を上げることです。 一般に、既定値 (100) が推奨設定であり、この値を変更する必要はありません。
ExcludeFileType 最適化から除外されるファイルの種類 ファイル拡張子の配列 一部のファイルの種類、特にマルチ メディアまたは既に圧縮されているファイルには、最適化はあまり有効ではありません。 この設定では、どの種類を除外するかを構成できます。
ExcludeFolder 最適化の対象としないフォルダーのパスの指定 フォルダーのパスの配列 パフォーマンスを向上させたり、特定のパスが最適化されないようにしたりする場合は、ボリューム上の特定のパスを最適化の対象から除外できます。
InputOutputScale データ重複除去の後処理ジョブ中に、ボリュームで使用する IO の並列化(IO キュー数)のレベルを指定する。 1~36 の正の整数 この値を変更する主な理由は、データ重複除去がボリュームに使用できる IO キューの数を制限して、高い IO ワークロードのパフォーマンスへの影響を軽減することです。 既定からこの設定を変更すると、データ重複除去の後処理ジョブの速度が遅くなることがあります。
MinimumFileAgeDays ファイルが最適化のポリシー内であるとみなされる前にファイルが作成されてから経過した日数 正の整数 (0 を含む) The Default and Hyper-V usage types set this value to 3 to maximize performance on hot or recently created files. データ重複除去がより積極的に行われるようにする場合、または重複除去に関連してさらに待機時間が増えるのを避ける場合は、この値を変更しても構いません。
MinimumFileSize ファイルが最適化のポリシー内であるとみなされる必要がある最小ファイル サイズ 32 KB より大きい正の整数 (バイト) この値を変更する主な理由は、最適化の値が限られている可能性のある小さなファイルを除外することによって、コンピューティング時間を節約することです。
NoCompress チャンクがチャンク ストアに移される前に、チャンクを圧縮するかどうか True/False ある種のファイル、特にマルチ メディア ファイルと既に圧縮済みのファイルの種類は、適切に圧縮されない可能性があります。 この設定では、ボリューム上のすべてのファイルの圧縮をオフにすることができます。 既に圧縮されているファイルが多数含まれるデータセットを最適化しているのが理想です。
NoCompressionFileType 圧縮せずにチャンク ストアに保存するべきファイルの種類 ファイル拡張子の配列 ある種のファイル、特にマルチ メディア ファイルと既に圧縮済みのファイルの種類は、適切に圧縮されない可能性があります。 この設定では、そのようなファイルの圧縮をオフにして、CPU リソースを節約できます。
OptimizeInUseFiles 有効な場合は、最適化のためのポリシーとしてこれらに対してアクティブなハンドルを持つファイルと見なされます。 True/false ワークロードによってファイルが長期間開かれたままとなっている場合、この設定を有効にします。 この設定が有効になっていない場合、ワークロードに開いているハンドルがあると、たとえそのハンドルがまれに最後にデータを追加するだけであっても、ファイルが最適化されることはありません。
OptimizePartialFiles 有効にすると、ファイル全体ではなく、ファイルのセグメントに MinimumFileAge 値が適用されます。 True/false ワークロードが大容量で頻繁に編集される、内容はほとんどがそのままのファイルを処理する場合は、この設定を有効にします。 この設定が有効でない場合、これらのファイルは常に変更され続けるため、ファイルの内容は最適化される準備ができているにもかかわらず、ファイルが最適化されません。
Verify 有効にすると、チャンク ストア内に既にあるチャンクがチャンクのハッシュに一致する場合、これらのチャンクが等しいことが、バイトで確認されます。 True/false これは、実際には同一ではないもののハッシュ値が同じである 2 つのデータのチャンクを比較することによって、チャンクを比較するハッシュ アルゴリズムが誤りを起こさないようにする整合性機能です。 実際には、このようなことが起きる可能性は極めて低くなります。 検証機能を有効にすると、最適化ジョブに大きなオーバーヘッドが追加されます。

データ重複除去システム全体の設定の変更

Data Deduplication has additional system-wide settings that can be configured via the registry. これらの設定は、システム上で実行されるすべてのジョブとボリュームに適用されます。 レジストリを編集するときは、細心の注意を払ってください。

たとえば、フル ガベージ コレクションを無効にするとします。 これがお使いのシナリオに役立つ理由の詳細は、「よく寄せられる質問」に記載されています。 PowerShell を使用してレジストリを編集するには、次のとおりコマンドを使用します。

  • データ重複除去がクラスターで実行されている場合:

      Set-ItemProperty -Path HKLM:\System\CurrentControlSet\Services\ddpsvc\Settings -Name DeepGCInterval -Type DWord -Value 0xFFFFFFFF
      Set-ItemProperty -Path HKLM:\CLUSTER\Dedup -Name DeepGCInterval -Type DWord -Value 0xFFFFFFFF
    
  • データ重複除去がクラスターで実行されていない場合:

      Set-ItemProperty -Path HKLM:\System\CurrentControlSet\Services\ddpsvc\Settings -Name DeepGCInterval -Type DWord -Value 0xFFFFFFFF
    

使用可能なシステム全体の設定

Setting name Definition Accepted values なぜこれを変更したいのですか?
WlmMemoryOverPercentThreshold この設定により、データ重複除去が実際に利用可能であると判断したよりも多くのメモリをジョブが使用できます。 たとえば設定が 300 の場合、ジョブがキャンセルされるには、ジョブは割り当てられたメモリの 3 倍のメモリを使用する必要があることを意味します。 正の整数 (300 の値は 300% または 3 倍を意味します) データ重複除去でより多くのメモリが使用されると停止する別のタスクがある場合
DeepGCInterval この設定により、通常のガベージ コレクション ジョブが完全なガベージ コレクション ジョブになる間隔が構成されます。 A setting of n would mean that every nth job was a full Garbage Collection job. バックアップ使用法の種類を含むボリュームでは、常にフル ガベージ コレクションが無効になる (レジストリ値に関係なく) 点に注意してください。 Start-DedupJob -Type GarbageCollection -Full は、バックアップ ボリュームにフル ガベージ コレクションが必要な場合に使うことができます。 整数 (-1 は無効を示します) このよく寄せられる質問を参照してください。

よく寄せられる質問

データ重複除去設定を変更すると、ジョブの速度が低下するか、終了しないか、ワークロードのパフォーマンスが低下しました。なぜですか。 これらの設定により、データ重複除去の実行方法を制御するための強力な機能が提供されます。 Use them responsibly, and monitor performance.

データ重複除去ジョブを今すぐ実行したいのですが、新しいスケジュールを作成したくありません。これは可能ですか。 はい。すべてのジョブを手動で実行できます

フルと通常のガベージ コレクションの違いは何ですか。ガベージ コレクションには、次の 2 種類があります。

  • 通常のガベージ コレクションは統計アルゴリズムを使用して、特定の基準 (メモリと IOPS が少ない) に適合する大きな参照されていないチャンクを検索します。 通常のガベージ コレクションでは、チャンクの最小の割合が参照されていない場合にのみ、チャンク格納コンテナーが圧縮されます。 この種類のガベージ コレクションは、フル ガベージ コレクションより実行が速く、使用されるリソースはより少なくなります。 通常のガベージ コレクション ジョブの既定のスケジュールでは、実行は毎週 1 回です。
  • フル ガベージ コレクションは、参照されていないチャンクをより綿密に検索し、より多くのディスク領域を解放します。 フル ガベージ コレクションでは、コンテナー内の単一のチャンクだけが参照されていない場合でも、すべてのコンテナーが圧縮されます。 フル ガベージ コレクションでは、最適化ジョブ中にクラッシュや電源障害があった場合に使用されていた可能性のある領域も解放されます。 フル ガベージ コレクション ジョブは、通常のガベージ コレクションジョブと比較してより多くの時間とシステム リソースを費やして、重複解除されたボリューム上で回復できる利用可能な領域を 100% 回復します。 フル ガベージ コレクション ジョブは一般的に、通常のガベージ コレクション ジョブより最大 5% 多くの参照されていないデータを検出して解放します。 既定のスケジュールでは、フル ガベージ コレクション ジョブは通常のガベージ コレクションのスケジュールの 4 回目ごとに実行されます。

フル ガベージ コレクションを無効にする場合の利点は何ですか。

  • ガベージ コレクションは、ボリュームの有効期間のシャドウ コピーと増分バックアップのサイズに悪影響を与える可能性があります。 頻繁に変化する、または I/O 処理が多いワークロードでは、フルガベージコレクションの作業によってパフォーマンスが低下する可能性があります。
  • システムがクラッシュしたことがわかっている場合は、PowerShell からフル ガベージ コレクション ジョブを手動で実行して、リークをクリーンアップすることができます。