Einen Migrationsplan erstellen

Sie beginnen mit der Migration von VMs, indem Sie eine Migration erstellen. Dies führt zu einem Migrationsplanobjekt. Vor dem Ausführen der Migration ist in der Regel eine weitere Überprüfung und Anpassung des erstellten Plans erforderlich.

Eine Migration ist das zentrale Objekt, mit dem Sie Migrationsaufgaben ausführen sowie diese Aktivitäten und den Status mit migctl und der Google Cloud Console überwachen. Das Migrationsobjekt ist als benutzerdefinierte Kubernetes-Ressourcendefinition (CRD) implementiert und zusammen mit zusätzlichen Ressourcen wie einer Kubernetes-PersistentVolumeClaim im Migrationsplan enthalten.

Hinweis

  • Migrationsquelle hinzufügen
  • Suchen Sie die ID der VM-Instanz, wie im folgenden Abschnitt beschrieben.
  • Wenn Sie Compute Engine als Migrationsquelle verwenden, beenden Sie die Quell-VM, bevor Sie eine Migration erstellen. Wenn das Migrationsobjekt erstellt wurde, können Sie die VM neu starten.

VM-ID suchen

Sie finden die VM-ID im VM-Inventar oder müssen sie manuell suchen, je nach Quelltyp.

ID im VM-Inventar suchen

  • Wenn Sie migctl verwenden, können Sie mit folgendem Befehl eine Liste der VMs aufrufen:

    migctl source list-vms <name> [ --refresh ] [ --wide ]
    
  • Gehen Sie in der Google Cloud Console zum Quelltyp. Dort finden Sie eine Tabelle mit allen VMs dieses Typs.

ID manuell finden

Sie können die VM-ID manuell nach Quelltyp suchen:

Compute Engine

VMware

  • vmId: ID oder Name der zu migrierenden VM, wie sie auf der Quellplattform bezeichnet wird. Sie können einen der folgenden Werte verwenden.

    • Den VM-Namen. Wenn davon ausgegangen werden kann, dass jeder VM-Name in Ihrem VMware-Deployment nur einmal vorkommt, reicht der einfache VM-Name aus. Wenn VM-Namen dupliziert wurden, verwenden Sie die VM-ID wie unten erläutert.

      Sie können den VM-Namen wie in der folgenden Abbildung dargestellt vom vSphere-Webclient abrufen.

    • Die VM-ID aus vSphere (auch als MoRef bezeichnet). Diese ID finden Sie bei der Auswahl der VM in der URL des vSphere-Webclients.

      MoRef ist in der URL von vSphere enthalten

      Sie können MoRef auch mithilfe von PowerCLI ermitteln.

Anforderungen für die Benennung von Migrationen

Sie weisen einer Migration einen Namen zu, wenn Sie sie in Migrate to Containers erstellen. Der Name muss die folgenden Anforderungen erfüllen:

  • Es darf höchstens 63 Zeichen enthalten.
  • Es dürfen nur kleingeschriebene alphanumerische Zeichen oder „-“ (Bindestrich) enthalten.
  • Es muss mit einem alphanumerischen Zeichen beginnen.
  • Es muss mit einem alphanumerischen Zeichen enden.

Unterstützte Arbeitslasten

Migration erstellen

Linux- und Windows-Arbeitslasten

Erstellen Sie mithilfe des migctl-Tools oder der Google Cloud Console eine Migration.

migctl

  1. Halten Sie die VM an. Die VM muss beendet werden, damit Sie eine Migration erstellen können. Nach Abschluss der Migration können Sie die VM neu starten.

  2. Erstellen Sie die Migration:

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

    Dabei gibt --vm-id den Namen der VM-Instanz an, wie in der Quelltypkonsole angezeigt. Dabei ist --type entweder --type=windows-iis-container oder linux-system-container.

