1.6. イメージの事前キャッシュ
Red Hat OpenStack Platform (RHOSP) director を使用して、glance-api
サービスの一部としてイメージを事前にキャッシュできます。
イメージ管理には Image service (glance) コマンドラインクライアントを使用します。
1.6.1. 定期的にイメージを事前キャッシュする際のデフォルト間隔の設定
Image サービス (glance) の事前キャッシュを行う定期ジョブは、glance-api
サービスが実行されている各コントローラーノード上で 300 秒 (デフォルトで 5 分) ごとに実行されます。デフォルト時間を変更するには、glance-api.conf 環境ファイルの Default
セクションで、cache_prefetcher_interval
パラメーターを設定します。
手順
アンダークラウドの環境ファイルの
ExtraConfig
パラメーターを使用して、実際の要件に応じて新しい間隔を追加します。parameter_defaults: ControllerExtraConfig: glance::config::glance_api_config: DEFAULT/cache_prefetcher_interval: value: '<300>'
-
<300>
を、イメージを事前キャッシュする間隔 (秒数) に置き換えてください。
-
/home/stack/templates/
の環境ファイルで間隔を修正したら、stack
ユーザーとしてログインして設定をデプロイします。$ openstack overcloud deploy --templates \ -e /home/stack/templates/<env_file>.yaml
<env_file> は、追加した
ExtraConfig
設定が含まれる環境ファイルの名前に置き換えてください。重要オーバークラウドの作成時に追加の環境ファイルを渡した場合には、予定外の変更がオーバークラウドに加えられないように、ここで
-e
オプションを使用して環境ファイルを再度渡します。
関連情報
openstack overcloud deploy
コマンドの詳細は、director を使用した Red Hat OpenStack Platform のインストールと管理 ガイドの Deployment コマンド を参照してください。
1.6.2. イメージの事前キャッシュを行う定期ジョブを使用するための準備
定期的なジョブを使用してイメージを事前キャッシュするには、glance_api
サービスを実行しているノードに直接接続された glance-cache-manage
コマンドを使用する必要があります。サービスの要求に応答するノードを非表示にするプロキシーは使用しないでください。アンダークラウドは glance_api
サービスを実行しているネットワークにアクセスできない可能性があるため、最初のオーバークラウドノード (デフォルトでは controller-0
という名前です) でコマンドを実行します。
前提条件として以下の手順を実施して、正しいホストからコマンドが実行され、必要な認証情報が設定されるようにします。また、glance-api
コンテナー内から glance-cache-manage
コマンドが実行されるようにします。
手順
アンダークラウドに stack ユーザーとしてログインし、
controller-0
のプロビジョニング IP アドレスを特定します。(undercloud) [stack@site-undercloud-0 ~]$ openstack server list -f value -c Name -c Networks | grep controller overcloud-controller-1 ctlplane=192.168.24.40 overcloud-controller-2 ctlplane=192.168.24.13 overcloud-controller-0 ctlplane=192.168.24.71 (undercloud) [stack@site-undercloud-0 ~]$
オーバークラウドに対して認証するには、
/home/stack/overcloudrc
(デフォルト) に保存されている認証情報をcontroller-0
にコピーします。$ scp ~/overcloudrc tripleo-admin@192.168.24.71:/home/tripleo-admin/
controller-0
に接続します。$ ssh tripleo-admin@192.168.24.71
controller-0
でtripleo-admin
ユーザーとして、glance_api サービス
の IP アドレスを特定します。以下の例では、IP アドレスは172.25.1.105
です。(overcloud) [root@controller-0 ~]# grep -A 10 '^listen glance_api' /var/lib/config-data/puppet-generated/haproxy/etc/haproxy/haproxy.cfg listen glance_api server central-controller0-0.internalapi.redhat.local 172.25.1.105:9292 check fall 5 inter 2000 rise 2
glance-cache-manage
コマンドはglance_api
コンテナーでしか利用できないため、そのコンテナーに対して実行するスクリプトを作成します。このコンテナーには、オーバークラウドに対して認証するための環境変数がすでに設定されています。controller-0
の/home/tripleo-admin
に、以下の内容でスクリプトglance_pod.sh
を作成します。sudo podman exec -ti \ -e NOVA_VERSION=$NOVA_VERSION \ -e COMPUTE_API_VERSION=$COMPUTE_API_VERSION \ -e OS_USERNAME=$OS_USERNAME \ -e OS_PROJECT_NAME=$OS_PROJECT_NAME \ -e OS_USER_DOMAIN_NAME=$OS_USER_DOMAIN_NAME \ -e OS_PROJECT_DOMAIN_NAME=$OS_PROJECT_DOMAIN_NAME \ -e OS_NO_CACHE=$OS_NO_CACHE \ -e OS_CLOUDNAME=$OS_CLOUDNAME \ -e no_proxy=$no_proxy \ -e OS_AUTH_TYPE=$OS_AUTH_TYPE \ -e OS_PASSWORD=$OS_PASSWORD \ -e OS_AUTH_URL=$OS_AUTH_URL \ -e OS_IDENTITY_API_VERSION=$OS_IDENTITY_API_VERSION \ -e OS_COMPUTE_API_VERSION=$OS_COMPUTE_API_VERSION \ -e OS_IMAGE_API_VERSION=$OS_IMAGE_API_VERSION \ -e OS_VOLUME_API_VERSION=$OS_VOLUME_API_VERSION \ -e OS_REGION_NAME=$OS_REGION_NAME \ glance_api /bin/bash
source コマンドで
overcloudrc
ファイルを読み込み、glance_pod.sh
スクリプトを実行して、オーバークラウドのコントローラーノードに対して認証するのに必要な環境変数が設定されているglance_api
コンテナーに対して実行します。[tripleo-admin@controller-0 ~]$ source overcloudrc (overcloudrc) [tripleo-admin@central-controller-0 ~]$ bash glance_pod.sh ()[glance@controller-0 /]$
glance image-list
等のコマンドを使用して、コンテナーでオーバークラウドに対して認証されたコマンドを実行できることを確認します。()[glance@controller-0 /]$ glance image-list +--------------------------------------+----------------------------------+ | ID | Name | +--------------------------------------+----------------------------------+ | ad2f8daf-56f3-4e10-b5dc-d28d3a81f659 | cirros-0.4.0-x86_64-disk.img | +--------------------------------------+----------------------------------+ ()[glance@controller-0 /]$
1.6.3. 定期的なジョブを使用したイメージの事前キャッシュ
「イメージの事前キャッシュを行う定期ジョブを使用するための準備」 で説明されている事前の手順が完了したら、定期ジョブを使用してイメージを事前キャッシュできます。
手順
管理ユーザーとして、キャッシュするイメージをキューに追加します。
$ glance-cache-manage --host=<host_ip> queue-image <image_id>
-
<host_ip> を
glance-api
コンテナーが実行されているコントローラーノードの IP アドレスに置き換えます。 <image_id> をキューに追加するイメージの ID に置き換えます。
事前にキャッシュするイメージをキューに追加すると、
cache_images
定期ジョブはキューに追加されたすべてのイメージを同時に事前取得します。注記イメージキャッシュは各ノードにローカルであるため、Red Hat OpenStack Platform (RHOSP) デプロイメントが 3、5、または 7 台のコントローラーを備えた HA の場合、
glance-cache-manage
コマンドを実行する際に--host
オプションでホストのアドレスを指定する必要があります。
-
<host_ip> を
以下のコマンドを実行して、イメージキャッシュ内のイメージを表示します。
$ glance-cache-manage --host=<host_ip> list-cached
- <host_ip> を環境内のホストの IP アドレスに置き換えてください。
1.6.4. イメージキャッシュのコマンドオプション
次の glance-cache-manage
コマンドオプションを使用して、イメージをキャッシュ用のキューに追加し、キャッシュされたイメージを管理できます。
-
list-cached
: 現在キャッシュされているすべてのイメージをリスト表示する。 -
list-queued
: キャッシュするために現在キューに追加されているすべてのイメージをリスト表示する。 -
queue-image
: キャッシュするためにイメージをキューに追加する。 -
delete-cached-image
: キャッシュからイメージを削除する。 -
delete-all-cached-images
: キャッシュからすべてのイメージを削除する。 -
delete-queued-image
: キャッシュのキューからイメージを削除する。 -
delete-all-queued-images
: キャッシュのキューからすべてのイメージを削除する。