이미지 생성 및 관리


Red Hat OpenStack Platform 16.2

이미지 생성 및 관리

OpenStack Documentation Team

초록

이 가이드에서는 이미지 생성 및 관리를 위한 절차와 이미지 서비스 구성을 위한 절차를 제공합니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 용어를 교체하기 위해 최선을 다하고 있습니다. 먼저 마스터(master), 슬레이브(slave), 블랙리스트(blacklist), 화이트리스트(whitelist) 등 네 가지 용어를 교체하고 있습니다. 이러한 변경 작업은 작업 범위가 크므로 향후 여러 릴리스에 걸쳐 점차 구현할 예정입니다. 자세한 내용은 CTO Chris Wright의 메시지를 참조하십시오.

Red Hat 문서에 관한 피드백 제공

문서 개선을 위한 의견을 보내 주십시오. Red Hat이 어떻게 이를 개선하는지 알려주십시오.

Jira에서 문서 피드백 제공

문제 생성 양식을 사용하여 문서에 대한 피드백을 제공합니다. Jira 문제는 Red Hat OpenStack Platform Jira 프로젝트에서 생성되어 피드백의 진행 상황을 추적할 수 있습니다.

  1. Jira에 로그인했는지 확인합니다. Jira 계정이 없는 경우 피드백을 제출할 계정을 생성합니다.
  2. 다음 링크를 클릭하여 문제 생성 페이지를 엽니다. 문제 생성
  3. 요약설명 필드를 작성합니다. 설명 필드에 문서 URL, 장 또는 섹션 번호, 문제에 대한 자세한 설명을 포함합니다. 양식의 다른 필드를 수정하지 마십시오.
  4. 생성을 클릭합니다.

1장. 이미지 서비스(glance)

RHOSP(Red Hat OpenStack Platform)에서 이미지 및 스토리지를 관리합니다.

가상 머신 이미지는 부팅 가능한 운영 체제가 설치된 가상 디스크가 포함된 파일입니다. 가상 시스템 이미지는 다양한 형식으로 지원됩니다. RHOSP에서는 다음 형식을 사용할 수 있습니다.

  • RAW - 구조화되지 않은 디스크 이미지 형식입니다.
  • QCOW2 - QEMU 에뮬레이터에서 지원하는 디스크 형식입니다. 이 형식에는 QCOW2v3(때로는 QCOW3이라고 함)이 포함되며 QEMU 1.1 이상이 필요합니다.
  • ISO - 바이너리 파일에 저장된 디스크에 있는 데이터의 섹터별 사본입니다.
  • AKI - Amazon 커널 이미지를 나타냅니다.
  • AMI - Amazon 시스템 이미지를 나타냅니다.
  • ARI - Amazon RAMDisk 이미지를 나타냅니다.
  • VDI - VirtualBox 가상 시스템 모니터 및 QEMU 에뮬레이터에서 지원하는 디스크 형식입니다.
  • VHD - VMware, VirtualBox 등의 가상 시스템 모니터에서 사용하는 일반 디스크 형식입니다.
  • PLOOP - Virtuozzo에서 OS 컨테이너를 실행하기 위해 지원하고 사용하는 디스크 형식입니다.
  • OVA - 이미지 서비스(glance)에 저장된 항목이 OVA tar 아카이브 파일임을 나타냅니다.
  • DOCKER - Image 서비스(glance)에 저장된 것이 컨테이너 파일 시스템의 Docker tar 아카이브임을 나타냅니다.

ISO 는 일반적으로 가상 시스템 이미지 형식으로 간주되지 않지만 ISO에는 설치된 운영 체제가 있는 부팅 가능한 파일 시스템이 포함되어 있기 때문에 다른 가상 시스템 이미지 파일과 동일한 방식으로 사용합니다.

공식 Red Hat Enterprise Linux 클라우드 이미지를 다운로드하려면 계정에 유효한 Red Hat Enterprise Linux 서브스크립션이 있어야 합니다.

고객 포털에 로그인하지 않은 경우 Red Hat 계정 자격 증명을 입력해야 하는 프롬프트가 열립니다.

1.1. 이미지 서비스 이해

RHOSP(Red Hat OpenStack Platform) 이미지 서비스(glance) 기능.

1.1.1. 지원되는 이미지 서비스 백엔드

다음 Image 서비스(glance) 백엔드 시나리오가 지원됩니다.

  • Ceph를 사용할 때 RBD는 기본 백엔드입니다. 자세한 내용은 Advanced Overcloud Customization 가이드의 Ceph Storage 설정을 참조하십시오.
  • RBD 다중 저장소. 자세한 내용은 2.1절. “스토리지 에지 아키텍처의 요구 사항”의 내용을 참조하십시오.
  • 오브젝트 스토리지(swift). 자세한 내용은 Advanced Overcloud Customization 가이드의 외부 Object Storage 클러스터 사용을 참조하십시오.

    이미지 서비스는 Object Storage 유형 및 백엔드를 기본값으로 사용합니다.

  • 블록 스토리지(cinder). 자세한 내용은 Advanced Overcloud Customization 가이드 의 Image 서비스용 cinder 백엔드 구성을 참조하십시오.
  • NFS. 자세한 내용은 Advanced Overcloud Customization 가이드의 NFS 스토리지 구성을 참조하십시오.

    중요

    NFS는 지원되는 이미지 서비스 배포 옵션이지만 더 강력한 옵션을 사용할 수 있습니다.

    NFS는 이미지 서비스에 고유하지 않습니다. 이미지 서비스에 NFS 공유를 마운트하면 이미지 서비스에서 작업을 관리하지 않습니다. 이미지 서비스는 파일 시스템에 데이터를 작성하지만 백엔드가 NFS 공유임을 인식하지 못합니다.

    이 유형의 배포에서는 공유가 실패하는 경우 이미지 서비스에서 요청을 다시 시도할 수 없습니다. 즉, 백엔드에서 오류가 발생하면 저장소가 읽기 전용 모드로 전환되거나 로컬 파일 시스템에 데이터를 계속 쓸 수 있습니다. 이 경우 데이터 손실 위험이 있습니다. 이 상황에서 복구하려면 공유를 마운트하고 동기화한 다음 이미지 서비스를 다시 시작해야 합니다. 이러한 이유로 Red Hat은 이미지 서비스 백엔드로 NFS를 권장하지 않습니다.

    그러나 NFS를 이미지 서비스 백엔드로 사용하도록 선택하는 경우 다음 모범 사례 중 일부가 위험을 완화하는 데 도움이 될 수 있습니다.

    • 신뢰할 수 있는 프로덕션 등급 NFS 백엔드를 사용합니다.
    • 컨트롤러 노드와 NFS 백엔드 간에 강력하고 안정적인 연결이 있는지 확인합니다. 계층 2(L2) 네트워크 연결이 권장됩니다.
    • 마운트된 공유에 대한 모니터링 및 경고를 포함합니다.
    • 기본 파일 시스템 권한을 설정합니다. 저장소로 사용하는 공유 파일 시스템에 쓰기 권한이 있어야 합니다.
    • glance-api 프로세스가 실행되는 사용자 및 그룹에 로컬 파일 시스템의 마운트 지점에 대한 쓰기 권한이 없는지 확인합니다. 즉, 프로세스는 마운트 가능한 마운트 실패를 감지하고 쓰기 시도 중에 저장소를 읽기 전용 모드로 설정할 수 있습니다.

1.1.2. 이미지 서명 및 확인

배포자가 이미지에 서명하고 서명과 공개 키 인증서를 이미지 속성으로 저장할 수 있도록 함으로써 이미지 서명 및 확인을 통해 이미지 무결성과 신뢰성을 보호합니다.

이 기능을 활용하여 다음 작업을 수행할 수 있습니다.

  • 개인 키를 사용하여 이미지에 서명하고 이미지, 서명 및 공개 키 인증서(확인 메타데이터)에 대한 참조를 업로드합니다. 그런 다음 이미지 서비스는 서명이 유효한지 확인합니다.
  • 계산 서비스에 이미지를 생성하고, 계산 서비스에 이미지에 서명하고, 이미지 및 확인 메타데이터를 업로드합니다. 이미지 서비스는 서명이 유효한지 다시 확인합니다.
  • 계산 서비스에서 서명된 이미지를 요청합니다. 이미지 서비스는 이미지 및 확인 메타데이터를 제공하므로, 계산 서비스에서 부팅하기 전에 이미지를 검증할 수 있습니다.

이미지 서명 및 확인에 대한 자세한 내용은 OpenStack 키 관리자를 사용하여 시크릿 관리 가이드의 이미지 확인(glance) 을 참조하십시오.

1.1.3. 이미지 변환

이미지 변환은 이미지를 가져오는 동안 작업 API를 호출하여 이미지를 변환합니다.

가져오기 워크플로의 일부로 플러그인은 이미지 변환을 제공합니다. 이 플러그인은 배포자 구성에 따라 활성화 또는 비활성화할 수 있습니다. 따라서 배포자는 배포에 사용할 기본 이미지 형식을 지정해야 합니다.

내부적으로 이미지 서비스는 특정 형식으로 이미지의 비트를 받습니다. 이러한 비트는 임시 위치에 저장됩니다. 그런 다음 플러그인이 트리거되어 이미지를 대상 형식으로 변환하고 최종 대상으로 이동합니다. 작업이 완료되면 임시 위치가 삭제됩니다. 결과적으로 처음에 업로드된 형식은 이미지 서비스에 의해 유지되지 않습니다.

이미지 변환에 대한 자세한 내용은 다음을 참조하십시오. 1.2.8절. “이미지 변환 활성화”

참고

변환은 이미지를 가져올 때만 트리거할 수 있습니다. 이미지를 업로드할 때 실행되지 않습니다. 예를 들면 다음과 같습니다.

$ glance image-create-via-import \
    --disk-format qcow2 \
    --container-format bare \
    --name NAME \
    --visibility public \
    --import-method web-download \
    --uri http://server/image.qcow2

1.1.4. 상호 운용 가능한 이미지 가져오기

상호 운용 가능한 이미지 가져오기 워크플로를 사용하면 다음 두 가지 방법으로 이미지를 가져올 수 있습니다.

  • web-download (기본값) 방법을 사용하여 URI에서 이미지를 가져옵니다.
  • glance-direct 방법을 사용하여 로컬 파일 시스템에서 이미지를 가져옵니다.

1.1.5. 이미지 서비스 캐싱으로 확장성 개선

glance-api 캐싱 메커니즘을 사용하여 이미지 서비스(glance) API 서버에 이미지 복사본을 저장하고 자동으로 검색하여 확장성을 개선합니다. 이미지 서비스 캐싱을 사용하면 glance-api를 여러 호스트에서 실행할 수 있습니다. 즉, 백엔드 스토리지에서 동일한 이미지를 여러 번 검색할 필요가 없습니다. 이미지 서비스 캐싱은 이미지 서비스 작업에 영향을 미치지 않습니다.

Red Hat OpenStack Platform director(tripleo) heat 템플릿을 사용하여 이미지 서비스 캐싱을 구성합니다.

절차

  1. 환경 파일에서 glance-api.conf heat 템플릿에서 플레이버 값을 keystone+cachemanagement 로 자동 설정하는 GlanceCacheEnabled 매개변수 값을 true 로 설정합니다.

    parameter_defaults:
        GlanceCacheEnabled: true
  2. 오버클라우드를 재배포할 때 openstack overcloud deploy 명령에 환경 파일을 포함합니다.
  3. 선택 사항: 오버클라우드를 재배포할 때 대체 빈도로 glance_cache_pruner 를 조정합니다. 다음 예제에서는 5분의 빈도를 보여줍니다.

    parameter_defaults:
      ControllerExtraConfig:
        glance::cache::pruner::minute: '*/5'

    파일 시스템 전체 시나리오를 방지하려면 필요에 따라 빈도를 조정합니다. 대체 빈도를 선택할 때 다음 요소를 포함합니다.

    • 환경에 캐시할 파일의 크기입니다.
    • 사용 가능한 파일 시스템 공간의 양입니다.
    • 환경이 이미지를 캐시하는 빈도입니다.

1.1.6. 이미지 사전 캐싱

