Skip to content

kunpengcompute/cloud-virtual

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

83 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

项目介绍

鲲鹏云计算虚拟化代码仓是鲲鹏参与开源虚拟化软件栈优化的成果,存放鲲鹏BoostKit虚拟化加速套件的相关补丁,该套件覆盖KVMQEMULibvirtDPDKSPDK等核心虚拟化与I/O软件栈。

  • 虚拟机跨代热迁移是鲲鹏自研特性,对接qemu/kvm使用,通过引入vCPU特性读写框架,实现不同代际服务器上vCPU特性的兼容,适用于鲲鹏920与鲲鹏920新型号之间的虚拟机热迁移场景。
  • L0内存为鲲鹏自研内存加速特性,在非LLC容量敏感场景下,将部分LLC容量作为高性能L0内存使用,实现热点数据高性能访问。openvswitch是一个支持多层数据转发的高质量虚拟交换机。主要架构由内核态Datapath、用户态vswitchd和ovsdb组成。从网口读取的数据包,将在Datapath实现快速流表匹配,若匹配失败则上交vswitchd进行处理。L0加速内核态快速流表匹配方案是将处于内核态的Datapath转发路径卸载到L0内存上,从而加速流表查找速度,提升报文的转发效率。
  • DPDK队列选择优化是鲲鹏自研网络加速特性,对接DPDK使用,通过优化DPDK的队列选择算法,降低单个CPU压力,降低网络时延,适用于虚拟机组网为OVS+DPDK的场景。
  • SPDK中断聚合是鲲鹏自研存储性能加速特性,对接SPDK使用,通过中断聚合技术降低后端对前端的中断通知数量,减少虚拟机陷入陷出过程,提升系统整体的吞吐性能,适用于虚拟机存储为SPDK NVME场景。

版本说明

操作系统

开源软件

特性

openEuler 24.03 LTS SP16.6.0-72.0.0

QEMU-8.2.0

虚拟机跨代热迁移

openEuler 22.03 LTS SP4

openvswitch-2.12.4

L0加速openvswitch内核态流表匹配

openEuler 24.03 LTS SP1

DPDK-24.11

DPDK队列选择

openEuler 24.03 LTS SP1

SPDK-24.05

SPDK中断聚合

环境部署

虚拟机跨代热迁移特性 部署流程

  1. 到openEuler仓库拉取kernel、qemu代码。
  2. 切换到对应分支,使用tools目录中的脚本完成patch应用。
  3. 详细操作步骤请参见《Kunpeng BoostKit 25.1.RC1 鲲鹏920虚拟机跨代热迁移 特性指南》。

L0加速openvswtich内核态流表匹配特性 部署流程

  1. 拉下5.10.0-216源码仓。

    git clone https://gitee.com/openeuler/kernel.git -b 5.10.0-216.0.0 --depth=1
    
  2. 将补丁保存为.patch文件。

  3. 合入补丁。

    git am --reject <补丁名称>
    
  4. 在“kernel/net/openvswitch“目录编译openvswitch模块。

    make CONFIG_XENO_DRIVERS_NET_DRV_IGB=m -C <源码目录> M=pwd modules
    

DPDK队列训责特性 部署流程

  1. git拉取dpdk 24.11源代码。
  2. 合入DPDK队列选择patch。
  3. 编译安装dpdk 24.11。

SPDK中断聚合特性 部署流程

  1. git拉取SPDK 24.05源代码。
  2. 合入SPDK中断聚合patch。
  3. 编译安装spdk 24.05。

快速上手

跨代热迁移

完成环境部署后,参照部署文档方式启动虚拟机,执行如下命令进行跨代迁移测试,观察迁移过程能否执行完毕并无报错。

virsh migrate --verbose --persistent --live --unsafe <虚拟机名称> qemu+tcp://<目的端物理机IP地址>/system

L0内存加速

  1. 加载L0模块。

    modprobe hisi_l3t
    modprobe hisi_l0
    
  2. 停止已经开启的openvswitch服务。

    service openvswitch status
    service openvswitch stop
    ovs-ctl stop
    
  3. 加载编译出来的openvswitch.ko。

    insmod openvswitch.ko
    
  4. 加载openvswitch.ko后,正常启动openvswitch服务即可使用L0内存加速的内核态快速匹配流表。

DPDK队列选择优化

完成环境部署后,在虚拟机内执行iperf打流测试,在物理机执行以下命令观测PMD轮训核的压力是否平均分配。

ovs-appctl dpif-netdev/pmd-rxq-show -secs 5

SPDK中断聚合优化

完成环境部署后,使用fio工具测试4U8G虚拟机SPDK NVME磁盘性能,与物理机性能进行对比,观测虚拟化损耗是否低于10%。

贡献指南

如果使用过程中有任何问题,或者需要反馈特性需求和bug报告,可以提交Issue联系我们,具体贡献方法可参考这里

免责声明

此代码仓计划参与虚拟化核心软件开源,仅作虚拟机热迁移功能扩展以及网络与存储性能提升,编码风格遵照原生开源软件,继承原生开源软件安全设计,不破坏原生开源软件设计及编码风格和方式,软件的任何漏洞与安全问题,均由相应的上游社区根据其漏洞和安全响应机制解决。请密切关注上游社区发布的通知和版本更新。鲲鹏计算社区对软件的漏洞及安全问题不承担任何责任。其中,跨代热迁移代码仅为技术参考,展示跨代热迁移的使用方式与集成方法,不用于生产环境,不继承或承诺任何上下游软件的安全设计与防护机制,使用者应自行评估风险,并根据实际场景进行安全加固。任何因使用本仓库代码所引发的安全问题,均由使用者自行承担。

许可证书

本项目采用Apache License 2.0许可证。详见LICENSE文件。 本项目的文档适用CC-BY 4.0许可证,具体请参见LICENSE文件。

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages