Linuxブロックデバイスがクリーンアップ可能かどうかはどうすればわかりますか?

Linuxブロックデバイスがクリーンアップ可能かどうかはどうすればわかりますか?

fstrimLinuxブロックデバイスをマウントする必要があり、それほど冗長ではありません。blkdiscardご覧のとおり、ここでは書き込み操作も必要です。

実際に何かをトリミングしたりドロップしたりしなくても、ブロックデバイスがトリム/ドロップをサポートしているかどうかを知ることができますか?

答え1

デバイスの最大廃棄サイズを確認できます。例えば

$ cat /sys/block/X/queue/discard_max_hw_bytes

X適切に交換)。

0より大きい値が表示された場合この装置は廃棄をサポートします:

0 の値は、 discard_max_hw_bytesデバイスが廃棄機能をサポートしていないことを示します。

最大値サポートdiscard_max_bytesドロップサイズは、次のように同じディレクトリに表示されます。これは、ドロップ待ち時間を制限するためにハードウェアがサポートするよりも小さくすることができます(制限を変更するために作成できます)。

discard_max_hw_bytesデバイスのハードウェア制限ですが、この設定はソフトウェア制限です。一部のデバイスは、大量廃棄を発行したときに大きな待ち時間を示します。より低い値を設定すると、Linuxはより小さな廃棄を発行し、大規模な廃棄操作による待ち時間を減らすのに役立ちます。

これは、ディスクだけでなく、ループデバイス、デバイスマッパーデバイスなど、さまざまなブロックデバイスにも当てはまります。

答え2

このhdparmコマンドを使用すると、ディスクデバイスで下位レベルのコマンドを実行できます。

このオプションhdparm -I /dev/sda(またはsdaではなくブロックデバイスの挿入)は、ドライブから情報を照会します。ドライブでサポートされているタスクを一覧表示するセクションがあります。

hdparm -I /dev/sda | grep TRIMTRIM対応ドライバで実行すると、以下が出力されます。

    *    Data Set Management TRIM supported (limit 1 block)

出力には他の有用な情報がたくさんあり、hdparmコマンドは非常に便利です。

hdparmこれは、デバイスでSATAコマンドを実行するように設計されたSATAおよび一部のSCSIデバイスにのみ適用されます。

答え3

デバイスがクリーンアップ/廃棄をサポートしていることを確認するには、Linuxユーティリティを使用することもできますlsblk。デバイスの削除制限(たとえば、granularityおよびmax_sectors)がゼロ以外の場合は、削除/スプラッシュサポートが有効になります。

$ lsblk -D
NAME      DISC-ALN DISC-GRAN DISC-MAX DISC-ZERO
sda              0      512B       2G         0

関連情報