LVM シンプール シンボリューム 空きブロック、スペースの再利用

LVM シンプール シンボリューム 空きブロック、スペースの再利用

私は LVM シンボリュームを使用して、iSCSI 経由で多数のコンピューターをネットワーク ブートしています。時々、そのマシンのスペースを解放します。残念ながら、そのスペースはシンボリューム上で解放されません。そのため、partclone時々パーティションを解放してスペースを解放します。仮想化では、未使用のスペースをゼロにするツールを使用して、スペースを解放できます。LVM シン プール/シン ボリュームでスペースを再利用するための同様の方法またはより優れた方法はありますか?

前もって感謝します

答え1

LVM シンは DISCARD (より広義には TRIM として知られています) をサポートしています。理論的には、これを iSCSI で動作させることは可能なはずです (同等の UNMAP コマンドがあります) が、それに関する情報はまだ見つかりませんでした。

これらのボリュームをホストしているマシンでは、 を使用してfstrim空き領域を解放できます。マニュアル ページでも明示的に言及されています。

fstrim は、マウントされたファイルシステムで、ファイルシステムで使用されていないブロックを破棄 (または「トリム」) するために使用されます。これは、ソリッド ステート ドライブ (SSD) やシン プロビジョニングされたストレージに役立ちます。

これが機能するには、Linux がファイルシステムをサポートしている必要があり、そのサポートには TRIM が含まれている必要があります。ネットワーク ブートされたコンピューターが Windows を実行している場合は、おそらく NTFS です。どうやら NTFS-3G は TRIM をサポートしているようです。

fstrimマウントされたファイルシステムでのみ動作します。

次のようになります:

DISCARDデモ

アップデート: コメントで説明されているように、Linux SCSI ターゲットは、ブロック バックストアに SSD を識別するフラグを提供します。is_nonrotまた、UNMAP SCSI コマンドもサポートしています。Windows (少なくとも Windows 10) は、iSCSI 経由で SSD を正しく検出し、UNMAP コマンドを発行して、未使用の領域を直ちに解放します。

関連情報