QEMU虚拟机热添加和热卸载网卡

说明

最近验证各种网络场景,对网卡的配置数量不断在增加,现有虚拟机运行着好不容易搭的环境,实在不想重启虚拟机离线方式添加网卡。因为没有云平台都是本地libvirt管理的虚拟机,所以整理下使用网卡添加的使用方法,

添加网卡

热添加SR-IOV网卡

对于VF类型网卡,在执行至SR-IOV切分VF后,VF会被内核自动加载默认的iavf驱动。此时想要热添加到虚拟机中,需要先卸载VF设备的iavf驱动。

#0000:81:02.0是切分后待透传的VF设备的BDF号
echo 0000:81:02.0 > /sys/bus/pci/drivers/iavf/unbind

卸载后,设备下的driver_override为(null),是无法直接在/sys/bus/pci/drivers/vfio-pci下bind设备的,会提示没有device,需要先将设备的driver_override配置为vfio-pci,挂载驱动后再进行绑定。

echo vfio-pci > /sys/bus/pci/devices/0000:81:02.0/driver_override 
echo 0000:81:02.0 > /sys/bus/pci/drivers/vfio-pci/bind

VF设备加载为vfio-pci后,使用virsh命令进行热添加。需要指定type类型为hostdev,VF设备也是一种主机设备透传的方式被使用。

virsh attach-interface rqw_ffr_t3 --type hostdev --source 0000:81:02.0 --model vfio --live --config --persistent

热添加virtio网卡

对于虚机间的网络流量使用主机上的虚拟网桥即可,当然如果对性能要求很高可以不考虑。

#主机上创建虚拟网桥
brctl addbr virbr13
ip link set virbr13 up
ip addr add 192.168.13.1/24 dev virbr13

#source指定virbr13,使用virtio驱动
virsh attach-interface rqw_ffr_t3 --type bridge --source virbr13 --model virtio --config --live --persistent

离线添加VF网卡

这里顺便记录下离线添加网卡的配置,避免到处去找网卡XML格式。

<interface type='hostdev' managed='yes'>
  <driver name='vfio'/>
  <source>
    <address type='pci' domain='0x0000' bus='0x81' slot='0x02' function='0x0'/>
  </source>
  <address type='pci' domain='0x0000' bus='0x0c' slot='0x00' function='0x0'/>
</interface>

后续补充其他遇到的网卡类型 。

热卸载网卡

先获取需要卸载的网卡type和mac地址。在使用detach-interface卸载

<interface type='bridge'>
  <mac address='52:54:00:8d:fd:f2'/>
  <source bridge='virbr13'/>
  <target dev='vnet11'/>
  <model type='virtio'/>
  <alias name='net2'/>
  <address type='pci' domain='0x0000' bus='0x09' slot='0x00' function='0x0'/>
</interface>
virsh detach-interface rqw_ffr_t3 --type bridge --mac 52:54:00:8d:fd:f2  --config --live

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
QEMU是一款开源的虚拟机软件,它可以模拟多种硬件环境来运行不同的操作系统。在QEMU中配置虚拟机网卡非常简单,以下是配置步骤: 1. 首先,需要创建一个虚拟机的镜像文件。可以使用qemu-img命令创建一个大小合适的空白镜像文件,例如: ``` qemu-img create -f qcow2 myimage.img 10G ``` 这将创建一个大小为10GB的qcow2格式的镜像文件。 2. 接下来,使用qemu命令启动虚拟机并指定镜像文件的路径。例如: ``` qemu-system-x86_64 -hda myimage.img ``` 这将启动一个x86_64架构的虚拟机,并将镜像文件myimage.img作为虚拟机的硬盘。 3. 默认情况下,QEMU会为虚拟机分配一个NAT网络,这意味着虚拟机可以访问外部网络,但无法从外部网络直接访问虚拟机。如果需要配置虚拟机网卡以便与外部网络通信,则需要添加一个网桥。 4. 在宿主机上创建一个网桥设备,例如: ``` sudo brctl addbr br0 sudo ifconfig br0 up ``` 5. 将虚拟机网卡(通常是第一个网卡)连接到网桥上,例如: ``` sudo brctl addif br0 eth0 sudo ifconfig eth0 up ``` 6. 最后,使用QEMU的命令行参数来指定虚拟机连接到网桥上的网卡,例如: ``` qemu-system-x86_64 -hda myimage.img -net nic -net bridge,br=br0 ``` 这将使虚拟机连接到网桥br0,并通过该网桥与外部网络通信。 以上步骤是在Linux系统上配置QEMU虚拟机网卡的简单示例,不同的操作系统和QEMU版本可能有所不同,但整体流程类似。通过配置虚拟机网卡,可以使虚拟机与外部网络进行通信,并实现与宿主机之间的连接。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值