问题描述
ZStack Cloud 中部分使用 Legacy BIOS 的历史云主机采用 pc-i440fx-rhel7.x.0 兼容机型。该兼容机型未提供 virtio-blk Discard 所需的设备能力。部分调整方式可能导致云主机虚拟硬件配置发生变化,与目标计算节点环境不一致,从而影响热迁移兼容性。
经验证的 Q35 兼容机型可提供该能力。对于已有 pc-i440fx-rhel7.x.0 云主机,建议不要直接修改兼容机型或虚拟硬件特性。其他 i440fx 兼容机型不在本文结论范围内。
现象
- 使用
pc-i440fx-rhel7.x.0兼容机型的云主机对 virtio-blk 磁盘执行 TRIM/Discard 后,后端空间未按预期回收。 - 手工修改已有云主机的机器类型或 virtio-blk Discard 特性后,热迁移可能失败。
- 迁移日志可能出现以下关键字:
Failed to load PCIDevice:config
Failed to load virtio-blk:virtio
load of migration failed: Invalid argument
影响
使用 pc-i440fx-rhel7.x.0 兼容机型的云主机无法通过 virtio-blk Discard 回收后端空间。未经验证调整现有云主机的兼容机型或设备特性,可能影响后续热迁移。
规避方案
- 新建且需要 virtio-blk Discard 的云主机时,选择 ZStack Cloud 当前版本验证通过的 UEFI BIOS 和 Q35 兼容机型。
- 不要直接修改已有
pc-i440fx-rhel7.x.0云主机的兼容机型、PCI 拓扑或 virtio-blk 设备特性。 - 已有云主机如需改用 Q35,应先备份业务数据,并通过新建 Q35 云主机后迁移业务或数据的方式处理;迁移方案应在非生产环境完成验证。
- 完成迁移后,在 Guest OS 内执行 Discard,并确认后端空间回收符合预期。
受影响产品
- ZStack Cloud 4.8.x、5.4.x、5.5.x 中使用
pc-i440fx-rhel7.x.0兼容机型和 virtio-blk 磁盘的云主机。 - 其他 i440fx 兼容机型不在本文确认范围内。
修复状态
- 当前状态:已确认,已有新建场景规避方案。
- 修复版本:无独立修复版本;该限制由既有虚拟硬件兼容机型能力决定。
- 关联补丁/修复包:无;新建场景可选择经验证的 Q35 兼容机型。
关联信息
- 关联 Solution/APAR:无。
- 关联操作系统:不限定 Guest OS,需 Guest OS 支持 TRIM/Discard。
- 关联 PDT/PTF:QEMU i440fx、Q35、virtio-blk。
- 关联 BBS/TIC/Jira:ZSTAC-76118。该编号用于问题追溯。受账号权限限制,部分用户可能无法访问跳转后的 Jira 页面。
