5.2. 論理ボリュームのキャッシュ
dm-cache
または dm-writecache
ターゲットを使用して論理ボリュームをキャッシュできます。
dm-cache
は、高速なストレージデバイス (SSD) を、低速なストレージデバイス (HDD) のキャッシュとして利用します。読み取りおよび書き込みデータをキャッシュし、頻繁に使用されるデータへのアクセス時間を最適化します。読み取り操作と書き込み操作を強化することでパフォーマンスが大幅に向上する混合ワークロード環境で役立ちます。
dm-writecache
は、書き込みデータがプライマリーストレージデバイス (HDD) にコミットされる前に、高速なストレージメディア (SSD) を使用して一時的に書き込みデータを保持することで、書き込み操作を最適化します。書き込みのパフォーマンスによってデータ転送プロセスが遅くなる可能性がある、書き込みが多いアプリケーションに役立ちます。
5.2.1. dm-cache による論理ボリュームのキャッシュ リンクのコピーリンクがクリップボードにコピーされました!
dm-cache
を使用して LV をキャッシュすると、キャッシュプールが作成されます。キャッシュプールは、キャッシュされた実際の内容を保存するキャッシュデータと、キャッシュに保存された内容を追跡するキャッシュメタデータを組み合わせた LV です。このプールは、データをキャッシュするために特定の LV に関連付けられます。
dm-cache
は、2 種類のブロックを対象とします。頻繁にアクセスされる (ホット) ブロックは、キャッシュに移動されます。あまり頻繁にアクセスされない (コールド) ブロックは、低速のデバイスに残ります。
前提条件
- 管理アクセスがある。
手順
キャッシュする LV とそのボリュームグループを表示します。
lvs -o lv_name,vg_name
# lvs -o lv_name,vg_name LV VG LogicalVolumeName VolumeGroupName
Copy to Clipboard Copied! Toggle word wrap Toggle overflow キャッシュプールを作成します。
lvcreate --type cache-pool --name CachePoolName --size Size VolumeGroupName /FastDevicePath
# lvcreate --type cache-pool --name CachePoolName --size Size VolumeGroupName /FastDevicePath
Copy to Clipboard Copied! Toggle word wrap Toggle overflow CachePoolName は、キャッシュプールの名前に置き換えます。Size は、キャッシュプールのサイズに置き換えます。VolumeGroupName は、ボリュームグループの名前に置き換えます。/FastDevicePath は、SSD や NVME などの高速デバイスへのパスに置き換えます。
キャッシュプールを LV にアタッチします。
lvconvert --type cache --cachepool VolumeGroupName/CachePoolName VolumeGroupName/LogicalVolumeName
# lvconvert --type cache --cachepool VolumeGroupName/CachePoolName VolumeGroupName/LogicalVolumeName
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
LV がキャッシュされたことを確認します。
lvs -o lv_name,pool_lv
# lvs -o lv_name,pool_lv LV Pool LogicalVolumeName [CachePoolName_cpool]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.2.2. dm-writecache による論理ボリュームのキャッシュ リンクのコピーリンクがクリップボードにコピーされました!
dm-writecache
を使用して LV をキャッシュすると、論理ボリュームと物理ストレージデバイスの間にキャッシュレイヤーが作成されます。dm-writecache
は、書き込み操作を SSD などの高速ストレージメディアに一時的に保存し、最終的にプライマリーストレージデバイスに書き戻すことで、書き込み集中型のワークロードを最適化します。
前提条件
- 管理アクセスがある。
手順
キャッシュする論理ボリュームとそのボリュームグループを表示します。
lvs -o lv_name,vg_name
# lvs -o lv_name,vg_name LV VG LogicalVolumeName VolumeGroupName
Copy to Clipboard Copied! Toggle word wrap Toggle overflow キャッシュボリュームを作成します。
lvcreate --name CacheVolumeName --size Size VolumeGroupName /FastDevicePath
# lvcreate --name CacheVolumeName --size Size VolumeGroupName /FastDevicePath
Copy to Clipboard Copied! Toggle word wrap Toggle overflow CacheVolumeName は、キャッシュボリュームの名前に置き換えます。Size は、キャッシュプールのサイズに置き換えます。VolumeGroupName は、ボリュームグループの名前に置き換えます。/FastDevicePath は、SSD や NVME などの高速デバイスへのパスに置き換えます。
キャッシュボリュームを非アクティブ化します。
lvchange -an VolumeGroupName/CacheVolumeName
# lvchange -an VolumeGroupName/CacheVolumeName
Copy to Clipboard Copied! Toggle word wrap Toggle overflow VolumeGroupName は、ボリュームグループの名前に置き換えます。CacheVolumeName は、キャッシュボリュームの名前に置き換えます。
キャッシュボリュームを LV にアタッチします。
lvconvert --type writecache --cachevol CacheVolumeName VolumeGroupName/LogicalVolumeName
# lvconvert --type writecache --cachevol CacheVolumeName VolumeGroupName/LogicalVolumeName
Copy to Clipboard Copied! Toggle word wrap Toggle overflow CacheVolumeName は、キャッシュボリュームの名前に置き換えます。VolumeGroupName は、ボリュームグループの名前に置き換えます。LogicalVolumeName は、論理ボリュームの名前に置き換えます。
検証
LV がキャッシュされたことを確認します。
lvs -o lv_name,pool_lv
# lvs -o lv_name,pool_lv LV Pool LogicalVolumeName [CacheVolumeName_cvol]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.2.3. 論理ボリュームのキャッシュ削除 リンクのコピーリンクがクリップボードにコピーされました!
LV からキャッシュを削除するには、主に 2 つの方法を使用します。
- 分割
- キャッシュボリューム自体を保持しながら、キャッシュを LV からデタッチできます。この場合、LV はキャッシュメカニズムの恩恵を受けられなくなりますが、キャッシュボリュームとそのデータはそのまま残ります。キャッシュボリュームは保持されますが、キャッシュ内のデータは再利用できず、次回キャッシュ設定で使用されるときに消去されます。
- キャッシュ削除
- キャッシュを LV からデタッチし、さらにキャッシュボリュームを完全に削除できます。この操作により、キャッシュが効果的に破棄され、領域が解放されます。
前提条件
- 管理アクセスがある。
手順
キャッシュされた LV を表示します。
lvs -o lv_name,pool_lv,vg_name
# lvs -o lv_name,pool_lv,vg_name LV Pool VG LogicalVolumeName [CacheVolumeName_cvol] VolumeGroupName
Copy to Clipboard Copied! Toggle word wrap Toggle overflow キャッシュされたボリュームをデタッチまたは削除します。
キャッシュされたボリュームをデタッチするには、次のコマンドを使用します。
lvconvert --splitcache VolumeGroupName/LogicalVolumeName
# lvconvert --splitcache VolumeGroupName/LogicalVolumeName
Copy to Clipboard Copied! Toggle word wrap Toggle overflow キャッシュされたボリュームをデタッチして削除するには、次のコマンドを使用します。
lvconvert --uncache VolumeGroupName/LogicalVolumeName
# lvconvert --uncache VolumeGroupName/LogicalVolumeName
Copy to Clipboard Copied! Toggle word wrap Toggle overflow VolumeGroupName は、ボリュームグループの名前に置き換えます。LogicalVolumeName は、論理ボリュームの名前に置き換えます。
検証
LV がキャッシュされていないことを確認します。
lvs -o lv_name,pool_lv
# lvs -o lv_name,pool_lv
Copy to Clipboard Copied! Toggle word wrap Toggle overflow