Traiter les erreurs

Migrate for Containers peut détecter deux types d'erreurs lors d'une migration : les erreurs récupérables et les erreurs terminales. Lorsque Migrate to Containers détecte une erreur, l'action exécutée dépend du type d'erreur détecté:

  • Erreur récupérable: Migrate to Containers tente à nouveau d'effectuer l'opération. Quand ce type d'erreur est détecté, l'état de l'opération est défini sur Nouvelle tentative.

  • Erreur terminale: Migrate to Containers interrompt l'opération, car ce type d'erreur nécessite généralement une intervention manuelle. Quand ce type d'erreur est détecté, l'état de l'opération est défini sur Erreur.

Afficher l'état d'une opération

Vous pouvez afficher la progression d'une migration à l'aide de l'outil migctl ou de Google Cloud Console. Pour consulter l'état actuel d'une migration dans Google Cloud Console, utilisez la colonne État qui s'y rapporte.

Vous pouvez également exécuter la commande migctl suivante :

migctl migration status my-migration

Le résultat se présente comme suit :

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

Vous pouvez aussi obtenir un résultat détaillé de l'état avec migctl. Au bas de ce résultat, vous trouverez une liste d'événements et d'informations d'erreur supplémentaires. Par exemple, la commande suivante spécifie l'option -v afin d'obtenir l'état détaillé de la migration :

migctl migration status my-migration -v

La sortie contient les événements et un message d'erreur pour vous aider à diagnostiquer l'erreur :

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:

Dans cet exemple, le message indique que la VM nommée my-vm est introuvable.

Erreurs récupérables

Une erreur récupérable est un type d'erreur pouvant être résolue par une nouvelle tentative ou par l'intervention de l'utilisateur. Si l'opération réussit lors de cette nouvelle tentative, le traitement se poursuit.

Par exemple, avant de créer une migration pour une VM Compute Engine, vous devez d'abord arrêter la VM. Si la VM n'est pas arrêtée et que vous essayez d'exécuter la migration, Migrate to Containers détecte l'erreur et relance la migration. Migrate to Containers continue de réexécuter l'opération jusqu'à ce que vous arrêtiez la VM ou annuliez la migration.

Erreurs terminales

Une erreur terminale est une erreur qui ne peut pas être résolue par une nouvelle tentative. En règle générale, une erreur terminale ne peut être résolue que par l'intervention de l'utilisateur.

La méthode de traitement d'une erreur terminale dépend de l'erreur et de l'endroit où elle s'est produite dans le processus de migration :

  • Si une erreur terminale survient lors de la création d'une migration, vous devez supprimer la migration, corriger l'erreur, puis recréer la migration.

  • Si une erreur terminale survient lors de la génération d'artefacts de migration pendant l'exécution d'une migration, vous pouvez résoudre l'erreur manuellement, puis relancer l'opération.

Imaginons par exemple que vous essayiez de migrer une application Windows IIS sans installer IIS sur la VM. Ce scénario entraîne une erreur terminale, car Migrate to Containers nécessite que les applications Windows IIS aient installé Microsoft IIS 7 ou une version ultérieure. Vous devez résoudre ce problème sur la VM avant de procéder à la migration.

Outre l'état Erreur, les erreurs terminales peuvent fournir des informations supplémentaires spécifiques à l'erreur qui vous aident à la diagnostiquer.