67.10. キャッシュを有効にして論理ボリュームのパフォーマンスを改善
LVM 論理ボリュームにキャッシュを追加して、パフォーマンスを向上できます。LVM は、SSD などの高速なデバイスを使用して、論理ボリュームに I/O 操作をキャッシュします。
以下の手順では、高速デバイスから特別な論理ボリュームを作成し、この特別な論理ボリュームを元の論理ボリュームに接続して、パフォーマンスを向上させます。
67.10.1. LVM でのキャッシュの取得方法 リンクのコピーリンクがクリップボードにコピーされました!
LVM は、以下のようなキャッシュの取得方法を提供します。論理ボリューム上のさまざまなタイプの I/O パターンに適しています。
dm-cacheこのメソッドは、高速なボリユームで頻繁に使用されるデータをキャッシュして、このようなデータへのアクセス時間を短縮します。このメソッドは、読み取りおよび書き込みの両方の操作をキャッシュします。
dm-cacheメソッドは、cacheタイプの論理ボリュームを作成します。dm-writecacheこのメソッドは、書き込み操作のみをキャッシュします。高速なボリュームは書き込み操作を保存し、それらをバックグラウンドで低速なディスクに移行します。高速ボリュームは通常 SSD または永続メモリー (PMEM) ディスクです。
dm-writecacheメソッドは、writecacheタイプの論理ボリュームを作成します。
67.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 つのデバイスを公開し、すべてのキャッシングコンポーネントをグループ化します。作成されるデバイスは、元の低速な論理ボリュームと同じ名前になります。
67.10.3. 論理ボリュームの dm-cache キャッシュの有効化 リンクのコピーリンクがクリップボードにコピーされました!
この手順では、dm-cache メソッドを使用して、論理ボリュームで一般的に使用されるデータのキャッシュを有効にします。
前提条件
-
システムに、
dm-cacheを使用した高速化したい低速な論理ボリュームがある。 - 低速な論理ボリュームを含むボリュームグループには、高速ブロックデバイスに未使用の物理ボリュームも含まれます。
手順
高速デバイスに
cachevolボリュームを作成します。lvcreate --size cachevol-size --name <fastvol> <vg> </dev/fast-pv>
# lvcreate --size cachevol-size --name <fastvol> <vg> </dev/fast-pv>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の値を置き換えます。
cachevol-size-
5Gなどのcachevolボリュームのサイズ fastvol-
cachevolボリュームの名前 vg- ボリュームグループ名
/dev/fast-pv高速ブロックデバイスへのパス (例:
/dev/sdf)例67.3
cachevolボリュームの作成lvcreate --size 5G --name fastvol vg /dev/sdf
# lvcreate --size 5G --name fastvol vg /dev/sdf Logical volume "fastvol" created.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
cachevolボリュームをメインの論理ボリュームに接続して、キャッシュを開始します。lvconvert --type cache --cachevol <fastvol> <vg/main-lv>
# lvconvert --type cache --cachevol <fastvol> <vg/main-lv>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の値を置き換えます。
fastvol-
cachevolボリュームの名前 vg- ボリュームグループ名
main-lv低速な論理ボリュームの名前
例67.4 メイン LV への
cachevolボリュームの接続lvconvert --type cache --cachevol fastvol vg/main-lv
# 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.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
新しく作成した論理ボリュームで
dm-cacheが有効になっているかどうかを確認します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
67.10.4. 論理ボリュームに cachepool を使用した dm-cache キャッシュの有効化 リンクのコピーリンクがクリップボードにコピーされました!
この手順では、キャッシュデータとキャッシュメタデータ論理ボリュームを個別に作成し、ボリュームをキャッシュプールに統合することができます。
前提条件
-
システムに、
dm-cacheを使用した高速化したい低速な論理ボリュームがある。 - 低速な論理ボリュームを含むボリュームグループには、高速ブロックデバイスに未使用の物理ボリュームも含まれます。
手順
高速デバイスに
cachepoolボリュームを作成します。lvcreate --type cache-pool --size <cachepool-size> --name <fastpool> <vg /dev/fast>
# lvcreate --type cache-pool --size <cachepool-size> --name <fastpool> <vg /dev/fast>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の値を置き換えます。
cachepool-size-
cachepoolのサイズ (例:5G) fastpool-
cachepoolボリュームの名前 vg- ボリュームグループ名
/dev/fast高速ブロックデバイスへのパス (例:
/dev/sdf1)注記--poolmetadataオプションを使用して、cache-pool の作成時にプールメタデータの場所を指定できます。例67.5
cachevolボリュームの作成lvcreate --type cache-pool --size 5G --name fastpool vg /dev/sde
# lvcreate --type cache-pool --size 5G --name fastpool vg /dev/sde Logical volume "fastpool" created.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
キャッシュを開始するために、メイン論理ボリュームに
cachepoolをアタッチします。lvconvert --type cache --cachepool <fastpool> <vg/main>
# lvconvert --type cache --cachepool <fastpool> <vg/main>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の値を置き換えます。
fastpool-
cachepoolボリュームの名前 vg- ボリュームグループ名
main低速な論理ボリュームの名前
例67.6 メイン LV への
cachepoolの接続lvconvert --type cache --cachepool fastpool vg/main
# 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.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
cache-poolタイプで新しく作成したデバイスボリュームを調べます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
67.10.5. 論理ボリュームの dm-writecache キャッシュの有効化 リンクのコピーリンクがクリップボードにコピーされました!
この手順では、dm-writecache メソッドを使用して、論理ボリュームへの書き込み I/O 操作のキャッシュを有効にします。
前提条件
-
システムに、
dm-writecacheを使用した高速化したい低速な論理ボリュームがある。 - 低速な論理ボリュームを含むボリュームグループには、高速ブロックデバイスに未使用の物理ボリュームも含まれます。
- 低速な論理ボリュームがアクティブな場合は、非アクティブ化する。
手順
低速な論理ボリュームがアクティブな場合は、非アクティブにします。
lvchange --activate n <vg>/<main-lv>
# lvchange --activate n <vg>/<main-lv>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の値を置き換えます。
vg- ボリュームグループ名
main-lv- 低速な論理ボリュームの名前
高速なデバイス上に非アクティブな
cachevolボリュームを作成します。lvcreate --activate n --size <cachevol-size> --name <fastvol> <vg> </dev/fast-pv>
# lvcreate --activate n --size <cachevol-size> --name <fastvol> <vg> </dev/fast-pv>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の値を置き換えます。
cachevol-size-
5Gなどのcachevolボリュームのサイズ fastvol-
cachevolボリュームの名前 vg- ボリュームグループ名
/dev/fast-pv高速ブロックデバイスへのパス (例:
/dev/sdf)例67.7 非アクティブ化された
cachevolボリュームの作成lvcreate --activate n --size 5G --name fastvol vg /dev/sdf
# lvcreate --activate n --size 5G --name fastvol vg /dev/sdf WARNING: Logical volume vg/fastvol not zeroed. Logical volume "fastvol" created.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
cachevolボリュームをメインの論理ボリュームに接続して、キャッシュを開始します。lvconvert --type writecache --cachevol <fastvol> <vg/main-lv>
# lvconvert --type writecache --cachevol <fastvol> <vg/main-lv>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の値を置き換えます。
fastvol-
cachevolボリュームの名前 vg- ボリュームグループ名
main-lv低速な論理ボリュームの名前
例67.8 メイン LV への
cachevolボリュームの接続Copy to Clipboard Copied! Toggle word wrap Toggle overflow
作成された論理ボリュームをアクティベートします。
lvchange --activate y <vg/main-lv>
# lvchange --activate y <vg/main-lv>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の値を置き換えます。
vg- ボリュームグループ名
main-lv- 低速な論理ボリュームの名前
検証
新たに作成されたデバイスを確認します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
67.10.6. 論理ボリュームのキャッシュの無効化 リンクのコピーリンクがクリップボードにコピーされました!
この手順では、論理ボリュームで現在有効な dm-cache キャッシュまたは dm-writecache キャッシュを無効にします。
前提条件
- キャッシュは、論理ボリュームで有効になります。
手順
論理ボリュームを非アクティブにします。
lvchange --activate n <vg>/<main-lv>
# lvchange --activate n <vg>/<main-lv>Copy to Clipboard Copied! Toggle word wrap Toggle overflow vg はボリュームグループ名に置き換え、main-lv はキャッシュが有効になっている論理ボリュームの名前に置き換えます。
cachevolボリュームまたはcachepoolボリュームの割り当てを解除します。lvconvert --splitcache <vg>/<main-lv>
# lvconvert --splitcache <vg>/<main-lv>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の値を置き換えます。
vg はボリュームグループ名に置き換え、main-lv はキャッシュが有効になっている論理ボリュームの名前に置き換えます。
例67.9
cachevolまたはcachepoolボリュームの接続解除lvconvert --splitcache vg/main-lv
# lvconvert --splitcache vg/main-lv Detaching writecache already clean. Logical volume vg/main-lv writecache has been detached.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
論理ボリュームが接続されていないことを確認します。
lvs --all --options +devices <vg>
# lvs --all --options +devices <vg> LV Attr Type Devices fastvol -wi------- linear /dev/fast-pv main-lv -wi------- linear /dev/slow-pvCopy to Clipboard Copied! Toggle word wrap Toggle overflow