如何解决实例迁移后的宕机问题?

因Xen环境裁撤项目、ECS过保迁移、经典网络迁移到VPC等涉及虚拟化环境迁移需求,可能会导致一部分实例系统在迁移后出现kernel panic宕机、蓝屏、找不到引导设备(INACCESSIBLE_BOOT_DEVICE)等问题。本文主要为您介绍这些问题的解决方案。

背景信息

阿里云为您提供了丰富的实例规格族以及主流操作系统镜像。不同实例规格实现的虚拟化技术不同:

  • 以已经停售的ecs.t1和ecs.s1规格族为例,该规格族基于Xen虚拟化技术,需要操作系统镜像内有Xen等相关驱动。

  • 以ecs.g5规格为例,该规格基于KVM虚拟化技术,需要操作系统镜像有virtio驱动。

  • 以ecs.g7规格为例,该规格基于神龙架构的虚拟化技术,该规格实例同样需要操作系统镜像有virtio驱动。

这些驱动是由ECS镜像中的内核提供的,内核版本不同,驱动支持的ECS规格也不同。一些比较旧版本系统中的内核默认没有相关驱动,需要用户自行安装,或者版本较低的内核的驱动不支持一些新版本的实例规格。

迁移前注意事项

如果您的实例系统环境有异常,Xen迁移到KVM环境后实例可能会运行异常,例如注册表损坏、文件系统损坏、系统启动异常等。因此建议您在迁移前做一些准备工作,确保迁移正常。

  • 建议您在迁移前重启实例,检查系统是否正常重启,确保系统和业务在迁移前状态正常。

  • 建议您在迁移前对实例创建快照,对重要数据备份。具体操作,请参见创建快照

  • 除了现有的迁移方案,您也可以对原有实例创建自定义镜像,然后使用自定义镜像创建KVM规格的实例。具体操作,请参见使用实例创建自定义镜像使用自定义镜像创建实例

神龙环境不兼容部分旧版本操作系统

已知旧版本操作系统列表如下:

  • Windows Server 2003及以下版本(Windows Server 2008 标准版本支持,但是需要清理Xen注册表信息)

  • CentOS/RedHat 5.8及以下版本,包括基于CentOS/RedHat 5内核系统(内核版本2.6.18-348及以下)

  • Debian 6.09以下版本(6.09以下版本对KVM支持也存在一定问题,建议升级到6.09以上版本)

  • FreeBSD 11以下版本(FreeBSD 11/12版本需要安装对应的阿里云补丁。具体操作,请参见使用实例时镜像相关问题。)

  • Ubuntu 10及以下版本(Ubuntu 12基于内核3.2可以正常启动,官方镜像未提供过低于Ubuntu 12的版本)

  • SUSE Linux Enterprise Server 10及以下版本(官方镜像未提供过低于SUSE Linux Enterprise Server 11的版本)

  • OpenSUSE 13以下版本(官方镜像未提供过低于OpenSUSE 13的版本)

  • Gentoo(阿里云提供的Gentoo只支持Xen版本,如果需要支持KVM,建议升级到最新版本,阿里云于2016年后未再提供Gentoo操作系统)

上述仅是6代实例规格的神龙环境不兼容情况,对于7代及以上版本实例规格的约束会更高一些。

解决方案一:更换系统盘升级系统

以上涉及的旧版本操作系统很早就已经停止维护更新。更多信息,请参见操作系统维护周期。停止维护更新的系统面临各种功能和安全风险、系统安全漏洞无法更新等问题,因此阿里云建议您尽快升级操作系统版本。

阿里云官方提供的公共镜像覆盖了主流Linux和Windows操作系统 。更多信息,请参见公共镜像概述

ECS支持更换系统盘操作,您可以一键更换实例的系统盘,完成系统升级。具体操作,请参见更换操作系统(系统盘)

  • 原系统盘数据如何拷贝出来?

    您可以通过卸载系统盘并将其挂载为数据盘的方式将原实例系统盘内容拷贝出来。具体操作,请参见卸载或挂载系统盘

  • 原系统盘中部署的服务应用怎么迁移出来?

    • 在新的系统盘中重新部署服务。

    • 迁移数据库等应用。

采用方案一的优点和缺点如下:

  • 优点:方便易操作,阿里云有丰富的公共镜像可以选择,一键切换到新版本操作系统。

  • 缺点:原系统盘中的数据需要客户自行备份处理, 一些应用服务可能需要重新部署。

解决方案二:升级系统到OS的最高版本

您可以进行系统升级,将系统版本升级到该OS的最高版本。例如,可以将CentOS 5升级到CentOS 5的最高版本CentOS 5.11。更多信息,请参见:

采用方案二的优点和缺点如下:

  • 优点:原系统中的数据及服务不受影响。

  • 缺点:即使升级到OS的最高版本(例如CentOS 5升级到CentOS 5.11),该版本仍然是不再维护更新的版本,系统漏洞风险依然存在,无法使用新OS发行版(例如CentOS 7/8)上的新特性和功能。

解决方案三:使用旧版本的实例规格

您可以尝试非神龙MOC环境的5代旧版本实例规格,例如ecs.n、ecs.xn、ecs.c5系列。更多信息,请参见实例规格族

虚拟化virtio驱动安装配置不成功

系统在迁移后,发生了虚拟化环境从Xen到KVM的变化,如果系统内部虚拟化驱动没有安装或者配置好KVM virtio驱动,就会发生系统宕机、蓝屏等问题。可能有以下原因:

  • Linux系统未安装配置virtio驱动

  • Windows ISO阶段驱动安装失败

  • Windows系统注册表损坏

  • Windows安装有360软件等安全软件限制

解决方案

  • 安装virtio驱动

  • 如果检查Linux系统是内核损坏,请下载安装官方内核再次尝试

  • Windows请联系售后技术支持挂载Winpe 3.0 ISO,并用内置工具修复virtio驱动

  • Windows建议迁移前用SFC(System File Checker)检查系统的完整性,包括注册表等,并卸载类似360等安全软件