vSphere에서 VM을 VMware Integrated OpenStack 배포 환경으로 가져와서 OpenStack 인스턴스처럼 관리할 수 있습니다.

VMware Integrated OpenStack 관리 서버와 함께 패키지로 구성되고 VMware Integrated OpenStack vAPI 공급자가 제공하는 DCLI(데이터 센터 명령줄 인터페이스)를 사용하여 VM을 가져옵니다.

가져온 VM은 OpenStack 인스턴스가 되지만 다음과 같은 몇 가지 측면에서 고유합니다.
  • 가져온 VM에 여러 개의 디스크가 있는 경우:
    • Nova 스냅샷 생성이 지원되지 않습니다.
    • Nova 크기 조정 작업이 지원되지 않습니다.
  • 기존 네트워크는 공급자 네트워크 유형 포트 그룹으로 가져오게 되며 서브넷은 DHCP가 사용되지 않도록 설정된 상태로 생성됩니다. 이는 OpenStack의 DHCP 노드와 외부 DHCP 서버 사이의 충돌을 방지합니다.
    참고: 리스 갱신 시 DHCP 서버가 동일한 IP 주소를 유지하지 못하면 OpenStack의 인스턴스 정보에 잘못된 IP 주소가 표시됩니다. 이러한 이유 때문에 기존 DHCP 서버에는 정적 DHCP 바인딩을 사용하는 것이 좋습니다. 또한 외부 서버의 DHCP 주소가 있는 경우, 해당 DHCP 주소가 OpenStack과 충돌할 가능성이 있으므로 가져온 네트워크에서 새로운 OpenStack 인스턴스를 시작하지 않는 것이 좋습니다.
  • 가져온 VM에 대한 플레이버에는 CPU와 메모리가 올바르게 표시되지만 루트 디스크가 0GB로 잘못 표시됩니다.

사전 요구 사항

  • VMware Integrated OpenStack 버전 4.0을 실행 중인지 확인합니다.
  • VMware Integrated OpenStack이 배포되고 실행 중인지 확인합니다.
  • 가져올 VM이 동일한 vCenter에 있는지 확인합니다.
  • VM 가져오기는 NSX 및 Neutron용 VDS 플러그인을 사용할 경우 지원됩니다.
    참고: VMware Integrated OpenStack 3.0을 실행하는 중이면 NSX 논리적 스위치가 지원하는 VM을 가져올 수 없습니다. 네트워크 백업은 일반 분산 포트 그룹이어야 합니다. 이 기능은 VMware Integrated OpenStack 3.1 이상에서 지원됩니다.

