
我有一台有 2 個網卡的伺服器
01:00.0 乙太網路控制器:Intel Corporation 乙太網路控制器 10-Gigabit X540-AT2(rev 01) 01:00.1 乙太網路控制器:Intel Corporation 乙太網路控制器 10-Gigabit X540-AT2(rev 01)
我想將這 2 個 NIC 設備指派給來賓(ubuntu 伺服器 14.04),我正在關注此主題本主題:如何在 KVM 中指派帶有 VT-d 的設備 所以我做了它所說的:
- 修改內核配置:
make menuconfig 將「匯流排選項(PCI 等)」->「支援 DMA 重新映射裝置」設定為「將“總線選項(PCI 等)”->“啟用 DMA 重新映射設備”設定為“將“總線選項(PCI 等)”->“PCI Stub 驅動程式”設定為“*”以儲存並重建內核
我的dmesg | grep -e DMAR -e IOMMU顯示:
[0.000000]ACPI:DMAR 00000000ddfaabc8 000078(v01 INTEL SNB 00000001 INTL 0000001)[0.000000]Intel-IOMMU:已啟用版本[0.01078 cap >c9008020660262 ecap f010da [0.018860] IOAPIC id 2下DRHD base 0xfed90000 IOMMU 0 [1.610427] DMAR:未找到ATSR [1.610449] IOMMU 0 0xfed90000:使用佇列失效[1.610451] IOMMU:設定RMRR:[1.610460:000451. [ 0xdde16000 - 0xdde32fff] [ 1.610478] IOMMU:設定裝置 0000:00:1a.0 >[0xdde16000 - 0xdde32fff] [ 1.610487] IOMMU:160 單元0000:00 :1f.0 [0x0 - 0xffffff]
- 我還透過將 intel_iommu=on 參數附加到 /boot/grub/grub.conf 檔案中核心行的 kernel 行來啟動核心中的 Intel VT-d
- 將 BIOS 上的 VT-d 設定為啟用
將網路卡與主機核心驅動程式解除綁定:
迴聲「8086 10b9」> /sys/bus/pci/drivers/pci-stub/new_id迴聲0000:01:00.0>/sys/bus/pci/devices/0000:01:00.0/driver/unbind迴聲0000:01: 00.0 > /sys/bus/pci/drivers/pci-stub/bind
我用 lspci -k 驗證了解除綁定:驅動程式是 pci_stub
當我在來賓虛擬機器的 XML 檔案中新增以下行時,出現錯誤
設備 01:00.0 已在使用中
XML 新增
hostdev mode='subsystem' type='pci' Managed='yes' 來源位址domain='0x0000' bus='0x01' slot='0x00' function='0x0'/ /source /hostdev