19.8.3. LVM キャッシュの設定
キャッシュプールは、高速なデバイスを物理ボリューム (PV) として備えた論理ボリュームマネージャー (LVM) を使用して作成されます。次に、キャッシュプールは既存のシンプール (TP) またはシック論理ボリューム (LV) に割り当てられます。これが完了すると、設定した LV に対してブロックレベルのキャッシュが即座に有効になり、dm-cache アルゴリズムがキャッシュプールのサブボリュームのデータのホットコピーを維持するように機能します。
警告
使用中のマウントされたファイルシステムであっても、アクティブなボリュームでキャッシュプールを追加または削除できます。ただし、データ同期を完全に行う必要があるため、特にライトバックモードでキャッシュボリュームを削除する際にオーバーヘッドとパフォーマンスへの影響が確認されます。I/O スタックの変更と同様に、データが失われるリスクがあります。すべての変更は必須項目で行う必要があります。
以下のコマンド例では、キャッシュに高パフォーマンスの NVMe PCI デバイスを使用することを前提としています。これらのデバイスは通常、
/dev/nvme0n1
などのデバイスファイルパスで提示されます。SATA/SAS デバイスは、/dev/sdb
などのデバイスパスを持ちます。以下の命名例を使用しています。
- 物理ボリューム (PV) 名:
/dev/nvme0n1
- ボリュームグループ (VG) 名:
GVG
- シンプール名:
GTP
- 論理ボリューム (LV) 名:
GLV
注記
LVM キャッシュを設定する方法は複数あります。以下は、ほとんどのユースケースに適用される最も簡単な方法です。詳細と詳細なコマンド例は、
lvmcache(7)
を参照してください。
- 高速データデバイスの PV を作成します。
# pvcreate /dev/nvme0n1
- キャッシュする LV をホストする VG に高速データ PV を追加します。
# vgextend GVG /dev/nvme0n1
- 高速データデバイスからキャッシュプールを作成し、論理ボリュームのキャッシュ変換プロセス時にメタデータに必要な領域を予約します。
# lvcreate --type cache-pool -l 100%FREE -n cpool GVG /dev/nvme0n1
- 既存のデータシンプール LV をキャッシュ LV に変換します。
# lvconvert --type cache --cachepool GVG/cpool GVG/GTP