移行計画を作成する

VM の移行を開始するには、移行を作成します。これにより、移行プラン オブジェクトが作成されます。通常、移行を実行する前に、生成されたプランをさらに確認してカスタマイズする必要があります。

移行は、移行処理の実行と、migctlGoogle Cloud Console での移行アクティビティとステータスのモニタリングに使用する中心的なオブジェクトです。移行オブジェクトは Kubernetes カスタム リソース定義(CRD)として実装され、Kubernetes PersistentVolumeClaim などの追加リソースとともに移行計画に含まれています。

始める前に

  • 移行元を追加します
  • 次のセクションの説明に従って、仮想マシン(VM)インスタンス ID を確認します。
  • Compute Engine を移行元として使用する場合は、移行を作成する前に、移行元の VM を停止してください。移行オブジェクトの作成が完了した後、VM を再起動できます。

VM ID を確認する

VM ID は、ソースタイプに応じて、VM インベントリの閲覧または手動での検索によって確認できます。

VM インベントリを使用して ID を確認する

  • migctl を使用する場合は、次のコマンドを発行して VM のリストを表示できます。

    migctl source list-vms <name> [ --refresh ] [ --wide ]
    
  • Google Cloud コンソールの使用時に、ソースタイプを確認すると、そのタイプのすべての VM がリストされたテーブルが表示されます。

手動で ID を検索する

ソースタイプごとに VM ID を手動で検索できます。

Compute Engine

VMware

  • vmId - ソース プラットフォームで認識されている、移行する VM の ID または名前。次のいずれかの値を使用できます。

    • VM 名。各 VM 名が VMware デプロイ全体で一意であることが確実であれば、簡単な VM 名を使用できます。VM 名が重複している可能性がある場合は、以下で説明する VM ID を使用します。

      次の画像に示すように、vSphere ウェブ クライアントから VM 名を取得できます。

    • vSphere の VM ID(MoRef とも呼ばれます)。これは VM を選択すると、vSphere ウェブ クライアントの URL から表示できます。

      MoRef は、vSphere の URL の中にあります。

      MoRef は PowerCLI を使用して確認することもできます。

命名の要件

移行に名前を割り当てるのは、Migrate to Containers で作成するときに行います。この名前は次の要件を満たす必要があります。

  • 最大文字数は 63 文字とする。
  • 小文字の英数字またはハイフン(-)のみを使用する。
  • 先頭が英数字である。
  • 末尾が英数字である。

サポートされているワークロード

移行を作成する

Linux ワークロードと Windows ワークロード

migctl ツールまたは Google Cloud コンソールを使用して移行を作成します。

migctl

  1. VM を停止します。移行を作成するには、VM を停止する必要があります。移行が完了したら、VM を再起動できます。

  2. 移行を作成します。

    migctl migration create my-migration --source my-src --vm-id my-id --type server-type

    ここで、--vm-id にはソースタイプのコンソールに表示される VM インスタンスの名前を指定します。ここで、--type--type=windows-iis-container または linux-system-container です。

コンソール

  1. 移行元が Compute Engine VM の場合、Compute Engine VM を停止します。移行を作成するには、VM を停止する必要があります。移行が完了したら、VM を再起動できます。

  2. Google Cloud コンソールで [Migrate to Containers] ページを開きます。

    [Migrate to Containers] ページに移動

  3. [移行] タブをクリックして、使用可能な移行を含むテーブルを表示します。

  4. [移行を作成] をクリックします。

  5. 移行名を入力します。

  6. 移行元の追加で作成した移行元を選択します。

  7. [ワークロード タイプ] を [Image Based System Container] または [Windows IIS container] に設定します。

  8. ソースの VM ID を入力します。VM ID の決定について詳しくは、始める前にをご覧ください。

  9. [移行を作成] をクリックします。

    移行の作成が完了すると、[ステータス] 列に [移行計画の生成完了] と表示されます。

CRD

  1. 移行を定義するには、my-migration.yaml という Migration ファイルを作成します。

    このファイルでは、sourceProviderRefname フィールドに、以前に作成された SourceProvider の名前を指定し、sourceId フィールドに Compute Engine インスタンスの名前を指定します。Type は、--type=windows-iis-container または linux-system-container のいずれかです。

    apiVersion: anthos-migrate.cloud.google.com/v1
    kind: Migration
    metadata:
     name: my-migration
     namespace: v2k-system
    spec:
     type: linux-system-container
     sourceSnapshotTemplate:
       spec:
         sourceProviderRef:
           name: my-ce-src
         sourceId: my-id
  2. Compute Engine VM を移行する場合は、VM を停止します。移行を作成するには、VM を停止する必要があります。移行が完了したら、VM を再起動できます。

  3. ファイルを適用します。

    kubectl apply -f my-migration.yaml

