kvm虛擬化之硬件輔助IO虛擬化之SR-IOV

(文章來自作者維護的社區微信公衆號【虛擬化雲計算】)
(目前有兩個微信羣《kvm虛擬化》和《openstack》,掃描二維碼點擊“雲-交流”,進羣交流提問)
SR-IOV是什麼,它和virtio、Device assignment的IO虛擬化的技術有什麼區別,本文中將會解答。
 
SR-IOV簡介
SR-IOV(PCI-SIG Single Root I/O Virtualization and Sharing)是PCI-SIG組織發佈的規範。
設計PCI-SIG SR-IOV 規範的目的是:通過爲虛擬機提供獨立的內存地址、中斷和DMA流而避免VMM的介入。SR-IOV允許一個PCI設備提供多個VFs。VMM將一個或者多個 VF 分配給一個虛機。一個VF同時只能被分配一個虛機。而虛擬機感知不到這個網卡是被VF的還是普通的物理網卡。
 
SR-IOV引入了兩個PCIe的function types
PFs:包括管理SR-IOV功能在內的所有PCIe function。
VFs:一部分輕量級的PCIe function,只能進行必要的數據操作和配置。
 
SR-IOV工作流程中有三個角色
1.PCIe的SR-IOV機制:提供獨立可配置的多個VFs,每一個VFs具有獨立的PCIe配置空間。
2.VMM:則把VFs分配給虛擬機。
3.VT-x和VT-d:通過硬件輔助技術提供和虛擬機之間的直接DMA數據映射傳輸,跳過VMM的干預。
 
SR-IOV原理
下面一幅圖描述了SR-IOV的原理(來自intel《PCI-SIG SR-IOV Prime》):
 
SR-IOV的優缺點
SR-IOV相對與軟件模擬IO虛擬化的優點:
1.降低了IO延遲和對CPU的佔用,獲得了接近原生的IO性能,因爲虛擬機直接使用VFs,沒有了VMM的陷入處理。
2.數據更加安全,因爲每個VF屬於一個IOMMU Group,共享IOMMU Group的設備不能分配給不同的虛擬機,而每個IOMMU Group又有獨立的內存。
 
SR-IOV相對與Device assignment的優點:
沒有了一個PCI設備只能給一個虛擬機的尷尬,SR-IOV下多個虛擬機可通過獨佔VFs的方式共享一個PCI設備。
 
SR-IOV的缺點:
使用了VFs的虛擬機不能在線遷移。
 
注:在SR-IOV的實踐過程中需要注意PCI的ACS等特性。
 
 
============================================================
關注微信公衆號【虛擬化雲計算】,閱讀更多虛擬化雲計算知識,純技術乾貨更新不停。
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
發佈了43 篇原創文章 · 獲贊 83 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章