Enabling VT-d in Proxmox to a Solaris guest

churnd

Active Member
Aug 11, 2013
43
2
28
I have a VMware environment that I use as an all-in-one with a Solaris guest providing storage to the VMware host. This is possible because I can pass through the PCI JBOD controller to the Solaris VM so it will see all the physical disks. It's not an uncommon setup & you can see how I've written about it here & here.

However, I'm getting tired of VMware & it's management bloat. It's not ideal for a small homelab. I want to convert to Proxmox, but I need to figure out the passthrough step.

This is what I've seen: http://www.linux-kvm.org/page/How_to_assign_devices_with_VT-d_in_KVM

Does this still apply to Proxmox? I'm unclear about which steps I'd need to take. I'd need to recompile the kernel?? Hopefully I'd just be able to do steps 4 & down, but wanted to be sure before blowing away my VMware install:


  • Load the PCI Stub Driver if it is compiled as a module
modprobe pci_stub

  • lspci -n
  • locate the entry for device 01:00.0 and note down the vendor & device ID 8086:10b9
...
01:00.0 0200: 8086:10b9 (rev 06)
...

  • echo "8086 10b9" > /sys/bus/pci/drivers/pci-stub/new_id
  • echo 0000:01:00.0 > /sys/bus/pci/devices/0000:01:00.0/driver/unbind
  • echo 0000:01:00.0 > /sys/bus/pci/drivers/pci-stub/bind
5. load KVM modules:

  • modprobe kvm
  • modprobe kvm-intel
6. assign device:

  • /usr/local/bin/qemu-system-x86_64 -m 512 -boot c -net none -hda /root/ia32e_rhel5u1.img -device pci-assign,host=01:00.0
 
The module pci-stub does not get loaded automaticly. Bevore not loading it manualy a VM with pci-passthrough (hostpci0) fails to start. At least in my setup which was originally from proxmox 3.0 iso installer.

Can one confirm this behavior?

Axel
 
The module pci-stub does not get loaded automaticly. Bevore not loading it manualy a VM with pci-passthrough (hostpci0) fails to start. At least in my setup which was originally from proxmox 3.0 iso installer.

Can one confirm this behavior?

Axel

I am seeing this same issue. Definitely would like to get to the bottom of it as PCI pass-threw is very important for our setup. I don't seem to have pci_stub module which can be loaded. The only way I can get pci passthrew working is to manually add it after the VM boots with the following command "device_add pci-assign,host=86:00.0,id=hba1"

root@vaultprox2:~# modprobe pci_stub
FATAL: Module pci_stub not found.

root@vaultprox2:~# modinfo pci_stub
ERROR: modinfo: could not find module pci_stub


root@vaultprox2:~# pveversion -v
pve-manager: 2.3-13 (pve-manager/2.3/7946f1f1)
running kernel: 2.6.32-19-pve
proxmox-ve-2.6.32: 2.3-96
pve-kernel-2.6.32-19-pve: 2.6.32-96
pve-kernel-2.6.32-18-pve: 2.6.32-88
lvm2: 2.02.95-1pve2
clvm: 2.02.95-1pve2
corosync-pve: 1.4.4-4
openais-pve: 1.1.4-2
libqb: 0.10.1-2
redhat-cluster-pve: 3.1.93-2
resource-agents-pve: 3.9.2-3
fence-agents-pve: 3.1.9-1
pve-cluster: 1.0-36
qemu-server: 2.3-20
pve-firmware: 1.0-21
libpve-common-perl: 1.0-49
libpve-access-control: 1.0-26
libpve-storage-perl: 2.3-7
vncterm: 1.0-4
vzctl: 4.0-1pve2
vzprocps: 2.0.11-2
vzquota: 3.1-1
pve-qemu-kvm: 1.4-10
ksm-control-daemon: 1.1-1
 
Last edited: