3.10. VDO での TRIM および DISCARD の効果のテスト
この手順では、TRIM
コマンドおよび DISCARD
コマンドが、VDO テストボリュームで削除したファイルからブロックを適切に解放するかどうかをテストします。これは、discard (破棄) が VDO に、その領域が使用されなくなったことを通知することを示しています。
前提条件
- 新たに作成した VDO テストボリュームがマウントされている。詳細は、「VDO テストボリュームの作成」 を参照してください。
手順
テスト結果を記録できるテーブルを準備します。
手順 使用されているファイル領域 (MB) 使用されているデータブロック 使用されている論理ブロック 初期
1 GiB ファイルの追加
fstrim
の実行1 GiB ファイルの削除
fstrim
の実行ファイルシステムをトリミングして、不要なブロックを削除します。
# fstrim /mnt/vdo-test
コマンドには時間がかかる場合があります。
ファイルシステムで初期領域の使用量を記録します。
$ df -m /mnt/vdo-test
VDO ボリュームが使用する物理データブロックおよび論理データブロックの数を確認します。
# vdostats --verbose | grep "blocks used"
VDO ボリュームに重複しないデータを含む 1 GiB ファイルを作成します。
$ dd if=/dev/urandom of=/mnt/vdo-test/file bs=1M count=1K
領域の使用量を再度記録します。
$ df -m /mnt/vdo-test # vdostats --verbose | grep "blocks used"
ファイルシステムは、追加の 1 GiB を使用する必要があります。
data blocks used
とlogical blocks used
の値も同じように増加するはずです。ファイルシステムを再度トリミングします。
# fstrim /mnt/vdo-test
領域使用量を再度調べて、トリミングが物理ボリュームの使用量に影響がないことを確認します。
$ df -m /mnt/vdo-test # vdostats --verbose | grep "blocks used"
1 GiB ファイルを削除します。
$ rm /mnt/vdo-test/file
領域の使用量を再度確認して記録します。
$ df -m /mnt/vdo-test # vdostats --verbose | grep "blocks used"
ファイルシステムは、ファイルが削除されたことを認識していますが、ファイルの削除が基礎となるストレージに通知されていないため、物理ブロックまたは論理ブロックの数に変更がありません。
ファイルシステムを再度トリミングします。
# fstrim /mnt/vdo-test
領域の使用量を再度確認して記録します。
$ df -m /mnt/vdo-test # vdostats --verbose | grep "blocks used"
fstrim
ユーティリティーは、ファイルシステムの空きブロックを検索し、未使用のアドレスの VDO ボリュームにTRIM
コマンドを送信します。これにより、関連する論理ブロックが解放されます。VDO はTRIM
コマンドを処理し、基礎となる物理ブロックを解放します。
関連情報
-
TRIM
コマンド、DISCARD
コマンド、fstrim
ユーティリティー、およびdiscard
マウントオプションの詳細は、5章未使用ブロックの破棄 を参照してください。