RHOSP(Red Hat OpenStack Platform) director는 glance-api 서비스의 일부로 이미지를 사전 캐시할 수 있습니다.

1.1.6.1. 주기적인 이미지 사전 캐싱을 위한 기본 간격 구성

이미지 사전 캐싱의 기본 주기 간격은 300초입니다. 요구 사항에 따라 기본 간격을 늘리거나 줄일 수 있습니다.

절차

  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 설치 및 사용 가이드의 Deployment 명령을 참조하십시오.

1.1.6.2. 주기적 작업을 사용하여 이미지 사전 캐시

사전 요구 사항

주기적으로 작업을 사용하여 이미지를 사전 캐시하려면 glance _api 서비스가 실행 중인 노드에 직접 연결된 glance -cache-manage 명령을 사용해야 합니다. 서비스 요청에 응답하는 노드를 숨기는 프록시를 사용하지 마십시오. undercloud에서 glance_api 서비스가 실행 중인 네트워크에 액세스할 수 없으므로 기본적으로 controller-0 이라고 하는 첫 번째 Overcloud 노드에서 명령을 실행합니다.

다음 전제 조건 절차를 완료하여 올바른 호스트에서 명령을 실행하고 필요한 자격 증명이 있으며 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 heat-admin@192.168.24.71:/home/heat-admin/
  3. controller-0 에 연결합니다.

    $ ssh heat-admin@192.168.24.71
  4. controller-0 에서 heat-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 컨테이너에서만 사용할 수 있으므로 Overcloud에 인증할 환경 변수가 이미 설정된 해당 컨테이너에 대해 실행할 스크립트를 생성합니다. 다음 콘텐츠를 사용하여 controller-0/home/heat-adminglance_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. overcloudrc 파일을 가져오고 필요한 환경 변수를 사용하여 glance_pod.sh 스크립트를 실행하여 overcloud 컨트롤러 노드를 인증하는 데 필요한 환경 변수를 사용하여 glance_api 컨테이너에 실행합니다.

    [heat-admin@controller-0 ~]$ source overcloudrc
    (overcloudrc) [heat-admin@central-controller-0 ~]$ bash glance_pod.sh
    ()[glance@controller-0 /]$
  7. glance image-list 와 같은 명령을 사용하여 컨테이너에서 Overcloud에 대해 인증된 명령을 실행할 수 있는지 확인합니다.

    ()[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. 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 옵션으로 호스트 주소를 지정해야 합니다.

  2. 다음 명령을 실행하여 이미지 캐시의 이미지를 확인합니다.

    $ glance-cache-manage --host=<host_ip> list-cached

    <host_ip>를 사용자 환경에 있는 호스트의 IP 주소로 바꿉니다.

관련 정보

다음과 같은 목적으로 추가 glance-cache-manage 명령을 사용할 수 있습니다.

  • list-cached: 현재 캐시된 모든 이미지를 나열합니다.
  • list-queued: 현재 캐싱에 대기 중인 모든 이미지를 나열합니다.
  • 캐싱을 위해 이미지를 대기열에 대기하는 queue-image.
  • delete-cached-image 를 사용하여 캐시에서 이미지를 제거합니다.
  • delete-all-cached-images 를 사용하여 캐시에서 모든 이미지를 제거합니다.
  • delete-queued-image 를 사용하여 캐시 큐에서 이미지를 삭제합니다.
  • 캐시 큐에서 모든 이미지를 삭제하려면 delete-all-queued-images 를 삭제합니다.

1.1.7. 이미지 서비스 API를 사용하여 스파스 이미지 업로드 활성화

Image 서비스(glance) API를 사용하면 스파스 이미지 업로드를 사용하여 네트워크 트래픽을 줄이고 스토리지 공간을 절약할 수 있습니다. 이 기능은 DCN(Distributed Compute Node) 환경에서 특히 유용합니다. 스파스 이미지 파일을 사용하면 이미지 서비스에서 null 바이트 시퀀스를 작성하지 않습니다. 이미지 서비스는 지정된 오프셋을 사용하여 데이터를 기록합니다. 스토리지 백엔드는 이러한 오프셋을 실제로 스토리지 공간을 사용하지 않는 null 바이트로 해석합니다.

제한

  • 스파스 이미지 업로드는 Ceph RBD에서만 지원됩니다.
  • 파일 시스템에는 스파스 이미지 업로드가 지원되지 않습니다.
  • 클라이언트와 이미지 서비스 API 간 전송 중에 스파스 값은 유지 관리되지 않습니다. 이미지는 이미지 서비스 API 수준에서 스파스됩니다.

사전 요구 사항

  • RHOSP(Red Hat OpenStack Platform) 배포는 이미지 서비스 백엔드에 RBD를 사용합니다.

절차

  1. stack 사용자로 Undercloud 노드에 로그인합니다.
  2. stackrc 인증 정보 파일을 소싱합니다.

    $ source stackrc
  3. 다음 콘텐츠를 사용하여 환경 파일을 생성합니다.

    parameter_defaults:
        GlanceSparseUploadEnabled: true
  4. 다른 환경 파일을 사용하여 스택에 새 환경 파일을 추가하고 오버클라우드를 배포합니다.

    $ openstack overcloud deploy \
    --templates \
    …
    -e <existing_overcloud_environment_files> \
    -e <new_environment_file>.yaml \
    …

    이미지 업로드에 대한 자세한 내용은 1.2.2절. “이미지 업로드” 을 참조하십시오.

검증

이미지를 가져오고 크기를 확인하여 스파스 이미지 업로드를 확인할 수 있습니다.

  1. 이미지 파일을 로컬로 다운로드합니다.

    $ wget <file_location>/<file_name>

    & lt;file_location >을 파일 위치로 바꿉니다. & lt;file_name >을 파일 이름으로 바꿉니다.

    다음 절차에서는 예제 명령을 사용합니다. 적절한 경우 값을 해당 환경의 값으로 바꿉니다.

    $ wget https://cloud.centos.org/centos/6/images/CentOS-6-x86_64-GenericCloud-1508.qcow2
  2. 업로드할 이미지의 디스크 크기 및 가상 크기를 확인합니다.

     qemu-img info <file_name>

    다음 절차에서는 예제 명령을 사용합니다. 적절한 경우 값을 해당 환경의 값으로 바꿉니다.

    $ qemu-img info CentOS-6-x86_64-GenericCloud-1508.qcow2
    
    image: CentOS-6-x86_64-GenericCloud-1508.qcow2
    file format: qcow2
    virtual size: 8 GiB (8589934592 bytes)
    disk size: 1.09 GiB
    cluster_size: 65536
    Format specific information:
    compat: 0.10
    refcount bits: 1
  3. 이미지를 가져옵니다.

    $ glance image-create-via-import --disk-format qcow2 --container-format bare --name centos_1 --file <file_name>
  4. 이미지 ID를 기록합니다. 후속 단계에서 필요합니다.
  5. 이미지를 가져오고 활성 상태인지 확인합니다.

    $ openstack image show <image_id>
  6. Ceph Storage 노드에서 이미지 크기가 1 단계의 출력에서 가상 크기보다 작은지 확인합니다.

    $ sudo rbd -p images diff <image_id> | awk '{ SUM += $2 } END { print SUM/1024/1024/1024 " GB" }'
    
    1.03906 GB
  7. 선택 사항: 컨트롤러 노드의 Glance 구성 파일에 rbd_thin_provisioning 이 구성되었는지 확인할 수 있습니다.

    1. SSH를 사용하여 컨트롤러 노드에 액세스합니다.

      $ ssh -A -t heat-admin@<controller_node_IP_address>
    2. 해당 컨트롤러 노드에서 rbd_thin_provisioningTrue 와 같은지 확인합니다.

      $ sudo podman exec -it glance_api sh -c 'grep ^rbd_thin_provisioning /etc/glance/glance-api.conf'

1.1.8. Metadef API 보안

RHOSP(Red Hat OpenStack Platform)에서 사용자는 키 값 쌍을 정의하고 메타데이터를 메타데이터(metadef) API로 태그할 수 있습니다. 현재는 사용자가 생성할 수 있는 메타 재정의 네임스페이스, 오브젝트, 속성, 리소스 또는 태그 수에 제한이 없습니다.

Metadef API는 권한 없는 사용자에게 정보를 유출할 수 있습니다. 악의적인 사용자는 제한 부족을 악용하고 무제한 리소스로 Image 서비스(glance) 데이터베이스를 채울 수 있습니다. 그러면 DoS(서비스 거부) 스타일 공격이 발생할 수 있습니다.

이미지 서비스 정책은 메타 파일 API를 제어합니다. 그러나 metadef API의 기본 정책 설정을 사용하면 모든 사용자가 metadef 정보를 생성하거나 읽을 수 있습니다. metadef 리소스는 소유자와 격리되지 않으므로 내부 인프라 세부 정보 또는 고객 이름과 같이 잠재적으로 민감한 이름의 메타 파일 리소스는 악의적인 사용자에게 해당 정보를 노출할 수 있습니다.

1.1.8.1. metadef API를 제한하도록 정책 구성

Image 서비스(glance)의 보안을 강화하려면 메타 파일 수정 API를 RHOSP(Red Hat OpenStack Platform) 배포에서 기본적으로 admin 전용 액세스로 제한합니다.

절차

  1. 클라우드 관리자로서 Image 서비스 metadef API에 대한 정책 재정의를 포함하려면 lock-down-glance-metadef-api.yaml 과 같은 별도의 heat 템플릿 환경 파일을 생성합니다.

    ...
    parameter_defaults:
      GlanceApiPolicies: {
    	glance-metadef_default: { key: 'metadef_default', value: '' },
    	glance-metadef_admin: { key: 'metadef_admin', value: 'role:admin' },
    	glance-get_metadef_namespace: { key: 'get_metadef_namespace', value: 'rule:metadef_default' },
    	glance-get_metadef_namespaces: { key: 'get_metadef_namespaces', value: 'rule:metadef_default' },
    	glance-modify_metadef_namespace: { key: 'modify_metadef_namespace', value: 'rule:metadef_admin' },
    	glance-add_metadef_namespace: { key: 'add_metadef_namespace', value: 'rule:metadef_admin' },
    	glance-delete_metadef_namespace: { key: 'delete_metadef_namespace', value: 'rule:metadef_admin' },
    	glance-get_metadef_object: { key: 'get_metadef_object', value: 'rule:metadef_default' },
    	glance-get_metadef_objects: { key: 'get_metadef_objects', value: 'rule:metadef_default' },
    	glance-modify_metadef_object: { key: 'modify_metadef_object', value: 'rule:metadef_admin' },
    	glance-add_metadef_object: { key: 'add_metadef_object', value: 'rule:metadef_admin' },
    	glance-delete_metadef_object: { key: 'delete_metadef_object', value: 'rule:metadef_admin' },
    	glance-list_metadef_resource_types: { key: 'list_metadef_resource_types', value: 'rule:metadef_default' },
    	glance-get_metadef_resource_type: { key: 'get_metadef_resource_type', value: 'rule:metadef_default' },
    	glance-add_metadef_resource_type_association: { key: 'add_metadef_resource_type_association', value: 'rule:metadef_admin' },
    	glance-remove_metadef_resource_type_association: { key: 'remove_metadef_resource_type_association', value: 'rule:metadef_admin' },
    	glance-get_metadef_property: { key: 'get_metadef_property', value: 'rule:metadef_default' },
    	glance-get_metadef_properties: { key: 'get_metadef_properties', value: 'rule:metadef_default' },
    	glance-modify_metadef_property: { key: 'modify_metadef_property', value: 'rule:metadef_admin' },
    	glance-add_metadef_property: { key: 'add_metadef_property', value: 'rule:metadef_admin' },
    	glance-remove_metadef_property: { key: 'remove_metadef_property', value: 'rule:metadef_admin' },
    	glance-get_metadef_tag: { key: 'get_metadef_tag', value: 'rule:metadef_default' },
    	glance-get_metadef_tags: { key: 'get_metadef_tags', value: 'rule:metadef_default' },
    	glance-modify_metadef_tag: { key: 'modify_metadef_tag', value: 'rule:metadef_admin' },
    	glance-add_metadef_tag: { key: 'add_metadef_tag', value: 'rule:metadef_admin' },
    	glance-add_metadef_tags: { key: 'add_metadef_tags', value: 'rule:metadef_admin' },
    	glance-delete_metadef_tag: { key: 'delete_metadef_tag', value: 'rule:metadef_admin' },
    	glance-delete_metadef_tags: { key: 'delete_metadef_tags', value: 'rule:metadef_admin' }
      }
    
    …

    정책 및 정책 구문에 대한 자세한 내용은 이 정책 장을 참조하십시오.

  2. 오버클라우드를 배포할 때 -e 옵션을 사용하여 배포 명령에 정책 덮어쓰기가 포함된 환경 파일을 포함합니다.

    $ openstack overcloud deploy -e lock-down-glance-metadef-api.yaml
1.1.8.2. metadef API 활성화

이전에 메타데이터 정의(metadef) API를 제한하거나 새 기본값을 완화하려는 경우 메타 파일 수정 정책을 재정의하여 사용자가 해당 리소스를 업데이트할 수 있습니다.

중요

metadef API에 대한 쓰기 액세스 권한을 사용하는 사용자가 클라우드 관리자는 모든 사용자가 해당 API에 액세스할 수 있도록 할 수 있습니다. 그러나 이러한 유형의 구성에서는 의도치 않게 민감한 리소스 이름(예: 고객 이름 및 내부 프로젝트)을 유출할 수 있습니다. 관리자는 모든 사용자에게 읽기 액세스만 활성화되어 있더라도 취약할 수 있는 이전에 생성된 리소스를 식별하도록 시스템을 감사해야 합니다.

절차

  1. 클라우드 관리자로 언더클라우드에 로그인하고 정책을 재정의할 파일을 만듭니다. 예를 들면 다음과 같습니다.

    $ cat open-up-glance-api-metadef.yaml
  2. metadef API 읽기-쓰기 액세스를 모든 사용자에게 허용하도록 정책 덮어쓰기 파일을 구성합니다.

    GlanceApiPolicies: {
        glance-metadef_default: { key: 'metadef_default', value: '' },
        glance-get_metadef_namespace: { key: 'get_metadef_namespace', value: 'rule:metadef_default' },
        glance-get_metadef_namespaces: { key: 'get_metadef_namespaces', value: 'rule:metadef_default' },
        glance-modify_metadef_namespace: { key: 'modify_metadef_namespace', value: 'rule:metadef_default' },
        glance-add_metadef_namespace: { key: 'add_metadef_namespace', value: 'rule:metadef_default' },
        glance-delete_metadef_namespace: { key: 'delete_metadef_namespace', value: 'rule:metadef_default' },
        glance-get_metadef_object: { key: 'get_metadef_object', value: 'rule:metadef_default' },
        glance-get_metadef_objects: { key: 'get_metadef_objects', value: 'rule:metadef_default' },
        glance-modify_metadef_object: { key: 'modify_metadef_object', value: 'rule:metadef_default' },
        glance-add_metadef_object: { key: 'add_metadef_object', value: 'rule:metadef_default' },
        glance-delete_metadef_object: { key: 'delete_metadef_object', value: 'rule:metadef_default' },
        glance-list_metadef_resource_types: { key: 'list_metadef_resource_types', value: 'rule:metadef_default' },
        glance-get_metadef_resource_type: { key: 'get_metadef_resource_type', value: 'rule:metadef_default' },
        glance-add_metadef_resource_type_association: { key: 'add_metadef_resource_type_association', value: 'rule:metadef_default' },
        glance-remove_metadef_resource_type_association: { key: 'remove_metadef_resource_type_association', value: 'rule:metadef_default' },
        glance-get_metadef_property: { key: 'get_metadef_property', value: 'rule:metadef_default' },
        glance-get_metadef_properties: { key: 'get_metadef_properties', value: 'rule:metadef_default' },
        glance-modify_metadef_property: { key: 'modify_metadef_property', value: 'rule:metadef_default' },
        glance-add_metadef_property: { key: 'add_metadef_property', value: 'rule:metadef_default' },
        glance-remove_metadef_property: { key: 'remove_metadef_property', value: 'rule:metadef_default' },
        glance-get_metadef_tag: { key: 'get_metadef_tag', value: 'rule:metadef_default' },
        glance-get_metadef_tags: { key: 'get_metadef_tags', value: 'rule:metadef_default' },
        glance-modify_metadef_tag: { key: 'modify_metadef_tag', value: 'rule:metadef_default' },
        glance-add_metadef_tag: { key: 'add_metadef_tag', value: 'rule:metadef_default' },
        glance-add_metadef_tags: { key: 'add_metadef_tags', value: 'rule:metadef_default' },
        glance-delete_metadef_tag: { key: 'delete_metadef_tag', value: 'rule:metadef_default' },
        glance-delete_metadef_tags: { key: 'delete_metadef_tags', value: 'rule:metadef_default' }
      }
    참고

    rule:metadef_default 를 사용하도록 모든 metadef 정책을 구성해야 합니다. 정책 및 정책 구문에 대한 자세한 내용은 이 정책 장을 참조하십시오.

  3. 오버클라우드를 배포할 때 -e 옵션을 사용하여 배포 명령에 새 정책 파일을 포함합니다.

    $ openstack overcloud deploy -e open-up-glance-api-metadef.yaml

1.2. 이미지 관리

이미지 서비스(glance)는 디스크 및 서버 이미지에 대한 검색, 등록 및 전달 서비스를 제공합니다. 서버 이미지를 복사 또는 스냅숏하고 즉시 저장할 수 있는 기능을 제공합니다. 저장된 이미지를 템플릿으로 사용하여 서버 운영 체제를 설치하고 개별적으로 서비스를 구성하는 것보다 새 서버를 빠르고 일관되게 수행할 수 있습니다.

1.2.1. 이미지 생성

Red Hat Enterprise Linux 7 ISO 파일, Red Hat Enterprise Linux 6 ISO 파일 또는 Windows ISO 파일을 사용하여 QCOW2 형식으로 RHOSP(Red Hat OpenStack Platform) 호환 이미지를 수동으로 생성합니다.

1.2.1.1. Red Hat OpenStack Platform에서 KVM 게스트 이미지 사용

준비된 RHEL KVM 게스트 QCOW2 이미지를 사용할 수 있습니다.

이러한 이미지는 cloud-init 로 구성되며, SSH 키가 올바르게 작동하기 위해 ec2 호환 메타데이터 서비스를 활용해야 합니다.

준비된 Windows KVM 게스트 QCOW2 이미지를 사용할 수 없습니다.

참고

KVM 게스트 이미지의 경우:

  • 이미지의 root 계정은 비활성화되지만 sudo 액세스는 cloud-user 라는 특수 사용자에게 부여됩니다.
  • 이 이미지에 대해 설정된 root 암호가 없습니다.

루트 암호는 두 번째 필드에 ✓을 배치하여 /etc/shadow 잠깁니다.

RHOSP 인스턴스의 경우 RHOSP 대시보드 또는 명령줄에서 ssh 키 쌍을 생성하고 해당 키 조합을 사용하여 인스턴스에 대한 SSH 공용 인증을 root로 수행합니다.

인스턴스가 시작되면 이 공개 키가 삽입됩니다. 그런 다음 키 쌍을 만들 때 다운로드한 개인 키를 사용하여 인증할 수 있습니다.

사용자 지정 Red Hat Enterprise Linux 또는 Windows 이미지를 생성하려면 Red Hat Enterprise Linux 7 이미지 생성,Red Hat Enterprise Linux 6 이미지 생성 또는 1.2.1.2.3절. “Windows 이미지 만들기” 을 참조하십시오.

1.2.1.2. 사용자 지정 Red Hat Enterprise Linux 또는 Windows 이미지 만들기

사전 요구 사항

  • Linux 호스트 시스템으로 이미지를 생성합니다. 언더클라우드 또는 오버클라우드를 제외한 Linux 패키지를 설치하고 실행할 수 있는 모든 시스템이 될 수 있습니다.
  • advanced-virt 리포지토리가 활성화되어 있습니다.

    $ sudo subscription-manager repos --enable=advanced-virt-for-rhel-8-x86_64-rpms
  • libvirt, virt-manager: 게스트 운영 체제를 생성하는 데 필요한 모든 패키지를 설치합니다.

    $ sudo dnf module install -y virt
  • 가상 머신 이미지에 액세스하고 수정하기 위한 툴 세트를 설치하는 libguestfs 툴:

    $ sudo dnf install -y libguestfs-tools-c
  • Red Hat Enterprise Linux 7 또는 6 ISO 파일. 자세한 내용은 RHEL 7.2 바이너리 DVD 또는 RHEL 6.8 바이너리 DVD 또는 Windows ISO 파일을 참조하십시오. Windows ISO 파일이 없는 경우 Microsoft evaluation Center 를 참조하여 평가 이미지를 다운로드합니다.
  • 텍스트 편집기 - 킥스타트 파일을 변경하려는 경우(RHEL만 해당).
중요

언더클라우드에 libguestfs-tools 패키지를 설치하는 경우 iscsid.socket 을 비활성화하여 언더클라우드의 tripleo_iscsid 서비스와 포트 충돌을 방지합니다.

$ sudo systemctl disable --now iscsid.socket
1.2.1.2.1. Red Hat Enterprise Linux 7 이미지 만들기

Red Hat Enterprise Linux 7 ISO 파일을 사용하여 QCOW2 형식으로 RHOSP(Red Hat OpenStack Platform) 호환 이미지를 수동으로 생성합니다.

참고

호스트 시스템에서 [root@host]# 을 사용하여 모든 명령을 실행해야 합니다.

  1. virt-install 을 사용하여 설치를 시작합니다.

    [root@host]# qemu-img create -f qcow2 rhel7.qcow2 8G
    [root@host]# virt-install --virt-type kvm --name rhel7 --ram 2048 \
    --cdrom /tmp/rhel-server-7.2-x86_64-dvd.iso \
    --disk rhel7.qcow2,format=qcow2 \
    --network=bridge:virbr0 --graphics vnc,listen=0.0.0.0 \
    --noautoconsole --os-type=linux --os-variant=rhel7

    이 명령은 인스턴스를 시작하고 설치 프로세스를 시작합니다.

    참고

    인스턴스가 자동으로 시작되지 않으면 virt-viewer 명령을 실행하여 콘솔을 확인합니다.

    [root@host]# virt-viewer rhel7
  2. 인스턴스를 구성합니다.

    1. 초기 설치 프로그램 부팅 메뉴에서 Install Red Hat Enterprise Linux 7 을 선택합니다.
    2. 적절한 Language(언어) 및 Keyboard ( 키보드) 옵션을 선택합니다.
    3. 설치에서 사용하는 장치 유형에 대한 메시지가 표시되면 자동 감지 설치 미디어를 선택합니다.
    4. 설치 대상 유형을 묻는 메시지가 표시되면 로컬 표준 디스크 를 선택합니다. 다른 스토리지 옵션은 Automatically configure partitioning (파티션 자동 구성)을 선택합니다.
    5. 소프트웨어 선택의 경우 Minimal Install (최소 설치)을 선택합니다.
    6. 네트워크 및 호스트 이름의 경우 네트워크로 eth0 을 선택하고 장치에 대한 호스트 이름을 선택합니다. 기본 호스트 이름은 localhost.localdomain 입니다.
    7. Root Password (루트 암호) 필드에 암호를 입력하고 Confirm (확인) 필드에 동일한 암호를 다시 입력합니다.

      결과
      설치 프로세스가 완료되고 Complete! 화면이 표시됩니다.
  3. 설치가 완료되면 인스턴스를 재부팅하고 root 사용자로 로그인합니다.
  4. 다음 값만 포함하도록 /etc/sysconfig/network-scripts/ifcfg-eth0 파일을 업데이트합니다.

    TYPE=Ethernet
    DEVICE=eth0
    ONBOOT=yes
    BOOTPROTO=dhcp
    NM_CONTROLLED=no
  5. 시스템을 재부팅합니다.
  6. Content Delivery Network(콘텐츠 전달 네트워크)에 시스템을 등록합니다.

    # sudo subscription-manager register
    # sudo subscription-manager attach --pool=Valid-Pool-Number-123456
    # sudo subscription-manager repos --enable=rhel-7-server-rpms
  7. 시스템을 업데이트합니다.

    # dnf -y update
  8. cloud-init 패키지를 설치합니다.

    # dnf install -y cloud-utils-growpart cloud-init
  9. cloud_init_modules 에서 /etc/cloud/cloud.cfg 구성 파일을 편집하고 다음을 추가합니다.

    - resolv-conf

    The resolv-conf 옵션은 인스턴스가 처음 부팅될 때 resolv.conf 를 자동으로 구성합니다. 이 파일에는 이름 서버,도메인 및 기타 옵션과 같은 인스턴스와 관련된 정보가 포함되어 있습니다.

  10. EC2 메타데이터 서비스에 액세스하는 데 문제가 발생하지 않도록 /etc/sysconfig/network 에 다음 행을 추가합니다.

    NOZEROCONF=yes
  11. 콘솔 메시지가 대시보드의 Log 탭 및 nova console-log 출력에 표시되는지 확인하려면 /etc/default/grub 파일에 다음 부팅 옵션을 추가합니다.

    GRUB_CMDLINE_LINUX_DEFAULT="console=tty0 console=ttyS0,115200n8"
  12. grub2-mkconfig 명령을 실행합니다.

    # grub2-mkconfig -o /boot/grub2/grub.cfg

    출력은 다음과 같습니다.

    Generating grub configuration file ...
    Found linux image: /boot/vmlinuz-3.10.0-229.7.2.el7.x86_64
    Found initrd image: /boot/initramfs-3.10.0-229.7.2.el7.x86_64.img
    Found linux image: /boot/vmlinuz-3.10.0-121.el7.x86_64
    Found initrd image: /boot/initramfs-3.10.0-121.el7.x86_64.img
    Found linux image: /boot/vmlinuz-0-rescue-b82a3044fb384a3f9aeacf883474428b
    Found initrd image: /boot/initramfs-0-rescue-b82a3044fb384a3f9aeacf883474428b.img
    done
  13. 결과 이미지에 이 인스턴스의 서브스크립션 세부 정보가 포함되지 않도록 인스턴스를 등록 취소합니다.

    # subscription-manager repos --disable=*
    # subscription-manager unregister
    # dnf clean all
  14. 인스턴스의 전원을 끕니다.

    # poweroff
  15. virt-sysprep 명령을 사용하여 이미지를 재설정하고 정리하여 문제 없이 인스턴스를 생성할 수 있도록 합니다.

    [root@host]# virt-sysprep -d rhel7
  16. 디스크 이미지 내의 여유 공간을 호스트 내의 여유 공간으로 다시 변환하여 이미지 크기를 줄입니다.

    [root@host]# virt-sparsify --compress /tmp/rhel7.qcow2 rhel7-cloud.qcow2

    그러면 명령이 실행되는 위치에 새 rhel7-cloud.qcow2 파일이 생성됩니다.

rhel7-cloud.qcow2 이미지 파일을 이미지 서비스에 업로드할 준비가 되었습니다. 대시보드를 사용하여 이 이미지를 RHOSP 배포에 업로드하는 방법에 대한 자세한 내용은 1.2.2절. “이미지 업로드” 을 참조하십시오.

1.2.1.2.2. Red Hat Enterprise Linux 6 이미지 만들기

Red Hat Enterprise Linux 6 ISO 파일을 사용하여 QCOW2 형식으로 RHOSP(Red Hat OpenStack Platform) 호환 이미지를 수동으로 생성합니다.

참고

호스트 시스템에서 [root@host]# 을 사용하여 모든 명령을 실행해야 합니다.

  1. virt-install 을 사용하여 설치를 시작합니다.

    [root@host]# qemu-img create -f qcow2 rhel6.qcow2 4G
    [root@host]# virt-install --connect=qemu:///system --network=bridge:virbr0 \
    --name=rhel6 --os-type linux --os-variant rhel6 \
    --disk path=rhel6.qcow2,format=qcow2,size=10,cache=none \
    --ram 4096 --vcpus=2 --check-cpu --accelerate \
    --hvm --cdrom=rhel-server-6.8-x86_64-dvd.iso

    이 명령은 인스턴스를 시작하고 설치 프로세스를 시작합니다.

    참고

    인스턴스가 자동으로 시작되지 않으면 virt-viewer 명령을 실행하여 콘솔을 확인합니다.

    [root@host]# virt-viewer rhel6
  2. 인스턴스를 구성합니다.

    1. 초기 설치 프로그램 부팅 메뉴에서 Install or upgrade an existing system 을 선택하고 설치 프롬프트를 따릅니다. 기본값을 수락합니다.

      디스크 설치 프로그램은 설치 전에 설치 미디어를 테스트할 수 있는 옵션을 제공합니다. OK(확인) 를 선택하여 테스트 없이 진행하려면 테스트 또는 Skip 를 실행합니다.

    2. 적절한 Language(언어) 및 Keyboard ( 키보드) 옵션을 선택합니다.
    3. 설치에서 사용하는 장치 유형을 묻는 메시지가 표시되면 Basic Storage Devices (기본 스토리지 장치)를 선택합니다.
    4. 장치에 대한 호스트 이름을 선택합니다. 기본 호스트 이름은 localhost.localdomain 입니다.
    5. 시간대루트 암호를 설정합니다.
    6. 디스크의 공간을 기준으로 원하는 설치 유형을 원하는 옵션에서 원하는 설치 유형을 선택하십시오.
    7. SSH 서버를 설치하는 Basic Server install을 선택합니다.
    8. 설치 프로세스가 완료되고 축하합니다. Red Hat Enterprise Linux 설치 화면이 표시됩니다.
  3. 인스턴스를 재부팅하고 root 사용자로 로그인합니다.
  4. 다음 값만 포함하도록 /etc/sysconfig/network-scripts/ifcfg-eth0 파일을 업데이트합니다.

    TYPE=Ethernet
    DEVICE=eth0
    ONBOOT=yes
    BOOTPROTO=dhcp
    NM_CONTROLLED=no
  5. 시스템을 재부팅합니다.
  6. Content Delivery Network에 시스템을 등록합니다.

    # sudo subscription-manager register
    # sudo subscription-manager attach --pool=Valid-Pool-Number-123456
    # sudo subscription-manager repos --enable=rhel-6-server-rpms
  7. 시스템을 업데이트합니다.

    # dnf -y update
  8. cloud-init 패키지를 설치합니다.

    # dnf install -y cloud-utils-growpart cloud-init
  9. /etc/cloud/cloud.cfg 구성 파일을 편집하고 cloud_init_modules 아래에 다음 콘텐츠를 추가합니다.

    - resolv-conf

    The resolv-conf 옵션은 인스턴스가 처음 부팅될 때 resolv.conf 구성 파일을 자동으로 구성합니다. 이 파일에는 이름 서버,도메인 및 기타 옵션과 같은 인스턴스와 관련된 정보가 포함되어 있습니다.

  10. 네트워크 문제를 방지하려면 /etc/udev/rules.d/75-persistent-net-generator.rules:

    # echo "#" > /etc/udev/rules.d/75-persistent-net-generator.rules

    이렇게 하면 /etc/udev/rules.d/70-persistent-net.rules 파일이 생성되지 않습니다. /etc/udev/rules.d/70-persistent-net.rules 가 생성되면 스냅샷에서 부팅할 때 네트워킹이 제대로 작동하지 않을 수 있으며 네트워크 인터페이스가 eth 0 대신 eth 1 로 생성되고 IP 주소가 할당되지 않습니다.

  11. EC2 메타데이터 서비스에 액세스하는 데 문제가 발생하지 않도록 /etc/sysconfig/network 에 다음 행을 추가합니다.

    NOZEROCONF=yes
  12. 콘솔 메시지가 대시보드의 Log 탭 및 nova console-log 출력에 표시되는지 확인하려면 /etc/grub.conf 파일에 다음 부팅 옵션을 추가합니다.

    console=tty0 console=ttyS0,115200n8
  13. 결과 이미지에 이 인스턴스에 대한 동일한 서브스크립션 세부 정보가 포함되지 않도록 가상 머신을 등록 취소합니다.

    # subscription-manager repos --disable=*
    # subscription-manager unregister
    # dnf clean all
  14. 인스턴스의 전원을 끕니다.

    # poweroff
  15. virt-sysprep 명령을 사용하여 이미지를 재설정하고 정리하여 문제 없이 인스턴스를 생성할 수 있도록 합니다.

    [root@host]# virt-sysprep -d rhel6
  16. virt-sparsify 명령을 사용하여 이미지 크기를 줄입니다. 이 명령은 디스크 이미지 내의 사용 가능한 공간을 호스트 내에서 사용 가능한 공간으로 다시 변환합니다.

    [root@host]# virt-sparsify --compress rhel6.qcow2 rhel6-cloud.qcow2

    그러면 명령이 실행되는 위치에 새로운 rhel6-cloud.qcow2 파일이 생성됩니다.

    참고

    인스턴스에 적용되는 플레이버의 디스크 공간에 따라 이미지의 파티션 크기를 수동으로 조정해야 합니다.

rhel6-cloud.qcow2 이미지 파일을 이미지 서비스에 업로드할 준비가 되었습니다. 대시보드를 사용하여 이 이미지를 RHOSP 배포에 업로드하는 방법에 대한 자세한 내용은 1.2.2절. “이미지 업로드” 을 참조하십시오.

1.2.1.2.3. Windows 이미지 만들기

Windows ISO 파일을 사용하여 QCOW2 형식으로 RHOSP(Red Hat OpenStack Platform) 호환 이미지를 수동으로 생성합니다.

참고

호스트 시스템에서 [root@host]# 을 사용하여 모든 명령을 실행해야 합니다.

절차

  1. virt-install 을 사용하여 설치를 시작합니다.

    [root@host]# virt-install --name=<name> \
    --disk size=<size> \
    --cdrom=<path> \
    --os-type=windows \
    --network=bridge:virbr0 \
    --graphics spice \
    --ram=<ram>

    virt-install 매개변수의 다음 값을 교체합니다.

    • <name>|-Windows 인스턴스에 있는 이름입니다.
    • <size>^-디스크 크기(GB)입니다.
    • <path>^-Windows 설치 ISO 파일의 경로입니다.
    • <RAM>|요청된 RAM 크기(MB)입니다.

      참고

      o s-type=windows 매개 변수는 클록이 Windows 게스트에 맞게 올바르게 구성되었는지 확인하고 Hyper-V 구현 기능을 활성화합니다. 이미지를 이미지 서비스에 업로드하기 전에 이미지 메타데이터에 os_type=windows 도 설정해야 합니다.

  2. virt-install 은 기본적으로 게스트 이미지를 /var/lib/libvirt/images/<name>.qcow2 로 저장합니다. 게스트 이미지를 다른 위치에 유지하려면 --disk 옵션의 매개변수를 변경합니다.

    --disk path=<filename>,size=<size>

    <filename>을 인스턴스 이미지를 저장하는 파일의 이름으로 교체하고 경로(선택 사항)로 바꿉니다. 예를 들어 path=win8.qcow2,size=8 은 현재 작업 디렉터리에 win8.qcow2 라는 8GB 파일을 생성합니다.

    작은 정보

    게스트가 자동으로 시작되지 않으면 virt-viewer 명령을 실행하여 콘솔을 확인합니다.

    [root@host]# virt-viewer <name>

    Windows 설치 방법에 대한 자세한 내용은 관련 Microsoft 문서를 참조하십시오.

  3. 새로 설치한 Windows 시스템이 가상화된 하드웨어를 사용할 수 있도록 하려면 VirtIO 드라이버를 설치해야 할 수도 있습니다. 이렇게 하려면 먼저 Windows 인스턴스에 CD-ROM 드라이브로 연결해야 하는 이미지를 설치합니다. virtio-win 패키지를 설치하려면 VirtIO ISO 이미지를 인스턴스에 추가하고 VirtIO 드라이버를 설치해야 합니다. 자세한 내용은 가상화 구성 및 관리 가이드 의 Windows 가상 머신용 KVM 반가상화 드라이버 설치를 참조하십시오.
  4. 구성을 완료하려면 Windows 시스템에서 Cloudbase-Init 을 다운로드하여 실행합니다. Cloudbase-Init 설치가 끝나면 Run Sysprep and Shutdown(시스템 실행 및 종료 ) 확인란을 선택합니다. Sysprep 툴은 특정 Microsoft 서비스에서 사용하는 OS ID를 생성하여 게스트를 고유하게 만듭니다.

    중요

    Red Hat은 Cloudbase-Init에 대한 기술 지원을 제공하지 않습니다. 문제가 발생하면 Cloudbase Solutions Contact Cloudbase Solutions 를 참조하십시오.

Windows 시스템이 종료되면 <name>.qcow2 이미지 파일을 이미지 서비스에 업로드할 준비가 됩니다. 대시보드 또는 명령줄을 사용하여 이 이미지를 RHOSP 배포에 업로드하는 방법에 대한 자세한 내용은 1.2.2절. “이미지 업로드” 을 참조하십시오.

참고

libosinfo data

계산 서비스에는 libosinfo 데이터를 사용하여 기본 장치 모델을 설정하는 지원이 더 이상 사용되지 않습니다. 대신 다음 이미지 메타데이터 속성을 사용하여 인스턴스에 대한 최적의 가상 하드웨어를 구성합니다.

  • os_distro
  • os_version
  • hw_cdrom_bus
  • hw_disk_bus
  • hw_scsi_model
  • hw_vif_model
  • hw_video_model
  • hypervisor_type

이러한 메타데이터 속성에 대한 자세한 내용은 이미지 구성 매개 변수를 참조하십시오.

1.2.2. 이미지 업로드

  1. 대시보드에서 Project > Compute > Images 를 선택합니다.
  2. Create Image(이미지 만들기)를 클릭합니다.
  3. 값을 입력하고 Create Image(이미지 만들기 )를 클릭합니다.
표 1.1. 이미지 옵션
필드참고

이름

이미지의 이름입니다. 이름은 프로젝트 내에서 고유해야 합니다.

설명

이미지를 식별하는 간략한 설명입니다.

이미지 소스

이미지 소스: 이미지 위치 또는 이미지 파일. 선택에 따라 다음 필드가 표시됩니다.

이미지 위치 또는 이미지 파일

  • Image Location(이미지 위치 ) 옵션을 선택하여 이미지 위치 URL을 지정합니다.
  • Image File(이미지 파일 ) 옵션을 선택하여 로컬 디스크에서 이미지를 업로드합니다.

형식

이미지 형식(예: qcow2).

아키텍처

이미지 아키텍처. 예를 들어, i686은 64비트 아키텍처의 경우 32비트 아키텍처 또는 x86_64를 사용합니다.

최소 디스크 용량(GB)

이미지를 부팅하는 데 필요한 최소 디스크 크기입니다. 이 필드를 지정하지 않으면 기본값은 0입니다(최소값 없음).

최소 RAM 용량 (MB)

이미지를 부팅하는 데 필요한 최소 메모리 크기입니다. 이 필드를 지정하지 않으면 기본값은 0입니다(최소값 없음).

공용

선택하면 이미지를 모든 사용자에게 공용으로 만들고 프로젝트에 액세스할 수 있습니다.

보호됨

선택하면 특정 권한이 있는 사용자만 이 이미지를 삭제할 수 있습니다.

이미지가 성공적으로 업로드되면 상태가 active 이며 이미지를 사용할 수 있음을 나타냅니다. 이미지 서비스는 업로드를 시작할 때 사용된 ID 서비스 토큰의 수명보다 더 오래 걸리는 큰 이미지를 처리할 수 있습니다. 이는 이미지 서비스가 먼저 ID 서비스에 대한 신뢰를 만들어 업로드가 완료되고 이미지 상태를 업데이트할 때 새 토큰을 가져오고 사용할 수 있기 때문입니다.

참고

glance image-create 명령을 속성 옵션과 함께 사용하여 이미지를 업로드할 수도 있습니다. 명령줄에서 더 많은 값을 사용할 수 있습니다. 전체 목록은 부록 A. 이미지 구성 매개변수 에서 참조하십시오.

1.2.3. 이미지 업데이트

  1. 대시보드에서 Project > Compute > Images 를 선택합니다.
  2. 목록에서 Edit Image (이미지 편집)를 클릭합니다.

    참고

    Edit Image( 이미지 편집) 옵션은 admin 사용자로 로그인할 때만 사용할 수 있습니다. 데모 사용자로 로그인하면 Launch an instance (인스턴스 시작) 또는 Create Volume (볼륨 만들기) 옵션이 있습니다.

  3. 필드를 업데이트하고 이미지 업데이트를 클릭합니다. name, description, kernel ID, ramdisk ID, 아키텍처, 형식, 최소 디스크, 최소 RAM, 공용, 보호 값을 업데이트할 수 있습니다.
  4. 드롭다운 메뉴를 클릭하고 Update Metadata (데이터베이스 업데이트) 옵션을 선택합니다.
  5. 왼쪽 열의 항목을 오른쪽에 추가하여 메타데이터를 지정합니다. 왼쪽 열에는 Image 서비스 메타데이터 카탈로그의 메타데이터 정의가 있습니다. Other (기타)를 선택하여 선택한 키로 메타데이터를 추가하고 완료되면 Save(저장 )를 클릭합니다.
참고

glance image-update 명령을 속성 옵션과 함께 사용하여 이미지를 업데이트할 수도 있습니다. 명령줄에서 추가 값을 사용할 수 있습니다. 전체 목록은 부록 A. 이미지 구성 매개변수 에서 참조하십시오.

1.2.4. 이미지 가져오기

다음 두 가지 방법 중 하나를 사용하여 이미지를 Image 서비스(glance)로 가져올 수 있습니다.

  • web-download 를 사용하여 URI에서 이미지를 가져옵니다.
  • glance-direct 를 사용하여 로컬 파일 시스템에서 이미지를 가져옵니다.

web-download 방법은 기본적으로 활성화되어 있습니다. 클라우드 관리자는 가져오기 방법을 구성합니다. glance import-info 명령을 실행하여 사용 가능한 가져오기 옵션을 나열할 수 있습니다.

1.2.4.1. 원격 URI에서 이미지 가져오기

web-download 방법을 사용하여 원격 URI에서 이미지를 복사할 수 있습니다.

  1. 이미지를 생성하고 가져올 이미지의 URI를 지정합니다.

    $ glance image-create-via-import \
        --container-format <CONTAINER FORMAT> \
        --disk-format <DISK-FORMAT> \
        --name <NAME> \
        --import-method web-download \
        --uri <URI>
    • < CONTAINER FORMAT >를 이미지에 대해 설정 중인 컨테이너 형식으로 바꿉니다(없음, ami, aki, 베어, ovf, ova, ova, docker).
    • < DISK-FORMAT >를 이미지에 대해 설정하는 디스크 형식으로 바꿉니다(없음, ami, aki, aki, vhdx, vhdx, vmdk, raw, qcow2, vdi, iso, ploop).
    • & lt;NAME& gt;을 이미지의 설명 이름으로 바꿉니다.
    • &lt ;URI& gt;를 이미지의 URI로 바꿉니다.
  2. glance image-show <IMAGE_ID> 명령을 사용하여 이미지 의 가용성을 확인할 수 있습니다.

    • & lt;IMAGE_ID& gt;를 이미지 생성 중에 제공한 ID로 바꿉니다.

이미지 서비스 웹 다운로드 방법은 2단계 프로세스를 사용하여 가져오기를 수행합니다.

  1. 웹 다운로드 방법은 이미지 레코드를 생성합니다.
  2. 웹 다운로드 방법은 지정된 URI에서 이미지를 검색합니다.

URI에는 선택적 거부 목록 및 허용 목록 필터링이 적용됩니다.

Image PropertyECDHE 플러그인은 이미지에 메타데이터 속성을 삽입할 수 있습니다. 삽입된 이러한 속성은 이미지 인스턴스가 시작되는 계산 노드를 결정합니다.

1.2.4.2. 로컬 볼륨에서 이미지 가져오기

glance-direct 메서드는 이미지 ID를 생성하는 이미지 레코드를 생성합니다. 이미지가 로컬 볼륨에서 이미지 서비스에 업로드되면 스테이징 영역에 저장되고 구성된 검사를 통과한 후 활성화됩니다. glance-direct 방법을 사용하려면 HA(고가용성) 구성에서 사용할 때 공유 스테이징 영역이 필요합니다.

참고

공통 스테이징 영역이 없는 경우 glance-direct 방법을 사용하는 이미지 업로드가 HA 환경에서 실패할 수 있습니다. HA 활성 환경에서 API 호출은 이미지 서비스 컨트롤러에 배포됩니다. 이미지를 업로드하는 API 호출과 다른 컨트롤러에 다운로드 API 호출을 보낼 수 있습니다.

glance-direct 메서드는 이미지를 가져오려면 세 개의 다른 호출을 사용합니다.

  • Glance image-create
  • glance image-stage
  • glance image-import

glance image-create-via-import 명령을 사용하여 다음 세 가지 호출을 모두 하나의 명령으로 수행할 수 있습니다.

$ glance image-create-via-import --container-format <CONTAINER FORMAT> --disk-format <DISK-FORMAT> --name <NAME> --file </PATH/TO/IMAGE>
  • < CONTAINER FORMAT >, < DISK-FORMAT > , < NAME >, < /PATH/TO/IMAGE >를 이미지의 관련 값으로 바꿉니다.

이미지가 스테이징 영역에서 백엔드 위치로 이동하면 이미지가 나열됩니다. 그러나 이미지가 활성화되는 데 다소 시간이 걸릴 수 있습니다.

glance image-show <IMAGE_ID> 명령을 사용하여 이미지 의 가용성을 확인할 수 있습니다.

  • & lt;IMAGE_ID 를 이미지 생성 중에 제공한 ID로 바꿉니다.

1.2.5. 이미지 삭제

  1. 대시보드에서 Project > Compute > Images 를 선택합니다.
  2. 삭제할 이미지를 선택하고 이미지 삭제를 클릭합니다.

1.2.6. 이미지 숨기기 또는 숨기기

사용자에게 표시되는 일반 목록에서 공개 이미지를 숨길 수 있습니다. 예를 들어 더 이상 사용되지 않는 CentOS 7 이미지를 숨기고 사용자 환경을 간소화하기 위해 최신 버전만 표시할 수 있습니다. 사용자는 숨겨진 이미지를 검색하고 사용할 수 있습니다.

이미지를 숨기려면 다음을 수행합니다.

glance image-update <image_id> --hidden 'true'

숨겨진 이미지를 생성하려면 glance image-create 명령에 --hidden 인수를 추가합니다.

이미지를 숨기려면 다음을 수행합니다.

glance image-update <image_id> --hidden 'false'

1.2.7. 숨겨진 이미지 표시

숨겨진 이미지를 나열하려면 다음을 수행합니다.

glance image-list --hidden 'true'

1.2.8. 이미지 변환 활성화

GlanceImageImportPlugins 매개변수를 활성화하면 QCOW2 이미지를 업로드하고 이미지 서비스에서 RAW로 변환할 수 있습니다.

참고

Red Hat Ceph Storage RBD를 사용하여 이미지를 저장하고 Nova 인스턴스를 부팅하면 이미지 변환이 자동으로 활성화됩니다.

이미지 변환을 활성화하려면 다음 매개변수 값이 포함된 환경 파일을 생성하고 openstack overcloud deploy 명령에 -e 옵션을 사용하여 새 환경 파일을 포함합니다.

+

parameter_defaults:
  GlanceImageImportPlugins:'image_conversion'

1.2.9. 이미지를 RAW 형식으로 변환

Red Hat Ceph Storage는 QCOW2 이미지를 사용하여 VM(가상 시스템) 디스크를 호스팅하는 사용을 지원하지는 않습니다.

QCOW2 이미지를 업로드하고 VM을 생성할 때 계산 노드에서 이미지를 다운로드하고 이미지를 RAW로 변환한 다음, 다시 Ceph에 업로드하여 사용할 수 있습니다. 이 프로세스는 특히 병렬 VM을 생성하는 동안 VM을 생성하는 데 걸리는 시간에 영향을 미칩니다.

예를 들어 여러 VM을 동시에 생성하는 경우 변환된 이미지를 Ceph 클러스터에 업로드하면 이미 실행 중인 워크로드에 영향을 미칠 수 있습니다. 업로드 프로세스에서 이러한 워크로드를 IOPS에 소비하고 스토리지 응답성을 저하시킬 수 있습니다.

Ceph에서 VM을 보다 효율적으로 부팅하려면(임시 백엔드 또는 볼륨에서 부팅) glance 이미지 형식이 RAW여야 합니다.

절차

  1. 이미지를 RAW로 변환하면 원본 QCOW2 이미지 파일보다 크기가 큰 이미지가 생성될 수 있습니다. 변환 전에 다음 명령을 실행하여 최종 RAW 이미지 크기를 결정합니다.

    qemu-img info <image>.qcow2
  2. 이미지를 QCOW2에서 RAW 형식으로 변환합니다.

    qemu-img convert -p -f qcow2 -O raw <original qcow2 image>.qcow2 <new raw image>.raw
1.2.9.1. Image 서비스(glance)에서 디스크 형식 구성

GlanceDiskFormats 매개변수를 사용하여 디스크 형식을 활성화하거나 거부하도록 이미지 서비스(glance)를 구성할 수 있습니다.

절차

  1. 언더클라우드 호스트에 stack 사용자로 로그인합니다.
  2. 언더클라우드 자격 증명 파일을 가져옵니다.

    $ source ~/stackrc
  3. 환경 파일에 GlanceDiskFormats 매개변수를 포함합니다(예: glance_disk_formats.yaml ):

    parameter_defaults:
      GlanceDiskFormats:
        - <disk_format>
    • 예를 들어 다음 구성을 사용하여 RAW 및 ISO 디스크 형식만 활성화합니다.

      parameter_defaults:
        GlanceDiskFormats:
        - raw
        - iso
    • 다음 예제 구성을 사용하여 QCOW2 디스크 이미지를 거부합니다.

      parameter_defaults:
        GlanceDiskFormats:
        - raw
        - iso
        - aki
        - ari
        - ami
  4. 환경과 관련된 기타 환경 파일과 함께 openstack overcloud deploy 명령에 새 구성이 포함된 환경 파일을 포함합니다.

    $ openstack overcloud deploy --templates \
      -e <overcloud_environment_files> \
      -e <new_environment_file> \
      …
    • <overcloud_environment_files> 를 배포에 포함된 환경 파일 목록으로 바꿉니다.
    • <new_environment_file> 을 새 구성이 포함된 환경 파일로 바꿉니다.

RHOSP에서 사용할 수 있는 디스크 형식에 대한 자세한 내용은 1장. 이미지 서비스(glance) 을 참조하십시오.

1.2.10. RAW 형식으로 이미지 저장

GlanceImageImportPlugins 매개변수를 활성화한 상태에서 다음 명령을 실행하여 이전에 생성된 이미지를 RAW 형식으로 저장합니다.

$ glance image-create-via-import \
    --disk-format qcow2 \
    --container-format bare \
    --name NAME \
    --visibility public \
    --import-method web-download \
    --uri http://server/image.qcow2
  • name의 경우 NAME 을 이미지 이름으로 바꿉니다. 이는 glance image-list 에 표시될 이름입니다.
  • --uri 의 경우 QCOW2 이미지의 위치 및 파일 이름으로 바꿉니다.
참고

이 명령 예제에서는 web-download 방법을 사용하여 이미지 레코드를 생성하고 가져옵니다. glance-api는 가져오기 프로세스 중 --uri 위치에서 이미지를 다운로드합니다. web-download 를 사용할 수 없는 경우 glanceclient 는 이미지 데이터를 자동으로 다운로드할 수 없습니다. glance import-info 명령을 실행하여 사용 가능한 이미지 가져오기 방법을 나열합니다.

2장. 여러 저장소가 있는 이미지 서비스

Red Hat OpenStack Platform Image 서비스(glance)는 모든 에지 사이트에 이미지 풀을 보유할 수 있도록 분산 에지 아키텍처와 함께 여러 저장소 사용을 지원합니다. 허브 사이트라고도 하는 중앙 사이트와 에지 사이트 간에 이미지를 복사할 수 있습니다.

이미지 메타데이터에는 각 복사본의 위치가 포함됩니다. 예를 들어 두 개의 에지 사이트에 있는 이미지는 중앙 사이트와 두 개의 에지 사이트를 포함하는 세 개의 위치가 있는 단일 UUID로 노출됩니다. 즉, 여러 저장소에서 단일 UUID를 공유하는 이미지 데이터의 복사본이 있을 수 있습니다. 위치에 대한 자세한 내용은 이미지 위치 이해를 참조하십시오.

모든 에지 사이트에 RBD 이미지 풀을 사용하면 Ceph RBD COW(Copy-On-Write) 및 스냅샷 계층화 기술을 사용하여 VM을 빠르게 부팅할 수 있습니다. 즉, 볼륨에서 VM을 부팅하고 실시간 마이그레이션을 수행할 수 있습니다. Ceph RBD를 사용한 계층 지정에 대한 자세한 내용은 블록 장치 가이드의 Ceph 블록 장치 계층화 를 참조하십시오.

2.1. 스토리지 에지 아키텍처의 요구 사항

  • 각 이미지의 사본은 중앙 위치에 있는 이미지 서비스에 있어야 합니다.
  • 에지 사이트에서 인스턴스를 만들기 전에 해당 에지 사이트에 이미지의 로컬 복사본이 있어야 합니다.
  • 에지 사이트에 업로드된 이미지는 다른 에지 사이트에 복사하기 전에 중앙 위치에 복사해야 합니다.
  • DCN 아키텍처를 Ceph 스토리지와 함께 배포할 때 원시 이미지를 사용해야 합니다.
  • RBD는 이미지, 계산 및 블록 스토리지 서비스의 스토리지 드라이버여야 합니다.
  • 각 사이트에 대해 NovaComputeAvailabilityZone 및 CinderStorageAvailabilityZone 매개변수에 동일한 값을 할당해야 합니다.

2.2. 여러 저장소로 이미지 가져오기

상호 운용 가능한 이미지 가져오기 워크플로를 사용하여 이미지 데이터를 여러 Ceph Storage 클러스터로 가져옵니다. 이미지를 로컬 파일 시스템 또는 웹 서버를 통해 사용할 수 있는 이미지 서비스로 가져올 수 있습니다.

웹 서버에서 이미지를 가져오는 경우 한 번에 여러 저장소로 이미지를 가져올 수 있습니다. 웹 서버에서 이미지를 사용할 수 없는 경우 로컬 파일 시스템에서 중앙 저장소로 이미지를 가져온 다음 추가 저장소로 복사할 수 있습니다. 자세한 내용은 여러 저장소에 기존 이미지 복사를 참조하십시오.

중요

중앙 위치에 이미지를 사용하는 인스턴스가 없어도 항상 중앙 사이트에 이미지 복사본을 저장합니다. 이미지 서비스로 이미지를 가져오는 방법에 대한 자세한 내용은 분산 계산 노드 및 스토리지 배포 가이드를 참조하십시오.

2.2.1. 이미지 가져오기 실패 관리

--allow-failure 매개변수를 사용하여 이미지 가져오기 작업의 오류를 관리할 수 있습니다.

  • --allow-failure 매개변수 값이 true이면 첫 번째 저장소에서 데이터를 성공적으로 가져온 후 이미지 상태가 활성화됩니다. 이 설정은 기본 설정입니다. os_glance_failed_import 이미지 속성을 사용하여 이미지 데이터를 가져오지 못한 저장소 목록을 볼 수 있습니다.
  • --allow-failure 매개변수 값을 false로 설정하면 지정된 모든 저장소가 데이터를 성공적으로 가져온 후에만 이미지 상태가 활성화됩니다. 이미지 데이터를 가져오는 저장소가 실패하면 이미지 상태가 실패합니다. 이미지는 지정된 저장소 중 하나로 가져오지 않습니다.

2.2.2. 여러 저장소로 이미지 데이터 가져오기

--allow-failure 매개변수의 기본 설정이 true 이므로 일부 저장소가 이미지 데이터를 가져오지 못하는 경우 명령에 매개 변수를 포함할 필요가 없습니다.

참고

이 절차에서는 모든 저장소를 이미지 데이터를 성공적으로 가져오지 않아도 됩니다.

절차

  1. 지정된 여러 저장소로 이미지 데이터를 가져옵니다.

    $ glance image-create-via-import \
    --container-format bare \
    --name IMAGE-NAME \
    --import-method web-download \
    --uri URI \
    --stores STORE1,STORE2,STORE3
    • IMAGE-NAME 을 가져올 이미지의 이름으로 바꿉니다.
    • URI 를 이미지의 URI로 바꿉니다.
    • STORE1,STORE2STORE3 을 이미지 데이터를 가져올 저장소의 이름으로 바꿉니다.
    • 또는 --stores--all-stores true 로 교체하여 이미지를 모든 저장소에 업로드합니다.
참고

QCOW2 이미지를 RAW 형식으로 자동 변환하는 glance image-create-via-import 명령은 web-download 방법에서만 작동합니다. glance-direct 방법은 사용할 수 있지만 구성된 공유 파일 시스템을 사용한 배포에서만 작동합니다.

2.2.3. 실패 없이 여러 저장소로 이미지 데이터 가져오기

다음 절차에서는 모든 저장소가 이미지 데이터를 성공적으로 가져와야 합니다.

절차

  1. 지정된 여러 저장소로 이미지 데이터를 가져옵니다.

    $ glance image-create-via-import \
    --container-format bare \
    --name IMAGE-NAME \
    --import-method web-download \
    --uri URI \
    --stores STORE1,STORE2
    • IMAGE-NAME 을 가져올 이미지의 이름으로 바꿉니다.
    • URI 를 이미지의 URI로 바꿉니다.
    • STORE1,STORE2STORE3 을 이미지 데이터를 복사하려는 저장소 이름으로 바꿉니다.
    • 또는 --stores--all-stores true 로 교체하여 이미지를 모든 저장소에 업로드합니다.

      참고

      --allow-failure 매개변수를 false 로 설정하면 이미지 서비스에서 이미지 데이터를 가져오지 못하는 저장소를 무시하지 않습니다. image 속성 os_glance_failed_import 를 사용하여 실패한 저장소 목록을 볼 수 있습니다. 자세한 내용은 이미지 가져오기 작업의 진행 상황 확인을 참조하십시오.

  2. 이미지 데이터가 특정 저장소에 추가되었는지 확인합니다.

    $ glance image-show IMAGE-ID | grep stores

    IMAGE-ID 를 원래의 기존 이미지의 ID로 바꿉니다.

    출력에는 쉼표로 구분된 저장소 목록이 표시됩니다.

2.2.4. 단일 저장소로 이미지 데이터 가져오기

이미지 데이터를 단일 저장소로 가져올 수 있습니다.

절차

  1. 이미지 데이터를 단일 저장소로 가져옵니다.

    $ glance image-create-via-import \
    --container-format bare \
    --name IMAGE-NAME \
    --import-method web-download \
    --uri URI \
    --store STORE
    • IMAGE-NAME 을 가져올 이미지의 이름으로 바꿉니다.
    • URI 를 이미지의 URI로 바꿉니다.
    • STORE 를 이미지 데이터를 복사하려는 저장소의 이름으로 바꿉니다.

      참고

      명령에 --stores, -- all-stores 또는 --store 옵션을 포함하지 않으면 이미지 서비스에서 중앙 저장소에 이미지를 생성합니다.

  2. 이미지 데이터가 특정 저장소에 추가되었는지 확인합니다.

    $ glance image-show IMAGE-ID | grep stores

    IMAGE-ID 를 원래의 기존 이미지의 ID로 바꿉니다.

    출력에는 쉼표로 구분된 저장소 목록이 표시됩니다.

2.2.5. 이미지 가져오기 작업의 진행 상황 확인

상호 운용 가능한 이미지 가져오기 워크플로는 이미지 데이터를 저장으로 순차적으로 가져옵니다. 이미지 크기, 저장소 수, 중앙 사이트와 에지 사이트 간의 네트워크 속도가 이미지 가져오기 작업을 완료하는 데 걸리는 시간에 영향을 미칩니다.

이미지 가져오기 작업 중에 전송된 알림에 표시되는 두 개의 이미지 속성을 확인하여 이미지 가져오기 진행 상황을 추적할 수 있습니다.

  • os_glance_importing_to_stores 속성은 이미지 데이터를 가져오지 않은 저장소를 나열합니다. 가져오기 시작 시 요청된 모든 저장소가 목록에 표시됩니다. 저장소가 이미지 데이터를 성공적으로 가져올 때마다 이미지 서비스는 목록에서 저장소를 제거합니다.
  • os_glance_failed_import 속성은 이미지 데이터를 가져오지 못하는 저장소를 나열합니다. 이 목록은 이미지 가져오기 작업의 시작 부분에 비어 있습니다.
참고

다음 절차에서는 세 개의 Ceph Storage 클러스터, 즉 에지 dcn0 및 dcn 1 에 있는 중앙 저장소와 두 개의 저장소가 있습니다.

절차

  1. 이미지 데이터가 특정 저장소에 추가되었는지 확인합니다.

    $ glance image-show IMAGE-ID

    IMAGE-ID 를 원래의 기존 이미지의 ID로 바꿉니다.

    출력에는 쉼표로 구분된 다음 예제 코드 조각과 유사한 저장소 목록이 표시됩니다.

    | os_glance_failed_import       |
    | os_glance_importing_to_stores | central,dcn0,dcn1
    | status                        | importing
  2. 이미지 가져오기 작업의 상태를 모니터링합니다. watch 를 사용하여 명령을 앞에 추가하면 2초마다 명령 출력이 새로 고쳐집니다.

    $ watch glance image-show IMAGE-ID

    IMAGE-ID 를 원래의 기존 이미지의 ID로 바꿉니다.

    이미지 가져오기 작업이 진행됨에 따라 작업 상태가 변경됩니다.

    | os_glance_failed_import       |
    | os_glance_importing_to_stores | dcn0,dcn1
    | status                        | importing

    이미지를 가져오지 못했음을 보여주는 출력은 다음 예와 유사합니다.

    | os_glance_failed_import       | dcn0
    | os_glance_importing_to_stores | dcn1
    | status                        | importing

    작업이 완료되면 상태가 active로 변경됩니다.

    | os_glance_failed_import       | dcn0
    | os_glance_importing_to_stores |
    | status                        | active

2.3. 기존 이미지를 여러 저장소에 복사

이 기능을 사용하면 상호 운용 가능한 이미지 가져오기 워크플로를 사용하여 Red Hat OpenStack Image 서비스(glance) 이미지 데이터를 사용하여 에 있는 여러 Ceph Storage 저장소로 기존 이미지를 복사할 수 있습니다.

참고

이미지는 에지 사이트에 복사하기 전에 중앙 사이트에 있어야 합니다. 이미지 소유자 또는 관리자만 기존 이미지를 새로 추가된 저장소에 복사할 수 있습니다.

--all-storestrue 로 설정하거나 이미지 데이터를 수신하도록 특정 저장소를 지정하여 기존 이미지 데이터를 복사할 수 있습니다.

  • all -stores 옵션의 기본 설정은 false 입니다. all -stores가 false인 경우 -- stores STORE1,STORE2 를 사용하여 이미지 데이터를 수신하는 저장소를 지정해야 합니다. 지정된 저장소에 이미지 데이터가 이미 있는 경우 요청이 실패합니다.
  • all-storestrue 로 설정하고 이미지 데이터가 일부 저장소에 이미 있는 경우 해당 저장소는 목록에서 제외됩니다.

이미지 데이터를 수신하는 저장소를 지정하면 이미지 서비스에서 중앙 사이트에서 스테이징 영역으로 데이터를 복사합니다. 그런 다음 이미지 서비스는 상호 운용 가능한 이미지 가져오기 워크플로를 사용하여 이미지 데이터를 가져옵니다. 자세한 내용은 여러 저장소에 이미지 가져오기를 참조하십시오.

중요

Red Hat은 관리자가 시간이 많이 소요되는 이미지 복사 요청을 신중하게 피하도록 권장합니다. 동일한 이미지에 대해 두 번 긴밀한 시간 복사 이미지 작업으로 인해 경쟁 조건과 예기치 않은 결과가 발생합니다. 기존 이미지 데이터는 그대로 남아 있지만 데이터를 새 저장소로 복사하는 데 실패합니다.

2.3.1. 모든 저장소에 이미지 복사

다음 절차에 따라 이미지 데이터를 사용 가능한 모든 저장소에 복사합니다.

절차

  1. 사용 가능한 모든 저장소에 이미지 데이터를 복사합니다.

    $ glance image-import IMAGE-ID \
    --all-stores true \
    --import-method copy-image

    IMAGE-ID 를 복사할 이미지의 이름으로 바꿉니다.

  2. 이미지 데이터가 사용 가능한 모든 저장소에 성공적으로 복제되었는지 확인합니다.

    $ glance image-list --include-stores

    이미지 가져오기 작업의 상태를 확인하는 방법에 대한 자세한 내용은 이미지 가져오기 작업의 진행 상황 확인을 참조하십시오.

2.3.2. 특정 저장소에 이미지 복사

다음 절차에 따라 이미지 데이터를 특정 저장소에 복사합니다.

절차

  1. 특정 저장소에 이미지 데이터를 복사합니다.

    $ glance image-import IMAGE-ID \
    --stores STORE1,STORE2 \
    --import-method copy-image
    • IMAGE-ID 를 복사할 이미지의 이름으로 바꿉니다.
    • STORE1STORE2 를 이미지 데이터를 복사하려는 저장소의 이름으로 바꿉니다.
  2. 이미지 데이터가 지정된 저장소에 성공적으로 복제되었는지 확인합니다.

    $ glance image-list --include-stores

    이미지 가져오기 작업의 상태를 확인하는 방법에 대한 자세한 내용은 이미지 가져오기 작업의 진행 상황 확인을 참조하십시오.

2.4. 특정 저장소에서 이미지 삭제

이 기능을 사용하면 Red Hat OpenStack Image 서비스(glance)를 사용하여 특정 저장소에서 기존 이미지 복사본을 삭제할 수 있습니다.

절차

특정 저장소에서 이미지를 삭제합니다.

$ glance stores-delete --store _STORE_ID_ _IMAGE_ID_
  • _STORE_ID를 이미지 복사본을 삭제해야 하는 저장소 이름으로 교체합니다.
  • IMAGE_ID 를 삭제하려는 이미지의 ID로 바꿉니다.
주의

glance image-delete 를 사용하면 모든 사이트에서 이미지가 영구적으로 삭제됩니다. 모든 이미지 복사본과 이미지 인스턴스 및 메타데이터가 삭제됩니다.

2.5. 이미지 위치 이해

이미지가 여러 사이트에 있을 수 있지만 지정된 이미지에 대한 단일 UUID만 있습니다. 이미지 메타데이터에는 각 복사본의 위치가 포함됩니다. 예를 들어 두 개의 에지 사이트에 있는 이미지는 중앙 사이트와 두 개의 에지 사이트를 포함하는 세 개의 위치가 있는 단일 UUID로 노출됩니다.

절차

  1. 이미지 사본이 있는 사이트를 표시합니다.

    $ glance image-show ID | grep "stores"
    
    | stores |  default_backend,dcn1,dcn2

    이 예제에서 이미지는 중앙 사이트인 default_backend 및 두 개의 에지 사이트 dcn1 및 dcn 2 에 있습니다.

  2. 또는 --include -stores 옵션과 함께 glance image- list 명령을 실행하여 이미지가 있는 사이트를 확인할 수 있습니다.

    $ glance image-list --include-stores
    
    | ID                                   | Name    | Stores
    
    | 2bd882e7-1da0-4078-97fe-f1bb81f61b00 | cirros | default_backend,dcn1,dcn2
  3. 이미지 위치 속성을 나열하여 각 위치의 세부 정보를 표시합니다.

    $ openstack image show ID -c properties
    
    | properties |
    
    (--- cut ---)
    locations='[{'url': 'rbd://79b70c32-df46-4741-93c0-8118ae2ae284/images/2bd882e7-1da0-4078-97fe-f1bb81f61b00/snap', 'metadata': {'store': 'default_backend'}}, {'url': 'rbd://63df2767-8ddb-4e06-8186-8c155334f487/images/2bd882e7-1da0-4078-97fe-f1bb81f61b00/snap', 'metadata': {'store': 'dcn1'}}, {'url': 'rbd://1b324138-2ef9-4ef9-bd9e-aa7e6d6ead78/images/2bd882e7-1da0-4078-97fe-f1bb81f61b00/snap', 'metadata': {'store': 'dcn2'}}]',
    (--- cut --)

    이미지 속성은 각 이미지의 위치에 대한 다양한 Ceph RBD URI를 표시합니다.

    이 예제에서 중앙 이미지 위치 URI는 다음과 같습니다.

    rbd://79b70c32-df46-4741-93c0-8118ae2ae284/images/2bd882e7-1da0-4078-97fe-f1bb81f61b00/snap', 'metadata': {'store': 'default_backend'}}

    URI는 다음 데이터로 구성됩니다.

    • 79b70c32-df46-4741-93c0-8118ae2ae284 는 중앙 Ceph FSID에 해당합니다. 각 Ceph 클러스터에는 고유한 FSID가 있습니다.
    • 모든 사이트의 기본값은 images로, 이미지가 저장되는 Ceph 풀에 해당합니다.
    • 2bd882e7-1da0-4078-97fe-f1bb81f61b00 은 이미지 UUID에 해당합니다. UUID는 위치와 관계없이 지정된 이미지에 대해 동일합니다.
    • 메타데이터는 이 위치가 매핑하는 Glance 저장소를 표시합니다. 이 예제에서는 중앙 허브 사이트인 default_backend 에 매핑됩니다.

부록 A. 이미지 구성 매개변수

다음 키는 glance image -update 및 glance image- create 명령 모두의 property 옵션과 함께 사용할 수 있습니다.

$ glance image-update IMG-UUID --property architecture=x86_64
표 A.1. 속성 키
특정 대상설명지원되는 값

모두

아키텍처

하이퍼바이저에서 지원해야 하는 CPU 아키텍처입니다. 예를 들면 x86_64,arm 또는 ppc64 입니다. uname -m 을 실행하여 시스템의 아키텍처를 가져옵니다.

  • Alpha - DEC 64비트 RISC
  • armv7l - ARM Cortex-A7 MPCore
  • CRIS -이더넷, 토큰 링, AXis-코드 감소 명령 세트
  • i686 - Intel 6세대 x86(P6 마이크로 아키텍처)
  • ia64 - Itanium
  • lm32 - Lattice Micro32
  • m68k - Motorola 68000
  • MicroBlaze - Xilinx 32비트 FPGA (Big Endian)
  • Microblazeel - Xilinx 32비트 FPGA(Little Endian)
  • MIPS - MIPS 32 비트 RISC (Big Endian)
  • M ipsel - MIPS 32비트 RISC (Little Endian)
  • mips64 - MIPS 64비트 RISC (Big Endian)
  • mips64el - MIPS 64비트 RISC (Little Endian)
  • openrisc - OpenCores RISC
  • parisc - HP Precision Architecture RISC
  • parisc64 - HP precision Architecture 64비트 RISC
  • ppc - PowerPC 32-bit
  • ppc64 - PowerPC 64-bit
  • ppcemb - PowerPC (Embedded 32비트)
  • s390 - IBM Enterprise Systems Architecture/390
  • s390x - S/390 64-bit
  • sh4 - SuperH SH-4 (Little Endian)
  • sh4eb - SuperH SH-4 (Big Endian)
  • SPARC - 확장 가능한 프로세서 아키텍처, 32비트
  • SPrc64 - 확장 가능한 프로세서 아키텍처, 64비트
  • unicore32 - 마이크로프로세서 연구 및 개발 센터 RISC Unicore32
  • x86_64 - 64비트 IA-32 확장
  • xtensa - Tensilica Xtensa 구성 가능한 마이크로 프로세서 코어
  • xtensaeb - Tensilica Xtensa 구성 가능한 마이크로 프로세서 코어 (Big Endian)

모두

hypervisor_type

하이퍼바이저 유형.

kvm, vmware

모두

instance_uuid

스냅샷 이미지의 경우 이 이미지를 만드는 데 사용되는 서버의 UUID입니다.

유효한 서버 UUID

모두

kernel_id

AMI 스타일 이미지를 부팅할 때 커널로 사용해야 하는 이미지 서비스에 저장된 이미지의 ID입니다.

유효한 이미지 ID

모두

os_distro

소문자로 된 운영 체제 배포의 일반 이름입니다.

  • 아키텍처 - 아키텍처 Linux. archlinux 또는 org.archlinux 를 사용하지 마십시오.
  • CentOS - 커뮤니티 엔터프라이즈 운영 체제. org.centos 또는 CentOS 를 사용하지 마십시오.
  • 데비안 - 데비안. Debian 또는 org.debian 을 사용하지 마십시오.
  • Fedora - Fedora. Fedora,org.fedora, org.fedora project 를 사용하지 마십시오.
  • freebsd - FreeBSD. org.freebsd,freeBSD 또는œ를 사용하지 마십시오.
  • Gentoo - Gentoo Linux. Gentoo 또는 org.gentoo 를 사용하지 마십시오.
  • Mandrake - Mandrakelinux(MandrakeSoft) 배포. mandrakelinux 또는 MandrakeLinux 를 사용하지 마십시오.
  • Mandriva - Mandriva Linux. mandrivalinux 를 사용하지 마십시오.
  • MES - Mandriva Enterprise Server. mandrivaent 또는 mandriva ES 를 사용하지 마십시오.
  • MSDOS - Microsoft 디스크 운영 체제. ms-dos 를 사용하지 마십시오.
  • netbsd - NetBSD. NetBSD 또는 org.netbsd 를 사용하지 마십시오.
  • NetWare - Novell NetWare. metal l 또는 NetWare 를 사용하지 마십시오.
  • openbsd - OpenBSD. OpenBSD 또는 org.openbsd 를 사용하지 마십시오.
  • OpenSolaris - OpenSolaris. OpenSolaris 또는 org.opensolaris 를 사용하지 마십시오.
  • opensuse - openSUSE. suse,SuSE 또는 org.opensuse를 사용하지 마십시오.
  • RHEL - Red Hat Enterprise Linux. redhat,RedHat 또는 com.redhat 을 사용하지 마십시오.
  • SUSE Linux Enterprise Desktop. com.suse 를 사용하지 마십시오.
  • Ubuntu - Ubuntu. Ubuntu,com.ubuntu,org.ubuntu 또는 정식을 사용하지 마십시오.
  • Windows - Microsoft Windows. com.microsoft.server 를 사용하지 마십시오.

모두

os_version

배포업체가 지정한 운영 체제 버전입니다.

버전 번호(예: "11.10")

모두

ramdisk_id

AMI 스타일 이미지를 부팅할 때 ramdisk로 사용해야 하는 이미지 서비스에 저장된 이미지의 ID입니다.

유효한 이미지 ID

모두

vm_mode

가상 머신 모드입니다. 이는 가상 시스템에 사용되는 호스트/게스트 ABI(애플리케이션 바이너리 인터페이스)를 나타냅니다.

HVM- 완전 가상화. QEMU 및 KVM에서 사용하는 모드입니다.

libvirt API 드라이버

hw_disk_bus

디스크 장치를 연결할 디스크 컨트롤러 유형을 지정합니다.

SCSI,virtio,ide 또는 usb. iscsi 를 사용하는 경우 hw_scsi_modelvirtio-scsi 로 설정해야 합니다.

libvirt API 드라이버

hw_cdrom_bus

CD-ROM 장치를 연결할 디스크 컨트롤러 유형을 지정합니다.

SCSI,virtio,ide 또는 usb. iscsi 를 지정하는 경우 hw_scsi_model 매개변수를 virtio-scsi 로 설정해야 합니다.

libvirt API 드라이버

hw_numa_nodes

인스턴스에 표시할 NUMA 노드 수입니다(플레이버 정의를 재정의하지 않음).

정수.

libvirt API 드라이버

hw_numa_cpus.0

vCPU N-M과 NUMA 노드 0 매핑(플레이버 정의를 재정의하지 않음).

쉼표로 구분된 정수 목록입니다.

libvirt API 드라이버

hw_numa_cpus.1

vCPU N-M을 NUMA 노드 1에 매핑(플레이버 정의 재정의하지 않음).

쉼표로 구분된 정수 목록입니다.

libvirt API 드라이버

hw_numa_mem.0

NMB의 RAM을 NUMA 노드 0에 매핑합니다(플레이버 정의를 재정의하지 않음).

정수

libvirt API 드라이버

hw_numa_mem.1

NMB의 RAM을 NUMA 노드 1에 매핑(플레이버 정의 재정의하지 않음).

정수

libvirt API 드라이버

hw_qemu_guest_agent

게스트 에이전트 지원. yes 로 설정되어 있고 qemu-ga 도 설치된 경우 파일 시스템을 정지(frozen)하고 자동으로 스냅숏을 생성할 수 있습니다.

예/아니요

libvirt API 드라이버

hw_rng_model

이 이미지로 시작된 인스턴스에 임의 번호 생성기(RNG) 장치를 추가합니다.

instance 플레이버는 기본적으로 RNG 장치를 활성화합니다. RNG 장치를 비활성화하려면 클라우드 관리자가 플레이버에서 hw_rng:allowedFalse 로 설정해야 합니다.

기본 엔트로피 소스는 /dev/random 입니다. 하드웨어 RNG 장치를 지정하려면 Compute 환경 파일에서 set rng_dev_path/dev/hwrng 로 지정합니다.

VirtIO 또는 기타 지원 장치.

libvirt API 드라이버

hw_scsi_model

VirtIO SCSI(virtio-scsi)를 사용하여 계산 인스턴스에 블록 장치 액세스를 제공합니다. 기본적으로 인스턴스에서 VirtIO 블록(virtio-blk)을 사용합니다. VirtIO SCSI는 향상된 확장성과 성능을 제공하고 고급 SCSI 하드웨어를 지원하는 반가상화 SCSI 컨트롤러 장치입니다.

virtio-scsi

libvirt API 드라이버

hw_video_model

가상 시스템 인스턴스에서 사용할 디스플레이 장치의 비디오 장치 드라이버입니다.

사용할 지원되는 드라이버를 지정하려면 다음 값 중 하나로 설정합니다.

  • Virtio - 대부분의 아키텍처에서 지원하는 가상 시스템 디스플레이 장치용 권장 드라이버. VirtIO GPU 드라이버는 RHEL-7 이상, Linux 커널 버전 4.4 이상에 포함되어 있습니다. 인스턴스 커널에 VirtIO GPU 드라이버가 있는 경우 인스턴스에서 VirtIO GPU 기능을 모두 사용할 수 있습니다. 인스턴스 커널에 VirtIO GPU 드라이버가 없는 경우 VirtIO GPU 장치는 정상적으로 다시 UEFI 호환성 모드로 전환되며 인스턴스에 대해 작동하는 디스플레이를 제공합니다.
  • QXL - 더 이상 유지 관리되지 않는 Spice 또는 noVNC 환경에 대해 더 이상 사용되지 않는 드라이버.
  • Cirrus - 레거시 드라이버.
  • cd - IBM Power 환경에 이 드라이버를 사용합니다.
  • GOP - QEMU/KVM 환경에서는 지원되지 않습니다.
  • Xen - KVM 환경에서는 지원되지 않음.
  • vmvga - 레거시 드라이버, 사용하지 마십시오.
  • none - 드라이버가 개별적으로 구성된 vGPU(가상 GPU) 인스턴스에서 에뮬레이트된 그래픽 또는 동영상을 비활성화하려면 이 값을 사용합니다.

libvirt API 드라이버

hw_video_ram

비디오 이미지의 최대 RAM. 플레이버의 extra _specs에 hw_video:ram_max_mb 값이 설정되고 해당 값이 hw_ video_ram 에 설정된 값보다 큰 경우에만 사용됩니다.

MB 단위 정수(예: 64)

libvirt API 드라이버

hw_watchdog_action

서버가 중지되면 지정된 작업을 수행하는 가상 하드웨어 워치독 장치를 활성화합니다. 워치독은 i6300esb 장치를 사용합니다(PCI Intel 6300ESB 에뮬레이션). hw_watchdog_action 이 지정되지 않은 경우 워치독이 비활성화됩니다.

  • Disabled-장치가 연결되어 있지 않습니다. 이미지의 플레이버를 사용하여 활성화된 경우에도 사용자가 이미지에 대한 워치독을 비활성화할 수 있습니다. 이 매개변수의 기본값은 비활성화되어 있습니다.
  • 재설정-게스트를 재설정합니다.
  • poweroff-게스트의 전원을 끕니다.
  • 일시 중지-게스트 일시 중지.
  • 워치독만 활성화할 수 있습니다. 서버가 중지되면 아무 일도 수행하지 마십시오.

libvirt API 드라이버

os_command_line

libvirt 드라이버에서 기본값 대신 사용할 커널 명령줄입니다. LXC(Linux Containers)의 경우 값은 초기화를 위한 인수로 사용됩니다. 이 키는 Amazon 커널, ramdisk 또는 시스템 이미지(aki, ari 또는 ami)에만 유효합니다.

 

libvirt API 드라이버 및 VMware API 드라이버

hw_vif_model

사용할 가상 네트워크 인터페이스 장치의 모델을 지정합니다.

유효한 옵션은 구성된 하이퍼바이저에 따라 다릅니다.

  • KVM 및 QEMU: e1000, ne2k_pci, pcnet, rtl8139, virtio.
  • VMware: e1000, e1000e, VirtualE1000, VirtualE1000e, VirtualPCNet32, VirtualSriovEthernet Card 및 VirtualVmxnet.
  • Xen: e1000, netfront, ne2k_pci, pcnet 및 rtl8139.

VMware API 드라이버

vmware_adaptertype

하이퍼바이저에서 사용하는 가상 SCSI 또는 IDE 컨트롤러.

lsiLogic, busLogic, or ide

VMware API 드라이버

vmware_ostype

이미지에 설치된 운영 체제를 설명하는 VMware GuestID. 이 값은 가상 머신을 생성할 때 하이퍼바이저로 전달됩니다. 지정하지 않는 경우 키의 기본값은 otherGuest 입니다.

자세한 내용은 VMware vSphere가 포함된 이미지를 참조하십시오.

VMware API 드라이버

vmware_image_version

현재 사용하지 않는 경우.

1

XenAPI 드라이버

auto_disk_config

true인 경우 인스턴스가 부팅되기 전에 디스크의 루트 파티션의 크기가 자동으로 조정됩니다. 이 값은 XenAPI 드라이버와 함께 Xen 기반 하이퍼바이저를 사용하는 경우에만 계산 서비스에서 고려합니다. 계산 서비스는 이미지에 하나의 파티션이 있는 경우에만 파티션이 ext3 또는 ext 4 형식인 경우에만 크기를 조정합니다.

true / false

libvirt API 드라이버 및 XenAPI 드라이버

os_type

이미지에 설치된 운영 체제입니다. XenAPI 드라이버에는 이미지의 os_type 매개 변수 값에 따라 다른 작업이 필요한 논리가 포함되어 있습니다. 예를 들어 os_type=windows 이미지의 경우 Linux 스왑 파티션 대신 FAT32 기반 스왑 파티션을 만들고 삽입된 호스트 이름을 16자 미만으로 제한합니다.

Linux 또는

법적 공지

Copyright © 2024 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
Red Hat logoGithubRedditYoutube

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.