前阵子刚完成一个迁移项目,源端是跑了好几年的H3C CloudOS 7.0老云平台,目标端是华为云Stack SPC6.5.1,迁移方式属于典型的源端迁移。跨厂商、跨版本的云上迁云,最让人头疼的往往不是“把数据搬过去”这个动作本身,而是两个平台在镜像格式、虚拟化驱动、网络模型、存储架构上的隐性差异。很多同行一听“云迁移”,第一反应就是虚拟机导出再导入,真到动手的时候才撞上开机蓝屏、网卡起不来、数据盘挂不上这些连环坑。这篇文章就以这次项目为主线,从平台差异分析、迁移路径选型、迁移前准备,到完整操作步骤、排错链路、切换验证,整体过一遍,给正要处理H3C CloudOS或类似OpenStack平台迁往华为云Stack的运维和架构师一份能直接参考的实战记录。
1. 两个云平台之间的“语言差异”:为什么不能直接导出导入
1.1 同样叫“云操作系统”,底层逻辑并不一致
H3C CloudOS 7.0和华为云Stack SPC6.5.1都属于OpenStack生态,或者说都从OpenStack衍生而来,功能上看,计算、存储、网络、镜像、租户管理这些模块都齐全。但在实际使用中会发现,这两个平台从租户资源模型、云主机创建流程,到镜像服务后端、网络实现方式,都有大量细节差异,导致“源端能直接跑”的虚拟机,迁移过去之后未必能直接启动。
这种差异很像同一个城市的两套公交系统——线路图长得差不多,但换乘站、购票方式、车辆编号规则全不一样。你不能指望把一辆车从A公交公司直接开到B公交公司的线路上,司机得重新认路,车也得重新适配调度系统。
1.2 最容易忽视的四个差异点:镜像、驱动、网络、存储
先看镜像格式。H3C CloudOS 7.0底层存储一般是基于OpenStack的glance加后端存储(常见是Ceph),导出的虚拟磁盘镜像通常是qcow2格式。qcow2本身是可以被华为云Stack识别导入的,但有几个前提条件:镜像里没有残留的源平台快照信息、没有损坏的块分配表、分区表可被目标平台解析。实际操作中,从Web控制台导出的镜像文件有时候会很大,因为qemu-img转换时会把未使用的空间也算进去,对文件传输和后续导入时间影响很明显。
再看驱动兼容性。华为云Stack创建的云主机,默认虚拟磁盘控制器和网卡都偏向virtio系列。如果源端H3C CloudOS的虚拟机磁盘控制器是IDE或SATA,网卡是e1000或rtl8139,那么Windows虚拟机迁移过去会出现经典的INACCESSIBLE_BOOT_DEVICE蓝屏,Linux虚拟机则可能在启动阶段就卡在等待根设备上。这个坑在冷迁移时最典型,因为导出镜像时不会自动帮你把驱动换掉。
然后是网络模型。H3C CloudOS 7.0里常用的是VLAN平面网络或者VPC隔离网络,安全组规则在虚拟网卡上生效。华为云Stack SPC6.5.1的网络模型更强调VPC、子网、安全组三层联动,路由表和弹性IP也是独立管理的资源。原平台上一个扁平网段里所有虚拟机互通,迁移到华为云Stack后,必须把“网段”翻译成“VPC+子网”的结构,同时把原来的安全组规则一条条映射成目标端的安全组策略。
最后是存储。源端虚拟机磁盘可能落在本地存储、共享存储或分布式存储上,目标端华为云Stack的云硬盘类型(SSD、SATA、极速型等)和性能档位不同,迁移后同样规格的虚拟机,IOPS可能会有肉眼可见的差异。特别是数据库这类对存储性能敏感的业务,迁移前不做磁盘性能评估,上线后出现慢查询、连接超时,到时候再优化就晚了。
1.3 一个反直觉的现实:IP地址往往比业务本身更难迁移
很多业务系统之间通过IP白名单互相访问,数据库连接串里写的是IP,负载均衡后端挂的是IP,堡垒机的访问策略绑定的也是IP。迁移到新平台后,如果源端IP网段能完整保留到华为云Stack的VPC里,那网络切换成本会低很多;一旦源端IP网段和目标端规划的网段冲突,或者目标端根本没有对应网段,就需要对所有下游系统的防火墙策略、路由表、连接配置做一轮大排查。
政务云和企业专网环境里,跨部门联调的系统特别多,你这边迁移一台虚拟机,影响的可能是别人的生产系统。所以在迁移方案设计阶段,第一条硬性要求通常就是“尽可能保留源端IP和网段”。有一个办法是目标端VPC直接复用源端CIDR,把整段网络平移过来;如果源端是多网段混合结构,就需要靠VPC对等或专线打通来维持原有的三层连通性。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 迁移路径怎么选:冷迁移、热迁移、应用重建三条路
2.1 冷迁移:最朴素,但最稳妥
冷迁移的标准动作是:源端云主机停机,导出系统盘和数据盘镜像,转换格式,上传到目标端对象存储,创建私有镜像,再基于镜像创建云主机,最后做系统配置修正。整个过程业务停机窗口就是迁移执行时间,一般几十分钟到几小时不等,取决于镜像大小和带宽。
这个方案最适合三类场景:一是本身就允许停机维护的系统,二是单台虚拟机磁盘总量不大(比如500GB以内)且没有太高并发要求
