利用显卡的SR-IOV虚拟GPU技术,实现一台电脑当七台用
背景
虚拟桌面基础设施(VDI)技术一般部署在服务器,可以实现多个用户连接到服务器上的虚拟桌面。随着桌面计算机性能的日益提升,桌面计算机在性能在很多场景下已经非常富余,足够同时满足多个用户同时使用的需求。实际项目中,VDI很少部署在桌面计算机的硬件架构上。主要原因包括几个方面:
1)桌面计算机的CPU的吞吐能力相对服务器CPU较弱。
2)桌面计算机缺少一些冗余和可靠性设计。
3)支持显卡虚拟化的GPU一般都是数据中心级的显卡,一般不适用于桌面计算机平台。
Intel在11代CPU之后,集成显卡支持SR-IOV的vGPU技术。性能相比 GVT-g有较大的提升。 如果基于桌面计算机构建VDI系统,可以利用集成显卡的vGPU,实现支持vGPU的VDI系统。相比之下,传统的VDI方案支持vGPU,首先需要配置支持GPU虚拟化的专业GPU卡,同时还需要承担昂贵的vGPU软件许可费用。
因此本文探索基于桌面级CPU构建VDI方案,充分利用桌面CPU的集成显卡的vGPU技术,构建高性价比的支持vGPU的VDI方案。
可选方案
方案1:基于独立PC的迷你桌面云
业务需求:4核,8G内存,250G硬盘,支持vGPU
推荐配置: i5-12400,64G内存,2TB NVME,2TB SATA ,支持7个桌面。
部署方案: 虚拟化采用 Proxmox,启用集成显卡 SR-IOV,部署DoraCloud桌面云系统,支持7个带vGPU的桌面。
该方案适用于小微企业、工作室、创始团队。
方案2:基于Blade PC的集群方案
该方案采用2U6节点的刀片服务器,支持高可用集群,支持分布式存储,
业务需求:4核,8G内存,250G硬盘,支持vGPU
推荐配置: i5-12400,64G,2TB NVME,240G SSD,万兆, 共6个节点。
部署方案: 虚拟化采用 Proxmox,启用Ceph 分布式存储,启用集成显卡 SR-IOV,部署 DoraCloud桌面云系统。系统容量为 42个带vGPU的桌面。
本文选择方案1来介绍搭建过程。主机连接在局域网上。要求:局域网内有DHCP服务,并且有互联网连接。
步骤一:安装Proxmox,启用SR-IOV vGPU
12代CPU i5-12400d的主机,安装Proxmox 7.4后,执行如下命令,等待重启。
curl -o- http://vdi.doracloud.cn:9000/software/sriov01.sh |bash
然后执行如下命令,等待自动重启。
curl -o- http://vdi.doracloud.cn:9000/software/sriov02.sh |bash
最后使用 lspci |grep VGA 验证 vGPU已经启用。

步骤二:安装DoraCloud for Proxmox
DoraCloud 安装可以使用在线安装命令:
cd /var/lib/vz/dump; wget -qO- https://dl.doracloud.cn/dpinstall.pl --referer https://doracloud.cn | perl
上述命令自动下载 DoraCloud 管理系统的虚拟机。 并安装在Proxmox环境上。 DoraCloud管理系统虚拟机会通过DHCP得到一个IP地址。
如果网络中没有DHCP,也可以静态配置DoraCLoud系统的IP。具体参考DoraCloud的相关文档。
以下为安装过程的截图,共参考。

DoraCloud管理系统安装完毕后,会出现如下提示,显示 管理系统的IP地址。

打开浏览器,访问 https://192.168.1.203 ,输入账号 : admin DoraCloud ,即可进入 DoraCloud管理后台

步骤三:对DoraCloud进行初始化配置
DoraCloud的初始化配置包括:【配置虚拟化】、【配置资源池】、【配置集群】、【配置用户数据库】几个步骤。都可以根据向导完成。
配置虚拟化

配置资源池

配置集群

配置用户数据库

步骤四:下载桌面模板
接下来向导来到了【创建模板】环节。这里我们关闭向导,在模板菜单中选择在线模板库。

在【模板】【远程镜像仓库】菜单中,选择 win10LTSC2021模板,下载改模板。

根据网络下载速度,估计10-20分钟可以完成模板下载。

下载的模板中,还不含有 Intel 集成显卡的驱动。
步骤五:创建桌面池、用户
在桌面池菜单中,选择新建桌面池,参考下图。输入 桌面池、先择模板、设置桌面规格、选择GPU型号和vGPU类型。

