5.3. 仮想マシンの移行


MTV カスタムリソース (CR) を作成して、仮想マシン (VM) をコマンドライン (CLI) から移行します。CR と移行手順は移行元プロバイダーによって異なります。

重要

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

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

移行計画が定義されている OpenShift クラスターとは異なる OpenShift クラスターへの移行や、そこからの移行を行うには、cluster-admin 権限を持つ OpenShift Virtualization サービスアカウントトークンが必要です。

5.3.1. VMware vSphere 移行元プロバイダーからの移行

CLI を使用して VMware vSphere ソースプロバイダーから移行できます。

手順

  1. 移行元プロバイダーの認証情報の Secret マニフェストを作成します。

    Copy to Clipboard Toggle word wrap
    $ cat << EOF | oc apply -f -
    apiVersion: v1
    kind: Secret
    metadata:
      name: <secret>
      namespace: <namespace>
      ownerReferences: 
    1
    
        - apiVersion: forklift.konveyor.io/v1beta1
          kind: Provider
          name: <provider_name>
          uid: <provider_uid>
      labels:
        createdForProviderType: vsphere
        createdForResourceType: providers
    type: Opaque
    stringData:
      user: <user> 
    2
    
      password: <password> 
    3
    
      insecureSkipVerify: <"true"/"false"> 
    4
    
      cacert: | 
    5
    
        <ca_certificate>
      url: <api_end_point> 
    6
    
    EOF
    1
    ownerReferences セクションはオプションです。
    2
    vCenter ユーザーまたは ESX/ESXi ユーザーを指定します。
    3
    vCenter ユーザーまたは ESX/ESXi ユーザーのパスワードを指定します。
    4
    "true" を指定して証明書の検証を省略し、"false" を指定して証明書を検証します。指定されていない場合はデフォルトで "false" になります。証明書の検証をスキップすると、安全でない移行が続行され、証明書は不要になります。セキュアではない移行とは、転送されたデータがセキュアではない接続を介して送信され、機密性の高いデータが公開される可能性があることを意味します。
    5
    このフィールドが設定されておらず、skip certificate verification が無効になっている場合、MTV はシステム CA の使用を試みます。
    6
    vCenter または ESX/ESXi の API エンドポイント URL を指定します (例: https://<vCenter_host>/sdk)。
  1. 移行元プロバイダーの Provider マニフェストを作成します。

    Copy to Clipboard Toggle word wrap
    $ cat << EOF | oc apply -f -
    apiVersion: forklift.konveyor.io/v1beta1
    kind: Provider
    metadata:
      name: <source_provider>
      namespace: <namespace>
    spec:
      type: vsphere
      url: <api_end_point> 
    1
    
      settings:
        vddkInitImage: <VDDK_image> 
    2
    
        sdkEndpoint: vcenter 
    3
    
      secret:
        name: <secret> 
    4
    
        namespace: <namespace>
    EOF
    1
    API エンドポイントの URL を指定します (例: https://<vCenter_host>/sdk)。
    2
    オプションですが、移行を高速化するために VDDK イメージを作成することを強く推奨します。OpenShift のドキュメントに従って、作成した VDDK イメージを指定します。
    3
    オプション: vcenter または esxi
    4
    プロバイダーの Secret CR の名前を指定します。
  1. Host マニフェストを作成します。

    Copy to Clipboard Toggle word wrap
    $ cat << EOF | oc apply -f -
    apiVersion: forklift.konveyor.io/v1beta1
    kind: Host
    metadata:
      name: <vmware_host>
      namespace: <namespace>
    spec:
      provider:
        namespace: <namespace>
        name: <source_provider> 
    1
    
      id: <source_host_mor> 
    2
    
      ipAddress: <source_network_ip> 
    3
    
    EOF
    1
    VMware vSphere Provider CR の名前を指定します。
    2
    VMware vSphere ホストの Managed Object Reference (moRef) を指定します。moRef を取得するには、VMware vSphere moRef の取得 を参照してください。
    3
    VMware vSphere 移行ネットワークの IP アドレスを指定します。
  1. 移行元ネットワークと移行先ネットワークをマッピングする NetworkMap マニフェストを作成します。

    Copy to Clipboard Toggle word wrap
    $  cat << EOF | oc apply -f -
    apiVersion: forklift.konveyor.io/v1beta1
    kind: NetworkMap
    metadata:
      name: <network_map>
      namespace: <namespace>
    spec:
      map:
        - destination:
            name: <network_name>
            type: pod 
    1
    
          source: 
    2
    
            id: <source_network_id>
            name: <source_network_name>
        - destination:
            name: <network_attachment_definition> 
    3
    
            namespace: <network_attachment_definition_namespace> 
    4
    
            type: multus
          source:
            id: <source_network_id>
            name: <source_network_name>
      provider:
        source:
          name: <source_provider>
          namespace: <namespace>
        destination:
          name: <destination_provider>
          namespace: <namespace>
    EOF
    1
    使用できる値は Pod および multus です。
    2
    id パラメーター または name パラメーターのいずれかを使用して、ソースネットワークを指定できます。id には、VMware vSphere ネットワーク Managed Object Reference (moRef) を指定します。moRef を取得するには、VMware vSphere moRef の取得 を参照してください。
    3
    追加の OpenShift Virtualization ネットワークごとにネットワークアタッチメント定義を指定します。
    4
    typemultus の場合に限り必要です。OpenShift Virtualization のネットワークアタッチメント定義の namespace を指定します。
  1. StorageMap マニフェストを作成し、移行元ストレージと移行先ストレージをマッピングします。

    Copy to Clipboard Toggle word wrap
    $ cat << EOF | oc apply -f -
    apiVersion: forklift.konveyor.io/v1beta1
    kind: StorageMap
    metadata:
      name: <storage_map>
      namespace: <namespace>
    spec:
      map:
        - destination:
            storageClass: <storage_class>
            accessMode: <access_mode> 
    1
    
          source:
            id: <source_datastore> 
    2
    
      provider:
        source:
          name: <source_provider>
          namespace: <namespace>
        destination:
          name: <destination_provider>
          namespace: <namespace>
    EOF
    1
    使用できる値は ReadWriteOnce および ReadWriteMany です。
    2
    VMware vSphere データストアの moRef を指定します。たとえば、f2737930-b567-451a-9ceb-2887f6207009 です。moRef を取得するには、VMware vSphere moRef の取得 を参照してください。
  2. オプション: Hook マニフェストを作成し、Plan CR で指定されたフェーズ中に仮想マシンでカスタムコードを実行します。

    Copy to Clipboard Toggle word wrap
    $  cat << EOF | oc apply -f -
    apiVersion: forklift.konveyor.io/v1beta1
    kind: Hook
    metadata:
      name: <hook>
      namespace: <namespace>
    spec:
      image: quay.io/konveyor/hook-runner
      playbook: |
        LS0tCi0gbmFtZTogTWFpbgogIGhvc3RzOiBsb2NhbGhvc3QKICB0YXNrczoKICAtIG5hbWU6IExv
        YWQgUGxhbgogICAgaW5jbHVkZV92YXJzOgogICAgICBmaWxlOiAiL3RtcC9ob29rL3BsYW4ueW1s
        IgogICAgICBuYW1lOiBwbGFuCiAgLSBuYW1lOiBMb2FkIFdvcmtsb2FkCiAgICBpbmNsdWRlX3Zh
        cnM6CiAgICAgIGZpbGU6ICIvdG1wL2hvb2svd29ya2xvYWQueW1sIgogICAgICBuYW1lOiB3b3Jr
        bG9hZAoK
    EOF

    ここでは、以下のようになります。

    Playbook は、任意の Base64 でエンコードされた Ansible Playbook を参照します。Playbook を指定する場合は、imagehook-runner である必要があります。

    注記

    デフォルトの hook-runner イメージを使用するか、カスタムイメージを指定することができます。カスタムイメージを指定する場合は、Playbook を指定する必要はありません。

  1. 移行の Plan マニフェストを作成します。

    Copy to Clipboard Toggle word wrap
    $ cat << EOF | oc apply -f -
    apiVersion: forklift.konveyor.io/v1beta1
    kind: Plan
    metadata:
      name: <plan> 
    1
    
      namespace: <namespace>
    spec:
      warm: false 
    2
    
      provider:
        source:
          name: <source_provider>
          namespace: <namespace>
        destination:
          name: <destination_provider>
          namespace: <namespace>
      map: 
    3
    
        network: 
    4
    
          name: <network_map> 
    5
    
          namespace: <namespace>
        storage: 
    6
    
          name: <storage_map> 
    7
    
          namespace: <namespace>
      targetNamespace: <target_namespace>
      vms: 
    8
    
        - id: <source_vm> 
    9
    
        - name: <source_vm>
          hooks: 
    10
    
            - hook:
                namespace: <namespace>
                name: <hook> 
    11
    
              step: <step> 
    12
    
    EOF
    1
    Plan CR の名前を指定します。
    2
    移行がウォーム (true) かコールド (false) かを指定します。Migration マニフェストで cutover パラメーターの値を指定せずにウォーム移行を指定すると、プレコピーステージのみが実行します。
    3
    プランごとにネットワークマップとストレージマップを 1 つだけ指定します。
    4
    移行する仮想マシンがネットワークに割り当てられていない場合でも、ネットワークマッピングを指定します。この場合、マッピングは空にできます。
    5
    NetworkMap CR の名前を指定します。
    6
    移行する仮想マシンにディスクイメージが割り当てられていない場合でも、ストレージマッピングを指定します。この場合、マッピングは空にできます。
    7
    StorageMap CR の名前を指定します。
    8
    id パラメーター または name パラメーターのいずれかを使用して、ソース仮想マシンを指定することができます。
    9
    VMware vSphere 仮想マシンの moRef を指定します。moRef を取得するには、VMware vSphere moRef の取得 を参照してください。
    10
    オプション: 仮想マシンのフックを最大 2 つ指定できます。各フックは個別の移行ステップで実行する必要があります。
    11
    Hook CR の名前を指定します。
    12
    使用できる値は、移行計画が開始される前の PreHook、または移行が完了した後の PostHook です。
  2. Plan CR を実行するための Migration マニフェストを作成します。

    Copy to Clipboard Toggle word wrap
    $ cat << EOF | oc apply -f -
    apiVersion: forklift.konveyor.io/v1beta1
    kind: Migration
    metadata:
      name: <name_of_migration_cr>
      namespace: <namespace>
    spec:
      plan:
        name: <name_of_plan_cr>
        namespace: <namespace>
      cutover: <optional_cutover_time>
    EOF
    注記

    カットオーバー時間を指定する場合は、UTC 時間オフセットを含む ISO 8601 形式を使用します (例: 2024-04-04T01:23:45.678+09:00)

5.3.2. Red Hat Virtualization 移行元プロバイダーからの移行

CLI を使用して、Red Hat Virtualization (RHV) 移行元プロバイダーから移行できます。

前提条件

ダイレクト LUN ディスクを使用して仮想マシンを移行する場合は、仮想マシン実行先の OpenShift Virtualization クラスター内のノードがバックエンドストレージにアクセスできることを確認してください。

注記
  • 移行元プロバイダーから移行先プロバイダーに コピーされる ディスクイメージとは異なり、LUN は移行元プロバイダーの仮想マシンから 切り離され ますが、削除 されず、ターゲットプロバイダーで作成された仮想マシン (VM) にアタッチされます。
  • 移行元プロバイダーへのフォールバックが必要な場合に備えて、移行中に LUN は移行元プロバイダーから削除されません。ただし、LUN を移行元プロバイダーの仮想マシンに再接続する前に、LUN がターゲット環境上の仮想マシンによって同時に使用されていないことを確認してください。同時に使用されていると、データの破損が発生する可能性があります。

手順

  1. 移行元プロバイダーの認証情報の Secret マニフェストを作成します。

    Copy to Clipboard Toggle word wrap
    $ cat << EOF | oc apply -f -
    apiVersion: v1
    kind: Secret
    metadata:
      name: <secret>
      namespace: <namespace>
      ownerReferences: 
    1
    
        - apiVersion: forklift.konveyor.io/v1beta1
          kind: Provider
          name: <provider_name>
          uid: <provider_uid>
      labels:
        createdForProviderType: ovirt
        createdForResourceType: providers
    type: Opaque
    stringData:
      user: <user> 
    2
    
      password: <password> 
    3
    
      insecureSkipVerify: <"true"/"false"> 
    4
    
      cacert: | 
    5
    
        <ca_certificate>
      url: <api_end_point> 
    6
    
    EOF
    1
    ownerReferences セクションはオプションです。
    2
    RHV Manager ユーザーを指定します。
    3
    ユーザーパスワードを指定します。
    4
    "true" を指定して証明書の検証を省略し、"false" を指定して証明書を検証します。指定されていない場合はデフォルトで "false" になります。証明書の検証をスキップすると、安全でない移行が続行され、証明書は不要になります。セキュアではない移行とは、転送されたデータがセキュアではない接続を介して送信され、機密性の高いデータが公開される可能性があることを意味します。
    5
    サードパーティーの証明書に置き換えられていない限り、Manager CA 証明書を入力します。その場合は、Manager Apache CA 証明書を入力します。Manager CA 証明書は、https://<engine_host>/ovirt-engine/services/pki-resource?resource=ca-certificate&format=X509-PEM-CA で取得できます。
    6
    API エンドポイント URL を指定します (例: https://<engine_host>/ovirt-engine/api)
  1. 移行元プロバイダーの Provider マニフェストを作成します。

    Copy to Clipboard Toggle word wrap
    $ cat << EOF | oc apply -f -
    apiVersion: forklift.konveyor.io/v1beta1
    kind: Provider
    metadata:
      name: <source_provider>
      namespace: <namespace>
    spec:
      type: ovirt
      url: <api_end_point> 
    1
    
      secret:
        name: <secret> 
    2
    
        namespace: <namespace>
    EOF
    1
    API エンドポイントの URL を指定します (例: https://<engine_host>/ovirt-engine/api)
    2
    プロバイダー Secret CR の名前を指定します。
  1. 移行元ネットワークと移行先ネットワークをマッピングする NetworkMap マニフェストを作成します。

    Copy to Clipboard Toggle word wrap
    $  cat << EOF | oc apply -f -
    apiVersion: forklift.konveyor.io/v1beta1
    kind: NetworkMap
    metadata:
      name: <network_map>
      namespace: <namespace>
    spec:
      map:
        - destination:
            name: <network_name>
            type: pod 
    1
    
          source: 
    2
    
            id: <source_network_id>
            name: <source_network_name>
        - destination:
            name: <network_attachment_definition> 
    3
    
            namespace: <network_attachment_definition_namespace> 
    4
    
            type: multus
          source:
            id: <source_network_id>
            name: <source_network_name>
      provider:
        source:
          name: <source_provider>
          namespace: <namespace>
        destination:
          name: <destination_provider>
          namespace: <namespace>
    EOF
    1
    使用できる値は Pod および multus です。
    2
    id パラメーター または name パラメーターのいずれかを使用して、ソースネットワークを指定できます。id には、RHV ネットワークの Universal Unique ID (UUID) を指定します。
    3
    追加の OpenShift Virtualization ネットワークごとにネットワークアタッチメント定義を指定します。
    4
    typemultus の場合に限り必要です。OpenShift Virtualization のネットワークアタッチメント定義の namespace を指定します。
  1. StorageMap マニフェストを作成し、移行元ストレージと移行先ストレージをマッピングします。

    Copy to Clipboard Toggle word wrap
    $ cat << EOF | oc apply -f -
    apiVersion: forklift.konveyor.io/v1beta1
    kind: StorageMap
    metadata:
      name: <storage_map>
      namespace: <namespace>
    spec:
      map:
        - destination:
            storageClass: <storage_class>
            accessMode: <access_mode> 
    1
    
          source:
            id: <source_storage_domain> 
    2
    
      provider:
        source:
          name: <source_provider>
          namespace: <namespace>
        destination:
          name: <destination_provider>
          namespace: <namespace>
    EOF
    1
    使用できる値は ReadWriteOnce および ReadWriteMany です。
    2
    RHV ストレージドメイン UUID を指定します。たとえば、f2737930-b567-451a-9ceb-2887f6207009 です。
  2. オプション: Hook マニフェストを作成し、Plan CR で指定されたフェーズ中に仮想マシンでカスタムコードを実行します。

    Copy to Clipboard Toggle word wrap
    $  cat << EOF | oc apply -f -
    apiVersion: forklift.konveyor.io/v1beta1
    kind: Hook
    metadata:
      name: <hook>
      namespace: <namespace>
    spec:
      image: quay.io/konveyor/hook-runner
      playbook: |
        LS0tCi0gbmFtZTogTWFpbgogIGhvc3RzOiBsb2NhbGhvc3QKICB0YXNrczoKICAtIG5hbWU6IExv
        YWQgUGxhbgogICAgaW5jbHVkZV92YXJzOgogICAgICBmaWxlOiAiL3RtcC9ob29rL3BsYW4ueW1s
        IgogICAgICBuYW1lOiBwbGFuCiAgLSBuYW1lOiBMb2FkIFdvcmtsb2FkCiAgICBpbmNsdWRlX3Zh
        cnM6CiAgICAgIGZpbGU6ICIvdG1wL2hvb2svd29ya2xvYWQueW1sIgogICAgICBuYW1lOiB3b3Jr
        bG9hZAoK
    EOF

    ここでは、以下のようになります。

    Playbook は、任意の Base64 でエンコードされた Ansible Playbook を参照します。Playbook を指定する場合は、imagehook-runner である必要があります。

    注記

    デフォルトの hook-runner イメージを使用するか、カスタムイメージを指定することができます。カスタムイメージを指定する場合は、Playbook を指定する必要はありません。

  1. 移行の Plan マニフェストを作成します。

    Copy to Clipboard Toggle word wrap
    $ cat << EOF | oc apply -f -
    apiVersion: forklift.konveyor.io/v1beta1
    kind: Plan
    metadata:
      name: <plan> 
    1
    
      namespace: <namespace>
      preserveClusterCpuModel: true 
    2
    
    spec:
      warm: false 
    3
    
      provider:
        source:
          name: <source_provider>
          namespace: <namespace>
        destination:
          name: <destination_provider>
          namespace: <namespace>
      map: 
    4
    
        network: 
    5
    
          name: <network_map> 
    6
    
          namespace: <namespace>
        storage: 
    7
    
          name: <storage_map> 
    8
    
          namespace: <namespace>
      targetNamespace: <target_namespace>
      vms: 
    9
    
        - id: <source_vm> 
    10
    
        - name: <source_vm>
          hooks: 
    11
    
            - hook:
                namespace: <namespace>
                name: <hook> 
    12
    
              step: <step> 
    13
    
    EOF
    1
    Plan CR の名前を指定します。
    2
    以下の注を参照してください。
    3
    移行がウォームまたはコールドであるかどうかを指定します。Migration マニフェストで cutover パラメーターの値を指定せずにウォーム移行を指定すると、プレコピーステージのみが実行します。
    4
    プランごとにネットワークマップとストレージマップを 1 つだけ指定します。
    5
    移行する仮想マシンがネットワークに割り当てられていない場合でも、ネットワークマッピングを指定します。この場合、マッピングは空にできます。
    6
    NetworkMap CR の名前を指定します。
    7
    移行する仮想マシンにディスクイメージが割り当てられていない場合でも、ストレージマッピングを指定します。この場合、マッピングは空にできます。
    8
    StorageMap CR の名前を指定します。
    9
    id パラメーター または name パラメーターのいずれかを使用して、ソース仮想マシンを指定できます。
    10
    RHV 仮想マシンの UUID を指定します。
    11
    オプション: 仮想マシンのフックを最大 2 つ指定できます。各フックは個別の移行ステップで実行する必要があります。
    12
    Hook CR の名前を指定します。
    13
    使用できる値は、移行計画が開始される前の PreHook、または移行が完了した後の PostHook です。
    注記
    • 移行されたマシンにカスタム CPU モデルが設定されている場合、preserveClusterCpuModel の設定に関係なく、移行先クラスターでもその CPU モデルが設定されます。
    • 移行されたマシンにカスタム CPU モデルが 設定されていない 場合:

      • preserveClusterCpuModel が 'true` に設定されている場合、MTV はクラスターの設定に基づいて、RHV で実行されている仮想マシンの CPU モデルをチェックし、移行された仮想マシンをその CPU モデルに設定します。
      • preserveClusterCpuModel が 'false` に設定されている場合、MTV は CPU タイプを設定せず、仮想マシンが移行先クラスターのデフォルトの CPU モデルで設定されます。
  2. Plan CR を実行するための Migration マニフェストを作成します。

    Copy to Clipboard Toggle word wrap
    $ cat << EOF | oc apply -f -
    apiVersion: forklift.konveyor.io/v1beta1
    kind: Migration
    metadata:
      name: <name_of_migration_cr>
      namespace: <namespace>
    spec:
      plan:
        name: <name_of_plan_cr>
        namespace: <namespace>
      cutover: <optional_cutover_time>
    EOF
    注記

    カットオーバー時間を指定する場合は、UTC 時間オフセットを含む ISO 8601 形式を使用します (例: 2024-04-04T01:23:45.678+09:00)

5.3.3. OpenStack 移行元プロバイダーからの移行

CLI を使用して OpenStack ソースプロバイダーから移行できます。

手順

  1. 移行元プロバイダーの認証情報の Secret マニフェストを作成します。

    Copy to Clipboard Toggle word wrap
    $ cat << EOF | oc apply -f -
    apiVersion: v1
    kind: Secret
    metadata:
      name: <secret>
      namespace: <namespace>
      ownerReferences: 
    1
    
        - apiVersion: forklift.konveyor.io/v1beta1
          kind: Provider
          name: <provider_name>
          uid: <provider_uid>
      labels:
        createdForProviderType: openstack
        createdForResourceType: providers
    type: Opaque
    stringData:
      user: <user> 
    2
    
      password: <password> 
    3
    
      insecureSkipVerify: <"true"/"false"> 
    4
    
      domainName: <domain_name>
      projectName: <project_name>
      regionName: <region_name>
      cacert: | 
    5
    
        <ca_certificate>
      url: <api_end_point> 
    6
    
    EOF
    1
    ownerReferences セクションはオプションです。
    2
    OpenStack ユーザーを指定します。
    3
    OpenStack ユーザーのパスワードを指定します。
    4
    "true" を指定して証明書の検証を省略し、"false" を指定して証明書を検証します。指定されていない場合はデフォルトで "false" になります。証明書の検証をスキップすると、安全でない移行が続行され、証明書は不要になります。セキュアではない移行とは、転送されたデータがセキュアではない接続を介して送信され、機密性の高いデータが公開される可能性があることを意味します。
    5
    このフィールドが設定されておらず、skip certificate verification が無効になっている場合、MTV はシステム CA の使用を試みます。
    6
    API エンドポイント URL を指定します (例: https://<identity_service>/v3)
  1. 移行元プロバイダーの Provider マニフェストを作成します。

    Copy to Clipboard Toggle word wrap
    $ cat << EOF | oc apply -f -
    apiVersion: forklift.konveyor.io/v1beta1
    kind: Provider
    metadata:
      name: <source_provider>
      namespace: <namespace>
    spec:
      type: openstack
      url: <api_end_point> 
    1
    
      secret:
        name: <secret> 
    2
    
        namespace: <namespace>
    EOF
    1
    API エンドポイントの URL を指定します。
    2
    プロバイダー Secret CR の名前を指定します。
  1. 移行元ネットワークと移行先ネットワークをマッピングする NetworkMap マニフェストを作成します。

    Copy to Clipboard Toggle word wrap
    $  cat << EOF | oc apply -f -
    apiVersion: forklift.konveyor.io/v1beta1
    kind: NetworkMap
    metadata:
      name: <network_map>
      namespace: <namespace>
    spec:
      map:
        - destination:
            name: <network_name>
            type: pod 
    1
    
          source:
    2
    
            id: <source_network_id>
            name: <source_network_name>
        - destination:
            name: <network_attachment_definition> 
    3
    
            namespace: <network_attachment_definition_namespace> 
    4
    
            type: multus
          source:
            id: <source_network_id>
            name: <source_network_name>
      provider:
        source:
          name: <source_provider>
          namespace: <namespace>
        destination:
          name: <destination_provider>
          namespace: <namespace>
    EOF
    1
    使用できる値は Pod および multus です。
    2
    id パラメーター または name パラメーターのいずれかを使用して、ソースネットワークを指定できます。id には、OpenStack ネットワークの UUID を指定します。
    3
    追加の OpenShift Virtualization ネットワークごとにネットワークアタッチメント定義を指定します。
    4
    typemultus の場合に限り必要です。OpenShift Virtualization のネットワークアタッチメント定義の namespace を指定します。
  1. StorageMap マニフェストを作成し、移行元ストレージと移行先ストレージをマッピングします。

    Copy to Clipboard Toggle word wrap
    $ cat << EOF | oc apply -f -
    apiVersion: forklift.konveyor.io/v1beta1
    kind: StorageMap
    metadata:
      name: <storage_map>
      namespace: <namespace>
    spec:
      map:
        - destination:
            storageClass: <storage_class>
            accessMode: <access_mode> 
    1
    
          source:
            id: <source_volume_type> 
    2
    
      provider:
        source:
          name: <source_provider>
          namespace: <namespace>
        destination:
          name: <destination_provider>
          namespace: <namespace>
    EOF
    1
    使用できる値は ReadWriteOnce および ReadWriteMany です。
    2
    OpenStack volume_type UUID を指定します。たとえば、f2737930-b567-451a-9ceb-2887f6207009 です。
  2. オプション: Hook マニフェストを作成し、Plan CR で指定されたフェーズ中に仮想マシンでカスタムコードを実行します。

    Copy to Clipboard Toggle word wrap
    $  cat << EOF | oc apply -f -
    apiVersion: forklift.konveyor.io/v1beta1
    kind: Hook
    metadata:
      name: <hook>
      namespace: <namespace>
    spec:
      image: quay.io/konveyor/hook-runner
      playbook: |
        LS0tCi0gbmFtZTogTWFpbgogIGhvc3RzOiBsb2NhbGhvc3QKICB0YXNrczoKICAtIG5hbWU6IExv
        YWQgUGxhbgogICAgaW5jbHVkZV92YXJzOgogICAgICBmaWxlOiAiL3RtcC9ob29rL3BsYW4ueW1s
        IgogICAgICBuYW1lOiBwbGFuCiAgLSBuYW1lOiBMb2FkIFdvcmtsb2FkCiAgICBpbmNsdWRlX3Zh
        cnM6CiAgICAgIGZpbGU6ICIvdG1wL2hvb2svd29ya2xvYWQueW1sIgogICAgICBuYW1lOiB3b3Jr
        bG9hZAoK
    EOF

    ここでは、以下のようになります。

    Playbook は、任意の Base64 でエンコードされた Ansible Playbook を参照します。Playbook を指定する場合は、imagehook-runner である必要があります。

    注記

    デフォルトの hook-runner イメージを使用するか、カスタムイメージを指定することができます。カスタムイメージを指定する場合は、Playbook を指定する必要はありません。

  1. 移行の Plan マニフェストを作成します。

    Copy to Clipboard Toggle word wrap
    $ cat << EOF | oc apply -f -
    apiVersion: forklift.konveyor.io/v1beta1
    kind: Plan
    metadata:
      name: <plan> 
    1
    
      namespace: <namespace>
    spec:
      provider:
        source:
          name: <source_provider>
          namespace: <namespace>
        destination:
          name: <destination_provider>
          namespace: <namespace>
      map: 
    2
    
        network: 
    3
    
          name: <network_map> 
    4
    
          namespace: <namespace>
        storage: 
    5
    
          name: <storage_map> 
    6
    
          namespace: <namespace>
      targetNamespace: <target_namespace>
      vms: 
    7
    
        - id: <source_vm> 
    8
    
        - name: <source_vm>
          hooks: 
    9
    
            - hook:
                namespace: <namespace>
                name: <hook> 
    10
    
              step: <step> 
    11
    
    EOF
    1
    Plan CR の名前を指定します。
    2
    プランごとにネットワークマップとストレージマップを 1 つだけ指定します。
    3
    移行する仮想マシンがネットワークに割り当てられていない場合でも、ネットワークマッピングを指定します。この場合、マッピングは空にできます。
    4
    NetworkMap CR の名前を指定します。
    5
    移行する仮想マシンにディスクイメージが割り当てられていない場合でも、ストレージマッピングを指定します。この場合、マッピングは空にできます。
    6
    StorageMap CR の名前を指定します。
    7
    id パラメーター または name パラメーターのいずれかを使用して、ソース仮想マシンを指定できます。
    8
    OpenStack 仮想マシン UUID を指定します。
    9
    オプション: 仮想マシンのフックを最大 2 つ指定できます。各フックは個別の移行ステップで実行する必要があります。
    10
    Hook CR の名前を指定します。
    11
    使用できる値は、移行計画が開始される前の PreHook、または移行が完了した後の PostHook です。
  2. Plan CR を実行するための Migration マニフェストを作成します。

    Copy to Clipboard Toggle word wrap
    $ cat << EOF | oc apply -f -
    apiVersion: forklift.konveyor.io/v1beta1
    kind: Migration
    metadata:
      name: <name_of_migration_cr>
      namespace: <namespace>
    spec:
      plan:
        name: <name_of_plan_cr>
        namespace: <namespace>
      cutover: <optional_cutover_time>
    EOF
    注記

    カットオーバー時間を指定する場合は、UTC 時間オフセットを含む ISO 8601 形式を使用します (例: 2024-04-04T01:23:45.678+09:00)

5.3.4. Open Virtual Appliance (OVA) の移行元プロバイダーからの移行

CLI を使用して、移行元プロバイダーとして VMware vSphere によって作成された Open Virtual Appliance (OVA) ファイルから移行できます。

手順

  1. 移行元プロバイダーの認証情報の Secret マニフェストを作成します。

    Copy to Clipboard Toggle word wrap
    $ cat << EOF | oc apply -f -
    apiVersion: v1
    kind: Secret
    metadata:
      name: <secret>
      namespace: <namespace>
      ownerReferences: 
    1
    
        - apiVersion: forklift.konveyor.io/v1beta1
          kind: Provider
          name: <provider_name>
          uid: <provider_uid>
      labels:
        createdForProviderType: ova
        createdForResourceType: providers
    type: Opaque
    stringData:
      url: <nfs_server:/nfs_path> 
    2
    
    EOF
    1
    ownerReferences セクションはオプションです。
    2
    ここで、nfs_server は、共有が作成されたサーバーの IP またはホスト名、nfs_path は OVA ファイルが保存されているサーバー上のパスに置き換えます。
  1. 移行元プロバイダーの Provider マニフェストを作成します。

    Copy to Clipboard Toggle word wrap
    $ cat << EOF | oc apply -f -
    apiVersion: forklift.konveyor.io/v1beta1
    kind: Provider
    metadata:
      name: <source_provider>
      namespace: <namespace>
    spec:
      type: ova
      url:  <nfs_server:/nfs_path> 
    1
    
      secret:
        name: <secret> 
    2
    
        namespace: <namespace>
    EOF
    1
    ここで、nfs_server は、共有が作成されたサーバーの IP またはホスト名、nfs_path は OVA ファイルが保存されているサーバー上のパスに置き換えます。
    2
    プロバイダー Secret CR の名前を指定します。
  1. 移行元ネットワークと移行先ネットワークをマッピングする NetworkMap マニフェストを作成します。

    Copy to Clipboard Toggle word wrap
    $  cat << EOF | oc apply -f -
    apiVersion: forklift.konveyor.io/v1beta1
    kind: NetworkMap
    metadata:
      name: <network_map>
      namespace: <namespace>
    spec:
      map:
        - destination:
            name: <network_name>
            type: pod 
    1
    
          source:
            id: <source_network_id> 
    2
    
        - destination:
            name: <network_attachment_definition> 
    3
    
            namespace: <network_attachment_definition_namespace> 
    4
    
            type: multus
          source:
            id: <source_network_id>
      provider:
        source:
          name: <source_provider>
          namespace: <namespace>
        destination:
          name: <destination_provider>
          namespace: <namespace>
    EOF
    1
    使用できる値は Pod および multus です。
    2
    OVA ネットワーク Universal Unique ID (UUID) を指定します。
    3
    追加の OpenShift Virtualization ネットワークごとにネットワークアタッチメント定義を指定します。
    4
    typemultus の場合に限り必要です。OpenShift Virtualization のネットワークアタッチメント定義の namespace を指定します。
  1. StorageMap マニフェストを作成し、移行元ストレージと移行先ストレージをマッピングします。

    Copy to Clipboard Toggle word wrap
    $ cat << EOF | oc apply -f -
    apiVersion: forklift.konveyor.io/v1beta1
    kind: StorageMap
    metadata:
      name: <storage_map>
      namespace: <namespace>
    spec:
      map:
        - destination:
            storageClass: <storage_class>
            accessMode: <access_mode> 
    1
    
          source:
            name:  Dummy storage for source provider <provider_name> 
    2
    
      provider:
        source:
          name: <source_provider>
          namespace: <namespace>
        destination:
          name: <destination_provider>
          namespace: <namespace>
    EOF
    1
    使用できる値は ReadWriteOnce および ReadWriteMany です。
    2
    OVA の場合、StorageMap は、OVA のすべてのディスクが関連付けられている単一のストレージのみを移行先のストレージクラスにマップできます。このため、ストレージは UI では "Dummy storage for source provider <provider_name>" と呼ばれます。YAML では、引用符なしで上記のフレーズを記述し、<provider_name> をプロバイダーの実際の名前に置き換えます。
  2. オプション: Hook マニフェストを作成し、Plan CR で指定されたフェーズ中に仮想マシンでカスタムコードを実行します。

    Copy to Clipboard Toggle word wrap
    $  cat << EOF | oc apply -f -
    apiVersion: forklift.konveyor.io/v1beta1
    kind: Hook
    metadata:
      name: <hook>
      namespace: <namespace>
    spec:
      image: quay.io/konveyor/hook-runner
      playbook: |
        LS0tCi0gbmFtZTogTWFpbgogIGhvc3RzOiBsb2NhbGhvc3QKICB0YXNrczoKICAtIG5hbWU6IExv
        YWQgUGxhbgogICAgaW5jbHVkZV92YXJzOgogICAgICBmaWxlOiAiL3RtcC9ob29rL3BsYW4ueW1s
        IgogICAgICBuYW1lOiBwbGFuCiAgLSBuYW1lOiBMb2FkIFdvcmtsb2FkCiAgICBpbmNsdWRlX3Zh
        cnM6CiAgICAgIGZpbGU6ICIvdG1wL2hvb2svd29ya2xvYWQueW1sIgogICAgICBuYW1lOiB3b3Jr
        bG9hZAoK
    EOF

    ここでは、以下のようになります。

    Playbook は、任意の Base64 でエンコードされた Ansible Playbook を参照します。Playbook を指定する場合は、imagehook-runner である必要があります。

    注記

    デフォルトの hook-runner イメージを使用するか、カスタムイメージを指定することができます。カスタムイメージを指定する場合は、Playbook を指定する必要はありません。

  1. 移行の Plan マニフェストを作成します。

    Copy to Clipboard Toggle word wrap
    $ cat << EOF | oc apply -f -
    apiVersion: forklift.konveyor.io/v1beta1
    kind: Plan
    metadata:
      name: <plan> 
    1
    
      namespace: <namespace>
    spec:
      provider:
        source:
          name: <source_provider>
          namespace: <namespace>
        destination:
          name: <destination_provider>
          namespace: <namespace>
      map: 
    2
    
        network: 
    3
    
          name: <network_map> 
    4
    
          namespace: <namespace>
        storage: 
    5
    
          name: <storage_map> 
    6
    
          namespace: <namespace>
      targetNamespace: <target_namespace>
      vms: 
    7
    
        - id: <source_vm> 
    8
    
        - name: <source_vm>
          hooks: 
    9
    
            - hook:
                namespace: <namespace>
                name: <hook> 
    10
    
              step: <step> 
    11
    
    EOF
    1
    Plan CR の名前を指定します。
    2
    プランごとにネットワークマップとストレージマップを 1 つだけ指定します。
    3
    移行する仮想マシンがネットワークに割り当てられていない場合でも、ネットワークマッピングを指定します。この場合、マッピングは空にできます。
    4
    NetworkMap CR の名前を指定します。
    5
    移行する仮想マシンにディスクイメージが割り当てられていない場合でも、ストレージマッピングを指定します。この場合、マッピングは空にできます。
    6
    StorageMap CR の名前を指定します。
    7
    id パラメーター または name パラメーターのいずれかを使用して、ソース仮想マシンを指定できます。
    8
    OVA 仮想マシン UUID を指定します。
    9
    オプション: 仮想マシンのフックを最大 2 つ指定できます。各フックは個別の移行ステップで実行する必要があります。
    10
    Hook CR の名前を指定します。
    11
    使用できる値は、移行計画が開始される前の PreHook、または移行が完了した後の PostHook です。
  2. Plan CR を実行するための Migration マニフェストを作成します。

    Copy to Clipboard Toggle word wrap
    $ cat << EOF | oc apply -f -
    apiVersion: forklift.konveyor.io/v1beta1
    kind: Migration
    metadata:
      name: <name_of_migration_cr>
      namespace: <namespace>
    spec:
      plan:
        name: <name_of_plan_cr>
        namespace: <namespace>
      cutover: <optional_cutover_time>
    EOF
    注記

    カットオーバー時間を指定する場合は、UTC 時間オフセットを含む ISO 8601 形式を使用します (例: 2024-04-04T01:23:45.678+09:00)

5.3.5. Red Hat OpenShift Virtualization 移行元プロバイダーからの移行

Red Hat OpenShift Virtualization プロバイダーは、ソースプロバイダーまたは宛先プロバイダーとして使用できます。

手順

  1. 移行元プロバイダーの認証情報の Secret マニフェストを作成します。

    Copy to Clipboard Toggle word wrap
    $ cat << EOF | oc apply -f -
    apiVersion: v1
    kind: Secret
    metadata:
      name: <secret>
      namespace: <namespace>
      ownerReferences: 
    1
    
        - apiVersion: forklift.konveyor.io/v1beta1
          kind: Provider
          name: <provider_name>
          uid: <provider_uid>
      labels:
        createdForProviderType: openshift
        createdForResourceType: providers
    type: Opaque
    stringData:
      token: <token> 
    2
    
      password: <password> 
    3
    
      insecureSkipVerify: <"true"/"false"> 
    4
    
      cacert: | 
    5
    
        <ca_certificate>
      url: <api_end_point> 
    6
    
    EOF
    1
    ownerReferences セクションはオプションです。
    2
    cluster-admin 権限でサービスアカウントのトークンを指定します。トークンURL の両方が空白のままの場合、ローカル OpenShift クラスターが使用されます。
    3
    ユーザーパスワードを指定します。
    4
    "true" を指定して証明書の検証を省略し、"false" を指定して証明書を検証します。指定されていない場合はデフォルトで "false" になります。証明書の検証をスキップすると、安全でない移行が続行され、証明書は不要になります。セキュアではない移行とは、転送されたデータがセキュアではない接続を介して送信され、機密性の高いデータが公開される可能性があることを意味します。
    5
    このフィールドが設定されておらず、skip certificate verification が無効になっている場合、MTV はシステム CA の使用を試みます。
    6
    API サーバーのエンドポイントの URL を指定します。
  1. 移行元プロバイダーの Provider マニフェストを作成します。

    Copy to Clipboard Toggle word wrap
    $ cat << EOF | oc apply -f -
    apiVersion: forklift.konveyor.io/v1beta1
    kind: Provider
    metadata:
      name: <source_provider>
      namespace: <namespace>
    spec:
      type: openshift
      url: <api_end_point> 
    1
    
      secret:
        name: <secret> 
    2
    
        namespace: <namespace>
    EOF
    1
    API サーバーのエンドポイントの URL を指定します。
    2
    プロバイダー Secret CR の名前を指定します。
  1. 移行元ネットワークと移行先ネットワークをマッピングする NetworkMap マニフェストを作成します。

    Copy to Clipboard Toggle word wrap
    $  cat << EOF | oc apply -f -
    apiVersion: forklift.konveyor.io/v1beta1
    kind: NetworkMap
    metadata:
      name: <network_map>
      namespace: <namespace>
    spec:
      map:
        - destination:
            name: <network_name>
            type: pod 
    1
    
          source:
            name: <network_name>
            type: pod
        - destination:
            name: <network_attachment_definition> 
    2
    
            namespace: <network_attachment_definition_namespace> 
    3
    
            type: multus
          source:
            name: <network_attachment_definition>
            namespace: <network_attachment_definition_namespace>
            type: multus
      provider:
        source:
          name: <source_provider>
          namespace: <namespace>
        destination:
          name: <destination_provider>
          namespace: <namespace>
    EOF
    1
    使用できる値は Pod および multus です。
    2
    追加の OpenShift Virtualization ネットワークごとにネットワークアタッチメント定義を指定します。namespace property を使用するか、<network_namespace>/<network_name> のように構築された名前で namespace を指定します。
    3
    typemultus の場合に限り必要です。OpenShift Virtualization のネットワークアタッチメント定義の namespace を指定します。
  1. StorageMap マニフェストを作成し、移行元ストレージと移行先ストレージをマッピングします。

    Copy to Clipboard Toggle word wrap
    $ cat << EOF | oc apply -f -
    apiVersion: forklift.konveyor.io/v1beta1
    kind: StorageMap
    metadata:
      name: <storage_map>
      namespace: <namespace>
    spec:
      map:
        - destination:
            storageClass: <storage_class>
            accessMode: <access_mode> 
    1
    
          source:
            name: <storage_class>
      provider:
        source:
          name: <source_provider>
          namespace: <namespace>
        destination:
          name: <destination_provider>
          namespace: <namespace>
    EOF
    1
    使用できる値は ReadWriteOnce および ReadWriteMany です。
  2. オプション: Hook マニフェストを作成し、Plan CR で指定されたフェーズ中に仮想マシンでカスタムコードを実行します。

    Copy to Clipboard Toggle word wrap
    $  cat << EOF | oc apply -f -
    apiVersion: forklift.konveyor.io/v1beta1
    kind: Hook
    metadata:
      name: <hook>
      namespace: <namespace>
    spec:
      image: quay.io/konveyor/hook-runner
      playbook: |
        LS0tCi0gbmFtZTogTWFpbgogIGhvc3RzOiBsb2NhbGhvc3QKICB0YXNrczoKICAtIG5hbWU6IExv
        YWQgUGxhbgogICAgaW5jbHVkZV92YXJzOgogICAgICBmaWxlOiAiL3RtcC9ob29rL3BsYW4ueW1s
        IgogICAgICBuYW1lOiBwbGFuCiAgLSBuYW1lOiBMb2FkIFdvcmtsb2FkCiAgICBpbmNsdWRlX3Zh
        cnM6CiAgICAgIGZpbGU6ICIvdG1wL2hvb2svd29ya2xvYWQueW1sIgogICAgICBuYW1lOiB3b3Jr
        bG9hZAoK
    EOF

    ここでは、以下のようになります。

    Playbook は、任意の Base64 でエンコードされた Ansible Playbook を参照します。Playbook を指定する場合は、imagehook-runner である必要があります。

    注記

    デフォルトの hook-runner イメージを使用するか、カスタムイメージを指定することができます。カスタムイメージを指定する場合は、Playbook を指定する必要はありません。

  1. 移行の Plan マニフェストを作成します。

    Copy to Clipboard Toggle word wrap
    $ cat << EOF | oc apply -f -
    apiVersion: forklift.konveyor.io/v1beta1
    kind: Plan
    metadata:
      name: <plan> 
    1
    
      namespace: <namespace>
    spec:
      provider:
        source:
          name: <source_provider>
          namespace: <namespace>
        destination:
          name: <destination_provider>
          namespace: <namespace>
      map: 
    2
    
        network: 
    3
    
          name: <network_map> 
    4
    
          namespace: <namespace>
        storage: 
    5
    
          name: <storage_map> 
    6
    
          namespace: <namespace>
      targetNamespace: <target_namespace>
      vms:
        - name: <source_vm>
          namespace: <namespace>
          hooks: 
    7
    
            - hook:
                namespace: <namespace>
                name: <hook> 
    8
    
              step: <step> 
    9
    
    EOF
    1
    Plan CR の名前を指定します。
    2
    プランごとにネットワークマップとストレージマップを 1 つだけ指定します。
    3
    移行する仮想マシンがネットワークに割り当てられていない場合でも、ネットワークマッピングを指定します。この場合、マッピングは空にできます。
    4
    NetworkMap CR の名前を指定します。
    5
    移行する仮想マシンにディスクイメージが割り当てられていない場合でも、ストレージマッピングを指定します。この場合、マッピングは空にできます。
    6
    StorageMap CR の名前を指定します。
    7
    オプション: 仮想マシンのフックを最大 2 つ指定できます。各フックは個別の移行ステップで実行する必要があります。
    8
    Hook CR の名前を指定します。
    9
    使用できる値は、移行計画が開始される前の PreHook、または移行が完了した後の PostHook です。
  2. Plan CR を実行するための Migration マニフェストを作成します。

    Copy to Clipboard Toggle word wrap
    $ cat << EOF | oc apply -f -
    apiVersion: forklift.konveyor.io/v1beta1
    kind: Migration
    metadata:
      name: <name_of_migration_cr>
      namespace: <namespace>
    spec:
      plan:
        name: <name_of_plan_cr>
        namespace: <namespace>
      cutover: <optional_cutover_time>
    EOF
    注記

    カットオーバー時間を指定する場合は、UTC 時間オフセットを含む ISO 8601 形式を使用します (例: 2024-04-04T01:23:45.678+09:00)

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat, Inc.