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 가져오기를 지원하지 않습니다.
절차
다음 명령을 실행하여
SecretCR을 생성합니다.$ cat <<EOF | oc create -f - apiVersion: v1 kind: Secret metadata: name: rhv-credentials namespace: default1 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선택 사항: 다음 명령을 실행하여
VirtualMachineImportCR에서 리소스 매핑을 분리하려면ResourceMappingCR을 생성합니다.$ 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
- 스토리지 매핑이
ResourceMappingCR과VirtualMachineImportCR에 모두 지정된 경우VirtualMachineImportCR이 우선합니다. - 4
- RHV 스토리지 도메인을 지정합니다.
- 5
NFS또는ocs-storagecluster-ceph-rbd를 지정합니다.- 6
ocs-storagecluster-ceph-rbd스토리지 클래스를 지정한 경우 볼륨 모드를Block으로 지정해야 합니다.
다음 명령을 실행하여
VirtualMachineImportCR을 생성합니다.$ 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_example2 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
ResourceMappingCR을 생성하는 경우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
ResourceMappingCR을 생성하는 경우mappings섹션을 주석으로 처리합니다.- 7
- 소스 VM의 논리 네트워크 및 vNIC 프로필을 지정합니다.
- 8
- OpenShift Virtualization 네트워크를 지정합니다.
- 9
- 스토리지 매핑이
ResourceMappingCR과VirtualMachineImportCR에 모두 지정된 경우VirtualMachineImportCR이 우선합니다. - 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: default1 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 yamlvm-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 웹 콘솔에 템플릿이 표시되는지 확인합니다.
-
사이드 메뉴에서 워크로드
가상화를 클릭합니다. - 가상 머신 템플릿 탭을 클릭하고 목록에서 템플릿을 찾습니다.
-
사이드 메뉴에서 워크로드