提問:我想要配置設定一塊實體網卡到用kvm建立的虛拟機上。我打算為這台虛拟機啟用網卡的pci直通。請問,我如何才能在virt-manager裡面通過pci直通方式來增加一個pci裝置到虛拟機上?
如今的hypervisor能夠高效地在多個虛拟作業系統間共享和模拟硬體資源。然而,虛拟資源共享不是總能使人滿意,甚至在虛拟機性能是重點考量時,或者是虛拟機需要硬體dma的完全控制時,應該避免共享。一項名叫“pci直通”的技術可以用在一個虛拟機需要獨享pci裝置時(例如:網卡、聲霸卡、顯示卡)。本質上,pci直通穿透了虛拟層,直接将pci裝置放到虛拟機裡,而其他虛拟機則不能通路該裝置。
如果你想要為一台hvm執行個體開啟pci直通(例如,一台kvm建立的全虛拟化的虛拟機),你的母系統(包括cpu和主機闆)必須滿足以下條件。如果你的虛拟機是半虛拟化的(由xen建立),你可以跳過這步。
在确認你的裝置支援vt-d/amd-vi後,還有兩件事情需要做。首先,確定vt-d/amd-vi已經在bios中開啟。然後,在核心啟動過程中開啟iommu。iommu服務,是由vt-d/amd-vi提供的,可以保護虛拟機通路的主機記憶體,同時它也是全虛拟化虛拟機支援pci直通的前提。
配置完啟動參數後,重新開機電腦。
<a target="_blank"></a>
我們已經完成了開啟pci直通的準備。事實上,隻需通過virt-manager就可以給虛拟機配置設定一個pci裝置。
打開virt-manager的虛拟機設定,在左邊工具欄點選‘增加硬體’按鈕。
選擇從pci裝置表一個pci裝置來配置設定,點選“完成”按鈕

最後,啟動執行個體。這樣,主機的pci裝置已經可以由虛拟機直接通路了。
在虛拟機啟動時,如果你看見下列任何一個錯誤,這個錯誤有可能由于母機vt-d (或 iommu)未開啟導緻。
<code>error starting domain: unsupported configuration: host doesn't support passthrough of host pci devices</code>
<code>error starting domain: unable to read from monitor: connection reset by peer</code>
請確定"intel_iommu=on"啟動參數已經按上文叙述開啟。
<b>原文釋出時間為:2015-06-05</b>
<b>本文來自雲栖社群合作夥伴“linux中國”</b>