Tomcat ワークロード

Tomcat パラメータを指定する

CATALINA_BASECATALINA_HOME の値は手動で指定する必要があります。

migctl

  1. Compute Engine VM を停止します。移行を作成するには、VM を停止する必要があります。移行が完了したら、VM を再起動できます。

  2. 移行を作成します。

    migctl migration create my-migration --source my-ce-src --vm-id my-id
    --type tomcat-container --parameters catalina-base=/catalina/base/path1:/catalina/base/path2,catalina-home=/catalina/home/path/,java-version=11
    
    • --vm-id には、サービス コンソールに表示されるインスタンスの名前を指定します。
    • catalina-base には、CATALINA_BASE 値をコロンで区切ったリストを指定します。
    • catalina-home には、CATALINA_HOME の値を指定します。
    • java-version は、コンテナで使用される Java バージョンを指定するオプションのパラメータです。

CRD

  1. 移行を定義するには、my-migration.yaml という Migration ファイルを作成します。

    このファイルで、次のフィールドを設定します。

    • sourceProvider: 以前に作成された SourceProvider の名前を指定します。
    • sourceId: Compute Engine VM インスタンスの名前を指定します。
    • parameters: Tomcat ワークロード固有のパラメータを設定します。

    これらのフィールド値が設定された移行ファイルの例を次に示します。

    apiVersion: anthos-migrate.cloud.google.com/v1
    kind: Migration
    metadata:
     name: my-migration
     namespace: v2k-system
    spec:
     type: tomcat-container
     sourceSnapshotTemplate:
       spec:
         sourceProviderRef:
           name: my-ce-src
         sourceId: my-id
         parameters:
         - name: catalina-base
           value: /opt/tomcat
         - name: catalina-home
           value: /opt/tomcat
  2. Compute Engine VM を移行する場合は、VM を停止します。移行を作成するには、VM を停止する必要があります。移行が完了したら、VM を再起動できます。

  3. ファイルを適用します。

    kubectl apply -f my-migration.yaml

WebSphere traditional ワークロード

WAS_HOME を指定する

WAS_HOME 環境変数は、/opt/IBM/WebSphere/AppServer/ などの WAS traditional がインストールされている場所を指定します。移行を作成する際、Migrate to Containers はこの値を使用してアプリに関する情報を取得するスクリプトを実行し、アプリ プロファイルのパスを決定します。Migrate to Containers がインストール フォルダを検出できない場合は、WAS_HOME の値を設定できます。

migctl

  1. VM を停止します。移行を作成するには、VM を停止する必要があります。移行が完了したら、VM を再起動できます。

  2. 移行を作成します。

    migctl migration create my-migration --source my-was-src --vm-id my-id
    --type websphere-traditional-container --parameters was-home=/opt/IBM/WebSphere/AppServer/
    

    ここで、--vm-id にはサービス コンソールに表示されるインスタンスの名前を指定します。

CRD

  1. 移行を定義するには、my-migration.yaml という Migration ファイルを作成します。

    このファイルで、次のフィールドを設定します。

    • sourceProvider: 以前に作成された SourceProvider の名前を指定します。
    • sourceId: Compute Engine VM インスタンスの名前を指定します。
    • parameters: WebSphere ワークロード固有のパラメータを設定します。

    これらのフィールド値が設定された移行ファイルの例を次に示します。

    apiVersion: anthos-migrate.cloud.google.com/v1
    kind: Migration
    metadata:
     name: my-migration
     namespace: v2k-system
    spec:
     type: websphere-traditional-container
     sourceSnapshotTemplate:
       spec:
         sourceProviderRef:
           name: my-ce-src
         sourceId: my-id
         parameters:
         - name: was_home
           value: /opt/IBM/WebSphere/AppServer/
  2. Compute Engine VM を移行する場合は、VM を停止します。移行を作成するには、VM を停止する必要があります。移行が完了したら、VM を再起動できます。

  3. ファイルを適用します。

    kubectl apply -f my-migration.yaml

JBoss ワークロード

migctl ツールまたは Google Cloud コンソールを使用して移行を作成します。

migctl

  1. VM を停止します。移行を作成するには、VM を停止する必要があります。移行が完了したら、VM を再起動できます。

  2. 移行を作成します。

    migctl migration create my-migration --source my-src --vm-id my-id --type=jboss-container --parameters jboss-home=/opt/jboss

    ここで、--vm-id にはソースタイプのコンソールに表示される VM インスタンスの名前を指定します。

コンソール

  1. 移行元が Compute Engine VM の場合、Compute Engine VM を停止します。移行を作成するには、VM を停止する必要があります。移行が完了したら、VM を再起動できます。

  2. Google Cloud コンソールで [Migrate to Containers] ページを開きます。

    [Migrate to Containers] ページに移動

  3. [移行] タブをクリックして、使用可能な移行を含むテーブルを表示します。

  4. [移行を作成] をクリックします。

  5. 移行名を入力します。

  6. 移行元の追加で作成した移行元を選択します。

  7. [ワークロード タイプ] を [JBoss container] に設定します。

  8. ソースのインスタンス名を入力します。インスタンス名の決め方については、始める前にをご覧ください。

  9. JBOSS_HOME パラメータを設定して、JBoss インストール パスを使用します。

  10. [移行を作成] をクリックします。

    移行の作成が完了すると、[ステータス] 列に [移行計画の生成完了] と表示されます。

CRD

  1. 移行を定義するには、my-migration.yaml という Migration ファイルを作成します。

    このファイルでは、sourceProviderRefname フィールドに、以前に作成された SourceProvider の名前を指定し、sourceId フィールドに Compute Engine インスタンスの名前を指定します。[type] フィールドに「jboss-container」と入力します。discoveryParameters に検出パラメータのリストを追加できます。各 discoveryParameters パラメータには namevalue という 2 つのプロパティがあります。JBoss 移行を作成する場合、jboss-home という discoveryParameters パラメータの value に JBoss ホームパスを指定する必要があります。

    apiVersion: anthos-migrate.cloud.google.com/v1
    kind: Migration
    metadata:
      name: my-migration
      namespace: v2k-system
    spec:
      type: jboss-container2
      discoveryParameters:
      - name: jboss-home
        value: /path-to-jboss-home
      sourceSnapshotTemplate:
        spec:
          sourceProviderRef:
            name: my-ce-src
          sourceId: my-id
    
  2. Compute Engine VM を移行する場合は、VM を停止します。移行を作成するには、VM を停止する必要があります。移行が完了したら、VM を再起動できます。

  3. ファイルを適用します。

    kubectl apply -f my-migration.yaml

Apache ワークロード

migctl ツールまたは Google Cloud コンソールを使用して移行を作成します。

migctl

  1. VM を停止します。移行を作成するには、VM を停止する必要があります。移行が完了したら、VM を再起動できます。

  2. 移行を作成します。

    migctl migration create my-migration --source my-src --vm-id my-id --type=apache-container

    ここで、--vm-id にはソースタイプのコンソールに表示される VM インスタンスの名前を指定します。

コンソール

  1. 移行元が Compute Engine VM の場合、Compute Engine VM を停止します。移行を作成するには、VM を停止する必要があります。移行が完了したら、VM を再起動できます。

  2. Google Cloud コンソールで [Migrate to Containers] ページを開きます。

    [Migrate to Containers] ページに移動

  3. [移行] タブをクリックして、使用可能な移行を含むテーブルを表示します。

  4. [移行を作成] をクリックします。

  5. 移行名を入力します。

  6. 移行元の追加で作成した移行元を選択します。

  7. [ワークロード タイプ] を [Apache container] に設定します。

  8. ソースの VM ID を入力します。VM ID の決定について詳しくは、始める前にをご覧ください。

  9. [移行を作成] をクリックします。

    移行の作成が完了すると、[ステータス] 列に [移行計画の生成完了] と表示されます。

CRD

  1. 移行を定義するには、my-migration.yaml という Migration ファイルを作成します。

    このファイルでは、sourceProviderRefname フィールドに、以前に作成された SourceProvider の名前を指定し、sourceId フィールドに Compute Engine インスタンスの名前を指定します。[type] フィールドに「apache-container」と入力します。

    apiVersion: anthos-migrate.cloud.google.com/v1
    kind: Migration
    metadata:
     name: my-migration
     namespace: v2k-system
    spec:
     type: apache-container
     sourceSnapshotTemplate:
       spec:
         sourceProviderRef:
           name: my-ce-src
         sourceId: my-id
  2. Compute Engine VM を移行する場合は、VM を停止します。移行を作成するには、VM を停止する必要があります。移行が完了したら、VM を再起動できます。

  3. ファイルを適用します。

    kubectl apply -f my-migration.yaml

WordPress ワークロード

migctl ツールまたは Google Cloud コンソールを使用して移行を作成します。

migctl

  1. VM を停止します。移行を作成するには、VM を停止する必要があります。移行が完了したら、VM を再起動できます。

  2. 移行を作成します。

    migctl migration create my-migration --source my-src --vm-id my-id --type=wordpress-container

    ここで、--vm-id にはソースタイプのコンソールに表示される VM インスタンスの名前を指定します。

コンソール

  1. 移行元が Compute Engine VM の場合、Compute Engine VM を停止します。移行を作成するには、VM を停止する必要があります。移行が完了したら、VM を再起動できます。

  2. Google Cloud コンソールで [Migrate to Containers] ページを開きます。

    [Migrate to Containers] ページに移動

  3. [移行] タブをクリックして、使用可能な移行を含むテーブルを表示します。

  4. [移行を作成] をクリックします。

  5. 移行名を入力します。

  6. 移行元の追加で作成した移行元を選択します。

  7. [ワークロード タイプ] を [WordPress container] に設定します。

  8. ソースの VM ID を入力します。VM ID の決定について詳しくは、始める前にをご覧ください。

  9. [移行を作成] をクリックします。

    移行の作成が完了すると、[ステータス] 列に [移行計画の生成完了] と表示されます。

CRD

  1. 移行を定義するには、my-migration.yaml という Migration ファイルを作成します。

    このファイルでは、sourceProviderRefname フィールドに、以前に作成された SourceProvider の名前を指定し、sourceId フィールドに Compute Engine インスタンスの名前を指定します。[type] フィールドに「wordpress-container」と入力します。

    apiVersion: anthos-migrate.cloud.google.com/v1
    kind: Migration
    metadata:
     name: my-migration
     namespace: v2k-system
    spec:
     type: wordpress-container
     sourceSnapshotTemplate:
       spec:
         sourceProviderRef:
           name: my-ce-src
         sourceId: my-id
  2. Compute Engine VM を移行する場合は、VM を停止します。移行を作成するには、VM を停止する必要があります。移行が完了したら、VM を再起動できます。

  3. ファイルを適用します。

    kubectl apply -f my-migration.yaml

移行の作成をモニタリングする

migctl ツールまたは Google Cloud コンソールを使用して移行の作成の進行状況をモニタリングします。

migctl

  1. 移行計画の作成フェーズが完了するまで待ちます。

    migctl migration status my-migration
    
    NAME           CURRENT-OPERATION      PROGRESS   STEP                   STATUS   AGE
    my-migration   GenerateMigrationPlan  [1/3]      CreateSourceSnapshots  Running  13s 
  2. Compute Engine VM を移行する場合は、それから再起動します。このステップの後に、停止した VM は必要ありません。

コンソール

移行ステータスに、移行の作成が完了したことが表示されたら、次のステップに進みます。

  1. Google Cloud コンソールで [Migrate to Containers] ページを開きます。

    [Migrate to Containers] ページに移動

  2. [移行] タブをクリックして、使用可能な移行を含むテーブルを表示します。

  3. 次の方法で移行のステータスを表示します。

    • 移行の行の [ステータス] 列を表示します。

    • 移行名をクリックします。[移行の詳細] ページが開きます。[モニタリング] タブをクリックして、詳細なステータスを確認するか [イベント] タブをクリックして移行イベントを確認します。

  4. 移行の作成が完了すると、[ステータス] に [移行計画の生成完了] と表示されます。

  5. Compute Engine VM を移行する場合は、それから再起動します。このステップの後に、停止した VM は必要ありません。

CRD

kubectl を使用して、必要なフィールドに JSONPath を指定し、移行情報とステータス MigrationStatus を取得します。

  1. 移行計画の作成フェーズが完了するまで待ちます。

    2 つの kubectl wait コマンドを使用します。1 つは Ready 状態を待機し、もう 1 つは Failed 状態を待機します。移行計画の作成フェーズは、最初の条件が満たされるまで実施されます。

    unset pids; for cond in "Ready" "Failed"; do kubectl wait migrations.anthos-migrate.cloud.google.com my-migration -n v2k-system --for condition=$cond --timeout=15m & pids+=($!); done; wait -p met_pid -n ${pids[@]}
    kill ${pids[@]/$met_pid} # terminate the process that did not complete.
    

    wait コマンドが完了したら、オペレーションは完了です。次のステップに進みます。

  2. 移行計画のステータスを取得します。

    kubectl get migrations.anthos-migrate.cloud.google.com -n v2k-system -o jsonpath={.status.conditions[?(@.type==\"Ready\")].status} my-migration

    移行計画の準備が整うと True を返し、失敗した場合は False を返します。

  3. 移行の作成フェーズが失敗した場合は、次のコマンドを使用してエラー メッセージを取得します。

    kubectl get migrations.anthos-migrate.cloud.google.com -n v2k-system  -o jsonpath={.status.conditions[?(@.type=="Ready")].message} my-migration

  4. Compute Engine VM を移行する場合は、それから再起動します。このステップの後に、停止した VM は必要ありません。

次のステップ