Console

  1. Wenn die Migrationsquelle eine Compute Engine-VM ist, beenden Sie die Compute Engine-VM. Die VM muss beendet werden, damit Sie eine Migration erstellen können. Nach Abschluss der Migration können Sie die VM neu starten.

  2. Rufen Sie in der Google Cloud Console die Seite Migrate to Containers auf.

    Zur Seite "Migrate to Containers"

  3. Klicken Sie auf den Tab Migrationen, um eine Tabelle mit den verfügbaren Migrationen aufzurufen.

  4. Klicken Sie auf Migration erstellen.

  5. Geben Sie den Migrationsnamen ein.

  6. Wählen Sie die Migrationsquelle aus, die Sie unter Migrationsquelle hinzufügen erstellt haben.

  7. Legen Sie für Arbeitslasttyp die Option Imagebasierter Systemcontainer oder Windows-IIS-Container fest.

  8. Geben Sie die ID der Quell-VM ein. Weitere Informationen zur Bestimmung der VM-ID finden Sie unter Vorbereitung.

  9. Klicken Sie auf Migration erstellen.

    Wenn die Migration abgeschlossen ist, wird in der Spalte Status der Eintrag Migrationsplan erstellt angezeigt.

CRD

  1. Erstellen Sie eine Migrationsdatei namens my-migration.yaml, um eine Migration zu definieren.

    In dieser Datei gibt das Feld name unter sourceProviderRef den Namen eines zuvor erstellten SourceProvider an und das Feld sourceId den Namen der Compute Engine-Instanz. Type ist entweder --type=windows-iis-container oder 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. Wenn Sie eine Compute Engine-VM migrieren, müssen Sie die VM beenden. Die VM muss beendet werden, damit Sie eine Migration erstellen können. Nach Abschluss der Migration können Sie die VM neu starten.

  3. Wenden Sie die Datei an:

    kubectl apply -f my-migration.yaml

Tomcat-Arbeitslasten

Tomcat-Parameter angeben

Sie müssen die Werte für CATALINA_BASE und CATALINA_HOME manuell angeben.

migctl

  1. Beenden Sie die Compute Engine-VM. Die VM muss beendet werden, damit Sie eine Migration erstellen können. Nach Abschluss der Migration können Sie die VM neu starten.

  2. Erstellen Sie die Migration:

    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 gibt den Namen der Instanz an, wie in der Dienstkonsole angezeigt.
    • catalina-base gibt eine Liste von CATALINA_BASE-Werten an, getrennt nach Doppelpunkt.
    • catalina-home gibt den Wert von CATALINA_HOME an.
    • java-version ist ein optionaler Parameter, der die vom Container verwendete Java-Version angibt.

CRD

  1. Erstellen Sie eine Migrationsdatei namens my-migration.yaml, um eine Migration zu definieren.

    Legen Sie in dieser Datei die folgenden Felder fest:

    • sourceProvider: gibt den Namen eines zuvor erstellten SourceProvider an.
    • sourceId: gibt den Namen der Compute Engine-VM-Instanz an.
    • parameters: legt Parameter für Tomcat-Arbeitslasten fest.

    Im Folgenden finden Sie ein Beispiel für eine Migrationsdatei mit diesen festgelegten Feldwerten:

    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. Wenn Sie eine Compute Engine-VM migrieren, müssen Sie die VM beenden. Die VM muss beendet werden, damit Sie eine Migration erstellen können. Nach Abschluss der Migration können Sie die VM neu starten.

  3. Wenden Sie die Datei an:

    kubectl apply -f my-migration.yaml

WebSphere traditional-Arbeitslasten

WAS_HOME angeben

Die Umgebungsvariable WAS_HOME gibt den Installationsort von WAS traditional an, z. B. /opt/IBM/WebSphere/AppServer/. Migrate to Containers verwendet diesen Wert, wenn Sie eine Migration erstellen, um Skripts auszuführen, die Informationen zu einer Anwendung abrufen und den Pfad eines Anwendungsprofils zu bestimmen. Wenn Migrate to Containers den Installationsordner nicht findet, können Sie den Wert von WAS_HOME festlegen.

migctl

  1. Halten Sie die VM an. Die VM muss beendet werden, damit Sie eine Migration erstellen können. Nach Abschluss der Migration können Sie die VM neu starten.

  2. Erstellen Sie die Migration:

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

    Dabei gibt --vm-id den Namen der Instanz an, wie in der Dienstkonsole angezeigt.

CRD

  1. Erstellen Sie eine Migrationsdatei namens my-migration.yaml, um eine Migration zu definieren.

    Legen Sie in dieser Datei die folgenden Felder fest:

    • sourceProvider: gibt den Namen eines zuvor erstellten SourceProvider an.
    • sourceId: gibt den Namen der Compute Engine-VM-Instanz an.
    • parameters: legt Parameter für WebSphere-Arbeitslasten fest.

    Im Folgenden finden Sie ein Beispiel für eine Migrationsdatei mit diesen festgelegten Feldwerten:

    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. Wenn Sie eine Compute Engine-VM migrieren, müssen Sie die VM beenden. Die VM muss beendet werden, damit Sie eine Migration erstellen können. Nach Abschluss der Migration können Sie die VM neu starten.

  3. Wenden Sie die Datei an:

    kubectl apply -f my-migration.yaml

JBoss-Arbeitslasten

Erstellen Sie mithilfe des migctl-Tools oder der Google Cloud Console eine Migration.

migctl

  1. Halten Sie die VM an. Die VM muss beendet werden, damit Sie eine Migration erstellen können. Nach Abschluss der Migration können Sie die VM neu starten.

  2. Erstellen Sie die Migration:

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

    Dabei gibt --vm-id den Namen der VM-Instanz an, wie in der Quelltypkonsole angezeigt.

Console

  1. Wenn die Migrationsquelle eine Compute Engine-VM ist, beenden Sie die Compute Engine-VM. Die VM muss beendet werden, damit Sie eine Migration erstellen können. Nach Abschluss der Migration können Sie die VM neu starten.

  2. Rufen Sie in der Google Cloud Console die Seite Migrate to Containers auf.

    Zur Seite "Migrate to Containers"

  3. Klicken Sie auf den Tab Migrationen, um eine Tabelle mit den verfügbaren Migrationen aufzurufen.

  4. Klicken Sie auf Migration erstellen.

  5. Geben Sie den Migrationsnamen ein.

  6. Wählen Sie die Migrationsquelle aus, die Sie unter Migrationsquelle hinzufügen erstellt haben.

  7. Legen Sie Arbeitslasttyp auf JBoss-Container fest.

  8. Geben Sie den Namen der Instanz ein. Weitere Informationen zur Bestimmung des Instanznamens finden Sie unter Vorbereitung.

  9. Legen Sie den Parameter JBOSS_HOME fest und verwenden Sie den JBoss-Installationspfad.

  10. Klicken Sie auf Migration erstellen.

    Wenn die Migration abgeschlossen ist, wird in der Spalte Status der Eintrag Migrationsplan erstellt angezeigt.

CRD

  1. Erstellen Sie eine Migrationsdatei namens my-migration.yaml, um eine Migration zu definieren.

    In dieser Datei gibt das Feld name unter sourceProviderRef den Namen eines zuvor erstellten SourceProvider an und das Feld sourceId den Namen der Compute Engine-Instanz. Geben Sie im Feld type den Wert jboss-container ein. Sie können eine Liste von Erkennungsparametern unter discoveryParameters hinzufügen. Jeder discoveryParameters-Parameter hat zwei Attribute: name und value. Beim Erstellen einer JBoss-Migration ist der Parameter discoveryParameters namens jboss-home, der den JBoss-Basispfad als value angibt, obligatorisch.

    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. Wenn Sie eine Compute Engine-VM migrieren, müssen Sie die VM beenden. Die VM muss beendet werden, damit Sie eine Migration erstellen können. Nach Abschluss der Migration können Sie die VM neu starten.

  3. Wenden Sie die Datei an:

    kubectl apply -f my-migration.yaml

Apache-Arbeitslasten

Erstellen Sie mithilfe des migctl-Tools oder der Google Cloud Console eine Migration.

migctl

  1. Halten Sie die VM an. Die VM muss beendet werden, damit Sie eine Migration erstellen können. Nach Abschluss der Migration können Sie die VM neu starten.

  2. Erstellen Sie die Migration:

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

    Dabei gibt --vm-id den Namen der VM-Instanz an, wie in der Quelltypkonsole angezeigt.

Console

  1. Wenn die Migrationsquelle eine Compute Engine-VM ist, beenden Sie die Compute Engine-VM. Die VM muss beendet werden, damit Sie eine Migration erstellen können. Nach Abschluss der Migration können Sie die VM neu starten.

  2. Rufen Sie in der Google Cloud Console die Seite Migrate to Containers auf.

    Zur Seite "Migrate to Containers"

  3. Klicken Sie auf den Tab Migrationen, um eine Tabelle mit den verfügbaren Migrationen aufzurufen.

  4. Klicken Sie auf Migration erstellen.

  5. Geben Sie den Migrationsnamen ein.

  6. Wählen Sie die Migrationsquelle aus, die Sie unter Migrationsquelle hinzufügen erstellt haben.

  7. Legen Sie Arbeitslasttyp auf Apache-Container fest.

  8. Geben Sie die ID der Quell-VM ein. Weitere Informationen zur Bestimmung der VM-ID finden Sie unter Vorbereitung.

  9. Klicken Sie auf Migration erstellen.

    Wenn die Migration abgeschlossen ist, wird in der Spalte Status der Eintrag Migrationsplan erstellt angezeigt.

CRD

  1. Erstellen Sie eine Migrationsdatei namens my-migration.yaml, um eine Migration zu definieren.

    In dieser Datei gibt das Feld name unter sourceProviderRef den Namen eines zuvor erstellten SourceProvider an und das Feld sourceId den Namen der Compute Engine-Instanz. Geben Sie im Feld type den Wert apache-container ein.

    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. Wenn Sie eine Compute Engine-VM migrieren, müssen Sie die VM beenden. Die VM muss beendet werden, damit Sie eine Migration erstellen können. Nach Abschluss der Migration können Sie die VM neu starten.

  3. Wenden Sie die Datei an:

    kubectl apply -f my-migration.yaml

WordPress-Arbeitslasten

Erstellen Sie mithilfe des migctl-Tools oder der Google Cloud Console eine Migration.

migctl

  1. Halten Sie die VM an. Die VM muss beendet werden, damit Sie eine Migration erstellen können. Nach Abschluss der Migration können Sie die VM neu starten.

  2. Erstellen Sie die Migration:

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

    Dabei gibt --vm-id den Namen der VM-Instanz an, wie in der Quelltypkonsole angezeigt.

Console

  1. Wenn die Migrationsquelle eine Compute Engine-VM ist, beenden Sie die Compute Engine-VM. Die VM muss beendet werden, damit Sie eine Migration erstellen können. Nach Abschluss der Migration können Sie die VM neu starten.

  2. Rufen Sie in der Google Cloud Console die Seite Migrate to Containers auf.

    Zur Seite "Migrate to Containers"

  3. Klicken Sie auf den Tab Migrationen, um eine Tabelle mit den verfügbaren Migrationen aufzurufen.

  4. Klicken Sie auf Migration erstellen.

  5. Geben Sie den Migrationsnamen ein.

  6. Wählen Sie die Migrationsquelle aus, die Sie unter Migrationsquelle hinzufügen erstellt haben.

  7. Legen Sie Arbeitslasttyp auf WordPress-Container fest.

  8. Geben Sie die ID der Quell-VM ein. Weitere Informationen zur Bestimmung der VM-ID finden Sie unter Vorbereitung.

  9. Klicken Sie auf Migration erstellen.

    Wenn die Migration abgeschlossen ist, wird in der Spalte Status der Eintrag Migrationsplan erstellt angezeigt.

