검색

7.15.4.4. CLI를 사용하여 가상 머신 가져오기

download PDF

SecretVirtualMachineImport CR(사용자 정의 리소스)을 생성하여 CLI로 가상 머신을 가져올 수 있습니다. Secret CR은 RHV Manager 자격 증명과 CA 인증서를 저장합니다. VirtualMachineImport CR은 VM 가져오기 프로세스의 매개변수를 정의합니다.

선택 사항: VirtualMachineImport CR과 별도의 ResourceMapping CR을 생성할 수 있습니다. ResourceMapping CR은 예를 들면 추가 RHV VM을 가져오는 경우 향상된 유연성을 제공합니다.

중요

기본 대상 스토리지 클래스는 NFS여야 합니다. Cinder에서는 RHV VM 가져오기를 지원하지 않습니다.

절차

  1. 다음 명령을 실행하여 Secret CR을 생성합니다.

    $ cat <<EOF | oc create -f -
    apiVersion: v1
    kind: Secret
    metadata:
      name: rhv-credentials
      namespace: default 1
    type: Opaque
    stringData:
      ovirt: |
        apiUrl: <api_endpoint> 2
        username: ocpadmin@internal
        password: 3
        caCert: |
          -----BEGIN CERTIFICATE-----
          4
          -----END CERTIFICATE-----
    EOF
    1
    선택사항입니다. 모든 CR에 다른 네임스페이스를 지정할 수 있습니다.
    2
    RHV Manager의 API 끝점(예: \"https://www.example.com:8443/ovirt-engine/api")을 지정합니다.
    3
    ocpadmin@internal의 암호를 지정합니다.
    4
    RHV Manager CA 인증서를 지정합니다. 다음 명령을 실행하여 CA 인증서를 가져올 수 있습니다.
    $ openssl s_client -connect :443 -showcerts < /dev/null
  2. 선택 사항: 다음 명령을 실행하여 VirtualMachineImport CR에서 리소스 매핑을 분리하려면 ResourceMapping CR을 생성합니다.

    $ cat <<EOF | kubectl create -f -
    apiVersion: v2v.kubevirt.io/v1alpha1
    kind: ResourceMapping
    metadata:
      name: resourcemapping_example
      namespace: default
    spec:
      ovirt:
        networkMappings:
          - source:
              name: <rhv_logical_network>/<vnic_profile> 1
            target:
              name: <target_network> 2
            type: pod
        storageMappings: 3
          - source:
              name: <rhv_storage_domain> 4
            target:
              name: <target_storage_class> 5
            volumeMode: <volume_mode> 6
    EOF
    1
    RHV 논리 네트워크 및 vNIC 프로필을 지정합니다.
    2
    OpenShift Virtualization 네트워크를 지정합니다.
    3
    스토리지 매핑이 ResourceMapping CR과 VirtualMachineImport CR에 모두 지정된 경우 VirtualMachineImport CR이 우선합니다.
    4
    RHV 스토리지 도메인을 지정합니다.
    5
    NFS 또는 ocs-storagecluster-ceph-rbd를 지정합니다.
    6
    ocs-storagecluster-ceph-rbd 스토리지 클래스를 지정한 경우 볼륨 모드를 Block으로 지정해야 합니다.
  3. 다음 명령을 실행하여 VirtualMachineImport CR을 생성합니다.

    $ cat <<EOF | oc create -f -
    apiVersion: v2v.kubevirt.io/v1beta1
    kind: VirtualMachineImport
    metadata:
      name: vm-import
      namespace: default
    spec:
      providerCredentialsSecret:
        name: rhv-credentials
        namespace: default
    # resourceMapping: 1
    #   name: resourcemapping-example
    #   namespace: default
      targetVmName: vm_example 2
      startVm: true
      source:
        ovirt:
          vm:
            id: <source_vm_id> 3
            name: <source_vm_name> 4
          cluster:
            name: <source_cluster_name> 5
          mappings: 6
            networkMappings:
              - source:
                  name: <source_logical_network>/<vnic_profile> 7
                target:
                  name: <target_network> 8
                type: pod
            storageMappings: 9
              - source:
                  name: <source_storage_domain> 10
                target:
                  name: <target_storage_class> 11
                accessMode: <volume_access_mode> 12
            diskMappings:
              - source:
                  id: <source_vm_disk_id> 13
                target:
                  name: <target_storage_class> 14
    EOF
    1
    ResourceMapping CR을 생성하는 경우 resourceMapping 섹션의 주석을 제거하십시오.
    2
    대상 VM 이름을 지정합니다.
    3
    소스 VM ID를 지정합니다(예: 80554327-0569-496b-bdeb-fcbbf52b827b). Manager 머신의 웹 브라우저에 https://www.example.com/ovirt-engine/api/vms/를 입력하여 모든 VM을 나열하는 방식으로 VM ID를 가져올 수 있습니다. 가져올 VM과 해당 VM ID를 찾습니다. VM 이름이나 클러스터 이름을 지정할 필요가 없습니다.
    4
    소스 VM 이름을 지정하는 경우 소스 클러스터도 지정해야 합니다. 소스 VM ID는 지정하지 않도록 합니다.
    5
    소스 클러스터를 지정하는 경우 소스 VM 이름도 지정해야 합니다. 소스 VM ID는 지정하지 않도록 합니다.
    6
    ResourceMapping CR을 생성하는 경우 mappings 섹션을 주석으로 처리합니다.
    7
    소스 VM의 논리 네트워크 및 vNIC 프로필을 지정합니다.
    8
    OpenShift Virtualization 네트워크를 지정합니다.
    9
    스토리지 매핑이 ResourceMapping CR과 VirtualMachineImport CR에 모두 지정된 경우 VirtualMachineImport CR이 우선합니다.
    10
    소스 스토리지 도메인을 지정합니다.
    11
    대상 스토리지 클래스를 지정합니다.
    12
    ReadWriteOnce, ReadWriteMany 또는 ReadOnlyMany를 지정합니다. 액세스 모드가 지정되지 않은 경우 {virt}는 RHV VM의 호스트 마이그레이션 모드 설정 또는 가상 디스크 액세스 모드를 기반으로 올바른 볼륨 액세스 모드를 결정합니다.
    • RHV VM 마이그레이션 모드가 수동 및 자동 마이그레이션 허용인 경우 기본 액세스 모드는 ReadWriteMany입니다.
    • RHV 가상 디스크 액세스 모드가 ReadOnly이면 기본 액세스 모드는 ReadOnlyMany입니다.
    • 다른 모든 설정에서 기본 액세스 모드는 ReadWriteOnce입니다.
    13
    소스 VM 디스크 ID를 지정합니다(예: 8181ecc1-5db8-4193-9c92-3ddab3be7b05). Manager 머신의 웹 브라우저에 https://www.example.com/ovirt-engine/api/vms/vm23을 입력하고 VM 세부 정보를 검토하여 디스크 ID를 가져올 수 있습니다.
    14
    대상 스토리지 클래스를 지정합니다.
  4. 가상 머신 가져오기 진행률을 보고 가져오기가 성공했는지 확인합니다.

    $ oc get vmimports vm-import -n default

    가져오기가 성공했음을 나타내는 출력은 다음 예와 유사합니다.

    출력 예

    ...
    status:
      conditions:
      - lastHeartbeatTime: "2020-07-22T08:58:52Z"
        lastTransitionTime: "2020-07-22T08:58:52Z"
        message: Validation completed successfully
        reason: ValidationCompleted
        status: "True"
        type: Valid
      - lastHeartbeatTime: "2020-07-22T08:58:52Z"
        lastTransitionTime: "2020-07-22T08:58:52Z"
        message: 'VM specifies IO Threads: 1, VM has NUMA tune mode specified: interleave'
        reason: MappingRulesVerificationReportedWarnings
        status: "True"
        type: MappingRulesVerified
      - lastHeartbeatTime: "2020-07-22T08:58:56Z"
        lastTransitionTime: "2020-07-22T08:58:52Z"
        message: Copying virtual machine disks
        reason: CopyingDisks
        status: "True"
        type: Processing
      dataVolumes:
      - name: fedora32-b870c429-11e0-4630-b3df-21da551a48c0
      targetVmName: fedora32

