一、基础概念
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文章
5336浏览量
120232 -
BIOS
+关注
关注
5文章
469浏览量
45685 -
虚拟机
+关注
关注
1文章
914浏览量
28160 -
PCIe接口
+关注
关注
0文章
120浏览量
9702 -
vfs
+关注
关注
0文章
14浏览量
5255
发布评论请先 登录
相关推荐
评论