linux学习—— CentOS命令行版下创建KVM虚拟机(VM)并添加SR-IOV的虚拟网卡(VF)
CentOS命令行版下创建KVM虚拟机(VM)并添加SR-IOV的虚拟网卡(VF)
- 前言
- 一、KVM
- 1、KVM及相关技术(qemu、libvirt)
- 2、创建KVM虚拟机
- 二、SR-IOV
- 1、SR-IOV的概念
- 2、使用SR-IOV创建VF
- 三、将VF分配给创建好的VM
- 总结
- 参考链接
最近看到一篇文章,内容是关于SR-IOV中VF的创建与将VF添加到VM中。比本文详细很多,供大家参考
https://www.cnblogs.com/sctb/p/13848201.html
前言
我目前的需求是在服务器中创建几个虚拟机,并使其进行RDMA通信。由于使用的是centos服务器,而且还是命令行版的,比较麻烦。所以打算使用KVM来创建虚拟机。进行RDMA通信需要网卡的支持,因为服务器上的物理网卡是Mellanox 的 connectX6,所以打算使用SR-IOV来在connectX6创建几个VF供虚拟机使用。若各位有更好的方法,还望不吝赐教!
一、KVM
1、KVM及相关技术(qemu、libvirt)
KVM 全称是基于内核的虚拟机(Kernel-based Virtual Machine)是一个开源软件,基于内核的虚拟化技术,实际是嵌入系统的一个虚拟化模块,通过优化内核来使用虚拟技术,该内核模块使得 Linux 变成了一个Hypervisor,虚拟机使用 Linux 自身的调度器进行管理。
kvm负责cpu虚拟化和内存虚拟化,实现了cpu和内存的虚拟化,但kvm不能模拟其他设备
qemu是模拟IO设备(网卡,磁盘),kvm加上qemu之后就能实现真正意义上服务器虚拟化。
libvirt则是调用kvm虚拟化技术的接口进行管理
具体参考这里
2、创建KVM虚拟机
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定义了两种功能类型:
物理功能(PF):PF是全功能的PCIE,可以像其他任何PCIE设备一样进行发现、管理、和处理。PF拥有完全配置和控制PCIE设备资源的能力。
虚拟功能(VF):VF是一种轻量级的PCIE功能,VF可以与PF以及与同一PF相关联的其他VF共享一个或多个物理资源。VF仅允许拥有用于其自身行为的配置资源。
2、使用SR-IOV创建VF
可以参照官网文档
创建方法:
选择将要进行SR-IOV操作的物理网卡。我这里的物理网卡名称为p4p2
确保SR-IOV功能在系统中是启用的。可以参照官网文档
查看网卡所支持分配的VF数量。将设备改为自己机器上的网卡
cat /sys/ class/net/p4p2/device/sriov_totalvfs
开启SR-IOV功能
echo 2 > /sys/ class/net/p4p2/device/sriov_numvfs
此时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的虚拟机上了
最后的网络配置可根据个人需求进行处理。
总结
第一步通过virsh-install命令创建VM
第二步生成SR-IOV的VF
第三步将VF绑定到VM
这里只介绍了最基本的处理方式,根据个人的不同需求可以适当的进行调整。比如我最后还需要将VF连接到OVS网桥上,这里还需要在将PF上默认的模式从Legacy改为SwitchDev。
参考链接
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/virtualization_getting_started_guide
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html-single/virtualization_deployment_and_administration_guide
linux学习—— CentOS命令行版下创建KVM虚拟机(VM)并添加SR-IOV的虚拟网卡(VF)相关推荐
- CentOS命令行模式下设置屏幕常亮----没有达到预期效果
CentOS命令行模式下设置屏幕常亮 最近在一个项目中使用了CentOS作为客户端(本着资源合理使用的原则,通常我们环境中CentOS都不安装图形界面的,就是直接命令行操作).因为是做7天*24小时测 ...
- Linux之向日葵命令行版安装和使用
一.向日葵简介 向日葵是一款阳光的远程控制软件.您可在任何可连入互联网的地方,轻松访问和控制安装了向日葵客户端的设备,且目前支持电脑.手机等多种控制端的方式进行远控.支持通过电脑.手机或平板等多种 ...
- CentOS 5.6下创建KVM虚拟机
[51CTO专家投稿]RedHat 的下一代旗舰产品RedHat Enterprise Linux 6只包含 KVM,这一点 RedHat 官方已经在很久以前.在不同场合都确认过.KVM 发展很快,稳 ...
- mysql命令创建模式_mysql在命令行模式下创建数据库时要显式指定字符集
关于log4j的讨论 1.LoggersLoggers组件在此系统中被分为五个级别:DEBUG.INFO.WARN.ERROR和FATAL.这五个级别是有顺序的,DEBUG < INFO < ...
- 【centos7上装向日葵linux命令行版(先把结果交代在这:ssh远控功能收费。最后一步当我在向日葵使用ssh远程centos7时,发现它是收费的,我离完整体验就差9块钱)】
部门有台惠普工作站,装的winserver.上面使用vmware创建的一台centos7虚拟机要供厂商远程.我自然想到了免费的向日葵(花钱的买卖从来不用想,上面也不给).正当我要给winserve ...
- 树莓派 4B 下 Linux 系统高级命令行
2021SC@SDUSC 现在我们已经将 ubuntu 系统安装到了树莓派上面,并且实现了两种连接树莓派的方式,同时对 Linux 系统中常见的命令有了一定的了解,接下来就是对一些 Linux 系统高 ...
- linux命令行模式连接网络,centos命令行模式连接无线网络的过程
1. 首先, 你的系统要能驱动无限网卡, 要是人品好的话, 系统已经自带了你的网卡的驱动程序. 不然就要先搞定无线网卡的驱动再说. 不然后面的步骤也就没必要了. 2. 看一下你的无线网卡叫什么: iw ...
- 在Linux系统的命令行中为MySQL创建用户的方法
这篇文章主要介绍了在Linux系统的命令行中为MySQL创建用户的方法,包括对所建用户的权限管理,需要的朋友可以参考下 要访问一个MySQL服务器,你需要使用一个用户帐号登录其中方可进行.每个MySQ ...
- Linux 命令行模式下退出 vim
Linux 命令行模式下退出 vim 命令 说明 :q! 强制退出,不保存 :q 退出 :wq! 强制保存并退出 :w <文件路径> 另存为 :saveas 文件路径 另存为 :x 保存并 ...
- centos卸载harbor_在Linux主机使用命令行批量删除harbor镜像
在Linux主机使用命令行批量删除harbor镜像 脚本使用说明: 此脚本不是万能脚本,根据自身环境要调整很多 能用harbor的域名就不要用IP 脚本前半部分可以套用,后半部分需一步一步试错,结合自 ...
最新文章
- 一张图:AI领域里各领风骚的BAT三巨头
- 手机端网站排名优化需注意哪些细节?
- java注解大全_java开发注解大全
- linux系统怎么建ftp服务器地址,Ubuntu Linux系统建立FTP服务器方法步骤
- 应用程序环境块相关代码
- java多态的理解(运行时多态)_Java多态的理解
- face++算法工程实习生面试
- 对每个小组的评论和建议
- linux绑定硬件的软件吗,Linux下安装的硬件方法
- 步步为营-49-视图
- java 读取mysql数据库_原生Java操作mysql数据库过程解析
- web前端入门到实战:纯CSS实现数据上报和HTML验证
- Verilog基础知识-——计数器设计以及任意分频设计与modelsim仿真
- 虎牙直播怎么换html5,虎牙直播助手怎么改名字 昵称更换方法
- 速卖通韩国下载量再次登顶,7500万投资换来回报
- 将打开网页以网页 仅HTML,网页保存的不同方法
- 开源小程序CMS网站, JeeWx-App-CMS 1.0 首版本发布
- E: 无法下载 http://us.archive.ubuntu.com/ubuntu/dists/xenial/main/binary-armhf/Packages 404 Not Found
- 收藏 | 浙江省各地教师公务员等实际工资爆料
- 主要的CMS(内容管理系统)提供商
热门文章
- python爬取网易付费音乐包_爬取网易云音乐“三部曲”(三):轻松下载网易音乐歌曲!...
- ask调制流程图_FSK、MSK、ASK调制方式自动识别模块分析设计
- RHCA红帽认证架构师考试分享
- 机器人动力学与控制学习笔记(十一)————机器人凯恩方程动力学建模
- 用HTML制作个人简历
- JavaScript实现文件读取、文件导出
- 数字图像处理第三版中文版部分答案-冈萨雷斯
- matlab复杂网络上的博弈演化,科学网—复杂网络上的演化博弈研究 - 汪秉宏的博文...
- 【电路与电子技术】笔记 (完结)
- lede 内核 单 编_openwrt和lede有何区别?