検索

1.6. イメージの事前キャッシュ

download PDF

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 パラメーターを設定します。

手順

  1. アンダークラウドの環境ファイルの ExtraConfig パラメーターを使用して、実際の要件に応じて新しい間隔を追加します。

    parameter_defaults:
      ControllerExtraConfig:
        glance::config::glance_api_config:
          DEFAULT/cache_prefetcher_interval:
            value: '<300>'
    • <300> を、イメージを事前キャッシュする間隔 (秒数) に置き換えてください。
  2. /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 コマンドが実行されるようにします。

手順

  1. アンダークラウドに 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 ~]$
  2. オーバークラウドに対して認証するには、/home/stack/overcloudrc (デフォルト) に保存されている認証情報を controller-0 にコピーします。

    $ scp ~/overcloudrc tripleo-admin@192.168.24.71:/home/tripleo-admin/
  3. controller-0 に接続します。

    $ ssh tripleo-admin@192.168.24.71
  4. controller-0tripleo-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
  5. 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
  6. 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 /]$
  7. 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. 定期的なジョブを使用したイメージの事前キャッシュ

「イメージの事前キャッシュを行う定期ジョブを使用するための準備」 で説明されている事前の手順が完了したら、定期ジョブを使用してイメージを事前キャッシュできます。

手順

  1. 管理ユーザーとして、キャッシュするイメージをキューに追加します。

    $ 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 オプションでホストのアドレスを指定する必要があります。

  2. 以下のコマンドを実行して、イメージキャッシュ内のイメージを表示します。

    $ 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: キャッシュのキューからすべてのイメージを削除する。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.