基于libvirt创建vGPU实例

目录

一、什么是vGPU?

二、为什么需要vGPU?

三、架构及原理

四、Libvirt创建vGPU虚机

1、物理环境准备,服务器接入pGPU物理卡

2、升级最新kernel、libvirt、qemu

3、服务器部署vgpu-kvm驱动

4、mdev设备的创建

5、mdev设备删除

6、libvirt vGPU实例创建

7、搭建NVIDIA License Server(linux)


一、什么是vGPU?

vGPU,即虚拟GPU,是基于GPU的虚拟化技术,提供了在云服务器上搭载虚拟GPU的能力。

通过GPU虚拟化,多个虚机可以共享使用同一个物理GPU,可以降低成本、提升可扩展性。

 

二、为什么需要vGPU?

1、价格低

对用户来说,物理GPU价格偏高,针对GPU使用率不高的应用场景,选择vGPU更合适。

2、提高利用率

在云计算应用场景下,虚拟机需要使用vGPU实现VDI、循环计算等应用,出于成本考虑,一般不会让每个虚机都分配一个GPU硬件,此时就需要对GPU卡进行分片,即vGPU在hypervisor层实现GPU的虚拟化

3、应用场景灵活

vGPU可以针对不同类型的物理GPU卡,划分不同类型的粒度切割,根据应用场景选择不同类型不同粒度的vGPU卡,例如Tesla-T4、Tesla-V100分别适用于不同的场景。

 

三、架构及原理

 

四、Libvirt创建vGPU虚机

1、物理环境准备,服务器接入pGPU物理卡

BIOS开启vt-d(Internel I/O虚拟化技术);

配置raid,部署计算节点iso(基于CentOS7)

2、升级最新kernel、libvirt、qemu

1)systemd禁用ksm、ksmtuned

KSM(Kernel Samepage Merging)内核中的一种内存共享机制,2.6.32引入,允许系统通过合并相同内存页面,减少冗余。

2)kernel开启iommu

修改 /etc/default/grub, 在"GRUB_CMDLINE_LINUX ”选项中添加"intel_iommu=on iommu=pt"

重启服务器后,/sys/kernel/iommu_groups/目录不为空

3)reload driver

修改 /etc/default/grub  , 在"GRUB_CMDLINE_LINUX ”选项的末尾添加“rdloaddriver=mlx5_core rdloaddriver=i40e rdloaddriver=ixgbe”

4)重新生成grub.cfg

grub2-mkconfig -o /boot/grub2/grub.cfg

5)设置内存大页

6)vfio相关驱动加载

在/etc/rc.local中初始化加载相关模块,或者直接执行以下命令生效:

modprobe vfio_pci

modprobe vfio_mdev

扩展:

mdev.ko是mdev core模块,包括了mdev的绝大多数核心功能。该模块在Device Model中定义了一种新的Bus即mdev总线,而vfio_mdev.ko则是定义了mdev总线上的一种Driver,用来实现和VFIO的对接,换句话说就是起到和vfio-pci驱动相同的作用。

7)重启使内核生效

验证是否生效的方法(现象顺序依赖):
物理机识别NVIDIA设备;
vifo设备正常加载;
iommu_groups目录不为空;
virsh命令可看到mdev设备

[root@compute-gpu vgpufile]# lspci | grep 3D 
3d:00.0 3D controller: NVIDIA Corporation Device 1eb8 (rev a1)
3e:00.0 3D controller: NVIDIA Corporation Device 1eb8 (rev a1)
40:00.0 3D controller: NVIDIA Corporation Device 1eb8 (rev a1)
41:00.0 3D controller: NVIDIA Corporation Device 1eb8 (rev a1)
b1:00.0 3D controller: NVIDIA Corporation Device 1eb8 (rev a1)
b2:00.0 3D controller: NVIDIA Corporation Device 1eb8 (rev a1)
b4:00.0 3D controller: NVIDIA Corporation Device 1eb8 (rev a1)
b5:00.0 3D controller: NVIDIA Corporation Devic
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值