镜像检测概述

镜像检测功能用于检测镜像是否为有效镜像、镜像是否可以创建出功能齐全的ECS实例等。您可以在创建镜像、导入镜像等环节使用镜像检测功能,检测完成后,您可以在镜像控制台查看镜像检测结果并针对检测结果中的修复建议进行修复,提升镜像质量,从而保证基于这些镜像部署的ECS实例能够稳定高效地运行。

说明
  • 镜像检测会在创建镜像、导入镜像完成后触发,不会对创建镜像、导入镜像的流程产生任何影响(即使检测失败)。

  • 镜像检测功能本身不会收取任何费用。

  • 镜像通过检测功能后,会携带操作系统版本(acs:ecs:image:osVersion)和内核版本acs:ecs:image:kernelVersion标签,用于镜像目录对镜像进行分类

功能优势

强烈建议您在创建镜像、导入镜像时配置镜像检测。配置镜像检测有如下优势:

  • 您可以通过查看检测结果,了解操作系统真实配置信息。例如内核版本、分区配置等,详情可参考检测项说明

  • ECS镜像服务针对检测结果中存在问题的检测项给出了相应的修复建议,帮助提高镜像质量。

  • ECS镜像服务根据镜像检测结果会尽可能地对当前ECS镜像做优化处理,优化后有利于加速ECS启动,提高ECS启动成功率,提高ECS系统配置稳定性。

  • 基于镜像检测服务优化后的ECS镜像派生出来的新镜像,仍然可以继承优化后的能力(ECS启动速度、ECS启动成功率、ECS系统配置稳定性)。

使用限制

镜像检测当前支持绝大多数的操作系统,但仍有部分操作系统不支持,请在使用镜像检测功能时选择适用的操作系统版本。不支持的操作系统列表请参见镜像检测操作系统限制

配置镜像检测

  • 创建镜像时配置检测

ECS控制台方式

目前,在ECS控制台上创建自定义镜像时已默认选择执行镜像检测,保持不变即可。更多信息,请参见使用实例创建自定义镜像使用快照创建自定义镜像

OpenAPI方式

通过CreateImage接口设置入参DetectionStrategy=Standard即可。可通过OpenAPI Explorer运行该接口,免去您计算签名的困扰,也可以自动生成SDK代码示例。

  • 导入镜像时配置检测

ECS控制台方式

目前,在控制台上导入自定义镜像时已默认选择执行镜像检测,保持不变即可。更多信息,请参见导入自定义镜像

OpenAPI方式

通过ImportImage接口设置入参DetectionStrategy=Standard即可。可通过OpenAPI Explorer运行该接口,免去您计算签名的困扰,也可以自动生成SDK代码示例。

查看镜像检测结果

ECS控制台方式

  1. 在自定义镜像页面找到已创建的镜像,等待镜像状态为可用之后,会自动执行镜像检测任务。当镜像检测结果列为检测完成时,表示镜像检测完成。

    image.png

  2. 将鼠标悬浮至检测完成,然后单击查看详情即可查看详细的镜像检测结果。

  3. (条件必选)如果有待修复项,按照建议进行修复。

    • (仅适用于Linux)您可以单击一键修复通过系统运维管理 OOS(CloudOps Orchestration Service)的公共模板ACS-ECS-RepairImage进行修复。

    • 也可以根据镜像详情中的修复建议手动修复,镜像检测项的详细说明及修复建议请参见检测项说明

    image.png

OpenAPI方式

通过DescribeImages根据检测镜像的镜像ID查询即可。可通过OpenAPI Explorer运行该接口,即可免去您计算签名的困扰,也可以自动生成SDK代码示例。

说明

返回值中DetectionOptions即为检测结果,其中Status为检测任务状态,Item是每个检测项结果。

检测项说明

Linux检测项

Linux操作系统镜像检测项的详细说明及修复建议如下表所示。

检测项

检测说明

修复建议

GUESTOS.Platform

系统平台,只能是Linux操作系统。

不涉及

GUESTOS.OSVersion

系统版本。

