简介:这份54页PPT资料聚焦信创虚拟化及云平台解决方案,面向信创项目规划人员、云平台架构师及国产化替代方案设计者,帮助解决芯片性能弱、应用迁移难、软硬件生态不成熟等信创建设核心痛点。内容涵盖信创建设挑战与解决思路、信创云整体解决方案、虚拟化产品介绍及成果展示,并深入分析龙芯、飞腾、鲲鹏、海光、兆芯、申威等芯片技术路线,给出虚拟化选型要点、分级分阶段建设思路及多云融合架构实践。资源包内含1个pptx文件,整体约4.5MB,以图文并茂的幻灯片形式呈现,便于直接用于方案汇报或技术培训。目前已有65人学习下载,适合需要快速掌握信创云平台选型、迁移与运维要点的技术人员参考,可从中获取从挑战分析到落地路径的完整知识框架。
1. 信创虚拟化及云平台方案:从54页PPT到可落地的技术选型
很多做政企集成的朋友拿到一份《信创虚拟化及云平台解决方案.pptx》,第一反应是“这不就是个汇报材料”。但如果你真接过信创项目,就会知道这类PPT背后藏着的是一整套技术选型逻辑:底层用哪家虚拟化、云平台怎么管、信创目录产品怎么对、适配测试怎么做。我见过太多团队在POC阶段才发现,PPT里写的“兼容”和实际跑起来的“兼容”完全是两回事。信创虚拟化不是把VMware换成国产就完事,它涉及芯片架构、操作系统内核、虚拟化层、云管平台四层栈的重新对齐。这篇笔记就按这个思路,把一份典型信创虚拟化及云平台方案拆成能动手复现的步骤,适合正在做信创替代选型、POC测试或投标技术方案的工程师。
2. 信创虚拟化四层栈拆解:从芯片到云管平台怎么对齐
2.1 为什么信创虚拟化不能照搬x86那套经验
传统x86虚拟化栈是Intel VT-x/AMD-V加KVM或ESXi,上面跑Linux或Windows,再上面是vCenter或OpenStack。这套东西大家闭着眼都能搭。但信创环境里,芯片可能是鲲鹏、飞腾、海光、龙芯,指令集从ARMv8到LoongArch各不相同,操作系统换成麒麟、统信UOS、openEuler,虚拟化层要重新编译适配,云管平台还得对接信创目录里的产品名单。
我踩过最典型的坑是:在飞腾服务器上装某个国产虚拟化平台,安装脚本检测CPU特性时读的是/proc/cpuinfo里的vmx或svm标志,但ARM架构根本没有这两个标志,脚本直接报“此平台不支持虚拟化的amd-v/rvi”。这不是虚拟化不能用,是检测逻辑没适配ARM。后来手动跳过检测,用libvirt直接拉起KVM,虚拟机跑得好好的。
所以信创虚拟化的第一原则是:每一层都要确认适配关系,不能假设x86的经验能平移。常见做法是拿到芯片型号后,先去操作系统厂商的适配列表里查虚拟化组件版本,再去云平台厂商的兼容矩阵里对一遍。
2.2 四层栈的适配检查清单
下面这张表是我在POC前必过的检查项,按四层栈从上到下排列:
| 层级 | 检查项 | 常见问题 | 验证命令/方法 |
|---|---|---|---|
| 芯片层 | CPU虚拟化扩展 | ARM架构无vmx/svm标志,检测脚本误报 | dmesg | grep -i kvm看KVM初始化 |
| 操作系统层 | 内核版本与KVM模块 | 麒麟V10 SP1自带KVM版本过旧,缺ARM优化 | modinfo kvm看版本和参数 |
| 虚拟化层 | libvirt/qemu版本 | qemu-kvm包名在ARM和x86下不同 | rpm -qa | grep -E "qemu|libvirt" |
| 云管平台层 | 信创目录产品对接 | 云平台API不兼容国产化数据库 | 查云平台厂商的兼容性文档 |
这张表看着简单,但每一条背后都有血泪经验。比如操作系统层,麒麟V10早期版本的内核是4.19,KVM对ARMv8.1的某些特性支持不完整,跑虚拟机时会出现随机卡顿。后来升级到麒麟V10 SP2(内核5.10)才稳定。验证方法就是dmesg | grep -i kvm,看有没有kvm [armv8.1]之类的初始化信息。
2.3 用libvirt在openEuler ARM服务器上跑通第一台虚拟机
假设你手头有一台鲲鹏或飞腾服务器,装了openEuler 22.03 LTS,接下来要验证虚拟化能不能用。不要一上来就装云平台,先用libvirt命令行跑通一台虚拟机,确认底层没问题。
# 1. 确认KVM模块已加载 lsmod | grep kvm # 预期输出:kvm_arm (或kvm) 和 kvm_xxx 模块 # 2. 安装虚拟化组件(openEuler ARM源) sudo dnf install -y libvirt qemu-kvm virt-install virt-viewer # 3. 启动libvirtd并设开机自启 sudo systemctl enable --now libvirtd sudo systemctl status libvirtd # 4. 确认libvirt能识别KVM域 virsh capabilities | grep -i kvm # 预期输出:<domain type='kvm'> 相关能力描述 # 5. 准备一个ARM64的ISO(以openEuler为例) # 假设ISO放在 /var/lib/libvirt/images/openEuler-22.03-arm64.iso # 6. 创建虚拟机 sudo virt-install \ --name test-vm01 \ --memory 4096 \ --vcpus 2 \ --disk path=/var/lib/libvirt/images/test-vm01.qcow2,size=20 \ --cdrom /var/lib/libvirt/images/openEuler-22.03-arm64.iso \ --os-variant openeuler22.03 \ --network network=default \ --graphics vnc,listen=0.0.0.0 \ --noautoconsole这段脚本的关键点:--os-variant要选对,openEuler在libvirt里的variant名是openeuler22.03,选错了会导致CPU模型不匹配。--network network=default用的是libvirt默认NAT网络,生产环境要换成桥接。--graphics vnc方便远程看安装界面,装完后可以关掉。
跑完virt-install后,用virsh list --all看虚拟机状态。如果卡在creating,大概率是ISO路径不对或权限问题。用virsh console test-vm01连进去看安装界面。这一步跑通,说明底层虚拟化没问题,可以往上叠云平台了。
提示:ARM架构下qemu的机器类型是
virt,不是x86的q35或pc。如果手动写XML,<os>段里要写<type arch='aarch64' machine='virt'>。
3. 云平台选型与部署:OpenStack还是国产云管
3.1 信创云平台的两条路线:OpenStack定制 vs 商业云管
底层虚拟化跑通后,下一步是云平台。信创项目里常见两条路线:一是基于OpenStack做定制,二是直接上国产商业云管平台(如华为FusionCloud、浪潮云海、新华三CAS等)。两条路线各有适用场景。
OpenStack路线的优势是开源可控,能深度定制,适合有较强研发能力的团队。劣势是组件多、部署复杂、信创适配工作量大。我见过一个项目用OpenStack Train版对接鲲鹏服务器,光Cinder对接国产存储就调了两周。商业云管路线的优势是开箱即用、有厂商支持、信创目录产品对接现成。劣势是绑定厂商、定制空间小、license成本高。
选型时问自己三个问题:团队有没有OpenStack运维能力?项目预算够不够买商业license?信创目录里有没有强制要求某家云平台?三个问题答完,路线基本就定了。
3.2 用Kolla-Ansible在ARM集群上部署OpenStack最小集
如果选OpenStack路线,Kolla-Ansible是目前比较成熟的容器化部署方案。下面是在ARM集群上部署最小可用集(Keystone+Nova+Neutron+Glance+Placement)的步骤。
# 1. 准备三台ARM服务器(或虚拟机),装openEuler 22.03 # 控制节点:192.168.1.10 # 计算节点1:192.168.1.11 # 计算节点2:192.168.1.12 # 2. 所有节点安装docker和python3-devel sudo dnf install -y docker python3-devel git sudo systemctl enable --now docker # 3. 控制节点安装kolla-ansible sudo pip3 install kolla-ansible==15.4.0 # 4. 生成配置文件 sudo mkdir -p /etc/kolla sudo chown $USER:$USER /etc/kolla cp -r /usr/share/kolla-ansible/etc_examples/kolla/* /etc/kolla/ cp /usr/share/kolla-ansible/ansible/inventory/all-in-one . # 5. 编辑globals.yml关键参数 # 以下是要改的项: # kolla_base_distro: "openeuler" # kolla_install_type: "source" # openstack_release: "wallaby" # network_interface: "eth0" # neutron_external_interface: "eth1" # kolla_internal_vip_address: "192.168.1.100" # 6. 生成密码 kolla-genpwd # 7. 引导部署 kolla-ansible -i all-in-one bootstrap-servers kolla-ansible -i all-in-one prechecks kolla-ansible -i all-in-one deploy # 8. 部署后初始化 kolla-ansible -i all-in-one post-deploy这段脚本里,kolla_base_distro要选openeuler,openstack_release选wallaby(这是较早在ARM上验证过的版本)。network_interface和neutron_external_interface要按实际网卡名改。kolla_internal_vip_address是VIP,需要和网段匹配。
部署过程中最容易翻车的是prechecks阶段。常见报错是Docker daemon not running或Python version mismatch。前者检查docker服务,后者确认pip3装的kolla-ansible版本和python版本匹配。ARM上还有一个坑:某些OpenStack组件的容器镜像没有ARM版本,需要自己编译。Kolla-Ansible的kolla_base_distro: openeuler会从openEuler源拉镜像,但部分组件可能缺失,需要手动build。
注意:Kolla-Ansible部署OpenStack对网络要求较高,建议先用三台虚拟机做验证,再上物理机。ARM物理机上还要确认网卡驱动和固件版本,我遇到过鲲鹏服务器上eth1网卡不识别的情况,升级固件后解决。
3.3 云平台对接信创目录产品的三个接口
云平台部署完,下一步是对接信创目录里的产品。常见对接点有三个:身份认证、存储、数据库。
身份认证对接LDAP或OAuth2,信创目录里的统一身份认证产品一般提供标准LDAP接口。存储对接iSCSI或Ceph,国产存储厂商通常提供iSCSI网关。数据库对接MySQL或PostgreSQL协议,国产数据库如达梦、人大金仓都兼容这两种协议。
对接时用curl或openstack命令验证。比如对接Ceph存储后,用openstack volume create创建卷,看Cinder日志里有没有rbd相关报错。对接达梦数据库时,注意JDBC驱动版本,达梦的JDBC驱动在ARM上需要单独编译。
4. 信创适配及安全管理:POC测试与投标方案里的避坑点
4.1 信创适配测试的五个必测项
信创适配不是装完就完,要有一套测试项。我一般会测五个:CPU虚拟化特性、内存热插拔、虚拟机迁移、快照恢复、网络性能。
CPU虚拟化特性测试用virsh capabilities看CPU模型,确认aarch64下host-passthrough模式可用。内存热插拔在ARM上支持较晚,openEuler 22.03内核5.10才稳定,测试时用virsh setmem动态调整。虚拟机迁移用virsh migrate,ARM同架构迁移没问题,跨架构(ARM到x86)不支持。快照恢复用virsh snapshot-create-as,注意qcow2格式的快照链。网络性能用iperf3测虚拟机之间和虚拟机到物理机的带宽。
这五项里,内存热插拔和迁移最容易出问题。内存热插拔失败通常是内核配置没开CONFIG_MEMORY_HOTPLUG,迁移失败多半是CPU模型不兼容,用host-model代替host-passthrough试试。
4.2 投标方案里技术部分的写法
信创项目投标,技术方案里不要只堆产品名。评委想看的是适配逻辑和验证方法。我一般按“芯片-操作系统-虚拟化-云平台-应用”五层写,每层写清楚选型理由、适配版本、验证结果。比如“鲲鹏920 + 麒麟V10 SP2 + openEuler KVM + 自研云管 + 达梦数据库”,每一层都附上测试截图或日志片段。
技术方案里还要写清楚信创目录产品名单的对应关系。比如云平台在信创目录里的编号、操作系统在目录里的版本号。这些信息在投标时是硬性要求,缺了直接废标。
4.3 避坑:信创虚拟化项目里最常见的五个翻车点
现象一:安装脚本报“此平台不支持虚拟化的amd-v/rvi”原因:脚本检测x86虚拟化标志,ARM架构没有vmx/svm。 解决:手动跳过检测,用libvirt直接拉起KVM,或修改脚本检测/proc/cpuinfo里的Features字段(ARM看virt扩展)。
现象二:虚拟机启动后随机卡顿,dmesg里有KVM报错原因:内核版本过旧,KVM对ARMv8.1特性支持不完整。 解决:升级到openEuler 22.03或麒麟V10 SP2(内核5.10+),确认dmesg | grep -i kvm无报错。
现象三:OpenStack部署时prechecks失败,报Docker daemon not running原因:docker服务未启动或python3-devel未装。 解决:systemctl enable --now docker,确认pip3 list | grep kolla版本匹配。
现象四:云平台对接国产存储后,创建卷失败原因:Cinder的iSCSI驱动不兼容国产存储的CHAP认证方式。 解决:改用Ceph RBD后端,或联系存储厂商提供兼容驱动。
现象五:虚拟机迁移失败,报CPU模型不兼容原因:源和目的主机CPU型号不同,host-passthrough模式不兼容。 解决:改用host-model模式,或在迁移前用virsh cpu-compare对比CPU特性。
5. 从POC到生产:信创虚拟化集群的验证与调优技巧
POC跑通不等于生产可用。生产环境要考虑高可用、性能调优、监控告警。我一般会在POC基础上加三个验证:集群HA、存储性能、网络吞吐。
集群HA用pacemaker+corosync做libvirt高可用,或者直接用云平台自带HA功能。存储性能用fio测IOPS和延迟,ARM服务器上NVMe SSD的IOPS通常在50万左右,SATA SSD在10万左右。网络吞吐用iperf3测虚拟机到虚拟机、虚拟机到物理机的带宽,25G网卡下应该能跑到20Gbps以上。
调优方面,KVM的CPU模式选host-passthrough性能最好,但迁移兼容性差。生产环境我一般用host-model,兼顾性能和兼容性。内存用大页(hugepages),在/etc/default/grub里加default_hugepagesz=1G hugepagesz=1G hugepages=16,然后virsh edit虚拟机XML加<memoryBacking><hugepages/></memoryBacking>。网络用vhost-net,在虚拟机XML里加<driver name='vhost'/>。
最后说一个我自己的习惯:每次信创项目POC前,先花半天时间把芯片、操作系统、虚拟化、云平台四层的版本号列一张表,然后逐个去厂商官网查适配列表。这张表看着笨,但能省掉后面至少三天的排错时间。信创虚拟化没有银弹,只有一层层对齐。希望帮到你。
本文还有配套的精品资源,点击获取