Fehlerbehandlung

Migrate to Containers kann während einer Migration zwei Arten von Fehlern erkennen: Retryable-Fehler und Terminal-Fehler. Wenn Migrate to Containers einen Fehler erkennt, hängt die daraufhin ausgeführte Aktion vom Typ des erkannten Fehlers ab:

  • Retryable-Fehler: Der Vorgang wird zu Migrate to Containers wiederholt. Bei Erkennung wird der Status des Vorgangs auf Wiederholen gesetzt.

  • Terminal-Fehler: Migrate to Containers stoppt den Vorgang, da dieser Fehlertyp normalerweise manuell behoben werden muss. Der Vorgang wird in den Status Fehler gesetzt.

Status eines Vorgangs abrufen

Mit dem migctl-Tool oder der Google Cloud Console können Sie den Fortschritt einer Migration aufrufen. In der Google Cloud Console können Sie den aktuellen Status der Migration in der Spalte Status prüfen.

Sie können auch den folgenden migctl-Befehl verwenden:

migctl migration status my-migration

Die Ausgabe hat das folgende Format:

NAME            CURRENT-OPERATION       PROGRESS        STEP            STATUS   AGE
my-migration    GenerateArtifacts       [1/1]           ExtractImage    Retrying 12m2s

Mit migctl erhalten Sie auch eine ausführliche Statusausgabe. Im unteren Bereich der ausführlichen Ausgabe finden Sie eine Liste von Ereignissen und zusätzliche Fehlerinformationen. Beispiel: Mit dem folgenden speziellen Befehl für die Option -v können Sie den detaillierten Status der Migration abrufen:

migctl migration status my-migration -v

Die Ausgabe enthält die Ereignisse und eine Fehlermeldung zur Diagnose des Fehlers:

Events:
  Type     Reason             Age                     From                                           Message
  ----     ------             ----                    ----                                           -------
  Warning  GetInstanceFailed  2m39s (x91 over 5h32m)  SourceSnapshot sourcesnapshot-58a2405a-603ba2  Failed quering VM my-vm, with error: googleapi: got HTTP response code 404 with body:

In diesem Beispiel wird in einer Meldung angegeben, dass die VM mit dem Namen my-vm nicht gefunden wurde.

Retryable-Fehler

Dies ist ein Fehlertyp, der eventuell bei einem weiteren Versuch, den Vorgang auszuführen, oder durch einen Nutzereingriff behoben werden kann. Wenn der Vorgang bei der Wiederholung erfolgreich ist, wird die Verarbeitung fortgesetzt.

Bevor Sie z. B. eine Migration für eine Compute Engine-VM erstellen, müssen Sie zuerst die VM herunterfahren. Wenn die VM nicht heruntergefahren wurde und Sie versuchen, die Migration auszuführen, erkennt Migrate to Containers den Fehler und versucht, die Migration noch einmal zu starten. Die Migrate to Containers wiederholt den Vorgang, bis Sie entweder die VM herunterfahren oder die Migration abbrechen.

Terminal-Fehler

Ein Terminal-Fehler ist ein Fehler, der durch das Wiederholen des Vorgangs nicht behoben werden kann. Normalerweise kann ein Terminal-Fehler nur durch einen Nutzereingriff behoben werden.

Wie Sie mit Terminal-Fehlern umgehen, hängt vom jeweiligen Fehler und von der Migrationsphase ab, in der er aufgetreten ist.

  • Tritt beim Erstellen einer Migration ein Terminal-Fehler auf, müssen Sie die Migration löschen, den Fehler beheben und die Migration anschließend neu erstellen.

  • Tritt der Terminal-Fehler auf, während beim Ausführen einer Migration Migrationsartefakte erstellt werden, können Sie den Fehler manuell beheben und dann den Vorgang wiederholen.

Beispiel: Sie versuchen, eine Windows-IIS-Anwendung zu migrieren, aber auf der VM ist IIS nicht installiert. Dies verursacht einen Terminal-Fehler, da für Migrate for Containers Windows IIS-Anwendungen erforderlich sind, für die Microsoft IIS 7 oder höher installiert ist. Sie müssen dieses Problem auf der VM beheben, bevor Sie mit der Migration fortfahren können.

Neben der Anzeige des Status Fehler können bei Terminal-Fehlern zusätzliche Informationen über den Fehler ausgegeben werden, anhand derer Sie den Fehler diagnostizieren können.