不涉及

GUESTOS.Architecture

系统架构。

不涉及

GUESTOS.RtcTimeMode

镜像硬件时钟时区RTC (Real Time Clock) ,包括UTC和local。建议设置为标准的UTC模式。

如何设置硬件时钟的时间标准为UTC,请参见Linux时间和时区说明

GUESTOS.BootMode

镜像启动模式,包括LEGACY和UEFI。

不涉及

GUESTOS.KernelVersion

内核版本。

不涉及

GUESTOS.Virtio

镜像是否安装virtio驱动。ECS实例运行需要相关虚拟化设备驱动支持,未安装该驱动会导致实例启动异常。

如何为镜像安装virtio驱动,请参见安装virtio驱动

GUESTOS.Nvme

镜像是否安装NVMe驱动。部分ECS规格,例如ecs.g7se使用基于NVMe协议挂载的云盘,镜像中需要安装相关驱动。

如何为镜像安装NVMe驱动,请参见如何为已有自定义镜像安装NVMe驱动?

GUESTOS.Fstab

镜像中/etc/fstab文件配置了系统磁盘设备挂载信息,错误的配置会导致系统启动异常,例如配置的挂载设备信息不存在、设备UUID错误等。

如何正确配置/etc/fstab,请参见在fstab文件中配置UUID方式自动挂载数据盘

GUESTOS.Grub

镜像中grub引导文件是否正常。例如device设备配置异常、相关设备不存在、UUID错误等,会导致系统启动异常。

如何为镜像生成正确的GRUB配置文件,请参见Linux实例的grub启动配置错误

GUESTOS.Dhcp

镜像中网络配置文件是否设置为DHCP模式,如果镜像中设置为静态模式,会导致实例启动后网络配置异常。

如何设置镜像网络配置模式为DHCP,请参见如何在Linux镜像中配置网络为DHCP

GUESTOS.Selinux

镜像是否关闭SELinux。云上镜像不建议开启SELinux,有可能会导致系统启动异常。

如何关闭SELinux,请参见开启或关闭SELinux

GUESTOS.OnlineResizeFS

镜像是否支持根分区自动扩容。镜像中安装有cloud-init、growpart命令等,使用镜像创建实例后,根分区会自动扩容。例如您的镜像空间大小是20 GB,创建实例时系统盘大小为100 GB,则实例创建后,根分区会自动扩容至100 GB。

如何配置镜像支持自动扩容,请参见安装cloud-init

GUESTOS.SystemImage

镜像是否是有效的系统盘镜像,请不要导入ISO镜像、空镜像等无效镜像。

不涉及

GUESTOS.CloudAssistant

镜像是否安装云助手。云助手是为ECS打造的原生自动化运维工具,通过免密码、免登录、无需使用跳板机的形式,在ECS实例上实现批量运维、执行命令(Shell、PowerShell和Bat等)和发送文件等操作。建议您在镜像中安装云助手,帮助您高效运维ECS。

如何安装云助手,请参见安装云助手Agent

GUESTOS.CloudInit

镜像中是否安装cloud-init。cloud-init是标准的云服务器初始化配置服务,为实例配置hostname、密钥、根分区扩容等。

如何为镜像安装cloud-init,请参见安装cloud-init

GUESTOS.SecurityCenterAgent

镜像是否安装云安全中心Agent。云安全中心作为一个实时识别、分析和预警安全威胁的统一安全管理系统,为您提供安全态势总览、防勒索、防病毒、防篡改、合规检查等安全能力,全方位检测和防护您的服务器和Web应用安全。

如何为镜像安装云安全中心Agent,请参见安装客户端

GUESTOS.SupportMocInstanceTypes

检测镜像是否支持阿里云ECS神龙规格。

阿里云最新的ECS实例通常为神龙规格,例如ecs.g6、ecs.g7等。如果镜像的系统和内核版本过低,在相关规格上启动会有异常。具体的实例规格信息,请参见实例规格族

  • 如果您使用的是CentOS 5系统,建议您升级到最新的CentOS 5.11。更多信息,请参见如何解决实例迁移后的宕机问题?

  • 不支持神龙规格的系统通常是已经EOL不再维护的低版本系统,阿里云建议您尽早更新升级,使用各发行厂商正在维护更新的操作系统版本。