在桌面池策略中,设置 最大创建数目、预创建数,设置绑定账号。
注意,此处的绑定账号是指 桌面模板中的 Windows 账号。 模板的缺省账号为 administrator 123456,此处的绑定账号必须与模板的账号保持一致。

配置桌面池的数据盘。

其中的 DoraCloud VMID 字段填写 Proxmox 平台中 DoraCloud 管理系统虚拟机的VMID。

选择确定,保持桌面池配置。
接下来创建用户 user01, 选择桌面池 office。

步骤六:安装DoraClient进行桌面连接
用户可以通过多种方式连接DoraCloud。包括: DoraCloud云终端、DoraOS瘦客户机软件系统、DoraClient客户端软件(for Windows、Linux)。
这里我们选择 DoraClient 客户端软件连接DoraCloud云桌面。
DoraClient下载地址:https://www.doracloud.cn/downloads/doraclient-cn.html
启动 DoraClient,设置服务器地址 192.168.1.203 。

输入用户名,密码

登陆后,系统自动分配一个桌面,并自动连接到桌面。

客户端登录云桌面后,把鼠标放到屏幕顶部,可以弹出工具栏。

为了验证 DoraCloud是否为桌面分配了vGPU,可以回到 Proxmox管理界面,查看虚拟机的属性。可以看到DoraCloud为虚拟机配置了虚拟显卡的PCI设备 0000:00:02.1 。

步骤七:安装Intel GPU的驱动,验证SR-IOV vGPU效果
由于模板中没有Intel GPU的驱动,进入windows桌面后,打开设备管理,可以看到 Microsoft基本显示适配器。带有一个感叹号,表示驱动没有正确安装。

如果Windows 10带有驱动的自动更新功能。如果顺利的化,等待一会儿再查看,可以看到系统自动安装了驱动,识别了 Intel UHD Graphics 730设备。

如果Windows 系统没有识别驱动,可以到Intel官网下载驱动。
比如: 2023-05-16日发布的驱动 Intel Graphics Driver 31.0.101.4369
文件名:gfx_win_101.4369.exe
下载地址:https://www.intel.com/content/www/us/en/download/726609
为了验证GPU效果可以访问如下一些网站:
测试网站1:http://webglsamples.org/aquarium/aquarium.html

测试网站2:https://akirodic.com/p/jellyfish/

根据Intel相关的测试报告,启用SR-IOV vGPU,测试程序1可以达到60FPS。 以下截图摘自 Intel Graphics SR-IOV的白皮书。

总结
利用12代处理器的显卡SR-IOV功能,可以轻松构建代vGPU的云桌面。利用i5-12400 CPU可以搭建支持7个带vGPU的云桌面用户。构建高性价比的VDI方案。
下图为本次测试使用的 迷你服务器。配置标压的 i5-12400 CPU。

云终端方面,可以选择朵拉云 DC20 云终端。 采用4核ARM A55 2.0Ghz 处理器。


