Migration Toolkit for Virtualization のインストールおよび使用


Migration Toolkit for Virtualization 2.5

VMware vSphere または Red Hat Virtualization から Red Hat OpenShift Virtualization への移行

Red Hat Modernization and Migration Documentation Team

概要

Migration Toolkit for Virtualization (MTV) を使用すると、仮想マシンを VMware vSphere、Red Hat Virtualization、または OpenStack から、Red Hat OpenShift で実行している OpenShift Virtualization に移行できます。

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

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、用語の置き換えは、今後の複数のリリースにわたって段階的に実施されます。詳細は、Red Hat CTO である Chris Wright のメッセージ をご覧ください。

第1章 Migration Toolkit for Virtualization について

Migration Toolkit for Virtualization (MTV) を使用して、次の移行元プロバイダーから OpenShift Virtualization 移行先プロバイダーに仮想マシンを移行できます。

  • VMware vSphere
  • Red Hat Virtualization (RHV)
  • OpenStack
  • VMware vSphere によって作成された Open Virtual Appliances (OVA)
  • リモートの OpenShift Virtualization クラスター

1 つ以上の Open Virtual Appliance (OVA) ファイルを移行元プロバイダーとして使用する移行は、テクノロジープレビュー機能となっています。

重要

1 つ以上の Open Virtual Appliance (OVA) ファイルを移行元プロバイダーとして使用する移行は、テクノロジープレビュー機能のみとして提供されています。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。これらの機能により、近日発表予定の製品機能をリリースに先駆けてご提供でき、お客様は開発プロセス時に機能をテストして、フィードバックをお寄せいただくことができます。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

注記

OpenStack 移行元プロバイダーを使用した移行では、Cinder ボリュームのみを使用する VM のみがサポートされます。

1.1. コールド移行とウォーム移行

MTV は、以下からのコールド移行をサポートしています。

  • VMware vSphere
  • Red Hat Virtualization (RHV)
  • OpenStack
  • リモートの OpenShift Virtualization クラスター

MTV は、VMware vSphere および RHV からのウォーム移行をサポートします。

注記

OpenStack 移行元プロバイダーを使用した移行では、Cinder ボリュームのみを使用する VM のみがサポートされます。

1.1.1. コールド移行

コールド移行は、デフォルトの移行タイプです。ソース仮想マシンは、データのコピー中にシャットダウンします。

1.1.2. ウォーム移行

ほとんどのデータは、ソース仮想マシン (VM) の実行中にプレコピー段階でコピーされます。

次に、仮想マシンがシャットダウンされ、残りのデータはカットオーバー段階でコピーされます。

プレコピー段階

仮想マシンはプレコピー段階ではシャットダウンされません。

仮想マシンディスクは、変更ブロックのトラッキング (CBT) スナップショットを使用して増分がコピーされます。スナップショットは、デフォルトでは 1 時間間隔で作成されます。forklift-controller デプロイメントを更新して、スナップショットの間隔を変更できます。

重要

各ソース仮想マシンおよび各仮想マシンディスクに対して CBT を有効にする必要があります。

仮想マシンは、最大 28 CBT スナップショットをサポートします。ソース仮想マシンの CBT スナップショットが多すぎて、Migration Controller サービスが新規スナップショットを作成できない場合は、ウォーム移行に失敗する可能性があります。スナップショットが不要になると、Migration Controller サービスは各スナップショットを削除します。

プレコピー段階は、カットオーバー段階を手動で開始するか、開始がスケジュールされるまで実行されます。

カットオーバー段階

カットオーバーの段階で仮想マシンはシャットダウンされ、残りのデータは移行されます。RAM に格納されたデータは移行されません。

MTV コンソールを使用してカットオーバー段階を手動で開始するか、Migration マニフェストでカットオーバー時間をスケジュールできます。

第2章 前提条件

以下の前提条件を確認し、環境が移行用に準備されていることを確認します。

2.1. ソフトウェア要件

互換性のあるバージョン の Red Hat OpenShift および OpenShift Virtualization をインストールする必要があります。

2.2. ストレージのサポートとデフォルトモード

MTV は、サポートされているストレージに以下のデフォルトのボリュームおよびアクセスモードを使用します。

表2.1 デフォルトのボリュームおよびアクセスモード
プロビジョナーボリュームモードアクセスモード

kubernetes.io/aws-ebs

Block

ReadWriteOnce

kubernetes.io/azure-disk

Block

ReadWriteOnce

kubernetes.io/azure-file

ファイルシステム

ReadWriteMany

kubernetes.io/cinder

Block

ReadWriteOnce

kubernetes.io/gce-pd

Block

ReadWriteOnce

kubernetes.io/hostpath-provisioner

ファイルシステム

ReadWriteOnce

manila.csi.openstack.org

ファイルシステム

ReadWriteMany

openshift-storage.cephfs.csi.ceph.com

ファイルシステム

ReadWriteMany

openshift-storage.rbd.csi.ceph.com

Block

ReadWriteOnce

kubernetes.io/rbd

Block

ReadWriteOnce

kubernetes.io/vsphere-volume

Block

ReadWriteOnce

注記

OpenShift Virtualization ストレージが 動的プロビジョニング をサポートしていない場合は、次の設定を適用する必要があります。

  • Filesystem のボリュームモード

    Filesystem ボリュームモードは、Block ボリュームモードよりも遅くなります。

  • ReadWriteOnce アクセスモード

    ReadWriteOnce アクセスモードは、仮想マシンのライブマイグレーションをサポートしません。

ストレージプロファイルの編集に関する詳細は、静的にプロビジョニングされたストレージクラスの有効化 を参照してください。

注記

移行で、EXT4 ファイルシステムで作成されたブロックストレージおよび永続ボリュームを使用する場合は、CDI のファイルシステムのオーバーヘッドを 10% 以上に増やします。CDI が想定するデフォルトのオーバーヘッドには、root パーティション用に予約された場所が完全に含まれていません。CDI のファイルシステムオーバーヘッドをこの量だけ増やさないと、移行が失敗する可能性があります。

注記

OpenStack から移行する場合、または RHV から MTV がデプロイされている OCP クラスターへのコールド移行を実行する場合、移行では CDI なしで永続ボリュームが割り当てられます。このような場合は、ファイルシステムのオーバーヘッドの調整が必要になる場合があります。

設定されたファイルシステムのオーバーヘッド (デフォルト値は 10%) が低すぎる場合、スペース不足によりディスク転送は失敗します。このような場合は、ファイルシステムのオーバーヘッドを増やすために値を増やす必要があります。

ただし、場合によっては、ファイルシステムのオーバーヘッドを減らしてストレージの消費量を削減したい場合があります。

MTV Operator の設定 で説明されているように、forklift-controller CR の spec 部分にある controller_filesystem_overhead の値を変更することで、ファイルシステムのオーバーヘッドを変更できます。

2.3. ネットワークの前提条件

すべての移行に、以下の前提条件が適用されます。

  • IP アドレス、VLAN、およびその他のネットワーク設定が、移行前または移行中に変更されていない。仮想マシンの MAC アドレスは移行時に保持されます。
  • 移行元環境、OpenShift Virtualization クラスター、およびレプリケーションリポジトリー間のネットワーク接続が、信頼でき中断されない。
  • 複数の移行元および移行先ネットワークをマッピングする場合は、追加の移行先ネットワークごとに ネットワークアタッチメント定義 が作成されている。

2.3.1. ポート

ファイアウォールは、以下のポートでトラフィックを有効にする必要があります。

表2.2 VMware vSphere からの移行に必要なネットワークポート
ポートプロトコル送信元送信先目的

443

TCP

OpenShift ノード

VMware vCenter

VMware プロバイダーインベントリー

ディスク転送の認証

443

TCP

OpenShift ノード

VMware ESXi ホスト

ディスク転送の認証

902

TCP

OpenShift ノード

VMware ESXi ホスト

ディスク転送データのコピー

表2.3 Red Hat Virtualization からの移行に必要なネットワークポート
ポートプロトコル送信元送信先目的

443

TCP

OpenShift ノード

RHV エンジン

RHV プロバイダーインベントリー

ディスク転送の認証

443

TCP

OpenShift ノード

RHV ホスト

ディスク転送の認証

54322

TCP

OpenShift ノード

RHV ホスト

ディスク転送データのコピー

2.4. ソース仮想マシンの前提条件

すべての移行に、以下の前提条件が適用されます。

  • ISO/CDROM ディスクをアンマウントしている。
  • 各 NIC に、IPv4 アドレスおよび IPv6 アドレスが 1 つずつ、またはいずれか一方が 1 つ含まれている。
  • 仮想マシンオペレーティングシステムは、OpenShift Virtualization でゲストオペレーティングシステム として使用するために、認定およびサポートされている。
  • 仮想マシン名には、小文字 (a-z)、数字 (0-9)、またはハイフン (-) のみが含まれ、最大 253 文字である。最初と最後の文字は英数字にする必要があります。この名前には、大文字、スペース、ピリオド (.)、または特殊文字を使用できません。
  • 仮想マシン名が、OpenShift Virtualization 環境の仮想マシンの名前と重複していない。

    注記

    Migration Toolkit for Virtualization は、ルールに準拠していない仮想マシンに新しい名前を自動的に割り当てます。

    Migration Toolkit for Virtualization は、新しい仮想マシン名を自動的に生成するときに、次の変更を行います。

    • 除外された文字を削除する。
    • 大文字を小文字に切り替える。
    • アンダースコア (_) をダッシュ (-) に変更する。

    この機能により、ルールに準拠していない仮想マシン名を入力した場合でも、移行をスムーズに進めることができます。

2.5. Red Hat Virtualization の前提条件

Red Hat Virtualization の移行には、以下の前提条件が適用されます。

  • 互換性のあるバージョン の Red Hat Virtualization を使用する。
  • サードパーティーの証明書に置き換えられていない限り、Manager CA 証明書を用意する。Manager CA 証明書を用意した場合は、Manager Apache CA 証明書を指定する。

    ブラウザーで https://<engine_host>/ovirt-engine/services/pki-resource?resource=ca-certificate&format=X509-PEM-CA に移動して、Manager CA 証明書を取得できます。

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

2.6. OpenStack の前提条件

OpenStack の移行には、次の前提条件が適用されます。

注記

OpenStack 移行元プロバイダーを使用した移行では、Cinder ボリュームのみを使用する VM のみがサポートされます。

2.6.1. OpenStack 移行元プロバイダーを使用した移行のための追加の認証方法

MTV バージョン 2.5 以降では、標準のユーザー名とパスワードの認証情報セットに加えて、OpenStack 移行元プロバイダーを使用した移行のための次の認証方法がサポートされています。

  • トークン認証
  • アプリケーション認証情報の認証

これらの方法を使用すると、Secret マニフェストの準備方法を除いて、他の仮想マシンを移行するのと同じ方法で CLI を使用して OpenStack 移行元プロバイダーを持つ仮想マシンを移行できます。

2.6.1.1. OpenStack 移行元プロバイダーでのトークン認証の使用

OpenStack 移行元プロバイダーの作成時に、ユーザー名とパスワード認証の代わりにトークン認証を使用できます。

MTV は、次の両方のタイプのトークン認証をサポートしています。

  • ユーザー ID のトークン
  • ユーザー名が含まれるトークン

トークン認証のタイプごとに、OpenStack からのデータを使用して Secret マニフェストを作成する必要があります。

前提条件

OpenStack アカウントがある。

手順

  1. OpenStack Web コンソールの Dashboard で、Project > API Access をクリックします。
  2. Download OpenStack RC file を展開し、OpenStack RC file をクリックします。

    ダウンロードされるファイル (ここでは <openstack_rc_file> と呼びます) には、トークン認証に使用される次のフィールドが含まれています。

    Copy to Clipboard Toggle word wrap
    OS_AUTH_URL
    OS_PROJECT_ID
    OS_PROJECT_NAME
    OS_DOMAIN_NAME
    OS_USERNAME
  3. トークン認証に必要なデータを取得するには、次のコマンドを実行します。

    Copy to Clipboard Toggle word wrap
    $ openstack token issue

    ここでは <openstack_token_output> と呼ばれる出力には、ユーザー ID のトークンを使用した認証に必要な tokenuserID、および projectID が含まれています。

  4. 以下のような Secret マニフェストを作成します。

    • ユーザー ID のトークンを使用した認証の場合:

      Copy to Clipboard Toggle word wrap
      cat << EOF | oc apply -f -
      apiVersion: v1
      kind: Secret
      metadata:
        name: openstack-secret-tokenid
        namespace: openshift-mtv
        labels:
          createdForProviderType: openstack
      type: Opaque
      stringData:
        authType: token
        token: <token_from_openstack_token_output>
        projectID: <projectID_from_openstack_token_output>
        userID: <userID_from_openstack_token_output>
        url: <OS_AUTH_URL_from_openstack_rc_file>
      EOF
    • ユーザー名でトークンを使用した認証の場合:

      Copy to Clipboard Toggle word wrap
      cat << EOF | oc apply -f -
      apiVersion: v1
      kind: Secret
      metadata:
        name: openstack-secret-tokenname
        namespace: openshift-mtv
        labels:
          createdForProviderType: openstack
      type: Opaque
      stringData:
        authType: token
        token: <token_from_openstack_token_output>
        domainName: <OS_DOMAIN_NAME_from_openstack_rc_file>
        projectName: <OS_PROJECT_NAME_from_openstack_rc_file>
        username: <OS_USERNAME_from_openstack_rc_file>
        url: <OS_AUTH_URL_from_openstack_rc_file>
      EOF
  5. 仮想マシンの移行 の手順のステップ 2 「移行元プロバイダーの Provider マニフェストを作成する」から始めて、仮想マシンの移行を続けます。
2.6.1.2. OpenStack 移行元プロバイダーでのアプリケーション認証情報の認証の使用

OpenStack 移行元プロバイダーの作成時に、ユーザー名とパスワード認証の代わりにアプリケーション認証情報の認証を使用できます。

MTV は、次のアプリケーション認証情報の認証をサポートします。

  • アプリケーション認証情報 ID
  • アプリケーション認証情報名

アプリケーション認証情報の認証のタイプごとに、OpenStack からのデータを使用して Secret マニフェストを作成する必要があります。

前提条件

OpenStack アカウントがある。

手順

  1. OpenStack Web コンソールの Dashboard で、Project > API Access をクリックします。
  2. Download OpenStack RC file を展開し、OpenStack RC file をクリックします。

    ダウンロードするファイル (ここでは <openstack_rc_file> と呼びます) には、アプリケーション認証情報の認証に使用される次のフィールドが含まれています。

    Copy to Clipboard Toggle word wrap
    OS_AUTH_URL
    OS_PROJECT_ID
    OS_PROJECT_NAME
    OS_DOMAIN_NAME
    OS_USERNAME
  3. アプリケーション認証情報の認証に必要なデータを取得するには、以下のコマンドを実行します。

    Copy to Clipboard Toggle word wrap
    $ openstack application credential create --role member --role reader --secret redhat forklift

    ここでは <openstack_credential_output> と呼ばれる出力には、次のものが含まれます。

    • アプリケーション認証情報 ID を使用した認証に必要な IDsecret
    • アプリケーション認証情報名を使用した認証に必要な namesecret
  4. 以下のような Secret マニフェストを作成します。

    • アプリケーション認証情報 ID を使用した認証の場合:

      Copy to Clipboard Toggle word wrap
      cat << EOF | oc apply -f -
      apiVersion: v1
      kind: Secret
      metadata:
        name: openstack-secret-appid
        namespace: openshift-mtv
        labels:
          createdForProviderType: openstack
      type: Opaque
      stringData:
        authType: applicationcredential
        applicationCredentialID: <id_from_openstack_credential_output>
        applicationCredentialSecret: <secret_from_openstack_credential_output>
        url: <OS_AUTH_URL_from_openstack_rc_file>
      EOF
    • アプリケーション認証情報名を使用した認証の場合:

      Copy to Clipboard Toggle word wrap
      cat << EOF | oc apply -f -
      apiVersion: v1
      kind: Secret
      metadata:
        name: openstack-secret-appname
        namespace: openshift-mtv
        labels:
          createdForProviderType: openstack
      type: Opaque
      stringData:
        authType: applicationcredential
        applicationCredentialName: <name_from_openstack_credential_output>
        applicationCredentialSecret: <secret_from_openstack_credential_output>
        domainName: <OS_DOMAIN_NAME_from_openstack_rc_file>
        username: <OS_USERNAME_from_openstack_rc_file>
        url: <OS_AUTH_URL_from_openstack_rc_file>
      EOF
  5. 仮想マシンの移行 の手順のステップ 2 「移行元プロバイダーの Provider マニフェストを作成する」から始めて、仮想マシンの移行を続けます。