Windows检测项

Windows操作系统镜像检测项的详细说明及修复建议如下表所示。

检测项

检测说明

修复建议

GUESTOS.Platform

系统平台,只能是Windows操作系统。

不涉及

GUESTOS.OSVersion

系统版本。

不涉及

GUESTOS.Architecture

系统架构。

不涉及

GUESTOS.KernelVersion

内核版本。

不涉及

GUESTOS.Virtio

镜像中是否安装了virtio驱动。ECS实例运行依赖相关虚拟化设备驱动,未安装该驱动会导致实例启动异常。

如何为镜像安装virtio 驱动,请参见安装virtio驱动

GUESTOS.BCD

镜像中的BCD文件是否正确。BCD文件丢失或者损坏会导致实例无法启动。

请使用正确的BCD文件。

GUESTOS.Registry

镜像中的注册表文件是否正确。注册表文件丢失或者损坏会导致实例启动异常。

请使用正确的注册表文件。

GUESTOS.Hotfix

镜像中的补丁是否正确。缺少必要的补丁或者安装了有问题的补丁,会导致实例启动异常。

  • 卸载错误补丁。错误补丁集合:KB5009624、KB5009595、KB5009546、KB5009557、KB5009555、KB5014738、KB5014702、KB5014692、KB5014678。

  • Microsoft Windows Server 2008 R2 64位操作系统:还需要安装KB3033929补丁。

GUESTOS.Disk

镜像中的磁盘设置是否正确。如果在磁盘上有残留的驱动项,可能会导致实例启动异常。

清理注册表残留驱动

GUESTOS.Sysprep

检测镜像制作时Sysprep进程是否完成。如果在制作过程中,强制系统关机等操作导致Sysprep进程中止,可能会导致实例启动异常。

请重新制作镜像,注意不要中断系统的Sysprep进程。具体操作,请参见创建虚拟机并安装操作系统

GUESTOS.Update

检测镜像制作时Update进程是否完成。如果在制作过程中,强制系统关机等操作导致Update进程中止,可能会导致实例启动异常。

请重新制作镜像,注意不要中断系统的更新进程。具体操作,请参见创建虚拟机并安装操作系统

GUESTOS.Xen

存在残留的Xen驱动,可能会导致系统无法正常启动。

配置Xen驱动不生效

GUESTOS.CloudAssistant

镜像是否安装云助手。云助手是为ECS打造的原生自动化运维工具,通过免密码、免登录、无需使用跳板机的形式,在ECS实例上实现批量运维、执行命令(Shell、PowerShell和Bat等)和发送文件等操作。建议您在镜像中安装云助手,帮助您高效运维ECS。

如何安装云助手,请参见安装云助手Agent

GUESTOS.Server

镜像中的服务配置是否正确。如果配置了不允许安装驱动,会导致实例更新驱动失败。

配置驱动可安装

GUESTOS.DesktopConfig

检测桌面配置文件(desktop.ini)是否缺失。如果缺失,将导致桌面配置失效。

请配置正确的desktop.ini。

GUESTOS.BootMgr

检测系统引导管理器(BootMgr)是否缺失。如果缺失,将导致系统无法启动。

请配置正确的BootMgr。

相关文档

  • 系统运维管理 OOS(CloudOps Orchestration Service)是全面、免费的云上自动化运维平台,通过模板来定义所需要编排的运维操作。OOS提供的公共模板供您直接使用和参考,您也可以编写自定义模板来实现您所需要的运维操作。更多信息,请参见模板概述

  • 镜像服务商在云市场发布镜像前或在本地自行制作自定义镜像过程中,镜像也是需要满足与ECS实例规格适配的一些规范要求,以便与多种ECS实例规格良好适配。更多信息,请参见阿里云镜像规范(Linux)阿里云镜像规范(Windows)