利用NVIDIA ConnectX-6 Dx和QEMU/KVM浅试一下Vhost-User和vDPA

Vhost vs vDPA

  • 都是Virtio的后端,遵循virtio协议,且都能支持VM热迁移
  • vhost-user依靠DPDK实现数据平面
  • vDPA依靠智能网卡硬件实现数据平面

环境概述

  • 服务器:Huawei Fusion V5
  • 网卡:NVIDIA ConnectX-6 Dx 100GbE
  • DPDK Version: 20.11.3
  • OFED Version: MLNX_OFED_LINUX-5.4-3.0.3.0
  • Qemu Version: 2.11.1
  • Guest OS: Alpine-virt-3.19.0-x86_64

QEMU预备配置

#拉取Alpine-virt iso(选virt版本,包含virtio驱动且只有60M),创建虚拟磁盘。
wget https://mirrors.tuna.tsinghua.edu.cn/alpine/latest-stable/releases/x86_64/alpine-virt-3.19.0-x86_64.iso
qemu-img create -f qcow2 alpine.qcow2 10G

浅浅试一下Vhost-User吧~

  1. 启动dpdk-testpmd(如果没有安装OvS-DPDK或者VPP,testpmd也可以),绑定Vhost和PF;

    ./dpdk-testpmd -l 0-1 -n 1 --vdev ‘eth_vhost0,iface=/tmp/sock0’ -a 5e:00.0 – -i --forward-mode=io
    start

  2. 启动QEMU(virtio-net运行的client模式,所以QEMU后启动,且只配置一个virtqueue)

    qemu-system-x86_64 -enable-kvm -smp 1 -hda ./alpine.qcow2 -cdrom alpine-virt-3.19.0-x86_64.iso -nographic -m 1G \
    -object memory-backend-file,id=mem0,size=1G,mem-path=/dev/hugepages,share=on -mem-prealloc -numa node,memdev=mem0 \
    -chardev socket,id=char1,path=/tmp/sock0 -netdev type=vhost-user,id=hostnet1,chardev=char1 \
    -device virtio-net-pci,netdev=hostnet1,id=net1,mac=52:54:00:00:00:14

    ifconfig eth0 192.168.201.102
    ping 192.168.201.103 #检验连通性

    在这里插入图片描述

浅浅试一下vDPA吧~

  1. 配置OFED:vDPA的配置和网卡的驱动有很强的关联,OFED一定要装好

  2. 编译运行DPDK vdpa 示例程序:

    cd dpdk_src/examples/vdpa
    make
    ./build/vdpa -a 5e:00.0,class=vdpa --log-level=pmd,info – -i # 这个命令是NVIDIA(Mellanox)给的,和DPDK官网给的有一定出入;
    create /tmp/sock0 5e:00.0
    stats 5e:00.0 0x0001 #查看queue1的数据
    在这里插入图片描述

  3. QEMU运行(配置多virtqueue)

    qemu-system-x86_64 -enable-kvm -smp 1 -hda ./alpine.qcow2 -cdrom alpine-virt-3.19.0-x86_64.iso -nographic \
    -m 1G -object memory-backend-file,id=mem0,size=1G,mem-path=/dev/hugepages,share=on -mem-prealloc \
    -numa node,memdev=mem0 -chardev socket,id=char1,path=/tmp/sock0 \
    -netdev type=vhost-user,queues=16,id=hostnet1,chardev=char1 \
    -device virtio-net-pci,mq=on,netdev=hostnet1,id=net1,mac=52:54:00:00:00:14

    ifconfig eth0 192.168.201.102
    ping 192.168.201.103 #检验连通性,icmp时延有点大,感觉配置没弄好

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值