利用显卡的SR-IOV虚拟GPU技术,实现一台电脑当七台用的更多相关文章
- 本地mysql启动之后,另外一台电脑利用数据库访问软件,连接问题
背景:在一台电脑上面安装MySQL数据库之后,利用另一台电脑访问本台电脑上面的数据,访问失败的问题 解决方法 开启 MySQL 的远程登陆帐号有两大步: 1.确定服务器上的防火墙没有阻止 3306 端 ...
- GPU和显卡是什么关系?GPU会取代CPU吗?
一.GPU是什么?与显卡是什么关系?安装在什么地方?有单独的GPU板卡吗? GPU就是图像处理芯片,外表与CPU有点相似.显卡的芯片,AMD的一个技术,相当于电脑的处理器CPU,只不过它是显卡的大 ...
- Linux虚拟网络技术学习
一个执着于技术的公众号 地方 背景 在Linux虚拟化技术中,网络层面,通常重要的三个技术分别是Network Namespace.veth pair.以及网桥或虚拟交换机技术.今天就通过实验带大家一 ...
- 虚拟IP技术
虚拟IP技术在高可用领域像数据库SQLSERVER.web服务器等场景下使用很多,很疑惑它是怎么实现的,偶然,发现了一种方式可以实现虚拟ip.它的原理在于同一个物理网卡,是可以拥有多个ip地址的,至于 ...
- 【CUDA并行程序设计系列(1)】GPU技术简介
http://www.cnblogs.com/5long/p/cuda-parallel-programming-1.html 本系列目录: [CUDA并行程序设计系列(1)]GPU技术简介 [CUD ...
- ListBox的虚拟可视化技术
在ListBox中承载大量的数据项时,可采用虚拟可视化技术来提高控件显示数据的性能.如下代码: <ListBox.ItemsPanel> <It ...
- 【荐】利用NAT、Host-Only双虚拟网卡,实现Virtual Box中CentOS5.x联网
一.虚拟机与主机互联,通常有三种方式,详细介绍请看: VMware虚拟机三种网络模式(Bridged,Nat,Host-only)区别详解 二.通过网络共享,Host-Only联网,详细案例请看: W ...
- Win7和Vista的安全机制对于应用程序读取配置文件相关操作的影响(虚拟重定向技术)
今天构造了一个新版本的XXXX软件,并且在纯净的系统下进行了较为全面的测试.测试中也发现了一些问题.其中包括在Win7测试时程序竟然在另一个目录中创建了文件夹和配置文件,并且进行相关读取操作,却并没有 ...
- 【强烈推荐】利用NAT、Host-Only双虚拟网卡,实现Virtual Box中CentOS6.3联网
问题背景: 先前都是在Virtual Box中以“网络共享”方式,让里面的Linux虚拟机Host-Only方式联网,参考如下: Virtual Box下配置Host-Only联网方式详解 但最近被公 ...
- ESXI和vSphere的安装配置-实现一台电脑硬件虚拟化为两台
本篇文章包含以下几个部分: 1EXSI软件和vSphere软件的安装 2在vSphere上安装虚拟系统 3对虚拟系统通过配置实现硬件虚拟化,实现硬件直通 1.EXSI安装 通过网上下载EXSI ISO ...
随机推荐
- kafka如何保证数据的消息不丢失(最简洁)
一.kafka 本身配置层面1.1.replication.factor 默认值1创建kafka的topic时候,每个分区设置的副本数, 根据broker数量酌情设置, 建议业界通常做法设置为3 1. ...
- Spring Boot 2.x :日志框架@Slf4j的使用和logback文件配置
为什么是SLF4J? 默认情况下,Spring Boot会用SLF4J + Logback来记录日志,并用INFO级别输出到控制台. 怎么使用SLF4J? 如果我们在一个Spring Boot 的程序 ...
- P4913【黄】
这题好像可以用线段树什么的高级做法来做,但我感觉我这个简单做法不管是时间还是空间都和那些复杂的做法差不了太多.重点是很优雅,思路非常简单,而且代码很短,用OOP思想写成的代码可读性极高,不用注释估计都 ...
- 每天学五分钟 Liunx 0011 | 服务篇:进程
1. 进程 程序放在硬盘中,在运行它的时候加载到内存,在内存里程序以进程的方式运行,进程有唯一的 ID ,叫 PID. 写个简单的 Hellow world 程序,让它产生 PID: [root@ ...
- Zookeeper 的 ZAB 协议 以及 zookeeper 与 nacos 注册中心比对
本文为博主原创,未经允许不得转载: 目录: 1. ZAB 协议 2. zookeer 节点状态 3. zookeeper 注册中心与 nacos 注册中心比较 4. zookeeper 配置注册中心 ...
- .NET静态代码织入——肉夹馍(Rougamo)发布2.2
肉夹馍(https://github.com/inversionhourglass/Rougamo)通过静态代码织入方式实现AOP的组件,其主要特点是在编译时完成AOP代码织入,相比动态代理可以减少应 ...
- [kubernetes]服务健康检查
前言 进程在运行,但是不代表应用是正常的,对此pod提供的探针可用来检测容器内的应用是否正常.k8s对pod的健康状态可以通过三类探针来检查:LivenessProbe.ReadinessProbe和 ...
- java - 数组降序输出
package array; import java.util.Arrays; /** * 降序 */ public class Reverse { public static void main(S ...
- [转帖]Python学习之十七_django的入门
Python学习之十七_django的入门 前言 Python学习了一周, 慢慢总结摸索. 自己还是有多不会的地方. 感慨这些年浪费的时间. 所有的时间都是选择大于努力. 努力最多感动自己. 生活是需 ...
- [转帖]kafka压测多维度分析实战
设置虚拟机不同的带宽来进行模拟压测 ---------kafka数据压测-------------------1.公司生产kafka集群硬盘:单台500G.共3台.日志保留7天. 1. ...