Como lidar com erros

O Migrate to Containers pode detectar dois tipos de erros durante uma migração: repetível e terminal. Quando o Migrate to Containers detecta um erro, a ação realizada depende do tipo de erro detectado:

  • Erro repetível: o Migrate to Containers tenta a operação novamente. Quando detectado, o status da operação é definido como Tentando novamente.

  • Erro de terminal: o Migrate to Containers interrompe a operação porque esse tipo de erro normalmente requer intervenção manual para ser resolvido. Quando detectado, o status da operação é definido como Erro.

Como visualizar o status de uma operação

Use a ferramenta migctl ou o Console do Google Cloud para ver o progresso da migração. No Console do Google Cloud, use a coluna Status da migração para verificar o status atual da migração.

Também é possível usar o seguinte comando migctl:

migctl migration status my-migration

A saída está no formato:

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

Com migctl, também é possível receber uma saída de status detalhado. Na parte inferior da saída detalhada, há uma lista de eventos e outras informações de erro. Por exemplo, o comando a seguir especifica a opção -v para ver o status detalhado da migração:

migctl migration status my-migration -v

A saída contém os eventos e uma mensagem de erro para ajudar você a diagnosticar o erro:

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:

Neste exemplo, a mensagem indica que a VM chamada my-vm não foi encontrada.

Erros que permitem uma nova tentativa

Um erro que permite uma nova tentativa é um tipo de erro que pode ser resolvido por outra tentativa da operação ou por intervenção do usuário. Se a operação for bem-sucedida na nova tentativa, o processamento continuará.

Por exemplo, antes de criar uma migração para uma VM do Compute Engine, você precisa primeiro encerrar a VM. Se a VM não for encerrada e você tentar executar a migração, o Migrate to Containers detectará o erro e tentará fazer a migração novamente. O Migrate to Containers continua a repetir a operação até que você encerre a VM ou cancele a migração.

Erros do terminal

Um erro do terminal é um erro que não pode ser resolvido repetindo a operação. Geralmente, um erro do terminal só pode ser resolvido por interação do usuário.

A maneira de lidar com um erro do terminal depende do erro e da etapa do processo em que ele ocorreu:

  • Para um erro do terminal, ao criar uma migração, você precisa excluir a migração, corrigir o erro e recriar a migração.

  • Para um erro do terminal, ao gerar artefatos de migração na execução da migração, é possível resolver o erro manualmente e repetir a operação.

Por exemplo, você tenta migrar um aplicativo IIS do Windows sem que o IIS esteja instalado na VM. Esse cenário causa um erro do terminal porque o Migrate to Containers exige que os aplicativos IIS do Windows tenham o Microsoft IIS 7 ou mais recente instalado. Você precisa resolver esse problema na VM antes de prosseguir com a migração.

Além de exibir um status de Erro, esses erros podem exibir informações extras específicas do erro, que podem ser usadas para diagnosticá-lo.