7.15.4.4. CLI를 사용하여 가상 머신 가져오기
Secret
및 VirtualMachineImport
CR(사용자 정의 리소스)을 생성하여 CLI로 가상 머신을 가져올 수 있습니다. Secret
CR은 RHV Manager 자격 증명과 CA 인증서를 저장합니다. VirtualMachineImport
CR은 VM 가져오기 프로세스의 매개변수를 정의합니다.
선택 사항: VirtualMachineImport
CR과 별도의 ResourceMapping
CR을 생성할 수 있습니다. ResourceMapping
CR은 예를 들면 추가 RHV VM을 가져오는 경우 향상된 유연성을 제공합니다.
기본 대상 스토리지 클래스는 NFS여야 합니다. Cinder에서는 RHV VM 가져오기를 지원하지 않습니다.
절차
다음 명령을 실행하여
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
$ openssl s_client -connect :443 -showcerts < /dev/null
선택 사항: 다음 명령을 실행하여
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
으로 지정해야 합니다.
다음 명령을 실행하여
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
입니다.
-
RHV VM 마이그레이션 모드가
- 13
- 소스 VM 디스크 ID를 지정합니다(예:
8181ecc1-5db8-4193-9c92-3ddab3be7b05
). Manager 머신의 웹 브라우저에https://www.example.com/ovirt-engine/api/vms/vm23
을 입력하고 VM 세부 정보를 검토하여 디스크 ID를 가져올 수 있습니다. - 14
- 대상 스토리지 클래스를 지정합니다.
가상 머신 가져오기 진행률을 보고 가져오기가 성공했는지 확인합니다.
$ 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 템플릿이 포함되어 있습니다.
RHV VM 운영 체제 | OpenShift Virtualization 템플릿 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
절차
웹 브라우저에서
http://<RHV_Manager_FQDN>/ovirt-engine/api/vms/<VM_ID>
로 이동하여 RHV VM 운영 체제의 REST API 이름을 확인합니다. 운영 체제 이름은 XML 출력의<os>
섹션에 다음 예와 같이 표시됩니다.... <os> ... <type>rhel_8x64</type> </os>
사용 가능한 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 ...
- RHV VM 운영 체제와 일치하는 OpenShift Virtualization 템플릿이 사용 가능한 템플릿 목록에 나타나지 않으면 OpenShift Virtualization 웹 콘솔을 사용하여 템플릿을 만듭니다.
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
구성 맵 예
$ cat <<EOF | oc apply -f - apiVersion: v1 kind: ConfigMap metadata: name: os-configmap namespace: default data: osinfo2common: | "other_linux": "fedora31" EOF
사용자 정의 구성 맵이 생성되었는지 확인합니다.
$ oc get cm -n default os-configmap -o yaml
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
- 구성 맵에서 네임스페이스를 변경한 경우 업데이트하십시오.
OpenShift Virtualization 웹 콘솔에 템플릿이 표시되는지 확인합니다.
-
사이드 메뉴에서 워크로드
가상화를 클릭합니다. - 가상 머신 템플릿 탭을 클릭하고 목록에서 템플릿을 찾습니다.
-
사이드 메뉴에서 워크로드