5.5. 破棄操作の高速化
VDO は、すべての LVM-VDO デバイス上で、未使用ブロックを基盤となるストレージに通知する DISCARD(TRIM) 操作の最大サイズを設定します。デフォルト値は 1 で、これは 8 セクターまたは 4KB(最大) に相当します。DISCARD サイズを増やすと、破棄操作の速度が大幅に向上します。ただし、破棄のパフォーマンス向上は、他の書き込み操作の速度維持とトレードオフの関係にあります。
最適な DISCARD セクターサイズは、基盤となるストレージスタックの特性によって異なります。過度に大きな DISCARD ブロック、または過度に小さな DISCARD ブロックを使用すると、パフォーマンスに悪影響を与える可能性があります。適切なセクターサイズを特定するには、複数の値をテストし、特定の環境で許容できるパフォーマンスを提供する値を選択してください。
たとえば、ローカルファイルシステムを保存する LVM-VDO ボリュームの場合は、デフォルト値を使用するのが最適です。SCSI ターゲットとして機能する LVM-VDO ボリュームの場合、適度に大きな DISCARD サイズが最適です。たとえば、256 ブロックは 1MB の破棄に相当します。最大 DISCARD サイズが 2560 ブロック (5 MB の破棄に相当) を超えないようにすることを推奨します。サイズを選ぶ際は、8 の倍数であることを確認してください。VDO は、破棄されたデータが 8 セクター境界と一致しない場合、それを効果的に処理できない可能性があります。
手順
LVM-VDO ボリュームを非アクティブ化します。
# lvchange -an <vg_name>/<vdo_volume>DISCARD セクターの新しい最大サイズを設定します。
# lvchange --vdosettings "vdo_max_discard=<value>" <vg_name>/<vdo_volume>LVM-VDO ボリュームをアクティブ化します。
# lvchange -ay <vg_name>/<vdo_volume>
検証
破棄値が正常に変更されたことを確認してください。
# lvs -o vdo_max_discard <vg_name>/<vdo_volume>