Windows環境で、大規模なデータセットを頻繁に削除して再作成する場合(例: ディスクにバックアップ)を実行すると、先行する削除アクションにより、アレイ上で多数のUNMAPコマンドが実行される場合があります。同じディスク領域を書き換えた場合、書き込みパフォーマンスが低下する可能性があります。これは、受信書き込みがUNMAPの処理を待機するためです。UNMAPはディスク領域要素をアレイ側のディスク プールに返します。
このストレージ効率ロジックを推進するオペレーティング システム メカニズムは、「TRIM」と呼ばれます。TRIMがアクティブで、ファイル システム上のブロックを削除すると、NTFS(ファイル システム)は解放された領域に関するメタ データを生成し、それをI/Oスタックに渡します。I/Oスタックのディスク レベルでは、ターゲット ディスクがATA接続されているかどうかが決定されます。その場合、ATA TRIMコマンドが物理ディスク オブジェクトに送信されます。ディスクがSCSIディスクの場合、TRIMはSCSI UNMAPに変換されます。
同じデータ セクションを再度削除して書き換える場合、このプールに戻すメカニズムのストレージ効率の面は制限されます。このような状況では、それぞれの本番ジョブの期間にNTFSレベルでTRIMを無効にするか、TRIMを完全に無効にするかを選択できます。
結果として生じる質問は、ディスクが長期的にスペース効率に優れているとどのように保証できるかということです。
デバイスで再trimをトリガーするには、通常、/Lオプションを使用してデフラグ コマンドを実行します。「fsutil behavior set disabledeletenotify 1」を使用してTRIMを無効にした場合、トリムまたは割り当て解除は 削除時にのみ無効 になり、再trimは正常に動作するという印象を受ける可能性があります。これは問題ではありません。デフラグの再トリム アクションは、空のスパース ファイルを割り当て、FSCTL_MOVE_FILEを呼び出してデータを移動するメカニズムです。詳細については、「Windows Internals 7」、「Part II」、「p. 644 ff」を参照してください。結果として得られた動作は、内部の削除アクションを意味します。残念ながら、disabledeletenotify が「1」の場合、retrimコマンドは引き続き成功します。割り当て解除は行われません。
その結果、デフラグを実行する前に、ストレージを再利用するシーケンスにTRIMをアクティブ化するステップが含まれている必要があります。
さらに、システムでTRIMをグローバルに無効にした場合は、アクティブ化し、デフラグしてから再度非アクティブ化すると、非アクティブ化プロセスが不完全な再トリム コマンド実行で衝突することがありますが、コマンドはプロンプトに戻ります。Windows 2019でこれをラボでテストする際、disabledeletenotifyを再度「1」に設定する前に、数秒待つ必要があることが判明しました。これは、デフラグ コマンドと、バックグラウンドでのオプティマイザー サービスの間の相互作用の結果であると考えています。
Drive Optimizerを使用してTRIMをスケジュールする場合、デフォルトのエクスプローラー メニューには、タスク スケジューラーで「ScheduledDefrag」(/Microsoft/Windows/Defrag)というスケジュール設定されたタスクが必要です。タスクを変更すると、Drive Optimizerはこの事実を検出し、続行する前にデフォルトを復元するように求めます。タスクを無効にしても、デフラグ コマンドは手動で実行できますが、スケジュールすることはできません。
この「ScheduledDefrag」タスクは、システム メンテナンス(コントロール パネル\すべてのコントロール パネル アイテム\セキュリティとメンテナンス\自動メンテナンス)とも呼ばれます。
そのため、これらのシステムのデフォルト設定はそのままにしておき、代わりにタスク スケジューラーで新しいタスクを作成することを検討することをお勧めします。
ステップ3のタイムアウト値は、ラボ テストの一部です。デフラグが成功するまでに10秒を超える時間は必要なく、60秒が妥当な出発点であると考えています。アレイ側の割り当て済み容量値と、ファイル システムで報告された使用済み容量の値の組み立てとの間に不一致がある場合は、300秒(5分)などの大きな値を使用してみてください。
次の表では、タスク スケジューラーにインポートするためのテンプレートを提供し、ベースとして使用します。以下のxmlコードをファイルにコピーして貼り付け、構成するサーバー システムの到達可能な場所にファイルを配置し、タスクのインポート アクションを使用してタスクをインポートします。以下のタスク テンプレートは 、DellSanDiskMaintenanceと呼ばれます。上記の4ステップを毎週土曜日の20:00(午後8時)に実行し、スケジューラーのルートに配置されます。たとえば、次のようになります。
Dell Technologies 2023-07-07T09:21:50.4883878 Dell Technologies This task is an example of how to optimize thin SAN drives, if TRIM is globally disabled on the system. \DellSanDiskMaintenance D:AI(A;;FA;;;BA)(A;;FA;;;SY)(A;;FRFX;;;LS)(A;;FR;;;AU) 2023-07-01T20:00:00 PT2H true 1 S-1-5-18 HighestAvailable IgnoreNew true true true false false false false true true false false false true P1D P4D false false PT4H 7 %windir%\system32\fsutil.exe behavior set disabledeletenotify 0 %windir%\system32\defrag.exe /C /L /U timeout /t 60 %windir%\system32\fsutil.exe behavior set disabledeletenotify 1