7.15.4.4.1. VM 가져오기를 위한 구성 맵 만들기

기본 vm-import-controller 매핑을 재정의하거나 매핑을 추가하려는 경우 RHV(Red Hat Virtualization) 가상 머신 운영 체제를 OpenShift Virtualization 템플릿에 매핑하는 구성 맵을 만들 수 있습니다.

기본 vm-import-controller 구성 맵에는 다음 RHV 운영 체제와 해당하는 공통 OpenShift Virtualization 템플릿이 포함되어 있습니다.

표 7.4. 운영 체제 및 템플릿 매핑
RHV VM 운영 체제OpenShift Virtualization 템플릿

rhel_6_9_plus_ppc64

rhel6.9

rhel_6_ppc64

rhel6.9

rhel_6

rhel6.9

rhel_6x64

rhel6.9

rhel_7_ppc64

rhel7.7

rhel_7_s390x

rhel7.7

rhel_7x64

rhel7.7

rhel_8x64

rhel8.1

sles_11_ppc64

opensuse15.0

sles_11

opensuse15.0

sles_12_s390x

opensuse15.0

ubuntu_12_04

ubuntu18.04

ubuntu_12_10

ubuntu18.04

ubuntu_13_04

ubuntu18.04

ubuntu_13_10

ubuntu18.04

ubuntu_14_04_ppc64

ubuntu18.04

ubuntu_14_04

ubuntu18.04

ubuntu_16_04_s390x

ubuntu18.04

windows_10

win10

windows_10x64

win10

windows_2003

win10

windows_2003x64

win10

windows_2008R2x64

win2k8

windows_2008

win2k8

windows_2008x64

win2k8

windows_2012R2x64

win2k12r2

windows_2012x64

win2k12r2

windows_2016x64

win2k16

windows_2019x64

win2k19

windows_7

win10

windows_7x64

win10

windows_8

win10

windows_8x64

win10

windows_xp

win10

절차

  1. 웹 브라우저에서 http://<RHV_Manager_FQDN>/ovirt-engine/api/vms/<VM_ID>로 이동하여 RHV VM 운영 체제의 REST API 이름을 확인합니다. 운영 체제 이름은 XML 출력의 <os> 섹션에 다음 예와 같이 표시됩니다.

    ...
    <os>
    ...
    <type>rhel_8x64</type>
    </os>
  2. 사용 가능한 OpenShift Virtualization 템플릿 목록을 확인합니다.

    $ oc get templates -n openshift --show-labels | tr ',' '\n' | grep os.template.kubevirt.io | sed -r 's#os.template.kubevirt.io/(.*)=.*#\1#g' | sort -u

    출력 예

    fedora31
    fedora32
    ...
    rhel8.1
    rhel8.2
    ...

  3. RHV VM 운영 체제와 일치하는 OpenShift Virtualization 템플릿이 사용 가능한 템플릿 목록에 나타나지 않으면 OpenShift Virtualization 웹 콘솔을 사용하여 템플릿을 만듭니다.
  4. RHV VM 운영 체제를 OpenShift Virtualization 템플릿에 매핑하는 구성 맵을 만듭니다.

    $ cat <<EOF | oc create -f -
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: os-configmap
      namespace: default 1
    data:
      guestos2common: |
        "Red Hat Enterprise Linux Server": "rhel"
        "CentOS Linux": "centos"
        "Fedora": "fedora"
        "Ubuntu": "ubuntu"
        "openSUSE": "opensuse"
      osinfo2common: |
        "<rhv-operating-system>": "<vm-template>" 2
    EOF
    1
    선택 사항: namespace 매개변수의 값을 변경할 수 있습니다.
    2
    다음 예제와 같이 RHV 운영 체제의 REST API 이름과 해당 VM 템플릿을 지정합니다.

    구성 맵 예

    $ cat <<EOF | oc apply -f -
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: os-configmap
      namespace: default
    data:
      osinfo2common: |
        "other_linux": "fedora31"
    EOF

  5. 사용자 정의 구성 맵이 생성되었는지 확인합니다.

    $ oc get cm -n default os-configmap -o yaml
  6. vm-import-controller-config 구성 맵을 패치하여 새 구성 맵을 적용합니다.

    $ oc patch configmap vm-import-controller-config -n openshift-cnv --patch '{
        "data": {
            "osConfigMap.name": "os-configmap",
            "osConfigMap.namespace": "default" 1
        }
    }'
    1
    구성 맵에서 네임스페이스를 변경한 경우 업데이트하십시오.
  7. OpenShift Virtualization 웹 콘솔에 템플릿이 표시되는지 확인합니다.

    1. 사이드 메뉴에서 워크로드 가상화를 클릭합니다.
    2. 가상 머신 템플릿 탭을 클릭하고 목록에서 템플릿을 찾습니다.
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.