2.7. VMware の前提条件

移行を加速するために、VDDK イメージの作成が強く推奨されます。詳細は、VDDK イメージの作成 を参照してください。

VMware の移行には、以下の前提条件が適用されます。

  • 互換性のあるバージョン の VMware vSphere を使用している。
  • 少なくとも最小限の VMware 権限 を持つユーザーとしてログインしている。
  • VMware ツール をすべてのソース仮想マシン (VM) にインストールしている。
  • 仮想マシンオペレーティングシステムが、OpenShift Virtualization のゲストオペレーティングシステム としての使用 および virt-v2v での KVM への変換 に対して認定およびサポートされている。
  • ウォーム移行を実行している場合は、仮想マシンおよび仮想マシンディスクで 変更ブロックのトラッキング (CBT) を有効にしている。
  • vCenter ホストの SHA-1 フィンガープリントを取得している。
  • 同じ移行計画の ESXi ホストから 10 台を超える仮想マシンを移行する場合は、ホストの NFC サービスメモリーを増やしている。
  • Migration Toolkit for Virtualization (MTV) は休止状態の仮想マシンの移行をサポートしていないため、休止状態を無効にすることを強く推奨する。
重要

停電が発生した場合、休止状態が無効になっている仮想マシンのデータが失われる可能性があります。ただし、ハイバネーションが無効になっていない場合は移行に失敗します。

注記

MTV も OpenShift Virtualization も、VMWare から仮想マシンを移行するための Btrfs の変換をサポートしていません。

VMware 権限

Migration Toolkit for Virtualization (MTV) を使用して仮想マシンを OpenShift Virtualization に移行するには、次の最小限の VMware 権限のセットが必要です。

表2.4 VMware 権限
特権説明

Virtual machine.Interaction 権限:

Virtual machine.Interaction.Power Off

電源がオンになっている仮想マシンの電源をオフにできます。この操作により、ゲストオペレーティングシステムの電源がオフになります。

Virtual machine.Interaction.Power On

電源がオフになっている仮想マシンの電源をオンにし、中断している仮想マシンを再開できます。

Virtual machine.Provisioning 権限:

注記

すべての Virtual machine.Provisioning 権限が必要です。

Virtual machine.Provisioning.Allow disk access

ランダムな読み取りおよび書き込みアクセスのために仮想マシンでディスクを開くことができます。主にリモートディスクマウントに使用されます。

Virtual machine.Provisioning.Allow file access

VMX、ディスク、ログ、NVRAM など、仮想マシンに関連付けられたファイルの操作を許可します。

Virtual machine.Provisioning.Allow read-only disk access

ランダムな読み取りアクセスのために仮想マシンでディスクを開くことができます。主にリモートディスクマウントに使用されます。

Virtual machine.Provisioning.Allow virtual machine download

VMX、ディスク、ログ、NVRAM など、仮想マシンに関連付けられたファイルの読み取り操作を許可します。

Virtual machine.Provisioning.Allow virtual machine files upload

VMX、ディスク、ログ、NVRAM など、仮想マシンに関連付けられたファイルの書き込み操作を許可します。

Virtual machine.Provisioning.Clone template

テンプレートのクローンを作成できます。

Virtual machine.Provisioning.Clone virtual machine

既存の仮想マシンのクローン作成とリソースの割り当てを許可します。

Virtual machine.Provisioning.Create template from virtual machine

仮想マシンから新しいテンプレートを作成できます。

Virtual machine.Provisioning.Customize guest

仮想マシンを移行せずに、仮想マシンのゲストオペレーティングシステムをカスタマイズできます。

Virtual machine.Provisioning.Deploy template

テンプレートからの仮想マシンのデプロイメントを許可します。

Virtual machine.Provisioning.Mark as template

既存の電源がオフになっている仮想マシンをテンプレートとしてマークできます。

Virtual machine.Provisioning.Mark as virtual machine

既存のテンプレートを仮想マシンとしてマークできます。

Virtual machine.Provisioning.Modify customization specification

カスタマイズ仕様の作成、変更、または削除を許可します。

Virtual machine.Provisioning.Promote disks

仮想マシンのディスクでのプロモート操作を許可します。

Virtual machine.Provisioning.Read customization specifications

カスタマイズ仕様の読み取りを許可します。

Virtual machine.Snapshot management 権限:

Virtual machine.Snapshot management.Create snapshot

仮想マシンの現在の状態からスナップショットを作成できます。

Virtual machine.Snapshot management.Remove Snapshot

スナップショット履歴からスナップショットを削除できます。

2.7.1. VDDK イメージの作成

Migration Toolkit for Virtualization (MTV) は、VMware Virtual Disk Development Kit (VDDK) SDK を使用して、VMware vSphere からの仮想ディスクの転送を高速化します。したがって、オプションではありますが、VDDK イメージを作成することを強く推奨します。

この機能を利用するには、VMware Virtual Disk Development Kit (VDDK) をダウンロードし、VDDK イメージをビルドして、VDDK イメージをイメージレジストリーにプッシュします。

VDDK パッケージにはシンボリックリンクが含まれているため、VDDK イメージの作成手順は、シンボリックリンク (symlink) を保持するファイルシステム上で実行する必要があります。

注記

VDDK イメージをパブリックレジストリーに保存すると、VMware ライセンスの条項に違反する可能性があります。

前提条件

  • Red Hat OpenShift イメージレジストリー
  • podman がインストールされている。
  • シンボリックリンク (symlink) を保存するファイルシステム上で作業している。
  • 外部レジストリーを使用している場合、OpenShift Virtualization がこれにアクセスできる。

手順

  1. 一時ディレクトリーを作成し、これに移動します。

    Copy to Clipboard Toggle word wrap
    $ mkdir /tmp/<dir_name> && cd /tmp/<dir_name>
  2. ブラウザーで、VMware VDDK バージョン 8 ダウンロードページ に移動します。
  3. バージョン 8.0.1 を選択し、Download をクリックします。

    注記

    OpenShift Virtualization 4.12 に移行するには、VMware VDDK バージョン 7 ダウンロードページ から VDDK バージョン 7.0.3.2 をダウンロードします。

  4. VDDK アーカイブファイルを一時ディレクトリーに保存します。
  5. VDDK アーカイブをデプロイメントします。

    Copy to Clipboard Toggle word wrap
    $ tar -xzf VMware-vix-disklib-<version>.x86_64.tar.gz
  6. Dockerfile を作成します。

    Copy to Clipboard Toggle word wrap
    $ cat > Dockerfile <<EOF
    FROM registry.access.redhat.com/ubi8/ubi-minimal
    USER 1001
    COPY vmware-vix-disklib-distrib /vmware-vix-disklib-distrib
    RUN mkdir -p /opt
    ENTRYPOINT ["cp", "-r", "/vmware-vix-disklib-distrib", "/opt"]
    EOF
  7. VDDK イメージをビルドします。

    Copy to Clipboard Toggle word wrap
    $ podman build . -t <registry_route_or_server_path>/vddk:<tag>
  8. VDDK イメージをレジストリーにプッシュします。

    Copy to Clipboard Toggle word wrap
    $ podman push <registry_route_or_server_path>/vddk:<tag>
  9. イメージが OpenShift Virtualization 環境からアクセスできることを確認します。

2.7.2. vCenter ホストの SHA-1 フィンガープリントの取得

Secret CR を作成するには、vCenter ホストの SHA-1 フィンガープリントを取得する必要があります。

手順

  • 以下のコマンドを実行します。

    Copy to Clipboard Toggle word wrap
    $ openssl s_client \
        -connect <vcenter_host>:443 \ 
    1
    
        < /dev/null 2>/dev/null \
        | openssl x509 -fingerprint -noout -in /dev/stdin \
        | cut -d '=' -f 2
    1
    vCenter ホストの IP アドレスまたは FQDN を指定します。

    出力例

    Copy to Clipboard Toggle word wrap
    01:23:45:67:89:AB:CD:EF:01:23:45:67:89:AB:CD:EF:01:23:45:67

2.7.3. ESXi ホストの NFC サービスメモリーの拡張

同じ移行計画の ESXi ホストから 10 台を超える仮想マシンを移行する場合は、ホストの NFC サービスメモリーを増やしている。有効にしないと、NFC サービスメモリーの同時接続は 10 台に制限されているため、移行に失敗します。

手順

  1. root として ESXi ホストにログインします。
  2. /etc/vmware/hostd/config.xmlmaxMemory の値を 1000000000 に変更します。

    Copy to Clipboard Toggle word wrap
    ...
          <nfcsvc>
             <path>libnfcsvc.so</path>
             <enabled>true</enabled>
             <maxMemory>1000000000</maxMemory>
             <maxStreamMemory>10485760</maxStreamMemory>
          </nfcsvc>
    ...
  3. hostd を再起動します。

    Copy to Clipboard Toggle word wrap
    # /etc/init.d/hostd restart

    ホストを再起動する必要はありません。

2.8. Open Virtual Appliance (OVA) の前提条件

Open Virtual Appliance (OVA) ファイルの移行には、以下の前提条件が適用されます。

  • すべての OVA ファイルは、VMware vSphere によって作成されます。
注記

VMware vSphere によって作成されたものではなくても、vSphere と互換性のある OVA ファイルの移行は成功する可能性があります。ただし、このようなファイルの移行は MTV ではサポートされていません。MTV は、VMware vSphere によって作成された OVA ファイルのみをサポートします。

  • OVA ファイルは、次のいずれかの構造の NFS 共有ディレクトリーの下にあるフォルダー (1 つまたは複数) に含まれています。

    • すべての仮想マシン情報を保持する 1 つ以上の圧縮された Open Virtualization Format (OVF) パッケージ。

      各圧縮パッケージのファイル名には .ova 拡張子が 必要です。複数の圧縮パッケージを同じフォルダーに保存できます。

      この構造を使用すると、MTV はルートフォルダーと第 1 レベルのサブフォルダーをスキャンして圧縮パッケージを探します。

      たとえば、NFS 共有が /nfs の場合、
      /nfs フォルダーがスキャンされます。
      /nfs/subfolder1 フォルダーもスキャンされます。
      しかし、/nfs/subfolder1/subfolder2 はスキャンされません。

    • 展開された OVF パッケージ内。

      この構造を使用すると、MTV はルートフォルダー、第 1 レベルのサブフォルダー、第 2 レベルのサブフォルダーをスキャンして展開された OVF パッケージを探します。ただし、フォルダー内に存在できる .ovf ファイルは 1 つだけです。そうでない場合、移行に失敗します。

      たとえば、NFS 共有が /nfs の場合、
      OVF ファイル /nfs/vm.ovf がスキャンされます。
      OVF ファイル /nfs/subfolder1/vm.ovf がスキャンされます。
      OVF ファイル /nfs/subfolder1/subfolder2/vm.ovf がスキャンされます。
      しかし、OVF ファイル /nfs/subfolder1/subfolder2/subfolder3/vm.ovf はスキャンされません。

2.9. ソフトウェア互換性ガイドライン

互換性のあるソフトウェアバージョンをインストールする必要があります。

表2.5 互換性のあるソフトウェアバージョン
Migration Toolkit for VirtualizationRed Hat OpenShiftOpenShift VirtualizationVMware vSphereRed Hat VirtualizationOpenStack

2.5.7

4.12 以降

4.12 以降

6.5 以降

4.4 SP1 以降

16.1 以降

Red Hat Virtualization 4.3 からの移行

MTV 2.5 は、Red Hat Virtualization (RHV) 4.4 SP1 でのみテストされました。Red Hat Virtualization (RHV) 4.3 からの移行は、MTV 2.5 ではテストされていません。

RHV 4.3 には、MTV 用の RHV 4.4 で導入された改善が導入されておらず、新機能は RHV 4.3 ではテストされていません。そのため、RHV 4.3 からの移行は、RHV 4.4 からの移行と同じようには機能しない可能性があり、一部の機能が欠落している可能性もあります。

OpenShift Virtualization に移行する前に、RHV を上記のサポートされているバージョンにアップグレードすることが推奨されます。

ただし、RHV 4.3.11 からの移行は MTV 2.3 でテストされており、実際には MTV 2.5 を使用する多くの環境で機能する可能性があります。この場合、OpenShift Virtualization に移行する前に、Red Hat Virtualization Manager (RHVM) を前述のサポート対象バージョンにアップグレードすることが推奨されます。

注記

MTV 2.5.3 以降のデプロイメントは、OpenShift Kubernetes Engine (OKE) で有効化されています。詳細は、OpenShift Kubernetes Engine について を参照してください。

2.9.1. OpenShift Operator のライフサイクル

OpenShift Container Platform で使用するために Red Hat が同梱する Operator のソフトウェアメンテナンスのライフサイクル分類の詳細は、OpenShift Operator のライフサイクル を参照してください。

第3章 MTV Operator のインストールと設定

MTV Operator は、Red Hat OpenShift Web コンソールまたはコマンドラインインターフェイス (CLI) を使用してインストールできます。

Migration Toolkit for Virtualization (MTV) バージョン 2.4 以降では、MTV Operator に Red Hat OpenShift Web コンソール用の MTV プラグインが含まれています。

Red Hat OpenShift Web コンソールまたは CLI を使用して MTV Operator をインストールした後、Operator を設定できます。

3.1. Red Hat OpenShift Web コンソールを使用した MTV Operator のインストール

MTV Operator は、Red Hat OpenShift Web コンソールを使用してインストールできます。

前提条件

  • Red Hat OpenShift 4.12 以降がインストールされている。
  • OpenShift 移行ターゲットクラスターに OpenShift Virtualization Operator インストールされている。
  • cluster-admin パーミッションを持つユーザーとしてログインしている。

手順

  1. Red Hat OpenShift Web コンソールで、OperatorsOperatorHub をクリックします。
  2. Filter by keyword フィールドを使用して mtv-operator を検索します。
  3. Migration Toolkit for Virtualization Operator をクリックしてから Install をクリックします。
  4. ボタンがアクティブになったら、Create ForkliftController をクリックします。
  5. Create をクリックします。

    ForkliftController が表示されるリストに表示されます。

  6. WorkloadsPods をクリックし、MTV Pod が実行されていることを確認します。
  7. OperatorsInstalled Operators をクリックして、Migration Toolkit for Virtualization OperatorSucceeded のステータスで openshift-mtv プロジェクトに表示されることを確認します。

    プラグインの準備が整ったら、ページのリロードが求められます。Migration メニュー項目は、Red Hat OpenShift Web コンソールの左側に表示されるナビゲーションバーに自動的に追加されます。

