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 種類のブロックを対象とします。頻繁にアクセスされる (ホット) ブロックは、キャッシュに移動されます。あまり頻繁にアクセスされない (コールド) ブロックは、低速のデバイスに残ります。

前提条件

  • 管理アクセスがある。

手順

  1. キャッシュする LV とそのボリュームグループを表示します。

    # lvs -o lv_name,vg_name
      LV                   VG
      LogicalVolumeName    VolumeGroupName
  2. キャッシュプールを作成します。

    # lvcreate --type cache-pool --name CachePoolName --size Size VolumeGroupName /FastDevicePath

    CachePoolName は、キャッシュプールの名前に置き換えます。Size は、キャッシュプールのサイズに置き換えます。VolumeGroupName は、ボリュームグループの名前に置き換えます。/FastDevicePath は、SSD や NVME などの高速デバイスへのパスに置き換えます。

  3. キャッシュプールを LV にアタッチします。

    # lvconvert --type cache --cachepool VolumeGroupName/CachePoolName VolumeGroupName/LogicalVolumeName

検証

  • LV がキャッシュされたことを確認します。

    # lvs -o lv_name,pool_lv
    
      LV                   Pool
      LogicalVolumeName    [CachePoolName_cpool]

関連情報

  • lvcreate(8)lvconvert(8)lvs(8) man ページ

5.2.2. dm-writecache による論理ボリュームのキャッシュ

dm-writecache を使用して LV をキャッシュすると、論理ボリュームと物理ストレージデバイスの間にキャッシュレイヤーが作成されます。dm-writecache は、 書き込み操作を SSD などの高速ストレージメディアに一時的に保存し、最終的にプライマリーストレージデバイスに書き戻すことで、書き込み集中型のワークロードを最適化します。

前提条件

  • 管理アクセスがある。

手順

  1. キャッシュする論理ボリュームとそのボリュームグループを表示します。

    # lvs -o lv_name,vg_name
      LV                   VG
      LogicalVolumeName    VolumeGroupName
  2. キャッシュボリュームを作成します。

    # lvcreate --name CacheVolumeName --size Size VolumeGroupName /FastDevicePath

    CacheVolumeName は、キャッシュボリュームの名前に置き換えます。Size は、キャッシュプールのサイズに置き換えます。VolumeGroupName は、ボリュームグループの名前に置き換えます。/FastDevicePath は、SSD や NVME などの高速デバイスへのパスに置き換えます。

  3. キャッシュボリュームを LV にアタッチします。

    # lvconvert --type writecache --cachevol CacheVolumeName VolumeGroupName/LogicalVolumeName

    CacheVolumeName は、キャッシュボリュームの名前に置き換えます。VolumeGroupName は、ボリュームグループの名前に置き換えます。LogicalVolumeName は、論理ボリュームの名前に置き換えます。

検証

  • LV がキャッシュされたことを確認します。

    # lvs -o lv_name,pool_lv
    
      LV                   Pool
      LogicalVolumeName    [CacheVolumeName_cvol]

関連情報

  • lvcreate(8)lvconvert(8)lvs(8) man ページ

5.2.3. 論理ボリュームのキャッシュ削除

LV からキャッシュを削除するには、主に 2 つの方法を使用します。

分割
キャッシュボリューム自体を保持しながら、キャッシュを LV からデタッチできます。この場合、LV はキャッシュメカニズムの恩恵を受けられなくなりますが、キャッシュボリュームとそのデータはそのまま残ります。キャッシュボリュームは保持されますが、キャッシュ内のデータは再利用できず、次回キャッシュ設定で使用されるときに消去されます。
キャッシュ削除
キャッシュを LV からデタッチし、さらにキャッシュボリュームを完全に削除できます。この操作により、キャッシュが効果的に破棄され、領域が解放されます。

前提条件

  • 管理アクセスがある。

手順

  1. キャッシュされた LV を表示します。

    # lvs -o lv_name,pool_lv,vg_name
    
      LV                   Pool                   VG
      LogicalVolumeName    [CacheVolumeName_cvol] VolumeGroupName
  2. キャッシュされたボリュームをデタッチまたは削除します。

    • キャッシュされたボリュームをデタッチするには、次のコマンドを使用します。

      # lvconvert --splitcache VolumeGroupName/LogicalVolumeName
    • キャッシュされたボリュームをデタッチして削除するには、次のコマンドを使用します。

      # lvconvert --uncache VolumeGroupName/LogicalVolumeName

      VolumeGroupName は、ボリュームグループの名前に置き換えます。LogicalVolumeName は、論理ボリュームの名前に置き換えます。

検証

  • LV がキャッシュされていないことを確認します。

    # lvs -o lv_name,pool_lv

関連情報

  • lvconvert(8)lvs(8) man ページ
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.