AlloyDB Omni ディスク キャッシュでは、標準の PostgreSQL インメモリ共有バッファに加えて、ソリッド ステート ドライブ(SSD)などの高速ストレージをバッファとして使用できます。ディスク キャッシュを使用すると、データ ディレクトリが低速なストレージにある AlloyDB Omni インストールでデータの取得が高速化されます。
PostgreSQL の共有バッファと同様に、AlloyDB Omni ディスク キャッシュは永続的ではありません。つまり、キャッシュに保存されたデータは再起動時に失われます。
デフォルトでは、AlloyDB Omni ディスク キャッシュはファイル システムから報告されたすべてのストレージを使用します。データ キャッシュに予約するストレージの量は、omni_disk_cache_file_size パラメータで定義できます。
AlloyDB Omni ディスク キャッシュを有効にする
ディスク キャッシュを有効にするには、次のすべてのサブセクションを完了します。
ディスクをプロビジョニングしてファイル システムを作成する
AlloyDB Omni ディスク キャッシュの場合、1 つのディスクまたは複数のディスクにファイル システムを作成してマウントします。また、mdadm や lvm などのユーティリティを使用して、複数のディスクで容量をプールし、任意のファイル システムを使用することもできます。
次の手順では、NVMe SSD を使用して lvm と ext4 を使用する方法を説明します。
使用可能なすべての物理デバイスからボリューム グループを作成します。
nvme_prefix="STORAGE_PREFIX" nvme_list=$(ls "$nvme_prefix"*) sudo vgcreate VOLUME_GROUP ${nvme_list}
次のように置き換えます。
STORAGE_PREFIX: NVMe(Non-Volatile Memory Express)インターフェースを使用して仮想マシンにアタッチされるターゲット ローカル ディスクパスの接頭辞。たとえば、 Google Cloudでは、NVMe デバイスのパスは常に/dev/nvme0nで始まります。VOLUME_GROUP: SSD が結合されるボリューム グループの名前。例:omni-disk-cache-volume
-
前の手順のボリューム グループの空き容量から論理ボリュームを作成するには、次のコマンドを使用します。
sudo lvcreate -n LOGICAL_VOLUME -l 100%FREE VOLUME_GROUP
LOGICAL_VOLUMEは、LVM によってパーティションとして扱われる論理ボリュームの名前に置き換えます。例:omni_disk_cache_device - 論理ボリュームに
ext4ファイル システムを作成します。必要であれば、データの安全性に応じて他のext4オプションを指定することもできます。sudo mkfs.ext4 /dev/VOLUME_GROUP/LOGICAL_VOLUME
ホストマシンのマウント ポイントとして機能するディレクトリを作成し、ファイル システムをマウントするには、次のコマンドを使用します。
sudo mkdir /OMNI_DISK_CACHE_DIRECTORY sudo mount /dev/VOLUME_GROUP/LOGICAL_VOLUME /OMNI_DISK_CACHE_DIRECTORY
OMNI_DISK_CACHE_DIRECTORYは、マウント ポイントとして機能するディレクトリの名前またはディレクトリのパスに置き換えます。例:omni_disk_cache_directory
ディスク キャッシュ ディレクトリに権限を付与する
AlloyDB Omni のディスク キャッシュを有効にする前に、ディスク キャッシュ ディレクトリに対する完全アクセス権を付与する必要があります。権限を付与するには、次のコマンドを実行します。
sudo chown postgres:postgres /OMNI_DISK_CACHE_DIRECTORYsudo chmod -R a+rw /OMNI_DISK_CACHE_DIRECTORY
OMNI_DISK_CACHE_DIRECTORY は、ディスク キャッシュ ディレクトリのパスに置き換えます。
ディスク キャッシュを有効にする
データベースのディスク キャッシュを有効にするには、次の操作を行います。
SUPERUSERとしてデータベースに接続します。/usr/lib/postgresql/18/bin/psql -h localhost -U postgresomni_disk_cache_enabledとomni_disk_cache_directoryの Grand Unified Configuration(GUC)フラグを設定します。ALTER SYSTEM SET omni_disk_cache_enabled=on; ALTER SYSTEM SET omni_disk_cache_directory='/OMNI_DISK_CACHE_DIRECTORY';(省略可)デフォルトでは、AlloyDB Omni はファイル システムで使用可能なすべてのスペースを使用します。必要に応じて、
omni_disk_cache_file_sizeGUC フラグを更新して、この設定をオーバーライドできます。ALTER SYSTEM SET omni_disk_cache_file_size=SIZE_IN_MB;SIZE_IN_MBは、ディスク キャッシュで使用するディスク容量(MB 単位)に置き換えます。AlloyDB Omni を再起動します。
sudo systemctl restart alloydbomni18
ディスク キャッシュの構成を確認する
AlloyDB Omni ディスク キャッシュを有効にしたら、iotop や iostat などの利用可能なユーティリティを使用してディスクへの読み取り / 書き込みアクティビティをモニタリングし、ディスク キャッシュにアクセスされていることを確認します。
また、AlloyDB Omni ディスク キャッシュが開いているかどうかを確認することもできます。
AlloyDB Omni のディスク キャッシュ構成を確認するには、次のコマンドを使用します。
sudo journalctl -u alloydbomni18 | grep "opened omni disk cache"ディスク キャッシュが正しく構成されている場合、ログに Successfully opened omni disk cache ... メッセージが記録されます。