ループデバイスでfstrimを実行する方法は?

ループデバイスでfstrimを実行する方法は?

私のLVMにはシンプロビジョニングが有効になっています。わずかに異なるext4ファイルシステムを持つほぼ同じ2つのシン論理ボリュームがあります。最初のボリュームはファイルシステムを保存するために完全に使用されます。 2番目のボリュームでは、ファイルシステムはより小さなオフセットに保存されます。オプションでインストールされます-o offset=1048576

最初のボリュームはこのコマンドを使用してクリーンアップできますが、fstrim2番目のボリュームはクリーンアップできません。エラーが発生します。

fstrim: second: the discard operation is not supported

私はこれがオフセットマウントのためだと思います。オフセットオプションのマウントコマンドを受け取ると、一時ループデバイスを作成してマウントします。したがって、主な容疑者は屋根ふき装置です。

ボリュームの開始ブロックアドレスにオフセットされたファイルシステムを何とか整理できますか?

ベストアンサー1

不可能に見える。理由を把握しようとしています。コメントは次のとおりです。loop.c:

        /*
         * If the backing device is a block device, mirror its zeroing
         * capability. Set the discard sectors to the block device's zeroing
         * capabilities because loop discards result in blkdev_issue_zeroout(),
         * not blkdev_issue_discard(). This maintains consistent behavior with
         * file-backed loop devices: discarded regions read back as zero.
         */

LVMシンデバイスはゼロ化機能を報告しません(write_zeroes_max_bytesyes 0)。行って確認してdm-thin.c確認しました。

おすすめ記事