網絡I/O虛擬化,SR-IOV技術


1、簡介

網絡I/O虛擬化是服務器虛擬化技術的重要組成部分,在服務器虛擬化技術領域,計算虛擬化(如CPU和內存虛擬化)已經日趨成熟,但是,網絡I/O虛擬化技術的發展相對比較滯后。當前,主流的網絡I/O虛擬化技術有三種:軟件模擬、網卡直通和SR-IOV。這三種虛擬化技術在不同程度上實現了網絡I/O設備的虛擬化功能。其中,軟件模擬是通過虛擬化Hypervisor層模擬虛擬網卡,實現與物理設備完全一樣的接口,虛擬機操作系統無須修改就能直接驅動虛擬網卡,其最大的缺點是性能相對較差;網卡直通支持虛擬機繞過Hypervisor層,直接訪問物理I/O設備,具有最高的性能,但是,在同一時刻,物理I/O設備只能被一個虛擬機獨享;SR-IOV是Intel在2007年提出的解決虛擬化網絡I/O的硬件技術方案,該技術不僅能夠繼承網卡直通的高性能優勢,而且同時支持物理I/O設備的跨虛擬機共享,具有較好的應用前景。

2007年10月,PCI-SIG發布了PCI-SIG Single Root I/O Virtualization(SR-IOV)規范,其中詳細闡述了硬件供應商在多個虛擬機中如何共享單個I/O設備硬件。

圖1 硬件SR-IOV虛擬化技術原理圖

圖1 硬件SR-IOV虛擬化技術原理圖

SR-IOV引入了兩個新的功能類型:

  • PFs(Physical Functions,物理功能):物理網卡所支持的一項PCI功能,一個PF可以擴展出若干個VF。
  • VFs(Virtual Functions,虛擬功能):支持SR-IOV的物理網卡虛擬出來的實例,以一個獨立網卡的形式呈現,每個VF有獨立的PCI配置區域,並可以與其它VF共享同一個物理資源(共用同一個物理網口)。

一旦在PF中啟用了SR-IOV,就可以通過PF的總線、設備和功能編號(路由ID)訪問各個VF的PCIe配置空間。每個VF都具有一個PCIe內存空間,用於映射其寄存器集。VF設備驅動程序對寄存器集進行操作以啟用其功能,並且顯示為實際存在的PCIe設備。創建VF后,可以直接將其指定給I/O來賓域或各個應用程序。此功能使得虛擬功能可以共享物理設備,並在沒有CPU和虛擬機管理程序軟件開銷的情況下執行I/O。

由此可見,SR-IOV網卡通過將SR-IOV功能集成到物理網卡上,將單一的物理網卡虛擬成多個VF接口,每個VF接口都有單獨的虛擬PCIe通道,這些虛擬的PCIe通道共用物理網卡的PCIe通道。每個虛擬機可占用一個或多個VF接口,這樣虛擬機就可以直接訪問自己的VF接口,而不需要Hypervisor的協調干預,從而大幅提升網絡吞吐性能。
需要注意的是,SR-IOV作為一種新技術,目前仍不完善的地方:

  • 單個物理網卡支持的虛擬機個數有限制;
  • SR-IOV特性需要物理網卡硬件支持,並非所有的物理網卡都支持SR-IOV特性。

 

資源鏈接:http://www.sdnlab.com/14403.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM