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-pv
Copy to Clipboard Copied! Toggle word wrap Toggle overflow