CRD

  1. Erstellen Sie eine Migrationsdatei namens my-migration.yaml, um eine Migration zu definieren.

    In dieser Datei gibt das Feld name unter sourceProviderRef den Namen eines zuvor erstellten SourceProvider an und das Feld sourceId den Namen der Compute Engine-Instanz. Geben Sie im Feld type den Wert wordpress-container ein.

    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. Wenn Sie eine Compute Engine-VM migrieren, müssen Sie die VM beenden. Die VM muss beendet werden, damit Sie eine Migration erstellen können. Nach Abschluss der Migration können Sie die VM neu starten.

  3. Wenden Sie die Datei an:

    kubectl apply -f my-migration.yaml

Migrationserstellung überwachen

Verwenden Sie das migctl-Tool oder die Google Cloud Console, um den Fortschritt der Migrationserstellung zu überwachen.

migctl

  1. Warten Sie, bis die Migrationsphase abgeschlossen ist:

    migctl migration status my-migration
    
    NAME           CURRENT-OPERATION      PROGRESS   STEP                   STATUS   AGE
    my-migration   GenerateMigrationPlan  [1/3]      CreateSourceSnapshots  Running  13s 
  2. Wenn Sie eine Compute Engine-VM migrieren, müssen Sie diese neu starten. Eine angehaltene VM ist nach diesem Schritt nicht mehr erforderlich.

Console

Wenn der Migrationsstatus anzeigt, dass die Migration erstellt wurde, können Sie mit dem nächsten Schritt fortfahren:

  1. Rufen Sie in der Google Cloud Console die Seite Migrate to Containers auf.

    Zur Seite "Migrate to Containers"

  2. Klicken Sie auf den Tab Migrationen, um eine Tabelle mit den verfügbaren Migrationen aufzurufen.

  3. Sehen Sie sich den Status einer Migration mit einer der folgenden Methoden an:

    • Sehen Sie sich in der Zeile Ihrer Migration die Spalte Status an.

    • Klicken Sie auf den Namen der Migration. Die Seite Migrationsdetails wird geöffnet. Klicken Sie auf den Tab Monitoring, um den detaillierten Status aufzurufen, oder auf den Tab Ereignisse, um die Migrationsereignisse einzublenden.

  4. Wenn die Migration abgeschlossen ist, wird der Status als Migrationsplan erstellt angezeigt.

  5. Wenn Sie eine Compute Engine-VM migrieren, müssen Sie diese neu starten. Eine angehaltene VM ist nach diesem Schritt nicht mehr erforderlich.

CRD

Verwenden Sie kubectl, um Migrationsinformationen und den Status MigrationStatus abzurufen. Geben Sie dazu einen JSONPath für das erforderliche Feld an.

  1. Warten Sie, bis die Migrationsphase abgeschlossen ist:

    Verwenden Sie zwei kubectl wait-Befehle,von denen einer auf die Bedingung „Bereit“ und der andere auf die Bedingung „Fehlgeschlagen“ wartet. Die Erstellungsphase des Migrationsplans wird ausgeführt, bis die erste Bedingung erfüllt ist.

    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.
    

    Wenn der Wartebefehl abgeschlossen ist, können Sie mit dem nächsten Schritt fortfahren.

  2. Rufen Sie den Status des Migrationsplans ab:

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

    Gibt True zurück, wenn der Migrationsplan bereit ist, oder False, wenn er fehlgeschlagen ist.

  3. Wenn die Migrationsphase fehlschlägt, erhalten Sie die folgende Fehlermeldung:

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

  4. Wenn Sie eine Compute Engine-VM migrieren, müssen Sie diese neu starten. Eine angehaltene VM ist nach diesem Schritt nicht mehr erforderlich.

Nächste Schritte