RHEL 6:在 Dell PowerEdge 服务器上安装并运行 SR-IOV
代表 Dell Linux 设计部门的 Surya Prabhakar 发表
RHEL 6 在面向虚拟化客户端具有接近本地性能的支持硬件上提供 SR-IOV 功能。
单一根 I/O 虚拟化 (SR-IOV) 规范由 PCI-SIG 引入,详细介绍了单一 PCIe 设备如何能在多种客户操作系统之间实现共享。具有 SR-IOV 功能的设备支持基于物理功能的多个虚拟功能。虚拟功能在硬件中作为轻质的 PCIe 功能启用。操作系统无法发现此功能,因为它不响应 PCI 总线扫描,且需要主机驱动程序的支持。
如同 PCIe 穿透,支持 SR-IOV 的卡的虚拟功能可直接分配至客户操作系统。客户操作系统中运行的虚拟功能驱动程序负责管理此设备。但这样使迁移复杂化。vhost-net 方法可使用 SR-IOV,我将在以后的博文中介绍。
SR-IOV 图解
要使 SR-IOV 运行于 RHEL 6,您需要具有 Intel VT-d 或 AMD-VI 硬件的 Dell PowerEdge 服务器,并且在 BIOS 中启用 CPU 虚拟化和 IOMMU。此要求当前对 Dell PowerEdge 11G 服务器及此处所列的相关网络适配器有效,但 Dell 尚未支持。
- Intel 2 插槽系统:PowerEdge R610、R710、T610
- Intel 4 插槽系统:PowerEdge R810、R910
- AMD 4 插槽系统:PowerEdge R715、R815
- 基于 Intel 82576 或 Intel 82599,支持 SR-IOV 的网卡。
在 Dell PowerEdge 服务器上启用基于 Intel 82576 的 SR-IOV 网卡的快速指南:
1. 在内核中启用 IOMMU 功能
将以下内核参数附加至内核命令行(和/或 /etc/grub.conf)
intel_iommu=on 基于 Intel 的系统
amd_iommu=on 基于 AMD 的系统
2. 启动后,确保系统已检测到网络适配器
# lspci | grep 82576
06:00.0 以太网控制器:Intel 公司 82576 千兆网络连接(修订 01)
06:00.1 以太网控制器:Intel 公司 82576 千兆网络连接(修订 01)
3. 根据要启用的虚拟功能的数量,创建文件: /etc/modprobe.d/igb.conf
选项 igb max_vfs=2 #igb 是用于 Intel 82576 网卡的 Linux 主机驱动程序。
#max_vfs 是每个物理功能的最大虚拟功能数。
#可根据要求更改此项。
4. 在主机上重新加载内核模块。
# modprobe –r igb # 移除模块
# modprobe igb # 重新加载模块
5. 完成后,可确认其是否已启用
#lspci | grep 82576
06:00.0 以太网控制器:Intel 公司 82576 千兆网络连接(修订 01)
06:00.1 以太网控制器:Intel 公司 82576 千兆网络连接(修订 01)
06:10.0 以太网控制器:Intel 公司 82576 虚拟功能(修订 01)
06:10.1 以太网控制器:Intel 公司 82576 虚拟功能(修订 01)
06:10.2 以太网控制器:Intel 公司 82576 虚拟功能(修订 01)
06:10.3 以太网控制器:Intel 公司 82576 虚拟功能(修订 01)
如果您有 2 个物理网卡且对每个物理网卡启用 2 个虚拟功能,则 lspci 的结果显示您有 2 个物理功能和 4 个虚拟功能。
6. 有关如何实现这一切的 Red Hat 文档。
现在,PCI 穿透可通过直接将虚拟功能传至客户操作系统来实现。参考
7. 最后一步是在客户操作系统中启用该驱动程序。
# lspci | grep 82576 # 检查设备可用性
# modprobe igbvf # 用于客户操作系统的驱动程序
更多精彩文章请关注:
转载于:https://blog.51cto.com/dellhome/539481