错误处理
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 或更高版本。您必须先在虚拟机上解决此问题,然后才能继续迁移。
除了显示错误状态以外,终端错误还可以显示特定于该错误的额外信息,可用于诊断该错误。