CentOS7 minimal openstack PCI passthrough(透传)

注:以82574网卡为例,透传给虚拟机,controller节点是192.168.0.201,compute节点是192.168.0.202

  1. 查看 PCI
    lspci -nn
    image.png
  2. 查看设备由什么驱动管理使用
    lspci -vv -s 04:00.0 | grep driver
    image.png
  • 通过 libvirt 解绑网卡(实际上不需要)

注:实际上不需要,因为openstack启动使用这个网卡的虚拟机后会自动把网卡的使用者转为vfio-pci,关闭虚拟机后会自动转回e1000e

image.png

  1. 查看
    virsh nodedev-list | grep pci
    image.png
  2. 查询详细信息
    virsh nodedev-dumpxml pci_0000_04_00_0
    image.png
  3. 解绑
    virsh nodedev-detach pci_0000_04_00_0
    image.png
  • 配置(compute节点)
  1. 获取vendor_id product_id
    lspci -nn
    image.png

    virsh nodedev-dumpxml pci_0000_04_00_0
    image.png

    vendor_id=8086
    product_id=10d3
  2. 配置
    vi /etc/nova/nova.conf
[pci]
...
passthrough_whitelist = [{"product_id":"10d3", "vendor_id":"8086"}]
  • 配置(controller节点)
  1. 配置 nova-scheduler
    vi /etc/nova/nova.conf
[DEFAULT]
...
scheduler_default_filters = RetryFilter, AvailabilityZoneFilter, RamFilter, ComputeFilter, ComputeCapabilitiesFilter, ImagePropertiesFilter, ServerGroupAntiAffinityFilter, ServerGroupAffinityFilter, PciPassthroughFilter
scheduler_available_filters = nova.scheduler.filters.all_filters
  1. 配置
    vi /etc/nova/nova.conf
[pci]
...
alias = {
 "name": "a1",
 "product_id": "10d3",
 "vendor_id": "8086",
 "device_type": "type-PCI"
}
  1. 重启
    systemctl restart openstack-nova-scheduler.service
    systemctl restart openstack-nova-api.service
  • 创建flavorinstance
  1. 创建flavor
    image.png
  2. 创建 instance
    使用这个flavor创建一个 instance
  3. 验证
    virsh dumpxml instance-0000001b
    image.png

    注意:请注意解绑 compute节点的 pci设备

引用:
https://docs.openstack.org/nova/pike/admin/pci-passthrough.html
http://blog.csdn.net/hangdongzhang/article/details/77745557

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。