検索

68.10. キャッシュを有効にして論理ボリュームのパフォーマンスを改善

download PDF

LVM 論理ボリュームにキャッシュを追加して、パフォーマンスを向上できます。LVM は、SSD などの高速なデバイスを使用して、論理ボリュームに I/O 操作をキャッシュします。

以下の手順では、高速デバイスから特別な論理ボリュームを作成し、この特別な論理ボリュームを元の論理ボリュームに接続して、パフォーマンスを向上させます。

68.10.1. LVM でのキャッシュの取得方法

LVM は、以下のようなキャッシュの取得方法を提供します。論理ボリューム上のさまざまなタイプの I/O パターンに適しています。

dm-cache

このメソッドは、高速なボリユームで頻繁に使用されるデータをキャッシュして、このようなデータへのアクセス時間を短縮します。このメソッドは、読み取りおよび書き込みの両方の操作をキャッシュします。

dm-cache メソッドは、cache タイプの論理ボリュームを作成します。

dm-writecache

このメソッドは、書き込み操作のみをキャッシュします。高速なボリュームは書き込み操作を保存し、それらをバックグラウンドで低速なディスクに移行します。高速ボリュームは通常 SSD または永続メモリー (PMEM) ディスクです。

dm-writecache メソッドは、writecache タイプの論理ボリュームを作成します。

関連情報

  • lvmcache(7) man ページ

68.10.2. LVM キャッシュコンポーネント

LVM は、キャッシュを LVM 論理ボリュームに追加するためのサポートを提供します。LVM キャッシュは、LVM 論理ボリュームタイプを使用します。

Main LV
より大きく、より遅い、元のボリューム。
キャッシュプール LV
メイン LV からデータをキャッシュするために使用できる複合 LV。キャッシュデータを保持するためのデータと、キャッシュデータを管理するためのメタデータの 2 つのサブ LV があります。データおよびメタデータ用に特定のディスクを設定できます。キャッシュプールは dm-cache でのみ使用できます。
Cachevol LV
メイン LV からデータをキャッシュするために使用できる線形 LV。データとメタデータ用に個別のディスクを設定することはできません。cachevol は、dm-cache または dm-writecache でのみ使用できます。

これらの関連付けられた LV はすべて、同じボリュームグループにある必要があります。

メインの論理ボリューム (LV) を、キャッシュされたデータを保持する高速で通常は小さい LV と組み合わせることができます。高速 LV は、SSD ドライブなどの高速ブロックデバイスから作成されます。論理ボリュームのキャッシュを有効にすると、LVM は元のボリュームの名前を変更および非表示にし、元の論理ボリュームで設定される新しい論理ボリュームを表示します。新しい論理ボリュームの設定は、キャッシュ方法と、cachevol オプションまたは cachepool オプションを使用しているかどうかによって異なります。

cachevol オプションおよび cachepool オプションは、キャッシングコンポーネントの配置に対するさまざまなレベルの制御を公開します。

  • cachevol オプションを使用すると、高速なデバイスは、データブロックのキャッシュされたコピーとキャッシュ管理用のメタデータの両方を保存します。
  • cachepool オプションを使用すると、別のデバイスはデータブロックのキャッシュコピーとキャッシュ管理用のメタデータを保存できます。

    dm-writecache メソッドは、cachepool と互換性がありません。

すべての設定において、LVM は、結果として作成される 1 つのデバイスを公開し、すべてのキャッシングコンポーネントをグループ化します。作成されるデバイスは、元の低速な論理ボリュームと同じ名前になります。

68.10.3. 論理ボリュームの dm-cache キャッシュの有効化

この手順では、dm-cache メソッドを使用して、論理ボリュームで一般的に使用されるデータのキャッシュを有効にします。

前提条件

  • システムに、dm-cache を使用した高速化したい低速な論理ボリュームがある。
  • 低速な論理ボリュームを含むボリュームグループには、高速ブロックデバイスに未使用の物理ボリュームも含まれます。

手順

  1. 高速デバイスに cachevol ボリュームを作成します。

    # lvcreate --size cachevol-size --name <fastvol> <vg> </dev/fast-pv>

    以下の値を置き換えます。

    cachevol-size
    5G などの cachevol ボリュームのサイズ
    fastvol
    cachevol ボリュームの名前
    vg
    ボリュームグループ名
    /dev/fast-pv

    高速ブロックデバイスへのパス (例: /dev/sdf)

    例68.7 cachevol ボリュームの作成

    # lvcreate --size 5G --name fastvol vg /dev/sdf
    Logical volume "fastvol" created.
  2. cachevol ボリュームをメインの論理ボリュームに接続して、キャッシュを開始します。

    # lvconvert --type cache --cachevol <fastvol> <vg/main-lv>

    以下の値を置き換えます。

    fastvol
    cachevol ボリュームの名前
    vg
    ボリュームグループ名
    main-lv

    低速な論理ボリュームの名前

    例68.8 メイン LV への cachevol ボリュームの接続

    # lvconvert --type cache --cachevol fastvol vg/main-lv
    Erase all existing data on vg/fastvol? [y/n]: y
    Logical volume vg/main-lv is now cached.

検証手順

  • 新しく作成した論理ボリュームで dm-cache が有効になっているかどうかを確認します。

    # lvs --all --options +devices <vg>
    
    LV              Pool           Type   Devices
    main-lv         [fastvol_cvol] cache  main-lv_corig(0)
    [fastvol_cvol]                 linear /dev/fast-pv
    [main-lv_corig]                linear /dev/slow-pv

関連情報

  • lvmcache(7) man ページ

68.10.4. 論理ボリュームに cachepool を使用した dm-cache キャッシュの有効化

この手順では、キャッシュデータとキャッシュメタデータ論理ボリュームを個別に作成し、ボリュームをキャッシュプールに統合することができます。

前提条件

  • システムに、dm-cache を使用した高速化したい低速な論理ボリュームがある。
  • 低速な論理ボリュームを含むボリュームグループには、高速ブロックデバイスに未使用の物理ボリュームも含まれます。

手順

  1. 高速デバイスに cachepool ボリュームを作成します。

    # lvcreate --type cache-pool --size <cachepool-size> --name <fastpool> <vg /dev/fast>

    以下の値を置き換えます。

    cachepool-size
    cachepool のサイズ (例: 5G)
    fastpool
    cachepool ボリュームの名前
    vg
    ボリュームグループ名
    /dev/fast

    高速ブロックデバイスへのパス (例: /dev/sdf1)

    注記

    --poolmetadata オプションを使用して、cache-pool の作成時にプールメタデータの場所を指定できます。

    例68.9 cachevol ボリュームの作成

    # lvcreate --type cache-pool --size 5G --name fastpool vg /dev/sde
    Logical volume "fastpool" created.
  2. キャッシュを開始するために、メイン論理ボリュームに cachepool をアタッチします。

    # lvconvert --type cache --cachepool <fastpool> <vg/main>

    以下の値を置き換えます。

    fastpool
    cachepool ボリュームの名前
    vg
    ボリュームグループ名
    main

    低速な論理ボリュームの名前

    例68.10 メイン LV への cachepool の接続

    # lvconvert --type cache --cachepool fastpool vg/main
    Do you want wipe existing metadata of cache pool vg/fastpool? [y/n]: y
    Logical volume vg/main is now cached.

検証手順

  • cache-pool タイプで新しく作成したデバイスボリュームを調べます。

    # lvs --all --options +devices <vg>
    
    LV                      Pool               Type        Devices
    [fastpool_cpool]                           cache-pool  fastpool_pool_cdata(0)
    [fastpool_cpool_cdata]                     linear      /dev/sdf1(4)
    [fastpool_cpool_cmeta]                     linear      /dev/sdf1(2)
    [lvol0_pmspare]                            linear      /dev/sdf1(0)
    main                    [fastpoool_cpool]  cache       main_corig(0)
    [main_corig]                               linear      /dev/sdf1(O)

関連情報

  • lvcreate(8) の man ページ
  • lvmcache(7) man ページ
  • lvconvert(8) の man ページ

68.10.5. 論理ボリュームの dm-writecache キャッシュの有効化

この手順では、dm-writecache メソッドを使用して、論理ボリュームへの書き込み I/O 操作のキャッシュを有効にします。

前提条件

  • システムに、dm-writecache を使用した高速化したい低速な論理ボリュームがある。
  • 低速な論理ボリュームを含むボリュームグループには、高速ブロックデバイスに未使用の物理ボリュームも含まれます。
  • 低速な論理ボリュームがアクティブな場合は、非アクティブ化する。

手順

  1. 低速な論理ボリュームがアクティブな場合は、非アクティブにします。

    # lvchange --activate n <vg>/<main-lv>

    以下の値を置き換えます。

    vg
    ボリュームグループ名
    main-lv
    低速な論理ボリュームの名前
  2. 高速なデバイス上に非アクティブな cachevol ボリュームを作成します。

    # lvcreate --activate n --size <cachevol-size> --name <fastvol> <vg> </dev/fast-pv>

    以下の値を置き換えます。

    cachevol-size
    5G などの cachevol ボリュームのサイズ
    fastvol
    cachevol ボリュームの名前
    vg
    ボリュームグループ名
    /dev/fast-pv

    高速ブロックデバイスへのパス (例: /dev/sdf)

    例68.11 非アクティブ化された cachevol ボリュームの作成

    # lvcreate --activate n --size 5G --name fastvol vg /dev/sdf
    WARNING: Logical volume vg/fastvol not zeroed.
    Logical volume "fastvol" created.
  3. cachevol ボリュームをメインの論理ボリュームに接続して、キャッシュを開始します。

    # lvconvert --type writecache --cachevol <fastvol> <vg/main-lv>

    以下の値を置き換えます。

    fastvol
    cachevol ボリュームの名前
    vg
    ボリュームグループ名
    main-lv

    低速な論理ボリュームの名前

    例68.12 メイン LV への cachevol ボリュームの接続

    # lvconvert --type writecache --cachevol fastvol vg/main-lv
    Erase all existing data on vg/fastvol? [y/n]?: y
    Using writecache block size 4096 for unknown file system block size, logical block size 512, physical block size 512.
    WARNING: unable to detect a file system block size on vg/main-lv
    WARNING: using a writecache block size larger than the file system block size may corrupt the file system.
    Use writecache block size 4096? [y/n]: y
    Logical volume vg/main-lv now has writecache.
  4. 作成された論理ボリュームをアクティベートします。

    # lvchange --activate y <vg/main-lv>

    以下の値を置き換えます。

    vg
    ボリュームグループ名
    main-lv
    低速な論理ボリュームの名前

検証手順

  • 新たに作成されたデバイスを確認します。

    # lvs --all --options +devices vg
    
    LV                VG Attr       LSize   Pool           Origin           Data%  Meta%  Move Log Cpy%Sync Convert Devices
     main-lv          vg Cwi-a-C--- 500.00m [fastvol_cvol] [main-lv_wcorig] 0.00                                    main-lv_wcorig(0)
     [fastvol_cvol]   vg Cwi-aoC--- 252.00m                                                                         /dev/sdc1(0)
     [main-lv_wcorig] vg owi-aoC--- 500.00m                                                                         /dev/sdb1(0)

関連情報

  • lvmcache(7) man ページ

68.10.6. 論理ボリュームのキャッシュの無効化

この手順では、論理ボリュームで現在有効な dm-cache キャッシュまたは dm-writecache キャッシュを無効にします。

前提条件

  • キャッシュは、論理ボリュームで有効になります。

手順

  1. 論理ボリュームを非アクティブにします。

    # lvchange --activate n <vg>/<main-lv>

    vg はボリュームグループ名に置き換え、main-lv はキャッシュが有効になっている論理ボリュームの名前に置き換えます。

  2. cachevol ボリュームまたは cachepool ボリュームの割り当てを解除します。

    # lvconvert --splitcache <vg>/<main-lv>

    以下の値を置き換えます。

    vg はボリュームグループ名に置き換え、main-lv はキャッシュが有効になっている論理ボリュームの名前に置き換えます。

    例68.13 cachevol または cachepool ボリュームの接続解除

    # lvconvert --splitcache vg/main-lv
    Detaching writecache already clean.
    Logical volume vg/main-lv writecache has been detached.

検証手順

  • 論理ボリュームが接続されていないことを確認します。

    # lvs --all --options +devices <vg>
    
    LV      Attr       Type   Devices
    fastvol -wi------- linear /dev/fast-pv
    main-lv -wi------- linear /dev/slow-pv

関連情報

  • lvmcache(7) man ページ
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.