错误处理

Migrate to Containers 可以在迁移期间检测两种类型的错误:可重试错误和终端错误。当 Migrate to Containers 检测到错误时,它所执行的操作取决于检测到的错误类型:

  • 可重试错误:Migrate to Containers 会重新尝试操作。检测到该错误后,操作状态会设置为正在重试

  • 终端错误:Migrate to Containers 会停止操作,因为此类错误通常需要手动干预才能解决。检测到该错误后,操作状态会设置为错误

查看操作状态

使用 migctl 工具或 Google Cloud Console 查看迁移的进度。在 Google Cloud Console 中,使用迁移的状态列检查迁移的当前状态。

您还可以使用以下 migctl 命令:

migctl migration status my-migration

输出的格式如下:

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

使用 migctl,您还可以获取详细的状态输出。详细输出的底部是事件列表以及额外的错误信息。例如,以下命令使用 -v 选项来获取迁移的详细状态:

migctl migration status my-migration -v

输出包含事件和错误消息,可帮助您诊断错误:

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:

在此示例中,消息指示找不到名为 my-vm 的虚拟机。

可重试错误

可重试错误是一种错误类型,可以通过重试操作或用户干预予以解决。如果操作在重试时成功,则处理会继续执行。

例如,在为 Compute Engine 虚拟机创建迁移之前,您必须先关停虚拟机。如果虚拟机未关停并且您尝试执行迁移,则 Migrate to Containers 会检测到错误并重试迁移。在您关停虚拟机或取消迁移之前,Migrate to Containers 会继续重试操作。

终端错误

终端错误是一种无法通过重试操作来解决的错误。通常,终端错误只能通过用户交互来解决。

处理终端错误的方式取决于错误以及迁移过程中出现错误的环节:

  • 对于创建迁移时出现的终端错误,您必须删除迁移,消除错误,然后重新创建迁移。

  • 对于在执行迁移操作中生成迁移工件时出现的终端错误,您可以手动解决该错误,然后重试操作。

例如,您尝试迁移 Windows IIS 应用,但该虚拟机上并未安装 IIS。这种情况会导致终端错误,因为 Migrate to Containers 要求 Windows IIS 应用已安装 Microsoft IIS 7 或更高版本。您必须先在虚拟机上解决此问题,然后才能继续迁移。

除了显示错误状态以外,终端错误还可以显示特定于该错误的额外信息,可用于诊断该错误。