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) を参照してください。
  1. 高速データデバイスの PV を作成します。
    # pvcreate /dev/nvme0n1
  2. キャッシュする LV をホストする VG に高速データ PV を追加します。
    # vgextend GVG /dev/nvme0n1
  3. 高速データデバイスからキャッシュプールを作成し、論理ボリュームのキャッシュ変換プロセス時にメタデータに必要な領域を予約します。
    # lvcreate --type cache-pool -l 100%FREE -n cpool GVG /dev/nvme0n1
  4. 既存のデータシンプール LV をキャッシュ LV に変換します。
    # lvconvert --type cache --cachepool GVG/cpool GVG/GTP