1.7. 이미지 사전 캐싱
RHOSP(Red Hat OpenStack Platform) director는 glance-api
서비스의 일부로 이미지를 사전 캐시할 수 있습니다.
이미지 관리에 Image 서비스(glance) 명령줄 클라이언트를 사용합니다.
1.7.1. 주기적인 이미지 사전 캐싱의 기본 간격 구성
RHOSP(Red Hat OpenStack Platform) director는 glance-api
서비스의 일부로 이미지를 사전 캐시할 수 있습니다.
사전 캐싱 주기 작업은 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.7.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 주소는 Cryostat1.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
컨테이너에서만 사용할 수 있으므로 오버클라우드에 인증할 환경 변수가 이미 설정되어 있는 해당 컨테이너에 exec 스크립트를 만듭니다. 다음 콘텐츠를 사용하여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
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 /]$
절차
admin 사용자로 캐시할 이미지를 대기열에 넣습니다.
$ glance-cache-manage --host=<host_ip> queue-image <image_id>
-
<host_ip>를
glance-api
컨테이너가 실행 중인 컨트롤러 노드의 IP 주소로 바꿉니다. <image_id>를 큐하려는 이미지의 ID로 바꿉니다.
사전 캐시하려는 이미지를 대기열에 추가하면
cache_images
정기 작업이 모든 대기 중인 이미지를 동시에 사전 가져옵니다.참고이미지 캐시는 각 노드의 로컬이므로 Red Hat OpenStack Platform이 HA(3, 5 또는 7 컨트롤러 포함)와 함께 배포된 경우
glance-cache-manage
명령을 실행할 때--host
옵션으로 호스트 주소를 지정해야 합니다.
-
<host_ip>를
다음 명령을 실행하여 이미지 캐시의 이미지를 확인합니다.
$ glance-cache-manage --host=<host_ip> list-cached
<host_ip>를 사용자 환경에 있는 호스트의 IP 주소로 바꿉니다.
관련 정보
다음과 같은 목적으로 추가 glance-cache-manage
명령을 사용할 수 있습니다.
-
나열-캐시
되어 현재 캐시된 모든 이미지를 나열합니다. -
캐싱을 위해 현재
대기열에
있는 모든 이미지를 나열하려면 목록을 큐에 넣습니다. -
캐싱할
이미지를
대기열에 추가하는 대기열 이미지입니다. -
캐시에서 이미지를 제거하기 위해
delete-cached-image
-
cache에서 모든 이미지를 제거하기 위해
delete-all-cached-images
-
캐시 대기열에서 이미지를 삭제하려면
delete-queued-image
-
캐시 대기열에서 모든 이미지를 삭제하려면
delete-all-queued-images