linux学习—— CentOS命令行版下创建KVM虚拟机(VM)并添加SR-IOV的虚拟网卡(VF(1)

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

virsh是基于libvirt的一个命令行工具。可用于配置、管理虚拟机。具体使用方法请virsh --help或这里

virt-install用于创建新的KVM虚拟机。格式如下(正确的指令)

virt-install --name rhel7anaconda-guest -r 1024 --location=/home/jherrman/Downloads/rhel-workstation-7.4-x86_64-dvd.iso --disk size=8 --nographics --extra-args="console=tty0 console=ttyS0,115200n8"

将上面的路径改为自己主机中iso镜像的存储位置即可。镜像下载。这里的参数 --extra-args=“console=tty0 console=ttyS0,115200n8” 在命令行linux模式下非常重要。

我之前使用的安装指令(有问题的指令),一直没有成功

virt-install --name centos --ram 1024 --vcpus=1 --disk path=/var/vm/disk/centos7.raw --network network:default --os-variant=rhel7 -l http://tel.mirrors.163.com/centos/7/os/x86_64/ --extra-args='console=tty0 console=ttyS0,115200n8'

可能是使用了–disk path=/var/vm/disk/centos7.raw,导致一直连接不上虚拟机。若有相同情况的朋友,一定要使用第一条安装指令!!
一直停留在这里,即使按回车键也没用

二、SR-IOV

1、SR-IOV的概念

SR-IOV(Single-Root I/O Virtualization)技术是一种基于物理硬件的虚拟化解决方案,可提高物理I/O设备的性能的可扩展性。SR-IOV技术允许在虚拟机之间高效共享PCIe设备,由于SR-IOV技术是基于硬件实现的,可以使虚拟机获得与宿主机媲美的I/O性能。

我的理解是:SR-IOV可以将物理硬件资源虚拟化一部分出来,虚拟出来的这部分资源可以当做完整的硬件资源使用,但是功能肯定没有物理硬件资源那么齐全。

SR-IOV定义了两种功能类型:

  1. 物理功能(PF):PF是全功能的PCIE,可以像其他任何PCIE设备一样进行发现、管理、和处理。PF拥有完全配置和控制PCIE设备资源的能力。
  2. 虚拟功能(VF):VF是一种轻量级的PCIE功能,VF可以与PF以及与同一PF相关联的其他VF共享一个或多个物理资源。VF仅允许拥有用于其自身行为的配置资源。

示意图

2、使用SR-IOV创建VF

可以参照官网文档

创建方法:

  1. 选择将要进行SR-IOV操作的物理网卡。我这里的物理网卡名称为p4p2
    在这里插入图片描述
  2. 确保SR-IOV功能在系统中是启用的。可以参照官网文档
  3. 查看网卡所支持分配的VF数量。将设备改为自己机器上的网卡
cat /sys/ class/net/p4p2/device/sriov_totalvfs

  1. 开启SR-IOV功能
echo 2 > /sys/ class/net/p4p2/device/sriov_numvfs

  1. 此时VF已经创建完成。可以使用IP工具给创建好的VF配置MAC地址
ip link set p4p2 vf 0 mac e4:11:22:33:44:50
ip link set p4p2 vf 1 mac e4:11:22:33:44:51

查看ip link show p4p2
在这里插入图片描述

此时VF已经创建完成

三、将VF分配给创建好的VM

查看已创建的VF的pci号,我用的是pci_0000_42_01_2这个VF。
在这里插入图片描述
在任意路径下创建XML文件,我是用的路径是 /etc/libvirt/qemu/networks/ ,因为这里是虚拟机网络配置文件的地方。命名为yxj-interface.xml
在这里插入图片描述
其内容

 <interface type='hostdev' managed='yes'>
     <source>
       <address type='pci' domain='0x0000' bus='0x42' slot='0x01' function='0x2'/>
     </source>
   </interface>

保存后,加载该xml文件

virsh net-define /tmp/passthrough.xml

最后使用命令,将VF添加到VM上

virsh attach-device MyGuest /etc/libvirt/qemu/networks/yxj-interface.xml --live --config

这样一个虚拟的SR-IOV网卡就被添加到KVM的虚拟机上了

最后的网络配置可根据个人需求进行处理。


img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

朋友,可以添加戳这里获取](https://bbs.csdn.net/topics/618668825)**

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值