PCI Passthrough

From Proxmox VE
Revision as of 16:17, 18 November 2013 by Term (talk | contribs)
Jump to navigation Jump to search

To enable PCI passthrough, you need to configure:

INTEL


edit:

#vi /etc/default/grub

change

GRUB_CMDLINE_LINUX_DEFAULT="quiet"

to

GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on"

then

# update-grub
# reboot


Then run "dmesg | grep -e DMAR -e IOMMU" from the command line.  If there is no output, then something is wrong.

AMD

Edit:

# vi /etc/default/grub

Change:

GRUB_CMDLINE_LINUX_DEFAULT="quiet"

To:

GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on"

Then:

# update-grub
# echo "options kvm allow_unsafe_assigned_interrupts=1" > /etc/modprobe.d/kvm_iommu_map_guest.conf 
# reboot


Determine your PCI card address, and configure your VM

Locate your card using "lspci".  The address should be in the form of: 04:00.0

Manually edit the node.conf file.  It can be located at: /etc/pve/nodes/proxmox3/qemu-server/vmnumber.conf.

Add this line to the end of the file: "hostpci0: 04:00.0"


Verify Operation

Start the VM from the UI.

Enter the qm monitor.  "qm monitor vmnumber"

Verify that your card is listed here: "info pci"

Then install drivers on your guest OS.  


NOTE: Card support might be limited to 2 or 3 devices.

NOTE: This process will remove the card from the proxmox host OS.  

Editorial Note: Using PCI passthrough to present drives direct to a ZFS (FreeNAS, Openfiler, OmniOS) virtual machine is dangerous on many levels and is not recommended for production use. Specific FreeNAS warnings can be found here: http://forums.freenas.org/threads/absolutely-must-virtualize-freenas-a-guide-to-not-completely-losing-your-data.12714/