3.2. コマンドラインインターフェイスからの MTV Operator のインストール

コマンドラインインターフェイス (CLI) から MTV Operator をインストールできます。

前提条件

  • Red Hat OpenShift 4.12 以降がインストールされている。
  • OpenShift 移行ターゲットクラスターに OpenShift Virtualization Operator インストールされている。
  • cluster-admin パーミッションを持つユーザーとしてログインしている。

手順

  1. openshift-mtv プロジェクトを作成します。

    Copy to Clipboard Toggle word wrap
    $ cat << EOF | oc apply -f -
    apiVersion: project.openshift.io/v1
    kind: Project
    metadata:
      name: openshift-mtv
    EOF
  2. 名前が migrationOperatorGroup CR を作成します。

    Copy to Clipboard Toggle word wrap
    $ cat << EOF | oc apply -f -
    apiVersion: operators.coreos.com/v1
    kind: OperatorGroup
    metadata:
      name: migration
      namespace: openshift-mtv
    spec:
      targetNamespaces:
        - openshift-mtv
    EOF
  3. Operator の Subscription CR を作成します。

    Copy to Clipboard Toggle word wrap
    $ cat << EOF | oc apply -f -
    apiVersion: operators.coreos.com/v1alpha1
    kind: Subscription
    metadata:
      name: mtv-operator
      namespace: openshift-mtv
    spec:
      channel: release-v2.5
      installPlanApproval: Automatic
      name: mtv-operator
      source: redhat-operators
      sourceNamespace: openshift-marketplace
      startingCSV: "mtv-operator.v2.5.7"
    EOF
  4. ForkliftController CR を作成します。

    Copy to Clipboard Toggle word wrap
    $ cat << EOF | oc apply -f -
    apiVersion: forklift.konveyor.io/v1beta1
    kind: ForkliftController
    metadata:
      name: forklift-controller
      namespace: openshift-mtv
    spec:
      olm_managed: true
    EOF
  5. MTV Pod が実行していることを確認します。

    Copy to Clipboard Toggle word wrap
    $ oc get pods -n openshift-mtv

    出力例

    Copy to Clipboard Toggle word wrap
    NAME                                                    READY   STATUS    RESTARTS   AGE
    forklift-api-bb45b8db4-cpzlg                            1/1     Running   0          6m34s
    forklift-controller-7649db6845-zd25p                    2/2     Running   0          6m38s
    forklift-must-gather-api-78fb4bcdf6-h2r4m               1/1     Running   0          6m28s
    forklift-operator-59c87cfbdc-pmkfc                      1/1     Running   0          28m
    forklift-ui-plugin-5c5564f6d6-zpd85                     1/1     Running   0          6m24s
    forklift-validation-7d84c74c6f-fj9xg                    1/1     Running   0          6m30s
    forklift-volume-populator-controller-85d5cb64b6-mrlmc   1/1     Running   0          6m36s

3.3. MTV オペレーターの設定

CLI またはユーザーインターフェイスを使用して、MTV Operator の次の設定を設定できます。

  • 同時に移行できるプランごとの仮想マシン (VM) の最大数
  • must gather レポートが自動的に削除されるまで保持される期間
  • メインのコントローラーコンテナーに割り当てられる CPU 制限
  • メインのコントローラーコンテナーに割り当てられるメモリー制限
  • ウォーム移行を開始する前に新しいスナップショットが要求される間隔
  • ウォーム移行中にスナップショットの作成または削除のステータスをチェックする頻度
  • storageclassfilesystem の場合にファイルシステムのオーバーヘッドとして割り当てられた永続ボリューム内のスペースの割合 (CLI のみ)

これらの設定は、forklift-controller CR の spec 部分の適切なパラメーターのデフォルトを変更することで設定されます。

ユーザーインターフェイスを使用してこれらの設定を設定する手順は、MTV 設定の設定 で説明されています。CLI を使用してこれらの設定を設定する手順を次に示します。

手順

  • 次のようにラベルと値を追加して、forklift-controller CR の spec 部分のパラメーターの値を変更します。
Copy to Clipboard Toggle word wrap
spec:
  label: value 
1
1
CLI を使用して設定できるラベルを、各ラベルとそのデフォルト値の説明とともに次の表に示します。
表3.1 MTV Operator のラベル
ラベル説明デフォルト値

controller_max_vm_inflight

同時に移行できるプランごとの仮想マシンの最大数。

20

must_gather_api_cleanup_max_age

自動削除される前に must gather (収集する必要がある) レポートを保持する期間 (時間単位)

-1 (無効)

controller_container_limits_cpu

メインのコントローラーコンテナーに割り当てられる CPU 制限。

500 m

controller_container_limits_memory

メインのコントローラーコンテナーに割り当てられるメモリー制限。

800 Mi

controller_precopy_interval

ウォームマイグレーションを開始する前に新しいスナップショットが要求される間隔 (分単位)。

60

controller_snapshot_status_check_rate_seconds

ウォームマイグレーション中にシステムがスナップショットの作成または削除のステータスをチェックする頻度 (秒単位)。

10

controller_filesystem_overhead

storageclassfilesystem の場合に、ファイルシステムのオーバーヘッドとして割り当てられた永続ボリューム内のスペースの割合。この設定は、CLI を使用してのみ変更できる点に注意してください。

10

controller_block_overhead

永続ブロックボリュームに割り当てられた固定量の追加スペース。この設定は、ブロックベースの storageclass に適用できます。これは、仮想ディスクの内容に加えて、暗号化ヘッダーなどのデータが永続ボリュームに書き込まれる場合に使用できます。この設定は、CLI を使用してのみ変更できる点に注意してください。

0

第4章 Red Hat OpenShift Web コンソールを使用した仮想マシンの移行

Red Hat OpenShift Web コンソールを使用して、仮想マシン (VM) を OpenShift Virtualization に移行できます。

重要

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

VMware のみ: 最小限の VMware の権限 セットが必要です。

VMware のみ: VMware 仮想ディスク開発キット (VDDK) イメージを作成すると、移行速度が向上します。

4.1. MTV ユーザーインターフェイス

Migration Toolkit for Virtualization (MTV) ユーザーインターフェイスは OpenShift Web コンソールに統合されています。

左側のパネルでは、移行の進行状況のコンポーネントに関連するページ (例: 移行のプロバイダー) を選択できます。また、管理者の場合は、Overview を選択することもできます。このページには、移行に関する情報が含まれており、MTV の設定を行うことができます。

図4.1 MTV 拡張インターフェイス

MTV ユーザーインターフェイス

コンポーネントに関連するページでは、ページの左上にある プロジェクト 一覧をクリックし、作業が許可されているプロジェクト (namespace) を確認できます。

  • 管理者の場合は、すべてのプロジェクトを表示できます。
  • 管理者以外は、作業権限を持つプロジェクトのみが表示されます。

4.2. MTV の概要ページ

Migration Toolkit for Virtualization (MTV) Overview ページには、移行に関するシステム全体の情報と、変更できる Settings の一覧が表示されます。

管理者権限がある場合は、Red Hat OpenShift Web コンソールで MigrationOverview をクリックして Overview ページにアクセスできます。

Overview ページには、以下の情報が表示されます。

  • 移行: MTV を使用して実行された移行の数:

    • Total
    • Running
    • Failed
    • Succeeded
    • Canceled
  • 仮想マシンの移行: MTV を使用して移行された仮想マシンの数:

    • Total
    • Running
    • Failed
    • Succeeded
    • Canceled
  • Operator: MTV Operator がデプロイされている namespace と Operator のステータス。
  • 条件: MTV Operator のステータス:

    • Failure: 前回の失敗。False は、デプロイメントしてから障害が発生していないことを示します。
    • Running: Operator が現在実行中で、次の調整を待機しているかどうか。
    • Successful: 最後に成功した調整。

4.3. MTV の設定

管理者権限がある場合は、Overview ページにアクセスし、そのページで以下の設定を変更できます。

表4.1 MTV 設定
設定説明デフォルト値

Max concurrent virtual machine migrations

同時に移行できるプランごとの仮想マシンの最大数

20

Must gather cleanup after (hours)

自動削除される前に must gather (収集する必要がある) レポートを保持する期間

Disabled

Controller main container CPU limit

メインのコントローラーコンテナーに割り当てられる CPU 制限

500 m

Controller main container Memory limit

メインのコントローラーコンテナーに割り当てられるメモリー制限

800 Mi

Precopy internal (minutes)

ウォーム移行を開始する前に新しいスナップショットが要求される間隔

60

Snapshot polling interval (seconds)

ウォーム移行中にスナップショットの作成または削除のステータスをチェックする頻度

10

手順

  1. Red Hat OpenShift Web コンソールで、MigrationOverview をクリックします。Settings リストはページの右側にあります。
  2. Settings リストで、変更する設定の Edit アイコンをクリックします。
  3. リストから設定を選択します。
  4. Save をクリックします。

4.4. プロバイダーの追加

Red Hat OpenShift Web コンソールを使用して、仮想マシン移行の移行元プロバイダーとターゲットプロバイダーを追加できます。

4.4.1. 移行元プロバイダーの追加

MTV を使用して、以下の移行元プロバイダーから仮想マシンを移行できます。

  • VMware vSphere
  • Red Hat Virtualization
  • OpenStack
  • VMware vSphere によって作成された Open Virtual Appliances (OVA)
  • OpenShift Virtualization

Red Hat OpenShift の Web コンソールを使用して移行元プロバイダーを追加できます。

4.4.1.1. VMware vSphere 移行元プロバイダーの追加

Red Hat OpenShift Web コンソールを使用して、VMware 移行元プロバイダーを追加できます。

重要

Migration Toolkit for Virtualization でサポートされているが 2023 FIPS 要件に準拠していない vSphere のバージョンから移行をできるように、VMware vSphere 移行元プロバイダーを使用した移行では EMS 強制が無効になっています。したがって、vSphere 移行元プロバイダーからの移行が FIPS に準拠されなくなるリスクを考慮する必要があります。サポートされているバージョンの vSphere は、ソフトウェア互換性ガイドライン に記載されています。

前提条件

  • すべてのクラスターがアクセスできるセキュアなレジストリーに VMware Virtual Disk Development Kit (VDDK) イメージがある。

手順

  1. Red Hat OpenShift Web コンソールで、MigrationProviders for virtualization をクリックします。
  2. Create Provider をクリックします。
  3. vSphere をクリックします。
  4. 次のフィールドを指定します。

    • Provider resource name: 移行元プロバイダーの名前。
    • URL: ソース仮想マシンがマウントされている vCenter の SDK エンドポイントの URL。URL に sdk パス (通常は /sdk) が含まれていることを確認してください。たとえば、https://vCenter-host-example.com/sdk です。FQDN の証明書が指定されている場合、このフィールドの値は証明書内の FQDN と一致する必要があります。
    • VDDK init image: VDDKInitImage パス。移行を加速するために、VDDK init イメージの作成が強く推奨されます。詳細は、VDDK イメージの作成 を参照してください。
    • Username: vCenter ユーザー。たとえば、user@vsphere.local です。
    • Password: vCenter ユーザーパスワード
    • SHA-1 フィンガープリント: プロバイダーは現在、あらゆる状況において vCenter Server の TLS 証明書の SHA-1 フィンガープリントを必要とします。vSphere では、これをサーバーのサムプリントと呼びます。
  5. CA 証明書を検証するには、以下のいずれかのオプションを選択します。

    • Skip certificate validation: CA 証明書を検証せずに移行します。
    • Use the system CA certificates: システム CA 証明書を検証した後に移行します。

      1. 証明書の検証を省略するには、Skip certificate validation チェックボックスを選択します。
      2. システム CA 証明書を検証するには、Skip certificate validation チェックボックスをオフにします。
  6. Create をクリックしてプロバイダーを追加し、保存します。

    プロバイダーがプロバイダーのリストに表示されます。

4.4.1.2. Red Hat Virtualization 移行元プロバイダーの追加

Red Hat OpenShift の Web コンソールを使用して、Red Hat Virtualization 移行元プロバイダーを追加できます。

前提条件

  • マネージャーの CA 証明書 (サードパーティーの証明書に置き換えられた場合を除く)。その場合は、マネージャーの Apache CA 証明書を指定します。

手順

  1. Red Hat OpenShift Web コンソールで、MigrationProviders for virtualization をクリックします。
  2. Create Provider をクリックします。
  3. Red Hat Virtualization をクリックします。
  4. 次のフィールドを指定します。

    • Provider resource name: 移行元プロバイダーの名前。
    • URL: ソース仮想マシンがマウントされている Red Hat Virtualization Manager (RHVM) の API エンドポイントの URL。URL に、RHVM API サーバーへのパス (通常は /ovirt-engine/api) が含まれていることを確認してください。たとえば、https://rhv-host-example.com/ovirt-engine/api です。
    • Username: ユーザー名。
    • Password: パスワード。
  5. CA 証明書を検証するには、以下のいずれかのオプションを選択します。

    • Skip certificate validation: CA 証明書を検証せずに移行します。
    • Use a custom CA certificate: カスタム CA 証明書を検証した後に移行します。

      1. 証明書の検証を省略するには、Skip certificate validation チェックボックスを選択します。
      2. カスタム CA 証明書を検証するには、Skip certificate validation チェックボックスのチェックを外し、CA 証明書をテキストボックスにドラッグする また CA 証明書を参照して Select をクリックします。
  6. Create をクリックしてプロバイダーを追加し、保存します。

    プロバイダーがプロバイダーのリストに表示されます。

4.4.1.3. OpenStack 移行元プロバイダーの追加

Red Hat OpenShift Web コンソールを使用して、OpenStack 移行元プロバイダーを追加できます。

注記

OpenStack 移行元プロバイダーを使用した移行では、Cinder ボリュームのみを使用する VM のみがサポートされます。

手順

  1. Red Hat OpenShift Web コンソールで、MigrationProviders for virtualization をクリックします。
  2. Create Provider をクリックします。
  3. OpenStack をクリックします。
  4. 次のフィールドを指定します。

    • Provider resource name: 移行元プロバイダーの名前。
    • URL: OpenStack Identity (Keystone) エンドポイントの URL。たとえば、http://controller:5000/v3 です。
    • Authentication type: 次の認証方法のいずれかを選択し、選択した内容に関連する情報を入力します。たとえば、認証タイプとして Application credential ID を選択した場合は、Application credential IDApplication credential secret フィールドがアクティブになり、ID とシークレットを指定する必要があります。

      • Application credential ID

      • Application credential name

        • Application credential name: OpenStack アプリケーションの認証情報名
        • Application credential secret: : OpenStack アプリケーション認証情報の Secret
        • Username: OpenStack ユーザー名
        • Domain: OpenStack ドメイン名
      • Token with user ID

        • Token: OpenStack トークン
        • User ID: OpenStack ユーザー ID
        • Project ID: OpenStack プロジェクト ID
      • ユーザー名のトークン

        • Token: OpenStack トークン
        • Username: OpenStack ユーザー名
        • Project: OpenStack プロジェクト
        • Domain name: OpenStack ドメイン名
      • パスワード

        • Username: OpenStack ユーザー名
        • Password: OpenStack パスワード
        • Project: OpenStack プロジェクト
        • Domain: OpenStack ドメイン名
  5. CA 証明書を検証するには、以下のいずれかのオプションを選択します。

    • Skip certificate validation: CA 証明書を検証せずに移行します。
    • Use a custom CA certificate: カスタム CA 証明書を検証した後に移行します。

      1. 証明書の検証を省略するには、Skip certificate validation チェックボックスを選択します。
      2. カスタム CA 証明書を検証するには、Skip certificate validation チェックボックスのチェックを外し、CA 証明書をテキストボックスにドラッグする また CA 証明書を参照して Select をクリックします。
  6. Create をクリックしてプロバイダーを追加し、保存します。

    プロバイダーがプロバイダーのリストに表示されます。

