devstack单节点pci直通
时间: 2024-12-30 16:15:29 浏览: 6
### 如何在 DevStack 单节点上实现 PCI 直通配置
#### 准备工作
为了使虚拟机能够直接访问物理硬件资源,在 OpenStack 中需要启用 PCI 直通功能。这涉及到修改计算节点上的内核参数并调整 Nova 和 Neutron 的设置。
#### 修改 GRUB 配置文件
编辑 `/etc/default/grub` 文件,向 `GRUB_CMDLINE_LINUX` 添加如下选项以确保 IOMMU 被激活[^1]:
```bash
intel_iommu=on iommu=pt
```
更新 grub 并重启服务器让更改生效:
```bash
sudo update-grub
sudo reboot
```
#### 安装依赖包
安装 QEMU/KVM 及其工具链来支持 PCI 设备分配给 guest VMs:
```bash
apt-get install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virtinst cpu-checker -y
```
#### 编辑 DevStack 配置文件
打开 `local.conf` 文件加入下面几行用于开启 SRIOV 或者普通的 PCI-Passthrough 功能:
对于普通 PCI Passthrough 使用以下命令:
```bash
[[post-config|$NOVA_CONF]]
[pci]
passthrough_whitelist={"address":"*:0a:00.*","physical_network":"physnet1"}
alias={ "device_type": "type-PCI", "vendor_id": "8086", "product_id": "154c", "name": "pf" }
```
如果要启用了 SR-IOV,则应指定 VF (Virtual Function) 数量和其他必要的属性。
#### 创建网络接口映射表
创建一个名为 `70-persistent-net.rules` 的 udev 规则文件位于 `/etc/udev/rules.d/` 下面定义哪些网卡应该被保留作为宿主机使用而不会自动绑定到 vfio-pci 驱动程序中去。
#### 启用服务
最后一步就是启动相关服务并且验证是否成功加载了模块和服务状态正常运行。
```bash
service openvswitch-switch start
modprobe vfio-pci
```
通过以上操作可以在 DevStack 构建的 OpenStack 环境里完成基本的 PCI 直通准备工作。需要注意的是实际生产环境中还需要考虑更多细节比如安全性、兼容性和性能优化等方面的问题。
阅读全文