7.12.4.6. CLI を使用した Red Hat Virtualization 仮想マシンのインポート
Secret および VirtualMachineImport カスタムリソース (CR) を作成して、CLI で Red Hat Virtualization (RHV) 仮想マシンをインポートできます。Secret CR は RHV Manager の認証情報および CA 証明書を保存します。VirtualMachineImport CR は仮想マシンのインポートプロセスのパラメーターを定義します。
オプション: VirtualMachineImport CR とは別に ResourceMapping CR を作成できます。ResourceMapping CR は、追加の RHV 仮想マシンをインポートする場合などに柔軟性を提供します。
デフォルトのターゲットストレージクラスは NFS である必要があります。Cinder は RHV 仮想マシンのインポートをサポートしません。
手順
以下のコマンドを実行してシークレット 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: admin@internal password: 3 caCert: | -----BEGIN CERTIFICATE----- 4 -----END CERTIFICATE----- EOF
$ openssl s_client -connect :443 -showcerts < /dev/null
オプション: 以下のコマンドを実行して、リソースマッピングを
VirtualMachineImport
CR から分離する必要がある場合にResourceMapping
を作成します。$ 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
および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/v1alpha1 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
- ターゲットの仮想マシン名を指定します。
- 3
- ソース仮想マシン ID を指定します (例:
80554327-0569-496b-bdeb-fcbbf52b827b
)。Manager マシンの Web ブラウザーでhttps://www.example.com/ovirt-engine/api/vms/
を入力して仮想マシン ID を取得し、すべての仮想マシンを一覧表示できます。インポートする仮想マシンとその対応する仮想マシン ID を見つけます。仮想マシン名またはクラスター名を指定する必要はありません。 - 4
- ソース仮想マシン名を指定する場合、ソースクラスターも指定する必要があります。ソース仮想マシン ID は指定しないでください。
- 5
- ソースクラスターを指定する場合、ソース仮想マシン名も指定する必要があります。ソース仮想マシン ID は指定しないでください。
- 6
- ResourceMapping CR を作成する場合は、
mappings
セクションをコメントアウトします。 - 7
- ソース仮想マシンの論理ネットワークおよび vNIC プロファイルを指定します。
- 8
- OpenShift Virtualization ネットワークを指定します。
- 9
- ストレージマッピングが
ResourceMapping
およびVirtualMachineImport
CR の両方に指定される場合、VirtualMachineImport
CR が優先されます。 - 10
- ソースストレージドメインを指定します。
- 11
- ターゲットストレージクラスを指定します。
- 12
ReadWriteOnce
、ReadWriteMany
、またはReadOnlyMany
を指定します。アクセスモードが指定されていない場合、{virt} は RHV 仮想マシンまたは仮想ディスクアクセスモード上の HostMigration mode 設定に基づいて正しいボリュームアクセスモードを判別します。 -
RHV 仮想マシン移行モードが
Allow manual and automatic migration
の場合、デフォルトのアクセスモードはReadWriteMany
になります。 -
RHV 仮想ディスクのアクセスモードが
ReadOnly
の場合、デフォルトのアクセスモードはReadOnlyMany
になります。 -
その他のすべての設定では、デフォルトのアクセスモードは
ReadWriteOnce
です。
-
RHV 仮想マシン移行モードが
- ソース仮想マシンディスク ID を指定します (例:
8181ecc1-5db8-4193-9c92-3ddab3be7b05
)。Manager マシンの Web ブラウザーでhttps://www.example.com/ovirt-engine/api/vms/vm23
を入力して仮想マシンの詳細を確認し、ディスク ID 取得できます。 - ターゲットストレージクラスを指定します。
仮想マシンインポートの進捗に従い、インポートが正常に完了したことを確認します。
$ 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