首页/系统/信创系统运维速查/信创云镜像导入与规格化
系统与安装65 条

信创云镜像导入与规格化

云平台常用 qcow2 镜像:导入前用 qemu-img 检查格式与虚拟大小,导入后用 cloud-init 完成主机名、网络、密钥的首次规格化。

信创系统运维速查系统更新于 2026-10-13

云镜像导入在做什么

基于 KVM/QEMU 的信创云平台与超融合通常以 qcow2 镜像作为虚拟机模板:镜像格式与虚拟大小要对得上磁盘规划,导入后由 cloud-init 完成主机名、网络、密钥、初始口令的首次规格化。导入失败或开机后网络不通,多半就出在这两步上。

基本信息

镜像格式qcow2(主流);raw/vmdk 需用 qemu-img convert 转换
检查工具qemu-img info(元信息)、qemu-img check(一致性)
规格化cloud-init:user-data 注入主机名、密钥;meta-data 提供实例信息
辅助工具libguestfs:virt-customize 改镜像、virt-sysprep 清理镜像
权限要求root 或 libvirt/qemu 组

典型使用场景

  • 把发行版官方云镜像(麒麟、UOS 云版 qcow2)导入平台做模板
  • 把存量业务系统转成 qcow2 后导入云平台
  • 批量创建实例前统一规格化:清 machine-id、SSH 主机密钥、旧网卡配置
  • 导入前核对虚拟大小与存储规划,避免实例一上线就写满
  • 排查导入后实例起不来、网络不通、cloud-init 不执行的问题

检查与规格化

检查与规格化
qemu-img info kylin-v10-cloud.qcow2       # 看格式、虚拟大小、是否带 backing file
qemu-img check kylin-v10-cloud.qcow2      # 镜像内部一致性检查
qemu-img convert -p -f qcow2 -O qcow2 src.qcow2 dst.qcow2   # 转换格式(-c 可压缩)
virt-sysprep -a img.qcow2                 # 清理 machine-id、主机密钥、日志(需 libguestfs)
virt-customize -a img.qcow2 --root-password password:临时口令
virt-customize -a img.qcow2 --install cloud-init   # 镜像缺 cloud-init 时补装
qemu-img resize img.qcow2 +20G            # 调整虚拟大小,导入前核对磁盘规划
ls -lh img.qcow2                          # 实际占用远小于虚拟大小属正常

qemu-img info 逐项读法

字段含义关注点
file format镜像实际格式与平台要求不符要 convert,改扩展名没用
virtual size虚拟大小决定系统内看到的磁盘容量
disk size实际占用与虚拟大小差距大是 qcow2 稀疏特性,正常
backing file后端镜像有后端就要一并导入或先合并,否则实例起不来
云镜像里通常已装 cloud-init:创建实例时通过平台或 user-data 注入主机名与 SSH 公钥即可,比手工改镜像更安全,也更容易复现和回收。
不要把运行中物理机的磁盘直接复制成镜像导入:会带入原机的 machine-id、SSH 主机密钥、网卡与静态 IP 配置,克隆出的实例会互相冲突(同 IP、同密钥指纹)。

易错点

  • 只改文件扩展名当格式转换:平台按镜像头识别格式,必须用 qemu-img convert
  • 带 backing file 的镜像只导了前端文件:实例启动时找不到后端镜像直接失败
  • 克隆前没做规格化:machine-id 与 SSH 主机密钥重复,DHCP 无法分配唯一地址、跳板机会告警
  • cloud-init datasource 与平台不匹配:元数据注入不生效,实例停在无网络的初始状态
  • 只按虚拟大小规划存储:qcow2 随写入增长,宿主机存储要按增长上限留余量

数据来源与参考

  • cloud-init 官方文档
  • 各发行版云镜像说明
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