프로시저

  1. 가져올 VM이 포함된 클러스터를 VMware Integrated OpenStack 배포에 추가합니다.
    1. vSphere Web Client에서 가져올 VM이 포함된 클러스터를 식별합니다.
    2. VMware Integrated OpenStack 배포에 해당 클러스터를 Nova 컴퓨팅 클러스터로 추가합니다.
    3. 필요한 경우, 여러 클러스터에 대해 작업을 반복합니다.
    클러스터가 Nova 컴퓨팅 클러스터로 추가되면 VM을 가져올 수 있습니다.
  2. SSH를 사용하여 VMware Integrated OpenStack Manager에 로그인합니다.
  3. VMware Integrated OpenStack vAPI 끝점에 연결합니다.
    끝점은 로컬로 실행됩니다.
    dcli +server http://localhost:9449/api +i
    이 명령은 대화형 셸( dcli)을 엽니다.
  4. VMware Integrated OpenStack vAPI 공급자의 모든 네임스페이스를 나열합니다.
    dcli> com vmware vio 
    The vio namespace provides namespaces to manage components related to OpenStack and vSphere
    Available Namespaces:
    vm
  5. (선택 사항) 관리되지 않는 VM 가져오기와 관련된 명령을 나열합니다.
    관리되지 않는 VM은 VMware Integrated OpenStack에 있는 VM 중 OpenStack 인스턴스로 관리되지 않는 VM입니다. 이 경우, 관리되지 않는 VM에는 계산 노드에 추가한 클러스터 내의 VM이 포함됩니다.
    dcli> com vmware vio vm unmanaged 
    The Unmanaged namespace provides commands to manage virtual machine not under OpenStack
    Available Commands:
    importall   Imports all unmanaged virtual machines into OpenStack
    importvm    Imports given virtual machine into OpenStack
    list        Enumerates the list of unmanaged virtual machines
  6. (선택 사항) Nova 컴퓨팅 노드에 추가한 특정 대상 클러스터 내의 모든 관리되지 않는 VM을 나열합니다.
    com vmware vio vm unmanaged list --cluster <vcenter cluster mor-id>

  7. VMware Integrated OpenStack으로 VM을 가져옵니다.
    모든 VM을 가져오거나 특정 VM을 가져올 수 있습니다.
    1. 모든 VM을 가져오려면 다음을 수행합니다.
      com vmware vio vm unmanaged importall [-h] --cluster CLUSTER [--tenant-mapping {FOLDER,RESOURCE_POOL}] [--root-folder ROOT_FOLDER]
                                                   [--root-resource-pool ROOT_RESOURCE_POOL]
      옵션 설명
      --cluster CLUSTER

      VM이 속해 있는 Nova 컴퓨팅 클러스터를 지정합니다.

      --tenant-mapping {FOLDER,RESOURCE_POOL}

      폴더 또는 리소스 풀 내의 위치를 기반으로 vSphere VM을 OpenStack 프로젝트에 매핑할지 여부를 지정합니다.

      이 매개 변수는 선택 사항입니다. 테넌트 매핑을 지정하지 않으면, 가져온 VM은 OpenStack에서 import_service 프로젝트 내의 인스턴스가 됩니다.

      --root-folder ROOT_FOLDER

      필요에 따라 tenant-mapping 매개 변수에 대해 FOLDER를 지정한 경우, 가져올 VM이 포함된 루트 폴더의 이름을 지정할 수 있습니다.

      • 하위 폴더에 포함된 VM을 포함하여 지정한 루트 폴더 내의 모든 VM을 가져오게 됩니다.
      • VM은 지정된 루트 폴더와 동일한 이름을 가진 OpenStack 프로젝트의 인스턴스로 가져오게 됩니다.
      • 루트 폴더 내의 하위 폴더에 VM이 포함되어 있는 경우, 해당 VM은 하위 폴더와 동일한 이름을 가진 OpenStack 프로젝트로 가져오게 됩니다.
      참고: 루트 폴더를 지정하지 않으면 클러스터 내의 최상위 폴더 이름이 기본적으로 사용됩니다.
      --root-resource-pool ROOT_RESOURCE_POOL

      필요에 따라 tenant-mapping 매개 변수에 대해 RESOURCE_POOL을 지정한 경우, 가져올 VM이 포함된 루트 리소스 풀의 이름을 지정할 수 있습니다.

      • 하위 리소스 풀에 포함된 VM을 포함하여 지정한 루트 리소스 풀 내의 모든 VM을 가져오게 됩니다.
      • VM은 지정된 루트 리소스 풀과 동일한 이름을 가진 OpenStack 프로젝트의 인스턴스로 가져오게 됩니다.
      • 루트 리소스 풀 내의 하위 리소스 풀에 VM이 포함되어 있는 경우, 해당 VM은 하위 리소스 풀과 동일한 이름을 가진 OpenStack 프로젝트로 가져오게 됩니다.
    2. 특정 VM을 가져오려면 다음을 수행합니다.
      com vmware vio vm unmanaged importvm [-h] \
           --vm VM [--tenant TENANT] [--nic-mac-address NIC_MAC_ADDRESS] \
           [--nic-ipv4-address NIC_IPV4_ADDRESS]
      옵션 설명
      --vm VM

      가져올 특정 VM의 vm-<id>를 지정합니다.

      com vmware vio vm unmanaged list 명령을 실행하면 가져올 모든 VM의 ID 값을 볼 수 있습니다.

      --tenant TENANT

      가져온 VM이 OpenStack 인스턴스로 상주할 OpenStack 프로젝트를 지정합니다.

      이 매개 변수는 선택 사항입니다. 이 매개 변수를 지정하지 않을 경우, 가져온 VM은 OpenStack에서 import_service 프로젝트의 인스턴스가 됩니다.

      --nic-mac-address NIC_MAC_ADDRESS

      필요에 따라 VM의 NIC에 대해 MAC 주소를 제공합니다.

      가져오기 프로세스에서 이 값을 검색할 수 없으면 가져오기가 실패합니다. 이 매개 변수는 NIC MAC 주소를 수동으로 입력할 수 있게 해줍니다.

      참고: 이 매개 변수를 지정하면 nic-ipv4-address 매개 변수도 제공해야 합니다.
      --nic-ipv4-address NIC_IPV4_ADDRESS

      필요에 따라 VM의 NIC에 대해 IP 주소를 제공합니다.

      가져오기 프로세스에서 이 값을 검색할 수 없으면 가져오기가 실패합니다. 이 매개 변수는 NIC IP 주소를 수동으로 입력할 수 있게 해줍니다.

      참고: 이 매개 변수를 지정하면 nic-mac-address 매개 변수도 제공해야 합니다.
  8. (선택 사항) custom.yml 파일을 수정하면 가져온 VM의 재배치 및 이름 바꾸기를 사용하거나 사용하지 않도록 설정할 수 있습니다.
    기본적으로 이 옵션은 사용되도록 설정됩니다.
    1. 아직 해당 작업을 수행하지 않은 경우, custom.yml 파일을 구현합니다.
      sudo mkdir -p /opt/vmware/vio/custom
      sudo cp /var/lib/vio/ansible/custom/custom.yml.sample /opt/vmware/vio/custom/custom.yml
    2. 가져온 VM의 재배치 및 이름 바꾸기를 사용하지 않으려면 custom.yml 파일에서 다음 매개 변수의 주석 처리를 제거합니다.
      nova_import_vm_relocate: false
    3. custom.yml 파일을 저장합니다.