4.4.1.4. Open Virtual Appliance (OVA) 移行元プロバイダーの追加

Red Hat OpenShift Web コンソールを使用して、VMware vSphere によって作成された Open Virtual Appliance (OVA) ファイルを移行元プロバイダーとして追加できます。

1 つ以上の Open Virtual Appliance (OVA) ファイルを移行元プロバイダーとして使用する移行は、テクノロジープレビュー機能となっています。

重要

1 つ以上の Open Virtual Appliance (OVA) ファイルを移行元プロバイダーとして使用する移行は、テクノロジープレビュー機能のみとして提供されています。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。これらの機能により、近日発表予定の製品機能をリリースに先駆けてご提供でき、お客様は開発プロセス時に機能をテストして、フィードバックをお寄せいただくことができます。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

手順

  1. Red Hat OpenShift Web コンソールで、MigrationProviders for virtualization をクリックします。
  2. Create Provider をクリックします。
  3. Open Virtual Appliance (OVA) をクリックします。
  4. 次のフィールドを指定します。

    • Provider resource name: 移行元プロバイダーの名前
    • URL: OVA を提供する NFS ファイル共有の URL
  5. Create をクリックしてプロバイダーを追加し、保存します。

    プロバイダーがプロバイダーのリストに表示されます。

    注記

    エラーが発生したことを示すエラーメッセージが表示される場合があります。このメッセージは無視しても問題ありません。

4.4.1.5. Red Hat OpenShift Virtualization 移行元プロバイダーの追加

Red Hat OpenShift Virtualization プロバイダーは、移行元プロバイダーと移行先プロバイダーの両方として使用できます。

具体的には、OpenShift Virtualization プロバイダーとして自動的に追加されるホストクラスターは、移行元プロバイダーと移行先プロバイダーの両方として使用できます。

MTV がデプロイされているクラスターから別のクラスターに仮想マシンを移行したり、リモートクラスターから MTV がデプロイされたクラスターに仮想マシンを移行したりできます。

手順

  1. Red Hat OpenShift Web コンソールで、MigrationProviders for virtualization をクリックします。
  2. Create Provider をクリックします。
  3. OpenShift Virtualization をクリックします。
  4. 次のフィールドを指定します。

    • Provider resource name: 移行元プロバイダーの名前
    • URL: API サーバーのエンドポイントの URL
    • Service account bearer token: cluster-admin 権限を持つサービスアカウントのトークン

      URLService account bearer token の両方を空白のままにすると、ローカルの OpenShift クラスターが使用されます。

  5. Create をクリックしてプロバイダーを追加し、保存します。

    プロバイダーがプロバイダーのリストに表示されます。

4.4.2. 移行先プロバイダーの追加

Red Hat OpenShift Web コンソールを使用して、OpenShift Virtualization 移行先プロバイダーを追加できます。

4.4.2.1. OpenShift Virtualization 移行先プロバイダーの追加

Red Hat OpenShift Virtualization プロバイダーは、移行元プロバイダーと移行先プロバイダーの両方として使用できます。

具体的には、OpenShift Virtualization プロバイダーとして自動的に追加されるホストクラスターは、移行元プロバイダーと移行先プロバイダーの両方として使用できます。

MTV をインストールしたプロバイダーであるデフォルトの OpenShift Virtualization 移行先プロバイダーだけでなく、別の OpenShift Virtualization 移行先プロバイダーも Red Hat OpenShift Web コンソールに追加できます。

MTV がデプロイされているクラスターから別のクラスターに仮想マシンを移行したり、リモートクラスターから MTV がデプロイされたクラスターに仮想マシンを移行したりできます。

前提条件

手順

  1. Red Hat OpenShift Web コンソールで、MigrationProviders for virtualization をクリックします。
  2. Create Provider をクリックします。
  3. OpenShift Virtualization をクリックします。
  4. 次のフィールドを指定します。

    • Provider resource name: 移行元プロバイダーの名前
    • URL: API サーバーのエンドポイントの URL
    • Service account bearer token: cluster-admin 権限を持つサービスアカウントのトークン

      URLService account bearer token の両方を空白のままにすると、ローカルの OpenShift クラスターが使用されます。

  5. Create をクリックしてプロバイダーを追加し、保存します。

    プロバイダーがプロバイダーのリストに表示されます。

4.4.2.2. OpenShift Virtualization プロバイダーの移行ネットワークの選択

Red Hat OpenShift Web コンソールで OpenShift Virtualization プロバイダーのデフォルトの移行ネットワークを選択して、パフォーマンスを向上させることができます。デフォルトの移行ネットワークは、ディスクが設定された namespace にディスクを転送するために使用されます。

移行ネットワークを選択しない場合、デフォルトの移行ネットワークは pod ネットワークで、ディスク転送に最適ではない可能性があります。

注記

移行計画の作成時に別のネットワークを選択して、プロバイダーのデフォルトの移行ネットワークを上書きできます。

手順

  1. Red Hat OpenShift Web コンソールで、MigrationProviders for virtualization をクリックします。
  2. プロバイダーの右側で、オプションメニュー kebab から Select migration network を選択します。
  3. 利用可能なネットワークのリストからネットワークを選択し、Select をクリックします。

4.5. ネットワークマッピングの作成

Red Hat OpenShift Web コンソールを使用して、1 つ以上のネットワークマッピングを作成し、ソースネットワークを OpenShift Virtualization ネットワークにマッピングできます。

前提条件

  • ソースおよびターゲットプロバイダーが Red Hat OpenShift Web コンソールに追加されている。
  • 複数の移行元ネットワークと移行先ネットワークをマッピングする場合は、追加の OpenShift Virtualization ネットワークごとに独自の ネットワークアタッチメント定義 が設定されている。

手順

  1. Red Hat OpenShift Web コンソールで、MigrationNetworkMaps for virtualization をクリックします。
  2. Create NetworkMap をクリックします。
  3. 次のフィールドを指定します。

    • Name: ネットワークマッピングリストに表示する名前を入力します。
    • Source provider: 移行元プロバイダーを選択します。
    • Target provider: 移行先プロバイダーを選択します。
  4. Source network および Target namespace/network を選択します。
  5. オプション:Add をクリックして追加のネットワークマッピングを作成するか、複数の移行元ネットワークを単一の移行先ネットワークにマッピングします。
  6. 追加ネットワークのマッピングを作成する場合は、ネットワークアタッチメント定義を移行先ネットワークとして選択します。
  7. Create をクリックします。

    ネットワークマッピングは NetworkMaps 画面に表示されます。

4.6. ストレージマッピングの作成

Red Hat OpenShift Web コンソールを使用して、ストレージマッピングを作成し、ソースディスクストレージを OpenShift Virtualization ストレージクラスにマッピングできます。

前提条件

  • ソースおよびターゲットプロバイダーが Red Hat OpenShift Web コンソールに追加されている。
  • 仮想マシンの移行をサポートするローカルおよび共有の永続ストレージ。

手順

  1. Red Hat OpenShift Web コンソールで、MigrationStorageMaps for virtualization をクリックします。
  2. Create StorageMap をクリックします。
  3. 次のフィールドを指定します。

    • Name: ストレージマッピングリストに表示する名前を入力します。
    • Source provider: 移行元プロバイダーを選択します。
    • Target provider: 移行先プロバイダーを選択します。
  4. ストレージマッピングを作成するには、以下のように Add をクリックして、ストレージソースを宛先ストレージクラスにマッピングします。

    1. 移行元プロバイダーが VMware vSphere の場合は、Source datastore および Target storage class を選択します。
    2. 移行元プロバイダーが Red Hat Virtualization の場合は、Source storage domain および Target storage class を選択します。
    3. 移行元プロバイダーが OpenStack の場合は、Source volume typeTarget storage class を選択します。
    4. ソースプロバイダーが 1 つ以上の OVA ファイルのセットである場合は、OVA ファイル内のすべての仮想ディスクに適用されるダミーストレージの Source storage classTarget storage class を選択します。
    5. ストレージクラスが OpenShift Virtualization の場合は Source storage class および Target storage class を選択します。
    6. オプション: Add をクリックして、複数のストレージソースを単一のターゲットストレージクラスにマッピングするなど、追加のストレージマッピングを作成します。
  5. Create をクリックします。

    マッピングは StorageMaps ページに表示されます。

4.7. 移行計画の作成

Red Hat OpenShift Web コンソールを使用して、移行計画を作成できます。

移行計画により、一緒に移行する仮想マシンまたは同じ移行パラメーターの仮想マシン (一定の割合のクラスターのメンバーやアプリケーション全体など) をグループ化できます。

移行計画の指定された段階で Ansible Playbook またはカスタムコンテナーイメージを実行するようにフックを設定できます。

前提条件

  • MTV が移行先クラスターにインストールされていない場合は、Web コンソールの Providers ページで移行先プロバイダーを追加している。

手順

  1. Red Hat OpenShift Web コンソールで、MigrationPlans for virtualization をクリックします。
  2. Create Plan をクリックします。
  3. 次のフィールドを指定します。

    • Plan name: 移行計画一覧に表示する移行計画名を入力します。
    • Plan description: (オプション) 移行計画の簡単な説明。
    • Source provider: 移行元プロバイダーを選択します。
    • Target provider: 移行先プロバイダーを選択します。
    • Target namespace: 次のいずれかを実行します。

      • リストからターゲット namespace を選択します。
      • テキストボックスに名前を入力し、create "<the_name_you_entered>" をクリックして、ターゲット namespace を作成します。
    • このプランの移行転送ネットワークを変更するには、Select a different network をクリックし、リストからネットワークを選択し、Select をクリックします。

      OpenShift Virtualization プロバイダーの移行転送ネットワークを定義し、ネットワークがターゲット namespace にある場合、定義したネットワークは、すべての移行計画のデフォルトネットワークです。それ以外の場合には、pod ネットワークが使用されます。

  4. Next をクリックします。
  5. ソース仮想マシンのリストをフィルタリングするオプションを選択し、Next をクリックします。
  6. 移行する仮想マシンを選択し、Next をクリックします。
  7. 既存のネットワークマッピングを選択するか、新しいネットワークマッピングを作成します。
  8. .オプション: Add をクリックして、追加のネットワークマッピングを追加します。

    新規ネットワークマッピングを作成するには、以下を実行します。

    • 各移行元ネットワークに対する移行先ネットワークを選択します。
    • オプション: Save current mapping as a template を選択し、ネットワークマッピングの名前を入力します。
  9. Next をクリックします。
  10. 変更可能な既存のストレージマッピングを選択するか、新しいストレージマッピングを作成します。

    新規ストレージマッピングを作成するには、以下を実行します。

    1. 移行元プロバイダーが VMware の場合は、Source datastore および Target storage class を選択します。
    2. 移行元プロバイダーが Red Hat Virtualization の場合は、Source storage domain および Target storage class を選択します。
    3. 移行元プロバイダーが OpenStack の場合は、Source volume typeTarget storage class を選択します。
  11. オプション: Save current mapping as a template を選択し、ストレージマッピングの名前を入力します。
  12. Next をクリックします。
  13. 移行のタイプを選択し、Next をクリックします。

    • コールド移行: データのコピー中にソース仮想マシンは停止します。
    • ウォーム移行: データが段階的にコピーされる間、ソース仮想マシンは実行します。後でカットオーバーを実行し、仮想マシンを停止し、残りの仮想マシンデータとメタデータをコピーします。

      注記

      ウォーム移行は、vSphere および Red Hat Virtualization でのみサポートされます。

  14. Next をクリックします。
  15. オプション: 移行フックを作成して、移行前または移行後に Ansible Playbook を実行できます。

    1. Add hook をクリックします。
    2. Step when the hook will be run (移行前または移行後) を選択します。
    3. Hook definition を選択します。

      • Ansible Playbook: Ansible Playbook を参照するか、フィールドに貼り付けます。
      • Custom container image: デフォルトの hook-runner イメージを使用しない場合は、イメージパス <registry_path>/<image_name>:<tag> を入力します。

        注記

        レジストリーは、Red Hat OpenShift クラスターからアクセスできる必要があります。

  16. Next をクリックします。
  17. 移行計画を確認し、Finish をクリックします。

    移行計画は Plans ページに保存されます。

    移行計画の Options メニュー kebab をクリックし、View details を選択すると、移行計画の詳細を確認できます。

4.8. 移行計画の実行

移行計画を実行し、Red Hat OpenShift Web コンソールでその進行状況を表示できます。

前提条件

  • 有効な移行計画が作成されている。

手順

  1. Red Hat OpenShift Web コンソールで、MigrationPlans for virtualization をクリックします。

    Plans リストには、移行元プロバイダーとターゲットプロバイダー、移行中の仮想マシン (VM) の数、ステータス、および各プランの説明が表示されます。

  2. 移行計画の横にある Start をクリックして移行を開始します。
  3. 開いた確認ウィンドウで Start をクリックします。

    Migration details by VM 画面が開いて、移行の進行状況が表示されます。

    ウォーム移行のみ:

    • プレコピー段階が開始します。
    • Cutover クリックして移行を完了します。
  4. 移行が失敗した場合:

    1. Get logs をクリックして、移行ログを取得します。
    2. 開いた確認ウィンドウで Get logs をクリックします。
    3. Get logsDownload logs に変わるまで待ってから、ボタンをクリックして、ログをダウンロードします。
  5. 移行が失敗したか、成功したか、または進行中かを問わず、移行の ステータス をクリックして、移行の詳細を表示します。

    Migration details by VM 画面が開いて、移行の開始時刻と終了時刻、コピーされたデータの量、および移行中の各仮想マシンの進行状況パイプラインが表示されます。

  6. 個別の仮想マシンを拡張して、そのステップと各ステップの経過時間と状態を表示します。

4.9. 移行計画のオプション

