一、基礎概念
SR-IOV全稱為Single Root I/O Virtualization(單根輸入/輸出虛擬化),是一種硬件加速的虛擬化技術,它允許多個虛擬機同時訪問物理設備,從而提高虛擬機的性能和可靠性。
SR-IOV技術是通過將單個物理設備劃分為多個虛擬設備或虛擬端口(即一張物理網卡虛擬化成多個虛擬網卡給虛擬機(VM)用),為每個虛擬機提供獨立的物理通道 。
這樣,每個虛擬機可以直接訪問獨立的虛擬設備或虛擬端口,而無需在主機操作系統和虛擬化層之間進行上下文切換。
SR-IOV中有兩個PCIe的function types:
1)物理功能 (Physical Function, PF):用于支持 SR-IOV 功能的 PCI 功能,每個PF都可以被物理主機發現和管理。PF 包含 SR-IOV 功能結構,用于管理 SR-IOV 功能。 PF 擁有完全配置資源,可以用于配置或控制 PCIe 設備 。進一步講,借助物理主機上的PF驅動可以直接訪問PF所有資源,并對所有VF并進行配置,比如:設置VF數量,并對其進行全局啟動或停止。
2)虛擬功能 (Virtual Function, VF): PF虛擬出來的功能,VF 是一種輕量級 PCIe 功能,僅允許擁有用于其自身行為的配置資源 。一個或者多個VF共享一個PF,其驅動裝在虛擬機上,當VF分配給虛擬機以后,虛擬機就能像使用普通PCIe設備一樣初始化和配置VF。 如果PF代表的是一張物理網卡,那么VF則是一個虛擬機可以看見和使用的虛擬網卡 。
每個 SR-IOV 設備都可有一個物理功能 (Physical Function, PF),并且每個 PF 最多可有 64,000 個與其關聯的虛擬功能 (Virtual Function, VF)。
PF 可以通過寄存器創建 VF,這些寄存器設計有專用于此目的的屬性。只要在 PF 中啟用了 SR-IOV,就可以通過 PF 的總線、設備和功能編號(路由 ID)訪問各個 VF 的 PCI 配置空間。
每個 VF 都具有一個 PCI 內存空間,用于映射其寄存器集。VF 設備驅動程序對寄存器集進行操作以啟用其功能,并且顯示為實際存在的 PCI 設備。
創建 VF 后,可以直接將其指定給 IO 或各個應用程序(如裸機平臺上的 Oracle Solaris Zones)。
此功能使得虛擬功能可以共享物理設備,并在沒有 CPU 和虛擬機管理程序軟件開銷的情況下執行 I/O,即可跳過中間的虛擬化堆棧(即VMM層),以達到近乎于純物理環境的性能。
二、SR-IOV技術的優缺點及應用場景
SR-IOV的缺點:
1.高性能:SR-IOV技術可以降低虛擬機與物理設備之間的通信延遲,提高虛擬機的性能和響應速度。
2.簡化管理:SR-IOV技術可以使虛擬機直接訪問物理設備,從而簡化了虛擬化環境的管理。
3.提高可靠性:SR-IOV技術可以將物理設備的錯誤隔離到虛擬機級別,從而提高了系統的可靠性。
4.提高安全性:SR-IOV技術將物理設備劃分成多個虛擬設備,可以使不同虛擬機之間的數據傳輸更加安全。
SR-IOV的缺點: 使用了VFs的虛擬機不能在線遷移。
應用場景: SR-IOV技術在云計算、虛擬化、服務器應用等領域得到了廣泛應用。在云計算數據中心中,SR-IOV技術可以提高虛擬機的網絡和存儲性能,允許靈活的分配和管理資源,從而降低了資源消耗和成本。在服務器應用中,SR-IOV技術可以支持高密度虛擬化、高性能計算和大規模分布式存儲。
三、如何實現SR-IOV功能?
前提首先SR-IOV需要軟硬都支持才行:
1)一臺支持SR-IOV的主機或服務器(主板),SR-IOV功能在BIOS中已開啟;
2)一塊支持SR-IOV且能安裝于上述設備的網卡。
步驟如下:確認測試的設備在BIOS打開VT-D及SRIOV支持選項;進入ESXi硬件配置頁面,找到我們需要進行配置的SR-IOV網卡;兩個網口,配置某一個網口為SR-IOV口。并設置虛擬VF的數量;保存配置之后,重新啟動ESXi,就可以看到硬件上出現對應的虛擬網卡設備。這樣子我們就完成了SR-IOV配置。
-
寄存器
+關注
關注
31文章
5343瀏覽量
120366 -
BIOS
+關注
關注
5文章
469瀏覽量
45702 -
虛擬機
+關注
關注
1文章
917瀏覽量
28196 -
PCIe接口
+關注
關注
0文章
120瀏覽量
9706 -
vfs
+關注
關注
0文章
14瀏覽量
5258
發布評論請先 登錄
相關推薦
評論