9장. nova에 Glance 이미지 준비

로컬 임시 스토리지를 사용하도록 OpenStack Compute를 구성하면 Glance 이미지가 캐시되어 인스턴스 배포를 빠르게 수행할 수 있습니다. 인스턴스에 필요한 이미지가 아직 캐시되지 않은 경우 인스턴스를 생성할 때 컴퓨팅 노드의 로컬 디스크에 다운로드됩니다.

Glance 이미지를 다운로드하는 프로세스는 이미지 크기 및 대역폭 및 대기 시간 등의 네트워크 특성에 따라 가변적인 시간이 걸립니다.

인스턴스를 시작하려고 시도하고 로컬인 Ceph 클러스터의 에서 이미지를 사용할 수 없는 경우 다음 메시지가 표시되고 인스턴스를 시작하지 못합니다.

Build of instance 3c04e982-c1d1-4364-b6bd-f876e399325b aborted: Image 20c5ff9d-5f54-4b74-830f-88e78b9999ed is unacceptable: No image locations are accessible

Compute 서비스 로그에는 다음이 표시됩니다.

'Image %s is not on my ceph and [workarounds]/ never_download_image_if_on_rbd=True; refusing to fetch and upload.',

DCN 배포에 대해 기본적으로 true 로 설정된 nova _download_image_if_on_rbd라는 nova.conf 구성 파일의 매개 변수로 인해 인스턴스가 시작되지 않습니다. dcn-hci.yaml 파일에서 찾을 수 있는 heat 매개변수 NovaDisableImageDownloadToRbd 를 사용하여 이 값을 제어할 수 있습니다.

오버클라우드를 배포하기 전에 NovaDisableImageDownloadToRbd 값을 false로 설정하면 다음이 발생합니다.

  • 계산 서비스(nova)는 로컬에서 사용할 수 없는 경우 중앙 위치에서 사용할 수 있는 이미지를 자동으로 스트리밍합니다.
  • Glance 이미지의 COW 복사본은 사용하지 않습니다.
  • 계산(nova) 스토리지에는 사용하는 인스턴스 수에 따라 동일한 이미지의 복사본이 여러 개 포함될 수 있습니다.
  • 중앙 위치뿐만 아니라 nova 스토리지 풀에 대한 WAN 링크도 포화할 수 있습니다.

Red Hat은 이 값을 true로 설정하고 인스턴스를 시작하기 전에 필요한 이미지를 로컬에서 사용할 수 있는지 확인하는 것이 좋습니다. 에지에서 이미지를 사용할 수 있도록 만드는 방법에 대한 자세한 내용은 A.1.3절. “새 사이트에 이미지 복사” 을 참조하십시오.

로컬 이미지의 경우 tripleo_nova_image _cache.yml ansible 플레이북을 사용하여 가까운 장래에 배포할 가능성이 있는 일반적으로 사용되는 이미지 또는 이미지를 미리 캐시하도록 tripleo_nova_image_cache.yml Ansible 플레이북을 사용하여 VM 생성 속도를 높일 수 있습니다.

9.1. tripleo_nova_image_cache.yml ansible 플레이북 실행

사전 요구 사항

  • 쉘 환경에서 올바른 API에 대한 인증 자격 증명.

각 단계에서 제공된 명령을 먼저 올바른 인증 파일을 제공했는지 확인해야 합니다.

절차

  1. 스택의 ansible 인벤토리 파일을 생성합니다. 쉼표로 구분된 목록에 여러 스택을 지정하여 둘 이상의 사이트에서 이미지를 캐시할 수 있습니다.

    $ source stackrc
    
    $ tripleo-ansible-inventory --plan central,dcn0,dcn1 \
    --static-yaml-inventory inventory.yaml
  2. 사전 캐시할 이미지 ID 목록을 생성합니다.

    1. 사용 가능한 이미지의 포괄적인 목록을 검색합니다.

      $ source centralrc
      
      $ openstack image list
      +--------------------------------------+---------+--------+
      | ID                                   | Name    | Status |
      +--------------------------------------+---------+--------+
      | 07bc2424-753b-4f65-9da5-5a99d8383fe6 | image_0 | active |
      | d5187afa-c821-4f22-aa4b-4e76382bef86 | image_1 | active |
      +--------------------------------------+---------+--------+
    2. nova_cache_args.yml 이라는 ansible 플레이북 인수 파일을 생성하고, 사전 캐시하려는 이미지의 ID를 추가합니다.

      ---
      tripleo_nova_image_cache_images:
        - id: 07bc2424-753b-4f65-9da5-5a99d8383fe6
        - id: d5187afa-c821-4f22-aa4b-4e76382bef86
  3. tripleo_nova_image_cache.yml ansible 플레이북을 실행합니다.

    $ source centralrc
    
    $ ansible-playbook -i inventory.yaml \
    --extra-vars "@nova_cache_args.yml" \
    /usr/share/ansible/tripleo-playbooks/tripleo_nova_image_cache.yml