Red Hat OpenShift Web コンソールの Plans for virtualization ページで、移行計画の横にある Options メニュー kebab をクリックすると、次のオプションにアクセスできます。

  • Get logs: 移行のログを取得します。Get logs をクリックすると、確認ウィンドウが開きます。ウィンドウで Get logs をクリックした後、Get logsDownload logs に変わるまで待ってから、ボタンをクリックして、ログをダウンロードします。
  • Edit: 移行計画の詳細を編集します。移行計画の実行中または正常に完了した後は、移行計画を編集できません。
  • Duplicate: 既存の計画と同じ仮想マシン (VM)、パラメーター、マッピング、およびフックを使用して、新しい移行計画を作成します。この機能は、以下のタスクに使用できます。

    • 仮想マシンを別の namespace に移行する。
    • アーカイブされた移行計画を編集する。
    • ステータスが異なる移行計画を編集する (例: 失敗、キャンセル、実行中、クリティカル、準備完了)。
  • Archive: 移行計画のログ、履歴、メタデータを削除します。計画を編集または再起動することはできません。閲覧のみ可能です。

    注記

    Archive オプションは元に戻せません。ただし、アーカイブされた計画を複製することはできます。

  • Delete: 移行計画を完全に削除します。実行中の移行計画を削除することはできません。

    注記

    Delete オプションは元に戻せません。

    移行計画を削除しても、importer Pod、conversion Pod、config map、シークレット、失敗した VM、データボリュームなどの一時的なリソースは削除されません。(BZ#2018974) 一時的なリソースをクリーンアップするために、移行計画を削除する前にアーカイブする必要があります。

  • View details: 移行計画の詳細を表示します。
  • Restart: 失敗またはキャンセルした移行計画を再起動します。
  • Cancel scheduled cutover: ウォーム移行計画に対してスケジュールされたカットオーバー移行をキャンセルします。

4.10. 移行のキャンセル

Red Hat OpenShift Web コンソールを使用して、移行計画の進行中に一部またはすべての仮想マシン (VM) の移行をキャンセルできます。

手順

  1. Red Hat OpenShift Web コンソールで、Plans for virtualization をクリックします。
  2. 実行中の移行計画の名前をクリックし、移行の詳細を表示します。
  3. 1 つ以上の仮想マシンを選択し、Cancel をクリックします。
  4. Yes, cancel をクリックしてキャンセルを確定します。

    Migration details by VM リストでは、キャンセルした仮想マシンのステータスは Canceled になります。移行されていない仮想マシンと移行された仮想マシンは影響を受けません。

Migration plans ページの移行計画の横にある Restart をクリックして、キャンセルした移行を再開できます。

第5章 コマンドラインからの仮想マシンの移行

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

重要

5.1. 管理者以外が移行計画コンポーネントを操作するために必要な権限

管理者の場合は、移行計画のすべてのコンポーネント (プロバイダー、ネットワークマッピング、移行計画など) を操作できます。

デフォルトでは、管理者以外のユーザーが移行計画とそのコンポーネントを操作できる機能は限られています。管理者は、ロールを変更してすべてのコンポーネントへの完全なアクセスを許可したり、制限付きのパーミッションを付与したりできます。

たとえば、管理者は、移行計画に管理者以外のクラスターロールを 1 つ以上割り当てることができます。

表5.1 移行計画のロールおよびそれらの権限の例
Role説明

plans.forklift.konveyor.io-v1beta1-view

移行計画を表示できますが、作成、削除、または変更はできません。

plans.forklift.konveyor.io-v1beta1-edit

個々の移行計画を作成、削除、または変更 (edit 権限のすべての部分) できます。

plans.forklift.konveyor.io-v1beta1-admin

すべての edit 権限と移行計画のコレクション全体を削除する権限

事前定義されたクラスターのロールには、リソース (例: plan)、API グループ (例: forklift.konveyor.io-v1beta1)、およびアクション (例: viewedit) が含まれることに注意してください。

全体的な例として、管理者以外のユーザーに namespace 別に次の一連の権限を付与できます。

  • アクセス可能な namespace のストレージマップ、ネットワークマップ、および移行計画を作成および変更する
  • 管理者が作成したプロバイダーをストレージマップ、ネットワークマップ、移行計画に接続する
  • プロバイダーを作成できない、またはシステム設定を変更できないようにする
表5.2 管理者以外のユーザーが移行計画コンポーネントを操作できるものの、プロバイダーは作成できない場合に必要な権限の例
アクションAPI グループリソース

get, list, watch, create, update, patch, delete

forklift.konveyer.io

plans

get, list, watch, create, update, patch, delete

forklift.konveyer.io

migrations

get, list, watch, create, update, patch, delete

forklift.konveyer.io

hooks

get, list, watch

forklift.konveyer.io

providers

get, list, watch, create, update, patch, delete

forklift.konveyer.io

networkmaps

get, list, watch, create, update, patch, delete

forklift.konveyer.io

storagemaps

get, list, watch

forklift.konveyer.io

forkliftcontrollers

注記

管理者以外が移行計画を作成するには、ネットワークマップまたはストレージマップのテンプレートを使用する場合でも、ネットワークマップおよびストレージマップの edit ロールの一部である create 権限が必要です。

5.2. VMware vSphere moRef の取得

CLI から Migration Toolkit for Virtualization (MTV)を使用して VMware vSphere 移行元プロバイダーと共に VM を移行する場合は、データストア、ネットワーク、仮想マシンなどの vSphere 内の特定のエンティティーの 管理オブジェクト参照(moRef)を知っている必要があります。

Inventory サービスから 1 つ以上の vSphere エンティティーの moRef を取得できます。その後、各 moRef を、別のエンティティーの moRef を取得するための参照として使用できます。

手順

  1. プロジェクトのルートを取得します。

    Copy to Clipboard Toggle word wrap
    oc get route -n openshift-mtv
  2. Inventory サービスルートを取得します。

    Copy to Clipboard Toggle word wrap
    $ oc get route <inventory_service> -n openshift-mtv
  3. アクセストークンを取得します。

    Copy to Clipboard Toggle word wrap
    $ TOKEN=$(oc whoami -t)
  4. VMware vSphere プロバイダーの moRef を取得します。

    Copy to Clipboard Toggle word wrap
    $ curl -H "Authorization: Bearer $TOKEN"  https://<inventory_service_route>/providers/vsphere -k
  5. VMware vSphere ソースプロバイダーのデータストアを取得します。

    Copy to Clipboard Toggle word wrap
    $ curl -H "Authorization: Bearer $TOKEN"  https://<inventory_service_route>/providers/vsphere/<provider id>/datastores/ -k

    出力例

    Copy to Clipboard Toggle word wrap
    [
      {
        "id": "datastore-11",
        "parent": {
          "kind": "Folder",
          "id": "group-s5"
        },
        "path": "/Datacenter/datastore/v2v_general_porpuse_ISCSI_DC",
        "revision": 46,
        "name": "v2v_general_porpuse_ISCSI_DC",
        "selfLink": "providers/vsphere/01278af6-e1e4-4799-b01b-d5ccc8dd0201/datastores/datastore-11"
      },
      {
        "id": "datastore-730",
        "parent": {
          "kind": "Folder",
          "id": "group-s5"
        },
        "path": "/Datacenter/datastore/f01-h27-640-SSD_2",
        "revision": 46,
        "name": "f01-h27-640-SSD_2",
        "selfLink": "providers/vsphere/01278af6-e1e4-4799-b01b-d5ccc8dd0201/datastores/datastore-730"
      },
     ...

この例では、データストア v2v_general_porpuse_ISCSI_DC の moRef が datastore-11 で、データストア f01-h27-640-SSD _2 の moRef は datastore-730 です。

5.3. 仮想マシンの移行

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

重要

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

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

1 つ以上の Open Virtual Appliance (OVA) ファイルを移行元プロバイダーとして使用する移行は、テクノロジープレビュー機能となっています。

重要

1 つ以上の Open Virtual Appliance (OVA) ファイルを移行元プロバイダーとして使用する移行は、テクノロジープレビュー機能のみとして提供されています。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。これらの機能により、近日発表予定の製品機能をリリースに先駆けてご提供でき、お客様は開発プロセス時に機能をテストして、フィードバックをお寄せいただくことができます。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

注記

OpenStack 移行元プロバイダーを使用した移行では、Cinder ボリュームのみを使用する VM のみがサポートされます。

前提条件

  • VMware のみ: すべてのクラスターがアクセスできるセキュアなレジストリーに VMware Virtual Disk Development Kit (VDDK) イメージを用意しておく。
  • Red Hat Virtualization (RHV) のみ: ダイレクト LUN ディスクを使用して仮想マシンを移行する場合は、VM 実行先の OpenShift Virtualization クラスター内のノードがバックエンドストレージにアクセスできることを確認してください。
注記
  • 移行元プロバイダーから移行先プロバイダーに コピーされる ディスクイメージとは異なり、LUN は移行元プロバイダーの仮想マシンから 切り離されますが削除されず、ターゲットプロバイダーで作成された仮想マシン (VM) にアタッチされます。
  • 移行元プロバイダーへのフォールバックが必要な場合に備えて、移行中に LUN は移行元プロバイダーから削除されません。ただし、LUN を移行元プロバイダーの VM に再接続する前に、LUN がターゲット環境上の VM によって同時に使用されていないことを確認してください。同時に使用されていると、データの破損が発生する可能性があります。
  • ファイバーチャネル 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: <provider_type> 
    2
    
        createdForResourceType: providers
    type: Opaque
    stringData: 
    3
    
      user: <user> 
    4
    
      password: <password> 
    5
    
      insecureSkipVerify: <true/false> 
    6
    
      domainName: <domain_name> 
    7
    
      projectName: <project_name> 
    8
    
      regionName: <region name> 
    9
    
      cacert: | 
    10
    
        <ca_certificate>
      url: <api_end_point> 
    11
    
      thumbprint: <vcenter_fingerprint> 
    12
    
      token: <service_account_bearer_token> 
    13
    
    EOF
    1
    ownerReferences セクションはオプションです。
    2
    移行元プロバイダーのタイプを指定します。許可される値は、ovirtvsphereopenstackova、および openshift です。このラベルは、リモートシステムにアクセスできる場合に認証情報が正しいことを確認するのに必要であり、RHV では、サードパーティーの証明書が指定されている場合に Manager CA 証明書を取得するのに必要です。
    3
    OVA の stringData セクションは異なり、Secret マニフェストの説明の後にあるメモに説明されています。
    4
    vCenter ユーザー、RHV Manager ユーザー、または OpenStack ユーザーを指定します。
    5
    ユーザーパスワードを指定します。
    6
    証明書の検証を省略するには、<true> を指定します。これにより、セキュアではない移行が行われ、証明書は不要になります。セキュアではない移行とは、転送されたデータがセキュアではない接続を介して送信され、機密性の高いデータが公開される可能性があることを意味します。<false> を指定すると、証明書が検証されます。
    7
    OpenStack のみ: ドメイン名を指定します。
    8
    OpenStack のみ: プロジェクト名を指定します。
    9
    OpenStack のみ: OpenStack リージョンの名前を指定します。
    10
    RHV および OpenStack のみ: RHV の場合は、サードパーティーの証明書に置き換えられていない限り、Manager CA 証明書を入力します。サードパーティーの証明書に置き換えられた場合は、Manager Apache CA 証明書を入力します。Manager CA 証明書は、https://<engine_host>/ovirt-engine/services/pki-resource?resource=ca-certificate&format=X509-PEM-CA で取得できます。OpenStack の場合は、ソース環境に接続するための CA 証明書を入力します。insecureSkipVerify<true> に設定されている場合、証明書は使用されません。
    11
    API エンドポイント URL を指定します。たとえば、vSphere の場合は https://<vCenter_host>/sdk、RHV の場合は https://<engine_host>/ovirt-engine/api、OpenStack の場合は https://<identity_service>/v3 です。
    12
    VMware のみ: vCenter SHA-1 フィンガープリントを指定します。
    13
    OpenShift のみ: cluster-admin 権限を持つサービスアカウントのトークン。
    注記

    OVA Secret マニフェストの stringData セクションは次のとおりです。

    Copy to Clipboard Toggle word wrap
    stringData:
      url: <nfs_server:/nfs_path>


    nfs_server: 共有が作成されたサーバーの IP またはホスト名。
    nfs_path: OVA ファイルが保存されているサーバー上のパス。

  2. 移行元プロバイダーの 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: <provider_type> 
    1
    
      url: <api_end_point> 
    2
    
      settings:
        vddkInitImage: <registry_route_or_server_path>/vddk:<tag> 
    3
    
      secret:
        name: <secret> 
    4
    
        namespace: <namespace>
    EOF
    1
    移行元プロバイダーのタイプを指定します。許可される値は、ovirtvsphereopenstackova、および openshift です。
    2
    API エンドポイント URL を指定します。たとえば、vSphere の場合は https://<vCenter_host>/sdk、RHV の場合は https://<engine_host>/ovirt-engine/api、OpenStack の場合は https://<identity_service>/v3 です。
    3
    VMware のみ: 作成した VDDK イメージを指定します。
    4
    プロバイダー Secret CR の名前を指定します。
  3. VMware のみ: 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 の Provider CR の名前を指定します。
    2
    VMware ホストのマネージドオブジェクト参照 (MOR) を指定します。moRef を取得するには、Retrieving a VMware vSphere moRef を参照してください。
    3
    VMware 移行ネットワークの IP アドレスを指定します。
  4. 移行元および宛先ネットワークをマッピングする 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> 
    3
    
            name: <source_network_name>
        - destination:
            name: <network_attachment_definition> 
    4
    
            namespace: <network_attachment_definition_namespace> 
    5
    
            type: multus
          source:
            name: <network_attachment_definition> 
    6
    
            namespace: <network_attachment_definition_namespace> 
    7
    
            type: multus 
    8
    
      provider:
        source:
          name: <source_provider>
          namespace: <namespace>
        destination:
          name: <destination_provider>
          namespace: <namespace>
    EOF
    1
    使用できる値は Pod および multus です。
    2
    id パラメーター または name パラメーターのいずれかを使用して、ソースネットワークを指定できます。
    3
    VMware ネットワーク MOR、RHV ネットワーク UUID、または OpenStack ネットワーク UUID を指定します。moRef を取得するには、Retrieving a VMware vSphere moRef を参照してください。
    4
    追加の OpenShift Virtualization ネットワークごとにネットワークアタッチメント定義を指定します。
    5
    typemultus の場合に限り必要です。OpenShift Virtualization のネットワークアタッチメント定義の namespace を指定します。
    6
    追加の OpenShift Virtualization ネットワークごとにネットワークアタッチメント定義を指定します。
    7
    typemultus の場合に限り必要です。ここで、namespace は、namespace プロパティーを使用するか、<network_namespace>/<network_name> のように構築された名前で指定できます。
    8
    OpenShift のみ
  5. 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
    
        - destination:
            storageClass: <storage_class>
            accessMode: <access_mode>
          source:
            id: <source_datastore>
      provider:
        source:
          name: <source_provider>
          namespace: <namespace>
        destination:
          name: <destination_provider>
          namespace: <namespace>
    EOF
    1
    使用できる値は ReadWriteOnce および ReadWriteMany です。
    2
    VMware データストア moRef、RHV ストレージドメイン UUID、または OpenStack volume_type UUID を指定します。たとえば、f2737930-b567-451a-9ceb-2887f6207009 です。moRef を取得するには、Retrieving a VMware vSphere moRef を参照してください。
    注記

    OVA の場合、StorageMap は、OVA のすべてのディスクが関連付けられている単一のストレージのみを移行先のストレージクラスにマップできます。このため、ストレージは UI では "Dummy storage for source provider <provider_name>" と呼ばれます。

  6. オプション: 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 
    1
    
      playbook: | 
    2
    
        LS0tCi0gbmFtZTogTWFpbgogIGhvc3RzOiBsb2NhbGhvc3QKICB0YXNrczoKICAtIG5hbWU6IExv
        YWQgUGxhbgogICAgaW5jbHVkZV92YXJzOgogICAgICBmaWxlOiAiL3RtcC9ob29rL3BsYW4ueW1s
        IgogICAgICBuYW1lOiBwbGFuCiAgLSBuYW1lOiBMb2FkIFdvcmtsb2FkCiAgICBpbmNsdWRlX3Zh
        cnM6CiAgICAgIGZpbGU6ICIvdG1wL2hvb2svd29ya2xvYWQueW1sIgogICAgICBuYW1lOiB3b3Jr
        bG9hZAoK
    EOF
    1
    デフォルトの hook-runner イメージを使用するか、カスタムイメージを指定することができます。カスタムイメージを指定する場合は、Playbook を指定する必要はありません。
    2
    オプション: base64 でエンコードされた Ansible Playbook。Playbook を指定する場合は、imagehook-runner である必要があります。
  7. 移行の 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: true 
    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>
          namespace: <namespace> 
    10
    
          hooks: 
    11
    
            - hook:
                namespace: <namespace>
                name: <hook> 
    12
    
              step: <step> 
    13
    
    EOF
    1
    Plan CR の名前を指定します。
    2
    移行がウォームまたはコールドであるかどうかを指定します。Migration マニフェストで cutover パラメーターの値を指定せずにウォーム移行を指定すると、プレコピーステージのみが実行します。
    3
    プランごとにネットワークマップとストレージマップを 1 つだけ指定します。
    4
    移行する仮想マシンがネットワークに割り当てられていない場合でも、ネットワークマッピングを指定します。この場合、マッピングは空にできます。
    5
    NetworkMap CR の名前を指定します。
    6
    移行する仮想マシンにディスクイメージが割り当てられていない場合でも、ストレージマッピングを指定します。この場合、マッピングは空にできます。
    7
    StorageMap CR の名前を指定します。
    8
    OpenShift Virtualization を除くすべてのソースプロバイダーでは、id パラメーター または name パラメーターを使用してソース VM を指定できます。
    OpenShift Virtualization 移行元プロバイダーのみ: 移行元仮想マシンを指定するには、id. パラメーターではなく name パラメーターのみが使用できます。
    9
    VMware VM MOR、RHV VM UUID、または OpenStack VM UUID を指定します。moRef を取得するには、Retrieving a VMware vSphere moRef を参照してください。
    10
    OpenShift Virtualization 移行元プロバイダーのみ。
    11
    オプション: 仮想マシンのフックを最大 2 つ指定できます。各フックは個別の移行ステップで実行する必要があります。
    12
    Hook CR の名前を指定します。
    13
    使用できる値は、移行計画が開始される前の PreHook、または移行が完了した後の PostHook です。
  8. Plan CR を実行するための Migration マニフェストを作成します。

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

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

  9. 移行の進捗をモニタリングするための Migration CR を取得します。

    Copy to Clipboard Toggle word wrap
    $ oc get migration/<migration> -n <namespace> -o yaml

5.4. vCenter ホストの SHA-1 フィンガープリントの取得

Secret CR を作成するには、vCenter ホストの SHA-1 フィンガープリントを取得する必要があります。

手順

  • 以下のコマンドを実行します。

    Copy to Clipboard Toggle word wrap
    $ openssl s_client \
        -connect <vcenter_host>:443 \ 
    1
    
        < /dev/null 2>/dev/null \
        | openssl x509 -fingerprint -noout -in /dev/stdin \
        | cut -d '=' -f 2
    1
    vCenter ホストの IP アドレスまたは FQDN を指定します。

    出力例

    Copy to Clipboard Toggle word wrap
    01:23:45:67:89:AB:CD:EF:01:23:45:67:89:AB:CD:EF:01:23:45:67

5.5. 移行のキャンセル

コマンドラインインターフェイス (CLI) から、移行の進行中に、移行全体または個々の仮想マシン (VM) の移行をキャンセルできます。

移行全体のキャンセル

  • Migration CR を削除します。

    Copy to Clipboard Toggle word wrap
    $ oc delete migration <migration> -n <namespace> 
    1
    1
    Migration CR の名前を指定します。

個別の仮想マシンの移行のキャンセル

  1. Migration マニフェストの spec.cancel ブロックに個別の仮想マシンを追加します。

    Copy to Clipboard Toggle word wrap
    $ cat << EOF | oc apply -f -
    apiVersion: forklift.konveyor.io/v1beta1
    kind: Migration
    metadata:
      name: <migration>
      namespace: <namespace>
    ...
    spec:
      cancel:
      - id: vm-102 
    1
    
      - id: vm-203
      - name: rhel8-vm
    EOF
    1
    id キーまたは name キーを使用して仮想マシンを指定できます。

    id キーの値は、VMware 仮想マシンの場合は Managed Object Reference、RHV 仮想マシンの場合は VM UUID です。

  2. 残りの仮想マシンの進捗をモニタリングするための Migration CR を取得します。

    Copy to Clipboard Toggle word wrap
    $ oc get migration/<migration> -n <namespace> -o yaml

第6章 高度な移行オプション

6.1. ウォーム移行のプレコピー間隔の変更

ForkliftController カスタムリソース (CR) にパッチを適用して、スナップショットの間隔を変更できます。

手順

  • ForkliftController CR にパッチを適用します。

    Copy to Clipboard Toggle word wrap
    $ oc patch forkliftcontroller/<forklift-controller> -n openshift-mtv -p '{"spec": {"controller_precopy_interval": <60>}}' --type=merge 
    1
    1
    プレコピーの間隔を分単位で指定します。デフォルト値は 60 です。

    forklift-controller Pod を再起動する必要はありません。

6.2. Validation サービスのカスタムルールの作成

Validation サービスは Open Policy Agent (OPA) ポリシールールを使用して、移行に対する各仮想マシン (VM) の適合性を確認します。Validation サービスは、各仮想マシンの concerns リストを生成します。これは、Provider Inventory サービスに仮想マシン属性として保存されます。Web コンソールには、プロバイダーインベントリー内の各仮想マシンの concerns が表示されます。

カスタムルールを作成して、Validation サービスのデフォルトルールセットを拡張できます。たとえば、仮想マシンに複数のディスクがあるかどうかを確認するルールを作成できます。

6.2.1. Rego ファイルについて

検証ルールは、Open Policy Agent (OPA) のネイティブクエリー言語である Rego で記述されます。ルールは、Validation Pod の /usr/share/opa/policies/io/konveyor/forklift/<provider> ディレクトリーに .rego ファイルとして保存されます。

各検証ルールは、個別の .rego ファイルに定義され、特定の条件をテストします。条件が true と評価された場合、ルールは {“category", “label", “assessment"} ハッシュを concerns に追加します。concerns のコンテンツは、仮想マシンのインベントリーレコードの concerns キーに追加されます。Web コンソールには、プロバイダーインベントリー内の各仮想マシンの concerns キーのコンテンツが表示されます。

次の .rego ファイルの例では、VMware 仮想マシンのクラスターで有効になっている分散リソーススケジューリングを確認します。

drs_enabled.rego の例

Copy to Clipboard Toggle word wrap
package io.konveyor.forklift.vmware 
1


has_drs_enabled {
    input.host.cluster.drsEnabled 
2

}

concerns[flag] {
    has_drs_enabled
    flag := {
        "category": "Information",
        "label": "VM running in a DRS-enabled cluster",
        "assessment": "Distributed resource scheduling is not currently supported by OpenShift Virtualization. The VM can be migrated but it will not have this feature in the target environment."
    }
}

1
各検証ルールはパッケージ内で定義されます。パッケージの namespace は、VMware の場合が io.konveyor.forklift.vmware、Red Hat Virtualization の場合が io.konveyor.forklift.ovirt です。
2
クエリーパラメーターは、Validation サービス JSON の input キーに基づいています。

6.2.2. デフォルトの検証ルールの確認

カスタムルールを作成する前に、Validation サービスのデフォルトルールを確認して、既存のデフォルト値を再定義するルールを作成しないようにする必要があります。

例: デフォルトのルールに default valid_input = false の行が含まれていて、default valid_input = true の行が含まれるカスタムルールを作成した場合、Validation サービスは起動しません。

手順

  1. Validation Pod のターミナルに接続します。

    Copy to Clipboard Toggle word wrap
    $ oc rsh <validation_pod>
  2. プロバイダーの OPA ポリシーディレクトリーに移動します。

    Copy to Clipboard Toggle word wrap
    $ cd /usr/share/opa/policies/io/konveyor/forklift/<provider> 
    1
    1
    vmware または ovirt を指定します。
  3. デフォルトポリシーを検索します。

    Copy to Clipboard Toggle word wrap
    $ grep -R "default" *

6.2.3. 検証ルールの作成

ルールを含む設定マップカスタムリソース (CR) を Validation サービスに適用して、検証ルールを作成します。

重要
  • 既存のルールと同じ 名前 でルールを作成すると、Validation サービスは、それらのルールで OR 操作を実行します。
  • デフォルトのルールと矛盾するルールを作成すると、Validation サービスは開始しません。

検証ルールの例

検証ルールは、Provider Inventory サービスが収集する仮想マシン (VM) 属性に基づいています。

たとえば、VMware API はこのパス (MOR:VirtualMachine.config.extraConfig["numa.nodeAffinity"]) を使用して、VMware 仮想マシンに NUMA ノードアフィニティーが設定されているかどうかを確認します。

Provider Inventory サービスは、この設定を簡素化し、テスト可能な属性を、リストの値で返します。

Copy to Clipboard Toggle word wrap
"numaNodeAffinity": [
    "0",
    "1"
],

この属性に基づいて Rego クエリーを作成し、それを forklift-validation-config 設定マップに追加します。

Copy to Clipboard Toggle word wrap
`count(input.numaNodeAffinity) != 0`

手順

  1. 以下の例に従って設定マップ CR を作成します。

    Copy to Clipboard Toggle word wrap
    $ cat << EOF | oc apply -f -
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: <forklift-validation-config>
      namespace: openshift-mtv
    data:
      vmware_multiple_disks.rego: |-
        package <provider_package> 
    1
    
    
        has_multiple_disks { 
    2
    
          count(input.disks) > 1
        }
    
        concerns[flag] {
          has_multiple_disks 
    3
    
            flag := {
              "category": "<Information>", 
    4
    
              "label": "Multiple disks detected",
              "assessment": "Multiple disks detected on this VM."
            }
        }
    EOF
    1
    プロバイダーパッケージ名を指定します。使用できる値は、VMware の場合が io.konveyor.forklift.vmware、Red Hat Virtualization の場合が io.konveyor.forklift.ovirt です。
    2
    concerns の名前と Rego クエリーを指定します。
    3
    concerns の名前と flag パラメーターの値を指定します。
    4
    使用できる値は CriticalWarning、および Information です。
  2. forklift-controller デプロイメントを 0 にスケーリングして、Validation Pod を停止します。

    Copy to Clipboard Toggle word wrap
    $ oc scale -n openshift-mtv --replicas=0 deployment/forklift-controller
  3. forklift-controller デプロイメントを 1 にスケーリングして、Validation Pod を起動します。

    Copy to Clipboard Toggle word wrap
    $ oc scale -n openshift-mtv --replicas=1 deployment/forklift-controller
  4. Validation Pod ログをチェックして、Pod が起動したことを確認します。

    Copy to Clipboard Toggle word wrap
    $ oc logs -f <validation_pod>

    カスタムルールがデフォルトのルールと競合する場合、Validation Pod は起動しません。

  5. 移行元プロバイダーを削除します。

    Copy to Clipboard Toggle word wrap
    $ oc delete provider <provider> -n openshift-mtv
  6. 移行元プロバイダーを追加して、新規ルールを適用します。

    Copy to Clipboard Toggle word wrap
    $ 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
    1
    使用できる値は、ovirtvsphere、および openstack です。
    2
    API エンドポイント URL を指定します。たとえば、vSphere の場合は https://<vCenter_host>/sdk、RHV の場合は https://<engine_host>/ovirt-engine/api、OpenStack の場合は https://<identity_service>/v3 です。
    3
    プロバイダーの Secret CR の名前を指定します。

カスタムルールを作成した後、ルールのバージョンを更新して、Inventory サービスが変更を検出し、仮想マシンを検証できるようにする必要があります。

6.2.4. インベントリールールバージョンの更新

Provider Inventory サービスが変更を検出して Validation サービスをトリガーするように、ルールを更新するたびにインベントリールールのバージョンを更新する必要があります。

ルールバージョンは、各プロバイダーの rules_version.rego ファイルに記録されます。

手順

  1. 現在のルールバージョンを取得します。

    Copy to Clipboard Toggle word wrap
    $ GET https://forklift-validation/v1/data/io/konveyor/forklift/<provider>/rules_version 
    1

    出力例

    Copy to Clipboard Toggle word wrap
    {
       "result": {
           "rules_version": 5
       }
    }

  2. Validation Pod のターミナルに接続します。

    Copy to Clipboard Toggle word wrap
    $ oc rsh <validation_pod>
  3. /usr/share/opa/policies/io/konveyor/forklift/<provider>/rules_version.rego ファイルでルールバージョンを更新します。
  4. Validation Pod ターミナルからログアウトします。
  5. 更新されたルールバージョンを検証します。

    Copy to Clipboard Toggle word wrap
    $ GET https://forklift-validation/v1/data/io/konveyor/forklift/<provider>/rules_version 
    1

    出力例

    Copy to Clipboard Toggle word wrap
    {
       "result": {
           "rules_version": 6
       }
    }

6.3. Inventory サービス JSON の取得

Inventory サービスクエリーを仮想マシン (VM) に送信して Inventory サービス JSON を取得します。出力には "input" キーが含まれます。このキーには、Validation サービスルールによってクエリーされるインベントリー属性が含まれます。

検証ルールは、"input" キーの任意の属性に基づいて作成できます (例: input.snapshot.kind)。

手順

  1. プロジェクトのルートを取得します。

    Copy to Clipboard Toggle word wrap
    oc get route -n openshift-mtv
  2. Inventory サービスルートを取得します。

    Copy to Clipboard Toggle word wrap
    $ oc get route <inventory_service> -n openshift-mtv
  3. アクセストークンを取得します。

    Copy to Clipboard Toggle word wrap
    $ TOKEN=$(oc whoami -t)
  4. HTTP GET リクエストをトリガーします (たとえば、Curl を使用)。

    Copy to Clipboard Toggle word wrap
    $ curl -H "Authorization: Bearer $TOKEN" https://<inventory_service_route>/providers -k
  5. プロバイダーの UUID を取得します。

    Copy to Clipboard Toggle word wrap
    $ curl -H "Authorization: Bearer $TOKEN"  https://<inventory_service_route>/providers/<provider> -k 
    1
    1 1 1
    プロバイダーに使用できる値は、vsphereovirt、および openstack です。
  6. プロバイダーの仮想マシンを取得します。

    Copy to Clipboard Toggle word wrap
    $ curl -H "Authorization: Bearer $TOKEN"  https://<inventory_service_route>/providers/<provider>/<UUID>/vms -k
  7. 仮想マシンの詳細を取得します。

    Copy to Clipboard Toggle word wrap
    $ curl -H "Authorization: Bearer $TOKEN"  https://<inventory_service_route>/providers/<provider>/<UUID>/workloads/<vm> -k

    出力例

    Copy to Clipboard Toggle word wrap
    {
        "input": {
            "selfLink": "providers/vsphere/c872d364-d62b-46f0-bd42-16799f40324e/workloads/vm-431",
            "id": "vm-431",
            "parent": {
                "kind": "Folder",
                "id": "group-v22"
            },
            "revision": 1,
            "name": "iscsi-target",
            "revisionValidated": 1,
            "isTemplate": false,
            "networks": [
                {
                    "kind": "Network",
                    "id": "network-31"
                },
                {
                    "kind": "Network",
                    "id": "network-33"
                }
            ],
            "disks": [
                {
                    "key": 2000,
                    "file": "[iSCSI_Datastore] iscsi-target/iscsi-target-000001.vmdk",
                    "datastore": {
                        "kind": "Datastore",
                        "id": "datastore-63"
                    },
                    "capacity": 17179869184,
                    "shared": false,
                    "rdm": false
                },
                {
                    "key": 2001,
                    "file": "[iSCSI_Datastore] iscsi-target/iscsi-target_1-000001.vmdk",
                    "datastore": {
                        "kind": "Datastore",
                        "id": "datastore-63"
                    },
                    "capacity": 10737418240,
                    "shared": false,
                    "rdm": false
                }
            ],
            "concerns": [],
            "policyVersion": 5,
            "uuid": "42256329-8c3a-2a82-54fd-01d845a8bf49",
            "firmware": "bios",
            "powerState": "poweredOn",
            "connectionState": "connected",
            "snapshot": {
                "kind": "VirtualMachineSnapshot",
                "id": "snapshot-3034"
            },
            "changeTrackingEnabled": false,
            "cpuAffinity": [
                0,
                2
            ],
            "cpuHotAddEnabled": true,
            "cpuHotRemoveEnabled": false,
            "memoryHotAddEnabled": false,
            "faultToleranceEnabled": false,
            "cpuCount": 2,
            "coresPerSocket": 1,
            "memoryMB": 2048,
            "guestName": "Red Hat Enterprise Linux 7 (64-bit)",
            "balloonedMemory": 0,
            "ipAddress": "10.19.2.96",
            "storageUsed": 30436770129,
            "numaNodeAffinity": [
                "0",
                "1"
            ],
            "devices": [
                {
                    "kind": "RealUSBController"
                }
            ],
            "host": {
                "id": "host-29",
                "parent": {
                    "kind": "Cluster",
                    "id": "domain-c26"
                },
                "revision": 1,
                "name": "IP address or host name of the vCenter host or RHV Engine host",
                "selfLink": "providers/vsphere/c872d364-d62b-46f0-bd42-16799f40324e/hosts/host-29",
                "status": "green",
                "inMaintenance": false,
                "managementServerIp": "10.19.2.96",
                "thumbprint": <thumbprint>,
                "timezone": "UTC",
                "cpuSockets": 2,
                "cpuCores": 16,
                "productName": "VMware ESXi",
                "productVersion": "6.5.0",
                "networking": {
                    "pNICs": [
                        {
                            "key": "key-vim.host.PhysicalNic-vmnic0",
                            "linkSpeed": 10000
                        },
                        {
                            "key": "key-vim.host.PhysicalNic-vmnic1",
                            "linkSpeed": 10000
                        },
                        {
                            "key": "key-vim.host.PhysicalNic-vmnic2",
                            "linkSpeed": 10000
                        },
                        {
                            "key": "key-vim.host.PhysicalNic-vmnic3",
                            "linkSpeed": 10000
                        }
                    ],
                    "vNICs": [
                        {
                            "key": "key-vim.host.VirtualNic-vmk2",
                            "portGroup": "VM_Migration",
                            "dPortGroup": "",
                            "ipAddress": "192.168.79.13",
                            "subnetMask": "255.255.255.0",
                            "mtu": 9000
                        },
                        {
                            "key": "key-vim.host.VirtualNic-vmk0",
                            "portGroup": "Management Network",
                            "dPortGroup": "",
                            "ipAddress": "10.19.2.13",
                            "subnetMask": "255.255.255.128",
                            "mtu": 1500
                        },
                        {
                            "key": "key-vim.host.VirtualNic-vmk1",
                            "portGroup": "Storage Network",
                            "dPortGroup": "",
                            "ipAddress": "172.31.2.13",
                            "subnetMask": "255.255.0.0",
                            "mtu": 1500
                        },
                        {
                            "key": "key-vim.host.VirtualNic-vmk3",
                            "portGroup": "",
                            "dPortGroup": "dvportgroup-48",
                            "ipAddress": "192.168.61.13",
                            "subnetMask": "255.255.255.0",
                            "mtu": 1500
                        },
                        {
                            "key": "key-vim.host.VirtualNic-vmk4",
                            "portGroup": "VM_DHCP_Network",
                            "dPortGroup": "",
                            "ipAddress": "10.19.2.231",
                            "subnetMask": "255.255.255.128",
                            "mtu": 1500
                        }
                    ],
                    "portGroups": [
                        {
                            "key": "key-vim.host.PortGroup-VM Network",
                            "name": "VM Network",
                            "vSwitch": "key-vim.host.VirtualSwitch-vSwitch0"
                        },
                        {
                            "key": "key-vim.host.PortGroup-Management Network",
                            "name": "Management Network",
                            "vSwitch": "key-vim.host.VirtualSwitch-vSwitch0"
                        },
                        {
                            "key": "key-vim.host.PortGroup-VM_10G_Network",
                            "name": "VM_10G_Network",
                            "vSwitch": "key-vim.host.VirtualSwitch-vSwitch1"
                        },
                        {
                            "key": "key-vim.host.PortGroup-VM_Storage",
                            "name": "VM_Storage",
                            "vSwitch": "key-vim.host.VirtualSwitch-vSwitch1"
                        },
                        {
                            "key": "key-vim.host.PortGroup-VM_DHCP_Network",
                            "name": "VM_DHCP_Network",
                            "vSwitch": "key-vim.host.VirtualSwitch-vSwitch1"
                        },
                        {
                            "key": "key-vim.host.PortGroup-Storage Network",
                            "name": "Storage Network",
                            "vSwitch": "key-vim.host.VirtualSwitch-vSwitch1"
                        },
                        {
                            "key": "key-vim.host.PortGroup-VM_Isolated_67",
                            "name": "VM_Isolated_67",
                            "vSwitch": "key-vim.host.VirtualSwitch-vSwitch2"
                        },
                        {
                            "key": "key-vim.host.PortGroup-VM_Migration",
                            "name": "VM_Migration",
                            "vSwitch": "key-vim.host.VirtualSwitch-vSwitch2"
                        }
                    ],
                    "switches": [
                        {
                            "key": "key-vim.host.VirtualSwitch-vSwitch0",
                            "name": "vSwitch0",
                            "portGroups": [
                                "key-vim.host.PortGroup-VM Network",
                                "key-vim.host.PortGroup-Management Network"
                            ],
                            "pNICs": [
                                "key-vim.host.PhysicalNic-vmnic4"
                            ]
                        },
                        {
                            "key": "key-vim.host.VirtualSwitch-vSwitch1",
                            "name": "vSwitch1",
                            "portGroups": [
                                "key-vim.host.PortGroup-VM_10G_Network",
                                "key-vim.host.PortGroup-VM_Storage",
                                "key-vim.host.PortGroup-VM_DHCP_Network",
                                "key-vim.host.PortGroup-Storage Network"
                            ],
                            "pNICs": [
                                "key-vim.host.PhysicalNic-vmnic2",
                                "key-vim.host.PhysicalNic-vmnic0"
                            ]
                        },
                        {
                            "key": "key-vim.host.VirtualSwitch-vSwitch2",
                            "name": "vSwitch2",
                            "portGroups": [
                                "key-vim.host.PortGroup-VM_Isolated_67",
                                "key-vim.host.PortGroup-VM_Migration"
                            ],
                            "pNICs": [
                                "key-vim.host.PhysicalNic-vmnic3",
                                "key-vim.host.PhysicalNic-vmnic1"
                            ]
                        }
                    ]
                },
                "networks": [
                    {
                        "kind": "Network",
                        "id": "network-31"
                    },
                    {
                        "kind": "Network",
                        "id": "network-34"
                    },
                    {
                        "kind": "Network",
                        "id": "network-57"
                    },
                    {
                        "kind": "Network",
                        "id": "network-33"
                    },
                    {
                        "kind": "Network",
                        "id": "dvportgroup-47"
                    }
                ],
                "datastores": [
                    {
                        "kind": "Datastore",
                        "id": "datastore-35"
                    },
                    {
                        "kind": "Datastore",
                        "id": "datastore-63"
                    }
                ],
                "vms": null,
                "networkAdapters": [],
                "cluster": {
                    "id": "domain-c26",
                    "parent": {
                        "kind": "Folder",
                        "id": "group-h23"
                    },
                    "revision": 1,
                    "name": "mycluster",
                    "selfLink": "providers/vsphere/c872d364-d62b-46f0-bd42-16799f40324e/clusters/domain-c26",
                    "folder": "group-h23",
                    "networks": [
                        {
                            "kind": "Network",
                            "id": "network-31"
                        },
                        {
                            "kind": "Network",
                            "id": "network-34"
                        },
                        {
                            "kind": "Network",
                            "id": "network-57"
                        },
                        {
                            "kind": "Network",
                            "id": "network-33"
                        },
                        {
                            "kind": "Network",
                            "id": "dvportgroup-47"
                        }
                    ],
                    "datastores": [
                        {
                            "kind": "Datastore",
                            "id": "datastore-35"
                        },
                        {
                            "kind": "Datastore",
                            "id": "datastore-63"
                        }
                    ],
                    "hosts": [
                        {
                            "kind": "Host",
                            "id": "host-44"
                        },
                        {
                            "kind": "Host",
                            "id": "host-29"
                        }
                    ],
                    "dasEnabled": false,
                    "dasVms": [],
                    "drsEnabled": true,
                    "drsBehavior": "fullyAutomated",
                    "drsVms": [],
                    "datacenter": null
                }
            }
        }
    }

第7章 Migration Toolkit for Virtualization のアップグレード

Red Hat OpenShift Web コンソールを使用して、新しいバージョンをインストールすると、MTV Operator をアップグレードできます。

手順

  1. Red Hat OpenShift Web コンソールで、OperatorsInstalled OperatorsMigration Toolkit for Virtualization OperatorSubscription をクリックします。
  2. 更新チャンネルを正しいリリースに変更します。

    Red Hat OpenShift ドキュメントの 更新チャネルの変更 を参照してください。

  3. Upgrade statusUp to date から Upgrade available に変わります。そうでない場合は、CatalogSource Pod を再起動します。

    1. カタログソース (例: redhat-operators) に注意してください。
    2. コマンドラインで、カタログソース Pod を取得します。

      Copy to Clipboard Toggle word wrap
      $ oc get pod -n openshift-marketplace | grep <catalog_source>
    3. Pod を削除します。

      Copy to Clipboard Toggle word wrap
      $ oc delete pod -n openshift-marketplace <catalog_source_pod>

      Upgrade statusUp to date から Upgrade available に変わります。

      Subscriptions タブで Update approvalAutomatic に設定すると、アップグレードが自動的に開始されます。

  4. Subscriptions タブで Update approvalManual に設定すると、アップグレードが承認されます。

    Red Hat OpenShift ドキュメントの 保留中のアップグレードの手動承認 を参照してください。

  5. MTV 2.2 からアップグレードしており、VMware 移行元プロバイダーを定義している場合は、VDDK init イメージを追加して、VMware プロバイダーを編集します。そうしないと、更新によって VMware プロバイダーの状態が Critical に変更になります。詳細は、VMSphere 移行元プロバイダーの追加 を参照してください。
  6. MTV 2.2 の Red Hat OpenShift 宛先プロバイダーで NFS にマッピングした場合は、NFS ストレージプロファイルで AccessModes および VolumeMode パラメーターを編集します。そうしないと、アップグレードによって NFS マッピングが無効になります。詳細は、ストレージプロファイルのカスタマイズを参照してください。

第8章 Migration Toolkit for Virtualization のアンインストール

Red Hat OpenShift Web コンソールまたはコマンドラインインターフェイス (CLI) を使用して、Migration Toolkit for Virtualization (MTV) をアンインストールできます。

8.1. Red Hat OpenShift Web コンソールを使用した MTV のアンインストール

Red Hat OpenShift Web コンソールを使用して、openshift-mtv プロジェクトとカスタムリソース定義 (CRD) を削除すると、Migration Toolkit for Virtualization (MTV) をアンインストールできます。

前提条件

  • cluster-admin 権限を持つユーザーとしてログインしている。

手順

  1. HomeProjects をクリックします。
  2. openshift-mtv プロジェクトを作成します。
  3. プロジェクトの右側の Options メニュー kebab から Delete Project を選択します。
  4. Delete Project ペインで、プロジェクト名を入力し、Delete をクリックします。
  5. AdministrationCustomResourceDefinitions をクリックします。
  6. 検索 フィールドに forklift を入力し、forklift.konveyor.io グループで CRD を見つけます。
  7. 各 CRD の右側で、Options メニュー kebab から Delete CustomResourceDefinition を選択します。

8.2. コマンドラインインターフェイスからの MTV のアンインストール

openshift-mtv プロジェクトおよび forklift.konveyor.io カスタムリソース定義 (CRD) を削除して、コマンドラインインターフェイス (CLI) から Migration Toolkit for Virtualization (MTV) をアンインストールできます。

前提条件

  • cluster-admin 権限を持つユーザーとしてログインしている。

手順

  1. プロジェクトを削除します。

    Copy to Clipboard Toggle word wrap
    $ oc delete project openshift-mtv
  2. CRD を削除します。

    Copy to Clipboard Toggle word wrap
    $ oc get crd -o name | grep 'forklift' | xargs oc delete
  3. OAuthClient を削除します。

    Copy to Clipboard Toggle word wrap
    $ oc delete oauthclient/forklift-ui

第9章 トラブルシューティング

このセクションでは、一般的な移行の問題をトラブルシューティングするための情報を提供します。

9.1. エラーメッセージ

本セクションでは、エラーメッセージと、その解決方法を説明します。

warm import retry limit reached

VMware 仮想マシン (VM) が、プレコピーの段階で変更ブロックのトラッキング (CBT) スナップショットの最大数 (28) に達した場合は、ウォーム移行時に warm import retry limit reached エラーメッセージが表示されます。

この問題を解決するには、仮想マシンから CBT スナップショットの一部を削除して、移行計画を再起動します。

Unable to resize disk image to required size

ターゲットプロバイダーの仮想マシンがブロックストレージの EXT4 ファイルシステムで永続ボリュームを使用しているために移行が失敗すると、Unable to resize disk image to required size エラーメッセージが表示されます。この問題は、CDI が想定するデフォルトのオーバーヘッドに root パーティション用に予約された場所が完全に含まれていないために発生します。

この問題を解決するには、CDI のファイルシステムのオーバーヘッドを 10% 以上に増やします。

9.2. must-gather ツールの使用

must-gather ツールを使用して、MTV カスタムリソース (CR) のログおよび情報を収集できます。must-gather データファイルをすべてのカスタマーケースに割り当てる必要があります。

フィルタリングオプションを使用して、特定の namespace、移行計画、または仮想マシンのデータを収集できます。

注記

フィルターされた must-gather コマンドで存在しないリソースを指定すると、アーカイブファイルは作成されません。

前提条件

  • cluster-admin ロールを持つユーザーとして OpenShift Virtualization クラスターにログインしている。
  • Red Hat OpenShift CLI (oc) がインストールされている。

ログおよび CR 情報の収集

  1. must-gather データを保存するディレクトリーに移動します。
  2. oc adm must-gather コマンドを実行します。

    Copy to Clipboard Toggle word wrap
    $ oc adm must-gather --image=registry.redhat.io/migration-toolkit-virtualization/mtv-must-gather-rhel8:2.5.7

    データは /must-gather/must-gather.tar.gz として保存されます。このファイルを Red Hat カスタマーポータル で作成したサポートケースにアップロードできます。

  3. オプション: oc adm must-gather コマンドに以下のオプションを指定して実行し、フィルターされたデータを収集します。

    • Namespace:

      Copy to Clipboard Toggle word wrap
      $ oc adm must-gather --image=registry.redhat.io/migration-toolkit-virtualization/mtv-must-gather-rhel8:2.5.7 \
        -- NS=<namespace> /usr/bin/targeted
    • 移行計画:

      Copy to Clipboard Toggle word wrap
      $ oc adm must-gather --image=registry.redhat.io/migration-toolkit-virtualization/mtv-must-gather-rhel8:2.5.7 \
        -- PLAN=<migration_plan> /usr/bin/targeted
    • 仮想マシン:

      Copy to Clipboard Toggle word wrap
      $ oc adm must-gather --image=registry.redhat.io/migration-toolkit-virtualization/mtv-must-gather-rhel8:2.5.7 \
        -- VM=<vm_id> NS=<namespace> /usr/bin/targeted 
      1
      1
      Plan CR に表示される仮想マシンの ID を指定します。

9.3. アーキテクチャー

このセクションでは、MTV カスタムリソース、サービス、およびワークフローについて説明します。

9.3.1. MTV カスタムリソースおよびサービス

Migration Toolkit for Virtualization (MTV) は、Red Hat OpenShift Operator として提供されます。以下のカスタムリソース (CR) およびサービスを作成し、管理します。

MTV カスタムリソース

  • Provider CR は、MTV がソースおよびターゲットプロバイダーに接続し、対話できるようにする属性を保存します。
  • NetworkMapping CR は、ソースおよびターゲットプロバイダーのネットワークをマッピングします。
  • StorageMapping CR は、ソースおよびターゲットプロバイダーのストレージをマッピングします。
  • Plan CR には、同じ移行パラメーターと関連するネットワークおよびストレージマッピングを持つ仮想マシンのリストが含まれます。
  • Migration CR は移行計画を実行します。

    一度に実行できる Migration CR は、移行計画ごとに 1 つのみです。単一の Plan CR に複数の Migration CR を作成できます。

MTV サービス

  • Inventory サービスは以下のアクションを実行します。

    • 移行元プロバイダーおよびターゲットプロバイダーに接続します。
    • マッピングおよび計画に関するローカルインベントリーを維持します。
    • 仮想マシンの設定を保存します。
    • 仮想マシンの設定の変更が検出されたら、Validation サービスを実行します。
  • Validation サービスは、ルールを適用して移行の適合性を確認します。
  • Migration Controller サービスは移行のオーケストレーションを行います。

    移行計画の作成時に、Migration Controller サービスは計画を検証し、ステータスラベルを追加します。計画の検証に失敗した場合には、計画のステータスは Not ready となり、その計画を使用して移行を行うことができません。計画が検証をパスすると、計画のステータスは Ready となり、移行を実行するために使用できます。移行に成功すると、Migration Controller サービスは計画のステータスを Completed に変更します。

  • Populator Controller サービスは、Volume Populator を使用して、ディスク転送を調整します。
  • Kubevirt Controller および Containerized Data Import (CDI) Controller サービスは、ほとんどの技術操作を処理します。

9.3.2. 移行ワークフローの概要

ワークフローの概要では、ユーザーの観点から移行プロセスを示しています。

  1. 移行元プロバイダー、ターゲットプロバイダー、ネットワークマッピング、およびストレージマッピングを作成します。
  2. 以下のリソースを含む Plan カスタムリソース (CR) を作成します。

    • 移行元プロバイダー
    • ターゲットプロバイダー (MTV がターゲットクラスターにインストールされていない場合)
    • ネットワークマッピング
    • ストレージマッピング
    • 1 つ以上の仮想マシン (VM)
  3. Plan CR を参照する Migration CR を作成して移行計画を実行します。

    何らかの理由ですべての仮想マシン移行できない場合は、すべての仮想マシンが移行されるまで、同じ Plan CR に対して複数の Migration CR を作成できます。

  4. Plan CR の仮想マシンごとに、Migration Controller サービスは仮想マシン移行の進行状況を Migration CR に記録します。
  5. Plan CR 内の各仮想マシンのデータ転送が完了すると、Migration Controller サービスによって VirtualMachine CR が作成されます。

    すべての仮想マシンが移行されると、Migration Controller サービスは Plan CR のステータスを Completed に更新します。各ソース仮想マシンの電源状態は、移行後も維持されます。

9.3.3. 移行ワークフローの詳細

詳細な移行ワークフローを使用して、失敗した移行のトラブルシューティングを行うことができます。

ワークフローでは、以下の手順について説明します。

ウォームマイグレーションまたはリモート OpenShift クラスターへの移行:

  1. Migration カスタムリソース (CR) を作成して、移行計画を実行すると、Migration Controller サービスはソース仮想マシンディスクごとに DataVolume CR を作成します。

    各仮想マシンディスクで以下を実行します。

  2. Containerized Data Importer (CDI) Controller サービスは、DataVolume CR で指定されるパラメーターに基づいて永続ボリューム要求 (PVC) を作成します。


  3. StorageClass に動的プロビジョナーがある場合、永続ボリューム (PV) は StorageClass プロビジョナーによって動的にプロビジョニングされます。
  4. CDI Controller サービスは Importer Pod を作成します。
  5. Importer Pod は仮想マシンディスクを PV にストリーミングします。

    仮想マシンディスクの転送後に、以下を実行します。

  6. Migration Controller サービスは、VMWare からのインポート時に、PVC が接続された conversion Pod を作成します。

    conversion Pod は virt-v2v を実行して、ターゲット仮想マシンの PVC にデバイスドライバーをインストールし、設定します。

  7. Migration Controller サービスは、PVC に接続されたソース仮想マシン (VM) ごとに VirtualMachine CR を作成します。
  8. 仮想マシンがソース環境で実行されている場合は、Migration Controller が仮想マシンの電源を入れ、KubeVirt Controller サービスが virt-launcher Pod と VirtualMachineInstance CR を作成します。

    virt-launcher Pod は、仮想マシンディスクとして割り当てられた PVC で QEMU-KVM を実行します。

RHV または OpenStack からローカル OpenShift クラスターへのコールド移行:

  1. Migration カスタムリソース (CR) を作成して、移行計画を実行すると、Migration Controller サービスはソース仮想マシンディスクごとに PersistentVolumeClaim CR を作成し、ソースが RHV の場合は OvirtVolumePopulator を作成し、ソースが OpenStack の場合は OpenstackVolumePopulator CR を作成します。

    各仮想マシンディスクで以下を実行します。

  2. Populator Controller サービスは一時的な永続ボリューム要求 (PVC) を作成します。
  3. StorageClass に動的プロビジョナーがある場合、永続ボリューム (PV) は StorageClass プロビジョナーによって動的にプロビジョニングされます。

    • Migration Controller サービスは、ダミー Pod を作成して、すべての PVC をバインドします。Pod の名前には pvcinit が含まれます。
  4. Populator Controller サービスは、populator Pod を作成します。
  5. populator Pod は、ディスクデータを PV に転送します。

    仮想マシンディスクの転送後に、以下を実行します。

  6. 一時的な PVC は削除され、最初の PVC はデータを含む PV を指します。
  7. Migration Controller サービスは、PVC に接続されたソース仮想マシン (VM) ごとに VirtualMachine CR を作成します。
  8. 仮想マシンがソース環境で実行されている場合は、Migration Controller が仮想マシンの電源を入れ、KubeVirt Controller サービスが virt-launcher Pod と VirtualMachineInstance CR を作成します。

    virt-launcher Pod は、仮想マシンディスクとして割り当てられた PVC で QEMU-KVM を実行します。

VMWare からローカル OpenShift クラスターへのコールドマイグレーション:

  1. Migration カスタムリソース (CR) を作成して、移行計画を実行すると、Migration Controller サービスはソース仮想マシンディスクごとに DataVolume CR を作成します。

    各仮想マシンディスクで以下を実行します。

  2. Containerized Data Importer (CDI) Controller サービスは、DataVolume CR に指定されたパラメーターに基づいて、空の永続ボリューム要求 (PVC) を作成します。


  3. StorageClass に動的プロビジョナーがある場合、永続ボリューム (PV) は StorageClass プロビジョナーによって動的にプロビジョニングされます。

すべての仮想マシンディスクの場合:

  1. Migration Controller サービスは、ダミー Pod を作成して、すべての PVC をバインドします。Pod の名前には pvcinit が含まれます。
  2. Migration Controller サービスは、すべての PVC の conversion Pod を作成します。
  3. conversion Pod は virt-v2v を実行します。これにより、仮想マシンが KVM ハイパーバイザーに変換され、ディスクのデータが対応する PV に転送されます。

    仮想マシンディスクの転送後に、以下を実行します。

  4. Migration Controller サービスは、PVC に接続されたソース仮想マシン (VM) ごとに VirtualMachine CR を作成します。
  5. 仮想マシンがソース環境で実行されている場合は、Migration Controller が仮想マシンの電源を入れ、KubeVirt Controller サービスが virt-launcher Pod と VirtualMachineInstance CR を作成します。

    virt-launcher Pod は、仮想マシンディスクとして割り当てられた PVC で QEMU-KVM を実行します。

9.4. ログとカスタムリソース

トラブルシューティングのためにログおよびカスタムリソース (CR) の情報をダウンロードできます。詳細は、詳細な移行ワークフロー を参照してください。

9.4.1. 収集されるログおよびカスタムリソース情報

Red Hat OpenShift Web コンソールまたはコマンドラインインターフェイス (CLI) を使用すると、以下のターゲットのログとカスタムリソース (CR) yaml ファイルをダウンロードできます。

  • 移行計画: Web コンソールまたは CLI。
  • 仮想マシン: Web コンソールまたは CLI。
  • namespace: CLI のみ。

must-gather ツールは、以下のログおよび CR ファイルをアーカイブファイルで収集します。

  • CR:

    • DataVolume CR: 移行された仮想マシンにマウントされているディスクを表します。
    • VirtualMachine CR: 移行された仮想マシンを表します。
    • Plan CR: 仮想マシンおよびストレージおよびネットワークマッピングを定義します。
    • Job CR: オプション: 移行前のフック、移行後のフック、またはその両方を表します。
  • ログ:

    • importer Pod: ディスクからデータへのボリューム変換ログ。importer Pod の命名規則は importer-<migration_plan>-<vm_id><5_char_id> です。たとえば、importer-mig-plan-ed90dfc6-9a17-4a8btnfh は、ed90dfc6-9a17-4a8 が省略された RHV 仮想マシン ID、btnfh は生成された 5 文字の ID です。
    • conversion Pod: 仮想マシンの変換ログ。conversion Pod は virt-v2v を実行します。これは、仮想マシンの PVC にデバイスドライバーをインストールし、設定します。conversion Pod の命名規則は <migration_plan>-<vm_id><5_char_id> です。
    • virt-launcher Pod: 仮想マシンランチャーログ。移行した仮想マシンの電源がオンになると、virt-launcher Pod は仮想マシンディスクとして割り当てられた PVC で QEMU-KVM を実行します。
    • forklift-controller Pod: ログは must-gather コマンドで指定される移行計画、仮想マシン、または namespace に対してフィルター処理されます。
    • forklift-must-gather-api Pod: ログは must-gather コマンドで指定される移行計画、仮想マシン、または namespace に対してフィルター処理されます。
    • hook-job Pod: ログはフックジョブに対してフィルターされます。hook-job の命名規則は、<migration_plan>-<vm_id><5_char_id> (例: plan2j-vm-3696-posthook-4mx85 または plan2j-vm-3696-prehook-mwqnl) です。

      注記

      空または除外されたログファイルは、must-gather アーカイブファイルには含まれません。

VMware 移行計画の must-gather アーカイブ構造の例

Copy to Clipboard Toggle word wrap
must-gather
└── namespaces
    ├── target-vm-ns
    │   ├── crs
    │   │   ├── datavolume
    │   │   │   ├── mig-plan-vm-7595-tkhdz.yaml
    │   │   │   ├── mig-plan-vm-7595-5qvqp.yaml
    │   │   │   └── mig-plan-vm-8325-xccfw.yaml
    │   │   └── virtualmachine
    │   │       ├── test-test-rhel8-2disks2nics.yaml
    │   │       └── test-x2019.yaml
    │   └── logs
    │       ├── importer-mig-plan-vm-7595-tkhdz
    │       │   └── current.log
    │       ├── importer-mig-plan-vm-7595-5qvqp
    │       │   └── current.log
    │       ├── importer-mig-plan-vm-8325-xccfw
    │       │   └── current.log
    │       ├── mig-plan-vm-7595-4glzd
    │       │   └── current.log
    │       └── mig-plan-vm-8325-4zw49
    │           └── current.log
    └── openshift-mtv
        ├── crs
        │   └── plan
        │       └── mig-plan-cold.yaml
        └── logs
            ├── forklift-controller-67656d574-w74md
            │   └── current.log
            └── forklift-must-gather-api-89fc7f4b6-hlwb6
                └── current.log

9.4.2. Web コンソールからのログおよびカスタムリソース情報のダウンロード

Red Hat OpenShift Web コンソールを使用すると、完了、失敗、またはキャンセルされた移行計画、または移行された仮想マシン (VM) のカスタムリソース (CR) に関するログと情報をダウンロードできます。

手順

  1. Red Hat OpenShift Web コンソールで、MigrationPlans for virtualization をクリックします。
  2. 移行計画名の横にある Get logs をクリックします。
  3. Get logs ウィンドウで Get logs をクリックします。

    ログが収集されます。Log collection complete メッセージが表示されます。

  4. Download logs をクリックしてアーカイブファイルをダウンロードします。
  5. 移行された仮想マシンのログをダウンロードするには、移行計画名をクリックして、仮想マシンの横にある Get logs をクリックします。

9.4.3. コマンドラインインターフェイスからのログおよびカスタムリソース情報へのアクセス

must-gather ツールを使用して、コマンドラインインターフェイスからカスタムリソース (CR) のログおよび情報にアクセスできます。must-gather データファイルをすべてのカスタマーケースに割り当てる必要があります。

フィルターオプションを使用して、特定の namespace、完了、失敗、またはキャンセルされた移行計画、移行した仮想マシン (VM) のデータを収集できます。

注記

フィルターされた must-gather コマンドで存在しないリソースを指定すると、アーカイブファイルは作成されません。

前提条件

  • cluster-admin ロールを持つユーザーとして OpenShift Virtualization クラスターにログインしている。
  • Red Hat OpenShift CLI (oc) がインストールされている。

手順

  1. must-gather データを保存するディレクトリーに移動します。
  2. oc adm must-gather コマンドを実行します。

    Copy to Clipboard Toggle word wrap
    $ oc adm must-gather --image=registry.redhat.io/migration-toolkit-virtualization/mtv-must-gather-rhel8:2.5.7

    データは /must-gather/must-gather.tar.gz として保存されます。このファイルを Red Hat カスタマーポータル で作成したサポートケースにアップロードできます。

  3. オプション: oc adm must-gather コマンドに以下のオプションを指定して実行し、フィルターされたデータを収集します。

    • Namespace:

      Copy to Clipboard Toggle word wrap
      $ oc adm must-gather --image=registry.redhat.io/migration-toolkit-virtualization/mtv-must-gather-rhel8:2.5.7 \
        -- NS=<namespace> /usr/bin/targeted
    • 移行計画:

      Copy to Clipboard Toggle word wrap
      $ oc adm must-gather --image=registry.redhat.io/migration-toolkit-virtualization/mtv-must-gather-rhel8:2.5.7 \
        -- PLAN=<migration_plan> /usr/bin/targeted
    • 仮想マシン:

      Copy to Clipboard Toggle word wrap
      $ oc adm must-gather --image=registry.redhat.io/migration-toolkit-virtualization/mtv-must-gather-rhel8:2.5.7 \
        -- VM=<vm_name> NS=<namespace> /usr/bin/targeted 
      1
      1
      仮想マシン ID ではなく、Plan CR に表示される仮想マシンの名前を指定する必要があります。

法律上の通知

Copyright © 2024 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat, Inc.