fstrimの成功した出力は、TRIMが各物理SSDに到達したことを証明しません。エンドツーエンドの検証には、ファイルシステムの送信と下位ストレージ層からの証拠の照合が必要です。
NASでは、破棄されたブロックがファイルシステム、暗号化、LVM、ソフトウェアRAID、コントローラードライバー、仮想ディスクを通過してからSSDに到達することがあります。この手順は、宣伝されているサポートと観察されたディスカードI/Oを区別し、ハードウェアRAIDがパスを隠す場所を示し、ライブプールでの破壊的なテストを避けます。
TRIMがSSDに到達した証拠とは何か?
TRIMの検証にはいくつかのレベルがあります。ファイルシステムはFITRIMリクエストを受け入れ、Linuxブロック層はディスカードI/Oを発行し、ドライバーがそれを完了し、コントローラーはメンバーSSDが受け取る前にコマンドを変換、吸収、または拒否することがあります。
fstrimによって報告される潜在的なディスカードバイト数は、ファイルシステムからブロックスタックに送信された範囲を示します。これらはコントローラーの転送、物理的なフラッシュ消去、または繰り返し実行が新たに回収された領域を表すことを保証しません。
最低限の観察で支持される最も強い表現を使ってください。ブロックトレースはLinuxが可視デバイスにディスカードを発行したことを証明できますが、隠されたRAID境界を超えてその主張を拡張できるのはターゲットまたはコントローラーのテレメトリーだけです。その後SSDが行うことはSSDのガベージコレクションに属し、FITRIMの出力には含まれません。
テストを始める前にストレージパスをマッピングする
マウントされたデータセットまたは共有から始めて、その実際のブロックパスを解決します。一般的なチェーンはファイルシステム、暗号化マッパー、論理ボリューム、ソフトウェアRAID、コントローラー仮想ディスク、物理SSDです。NASによっては複数の層を省略したり、最終メンバーを完全に隠す場合があります。
マウントポイント、ファイルシステム、デバイスツリー、コントローラーモデル、ドライバー、ファームウェア、動作モード、RAIDレベル、およびSSDモデルを記録します。HBA、JBOD、パススルー、RAIDモードという言葉は表示の選択肢を示しますが、コントローラーやファームウェアのリリース間で同一のディスカード動作を保証するものではありません。
また、コマンドファミリーを特定します。Linuxではこの操作をdiscardと呼びます。SATAデバイスは一般的にATA Data Set Management with TRIMを受け取り、SCSIストレージはUNMAPを使用し、NVMeはデアロケーションの意味を持ちます。ブリッジやコントローラーは物理デバイスに対して関連操作を変換し転送する必要があります。
可視レイヤーごとに宣伝されているディスカードサポートを確認する
を実行してください lsblk -D を確認し、マウントされたファイルシステムからLinuxが公開する最も低いデバイスへデバイスツリーをたどります。非ゼロの DISC-GRAN および DISC-MAX 値が非ゼロの場合、そのレイヤーはディスカード機能を宣伝しており、ゼロの場合はサポートがないか隠されていることを示します。
Linuxのディスカードキュー制限は、ゼロの粒度または最大値をディスカードサポートなしとして定義します。トップレベルの仮想ディスクだけでなく、対応する/sys/block/DEVICE/queue/の値を確認してください。
マッパー設定は依然としてパススルーを抑制する可能性があります。ストレージスタックを通したTRIMの実用ガイドでは、デバイスマッパーテーブルとディスカード制限のチェック方法を示しています。非ゼロの値はテストを続行する許可と見なし、コマンドがメンバーSSDに到達した証明とはみなさないでください。
制御されたディスカードを生成し、最も低い可視デバイスをトレースする
生のセクター範囲ではなく、正常にマウントされたファイルシステム内の使い捨てテスト割り当てを使用してください。割り当てが確定されていることを確認し、それを削除し、ファイルシステムを同期させ、関連するブロックデバイスをトレースしながら1回のターゲットfstrimを実行します。リビルド、スクラブ、劣化状態、または大量書き込み中のテストは避けてください。
ディスカードパススルーの監査に特化した手順は、デバイス統計とblktraceを使用してディスカードイベントを書き込みから区別します。トレース出力やフィールド位置はバージョンによって異なるため、NASにインストールされているツールのコマンドフィールドを確認してください。
- マウントポイントをすべてのOSで見えるバックデバイスに解決する
- ディスカードカウンターと現在のキュー機能をキャプチャする
- 最も関連するデバイスでディスカードフィルター付きトレースを開始する
- 使い捨てのテスト割り当てを作成、コミット、削除する
- そのマウントポイントに対して1回fstrimを実行する
- トレースを停止し、各レイヤーのイベントを比較する
上位のマッパーまたはRAIDノードでのディスカード問題は、そのノードにリクエストが到達したことのみを証明します。最も低い可視メンバーでのディスカード問題の方が強い証拠です。ドライバーの完了はLinuxが完了を受け取ったことを示しますが、隠されたコントローラーからドライブへのトラフィックは明らかにできません。
ハードウェアRAIDの背後で証明がどこまで及ぶかを理解する
ハードウェアRAIDコントローラーは、メンバーSSDとそのコマンドストリームをLinuxから見えなくしながら、1つの仮想ディスクを提示することがあります。その構成では、ブロックトレースはコントローラードライバーの境界まで到達できますが、どの物理SSDがTRIM、UNMAP、または変換された同等のコマンドを受け取ったかは特定できません。
RAIDコントローラー背後のSSDのテスト例では、調査したコントローラーのRAIDモードでディスカード機能がゼロと表示され、JBODモードでは異なる露出がありました。これはモデル固有の診断パターンとして扱い、すべてのコントローラーに当てはまるルールではありません。
証明は、信頼できるコントローラーログ、ターゲットのプロビジョニング状態、プロトコルトレース、または文書化された物理ドライブのカウンターでのみ拡張してください。SMARTデータには普遍的なTRIM受領カウンターはありません。コントローラーが適切なテレメトリを提供しない場合、正直な結果は「ディスカードはコントローラー側のデバイスに到達したが、物理的な受領は未確認」です。
結果を過大評価せずに解釈する
次のアクションを選択するには、最も低い確認済みの観察結果を使用してください。この表は、機能、観察されたトラフィック、および物理的な受領を分けているため、クリーンなfstrimの結果が証拠より強い主張になることを防ぎます。
| 観察 | 証明すること | 証明しないこと | 次のアクション |
|---|---|---|---|
| トップレベルのディスカード値はゼロである | 表示されているデバイスはディスカードを宣伝していない | メンバーSSDがTRIMを直接サポートしているかどうか | コントローラーモード、ドライバー、およびファームウェアのドキュメントを確認する |
| 値はゼロでないがトレースに破棄は現れない | 能力は宣伝されているがテストトラフィックは観測されていない | そのFITRIMがテストされたレイヤーを横断した | マウント、割り当て、トレースターゲット、およびマッパー設定を検証 |
| 破棄は上位の仮想デバイスにのみ現れる | 要求がその仮想レイヤーに到達した | コントローラーの転送またはメンバードライブの受信 | 下位デバイスを追跡するかコントローラーテレメトリを検査 |
| 破棄が最も低いOS可視メンバーに到達した | Linuxがそのデバイス境界に破棄を発行した | 隠れたファームウェアの動作またはNAND消去のタイミング | デバイスとファームウェアの詳細とともに限定的な合格を記録 |
| テスト中のコントローラーまたはターゲットのテレメトリの変化 | 監視対象が関連する操作を処理した | 他のモードやモデルでの普遍的な動作 | 証拠を保存し、構成変更後にのみ繰り返してください |
合格はテストされたファイルシステム、スタック、コントローラーモード、ファームウェア、およびSSDモデルにのみ適用されます。コントローラーの更新、RAID移行、暗号化変更、またはストレージレイアウトの再構築後に再確認してください。なぜなら、変更されたレイヤーは破棄の露出や変換を変える可能性があるからです。
検証をデータ損失に変えないでください
稼働中のNASプールに対して生の破棄コマンドを実行しないでください。blkdiscardのデータ損失境界は明確です:コマンドは選択された範囲のブロックを破棄し、その強制オプションは排他アクセス保護を回避できます。
その後のゼロ読み取りに依存しないでください。Linuxはポスト破棄読み取り動作がデバイスがゼロ返却動作を宣伝していても信頼できない場合があると文書化しています。コントローラーは物理NANDの処理を公開せずに結果をエミュレートすることも可能です。
物理的な確認が必須の場合は、テスト済みのバックアップとコントローラー固有の指示を備えた、分離された使い捨てSSDまたはスクラッチ論理ユニットを使用してください。運用中のNASでは、安全な結論はしばしば限定的です:破棄を最も低い観測可能な境界まで証明し、隠れている部分を文書化し、「未検証」を「はい」に変えるためだけにプールを危険にさらさないでください。
サポートとヒント
もっと読む

なぜRAIDアレイは停電後に非アクティブになるのですか?
非アクティブなアレイは、多くの場合、メタデータは見つかったものの、システムが不正なシャットダウン後に安全に起動するための十分な信頼性やメンバーを持っていなかったことを意味します。

RAIDの欠落メンバーを無理にオンラインに戻すリスクとは何ですか?
強制オプションは、古いメタデータ、未処理のパリティ、書き込み漏れ、またはアクティブなプールに関する安全チェックを回避できます。使用する前に証拠を確認し、保存してください。

故障しているSATAケーブルと故障しつつあるNASドライブの見分け方
エラーがディスクに起因するかSATA経路に起因するかを追跡し、ハードウェアを交換する前にトランスポートカウンターをメディアの健康状態の証拠から分離してください。

