第5章 コマンドラインインターフェースでの仮想マシンの移行


コマンドライン(CLI)から OpenShift Virtualization に仮想マシンを移行できます。

重要

すべての 前提条件 を満たしていることを確認する必要があります。

5.1. 仮想マシンの移行

MTV カスタムリソース (CR) を作成して、仮想マシン (VM) をコマンドライン (CLI) から移行します。

重要

クラスタースコープの CR の名前を指定する必要があります。

namespace スコープの CR の名前と namespace の両方を指定する必要があります。

前提条件

  • cluster-admin 権限を持つユーザーとしてログインしている必要があります。
  • VMware のみ: すべてのクラスターがアクセスできるセキュアなレジストリーに VMware Virtual Disk Development Kit (VDDK) イメージが必要です。

手順

  1. VMware のみ: VDDK イメージを HyperConverged CR に追加します。

    $ cat << EOF | oc apply -f -
    apiVersion: hco.kubevirt.io/v1beta1
    kind: HyperConverged
    metadata:
      name: kubevirt-hyperconverged
      namespace: openshift-cnv
    spec:
      vddkInitImage: <registry_route_or_server_path>/vddk:<tag> 
    1
    
    EOF
    Copy to Clipboard
    1
    作成した VDDK イメージを指定します。
  2. ソースプロバイダーの認証情報の Secret CR マニフェストを作成します。

    $ cat << EOF | oc apply -f -
    apiVersion: v1
    kind: Secret
    metadata:
      name: <secret>
      namespace: openshift-mtv
    type: Opaque
    stringData:
      user: <user> 
    1
    
      password: <password> 
    2
    
      cacert: <RHV_ca_certificate> 
    3
    
      thumbprint: <vcenter_fingerprint> 
    4
    
    EOF
    Copy to Clipboard
    1
    base64 でエンコードされた vCenter 管理ユーザーまたは RHV Manager ユーザーを指定します。
    2
    base64 でエンコードされたパスワードを指定します。
    3
    RHV のみ: Manager の base64 でエンコードされた CA 証明書を指定します。https://<www.example.com>/ovirt-engine/services/pki-resource?resource=ca-certificate&format=X509-PEM-CA で取得できます。
    4
    VMware のみ: vCenter SHA-1 フィンガープリントを指定します。
  3. ソースプロバイダーの Provider CR マニフェストを作成します。

    $ cat << EOF | oc apply -f -
    apiVersion: forklift.konveyor.io/v1beta1
    kind: Provider
    metadata:
      name: <provider>
      namespace: openshift-mtv
    spec:
      type: <provider_type> 
    1
    
      url: <api_end_point> 
    2
    
      secret:
        name: <secret> 
    3
    
        namespace: openshift-mtv
    EOF
    Copy to Clipboard
    1
    許可される値は ovirt および vsphere です。
    2
    API エンドポイント URL を指定します (例: vSphere の場合は https://<www.example.com>/sdk、RHV の場合は https://<www.example.com>/ovirt-engine/api/)。
    3
    プロバイダー Secret CR の名前を指定します。
  4. VMware のみ: ホスト CR マニフェストを作成します。

    $ cat << EOF | oc apply -f -
    apiVersion: forklift.konveyor.io/v1beta1
    kind: Host
    metadata:
      name: <vmware_host>
      namespace: openshift-mtv
    spec:
      provider:
        namespace: openshift-mtv
        name: <source_provider> 
    1
    
      id: <source_host_mor> 
    2
    
      ipAddress: <source_network_ip> 
    3
    
    EOF
    Copy to Clipboard
    1
    VMware の Provider CR の名前を指定します。
    2
    VMware ホストの 管理対象オブジェクト参照 (MOR) を指定します。
    3
    VMware 移行ネットワークの IP アドレスを指定します。
  5. 移行元および宛先ネットワークをマッピングする NetworkMap CR マニフェストを作成します。

    $  cat << EOF | oc apply -f -
    apiVersion: forklift.konveyor.io/v1beta1
    kind: NetworkMap
    metadata:
      name: <network_map>
      namespace: openshift-mtv
    spec:
      map:
        - destination:
            name: <pod>
            namespace: openshift-mtv
            type: pod 
    1
    
          source: 
    2
    
            id: <source_network_id> 
    3
    
            name: <source_network_name>
        - destination:
            name: <network_attachment_definition> 
    4
    
            namespace: <network_attachment_definition_namespace> 
    5
    
            type: multus
          source:
            id: <source_network_id>
            name: <source_network_name>
      provider:
        source:
          name: <source_provider>
          namespace: openshift-mtv
        destination:
          name: <destination_cluster>
          namespace: openshift-mtv
    EOF
    Copy to Clipboard
    1
    使用できる値は Pod および multus です。
    2
    id パラメーター または name パラメーターのいずれかを使用して、ソースネットワークを指定することができます。
    3
    VMware ネットワーク MOR または RHV ネットワークの UUID を指定します。
    4
    それぞれの追加の OpenShift Virtualization ネットワークのネットワーク接続定義を指定します。
    5
    OpenShift Virtualization ネットワーク割り当て定義の namespace を指定します。
  6. StorageMap CR マニフェストを作成し、ソースおよび宛先ストレージをマッピングします。

    $ cat << EOF | oc apply -f -
    apiVersion: forklift.konveyor.io/v1beta1
    kind: StorageMap
    metadata:
      name: <storage_map>
      namespace: openshift-mtv
    spec:
      map:
        - destination:
            storageClass: <storage_class>
            accessMode: <access_mode> 
    1
    
          source:
            id: <source_datastore> 
    2
    
        - destination:
            storageClass: <storage_class>
            accessMode: <access_mode>
          source:
            id: <source_datastore>
      provider:
        source:
          name: <source_provider>
          namespace: openshift-mtv
        destination:
          name: <destination_cluster>
          namespace: openshift-mtv
    EOF
    Copy to Clipboard
    1
    許可される値は ReadWriteOnce および ReadWriteMany です。
    2
    VMware データストレージ MOR または RHV ストレージドメインの UUID を指定します (例: f2737930-b567-451a-9ceb-2887f6207009)。
  7. オプション: Hook CR マニフェストを作成し、Plan CR で指定されたフェーズで仮想マシンでカスタムコードを実行します。

    $  cat << EOF | oc apply -f -
    apiVersion: forklift.konveyor.io/v1beta1
    kind: Hook
    metadata:
      name: <hook>
      namespace: openshift-mtv
    spec:
      image: quay.io/konveyor/hook-runner 
    1
    
      playbook: | 
    2
    
        LS0tCi0gbmFtZTogTWFpbgogIGhvc3RzOiBsb2NhbGhvc3QKICB0YXNrczoKICAtIG5hbWU6IExv
        YWQgUGxhbgogICAgaW5jbHVkZV92YXJzOgogICAgICBmaWxlOiAiL3RtcC9ob29rL3BsYW4ueW1s
        IgogICAgICBuYW1lOiBwbGFuCiAgLSBuYW1lOiBMb2FkIFdvcmtsb2FkCiAgICBpbmNsdWRlX3Zh
        cnM6CiAgICAgIGZpbGU6ICIvdG1wL2hvb2svd29ya2xvYWQueW1sIgogICAgICBuYW1lOiB3b3Jr
        bG9hZAoK
    EOF
    Copy to Clipboard
    1
    デフォルトの hook-runner イメージを使用するか、カスタムイメージを指定することができます。カスタムイメージを指定する場合は、Playbook を指定する必要はありません。
    2
    オプション: base64 でエンコードされた Ansible Playbook。Playbook を指定する場合、imagehook-runner である必要があります。
  8. 移行の Plan CR マニフェストを作成します。

    $ cat << EOF | oc apply -f -
    apiVersion: forklift.konveyor.io/v1beta1
    kind: Plan
    metadata:
      name: <plan> 
    1
    
      namespace: openshift-mtv
    spec:
      warm: true 
    2
    
      provider:
        source:
          name: <source_provider>
          namespace: openshift-mtv
        destination:
          name: <destination_cluster>
          namespace: openshift-mtv
      map:
        network: 
    3
    
          name: <network_map> 
    4
    
          namespace: openshift-mtv
        storage:
          name: <storage_map> 
    5
    
          namespace: openshift-mtv
      targetNamespace: openshift-mtv
      vms: 
    6
    
        - id: <source_vm> 
    7
    
        - name: <source_vm>
          hooks: 
    8
    
            - hook:
                namespace: openshift-mtv
                name: <hook> 
    9
    
              step: <step> 
    10
    
    EOF
    Copy to Clipboard
    1
    Plan CR の名前を指定します。
    2
    VMware のみ: 移行がウォームまたはコールドであるかどうかを指定します。Migration CR マニフェストで cutover パラメーターの値を指定せずにウォーム移行を指定する場合は、precopy ステージのみが実行します。ウォーム移行は RHV ではサポートされていません。
    3
    複数のネットワークマッピングを追加することができます。
    4
    NetworkMap CR の名前を指定します。
    5
    StorageMap CR の名前を指定します。
    6
    id パラメーター または name パラメーターのいずれかを使用して、ソース仮想マシンを指定することができます。
    7
    VMware 仮想マシン MOR または RHV 仮想マシンの UUID を指定します。
    8
    オプション: 仮想マシンのフックを最大 2 つ指定できます。各フックは個別の移行ステップで実行する必要があります。
    9
    Hook CR の名前を指定します。
    10
    移行完了後の移行プランの開始前または PostHook の前の許容値は、PreHook です。
  9. VMware のみの場合のオプション: ウォーム移行の CBT スナップショットの間隔を変更するには、vm-import-controller-config 設定マップにパッチを適用します。

    $ oc patch configmap/vm-import-controller-config \
      -n openshift-cnv -p '{"data": \
      {"warmImport.intervalMinutes": "<interval>"}}' 
    1
    Copy to Clipboard
    1
    時間間隔を分単位で指定します。デフォルト値は 60 です。
  10. Plan CR を実行するための Migration CR マニフェストを作成します。

    $ cat << EOF | oc apply -f -
    apiVersion: forklift.konveyor.io/v1beta1
    kind: Migration
    metadata:
      name: <migration> 
    1
    
      namespace: openshift-mtv
    spec:
      plan:
        name: <plan> 
    2
    
        namespace: openshift-mtv
      cutover: <cutover_time> 
    3
    
    EOF
    Copy to Clipboard
    1
    Migration CR の名前を指定します。
    2
    実行している Plan CR の名前を指定します。Migration CR は、移行する各仮想マシンに VirtualMachineImport CR を作成します。
    3
    オプション: 2021-04-04T01:23:45.678+09:00 などの UTC 時間オフセットで、ISO 8601 形式に応じたカットオーバー時間を指定します。

    複数の Migration CR を単一の Plan CR に関連付けることができます。移行が完了しない場合は、Plan CR を変更せずに新規 Migration CR を作成して残りの仮想マシンを移行できます。

  11. VirtualMachineImport Pod を表示し、移行の進捗を監視します。

    $ oc get pods -n openshift-mtv
    Copy to Clipboard
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat