KVM網(wǎng)卡虛擬化除了全虛擬化、Virtio外翩概,還可以利用網(wǎng)卡PCI透傳技術(shù)凫岖,SR-IOV技術(shù)江咳,提供更高性能的虛擬化網(wǎng)卡。
PCI透傳
前面介紹的虛擬化技術(shù)本質(zhì)上都是共享設(shè)備哥放,帶來的代價就是性能的降低歼指,在追求性能的場景中并不適用。設(shè)備透傳技術(shù)提供了虛擬機(jī)獨(dú)占設(shè)備的方法甥雕,這在網(wǎng)卡PCI Passthrough可以將物理網(wǎng)卡直接交給虛擬機(jī)使用踩身。虛擬機(jī)獨(dú)占網(wǎng)卡,使用性能接近物理網(wǎng)卡社露。
設(shè)備透傳需要硬件支持挟阻,Intel 和 AMD 都在它們的新一代處理器架構(gòu)中提供對設(shè)備透傳的支持(以及輔助管理程序的新指令)。Intel 將這種支持稱為 Virtualization Technology for Directed I/O (VT-d)峭弟,而 AMD 稱之為 I/O Memory Management Unit (IOMMU)附鸽。不管是哪種情況,新的 CPU 都提供將 PCI 物理地址映射到客戶虛擬系統(tǒng)的方法瞒瘸。
因?yàn)镻CI透傳虛機(jī)要獨(dú)占網(wǎng)卡坷备,所以對宿主的網(wǎng)卡數(shù)也是有要求的。同時設(shè)備透傳在虛機(jī)熱遷移時還會遇到問題挨务。
SR-IOV
SR-IOV全稱Single-Root I/O Virtualization击你,是一個將PCI-E設(shè)備共享給虛擬機(jī)的使用方案,多用在網(wǎng)絡(luò)設(shè)備谎柄。SR-IOV從硬件上繞過系統(tǒng)和虛擬化層丁侄,使每個虛機(jī)能有單獨(dú)的內(nèi)存地址、中斷朝巫、DMA流鸿摇。
通過 SR-IOV,一個 PCIe 設(shè)備不僅可以導(dǎo)出多個 PCI 物理功能劈猿,還可以導(dǎo)出共享該 I/O 設(shè)備上的資源的一組虛擬功能拙吉。潮孽。在這個模型中,不需要任何透傳筷黔,因?yàn)樘摂M化在終端設(shè)備上發(fā)生往史,從而允許管理程序簡單地將虛擬功能映射到 VM 上以實(shí)現(xiàn)本機(jī)設(shè)備性能和隔離安全。
SR-IOV有兩個功能模型:
Physical Functions(PFs):擁有權(quán)功能PCI-E功能佛舱,擁有配置管理SR-IOV
Virtual Function (VFs):輕量PCI-E功能椎例,包含數(shù)據(jù)傳輸必要的資源
參考
https://www.ibm.com/developerworks/cn/linux/l-pci-passthrough/
《深度實(shí)踐KVM》