本文介绍了在 Proxmox VE 虚拟化平台上使用NVIDIA A16 GPU,开启vGPU特性,利用DoraCloud 搭建3D云教室的方案。
Proxmox virtualization environment,简称PVE,是一个开源免费的基于linux的企业级虚拟化方案,功能不输专业收费的VMware。简单的说,PVE是一个基于Debian的linux系统,内置了一套虚拟机管理工具,并提供了web管理页面,让我们可以非常简单的通过网页管理虚拟机。
DoraCloud是一套多平台、一体化、分布式的桌面虚拟化方案。基于开放架构,支持多种虚拟化平台(Hyper-V,VMware,Proxmox,XenServer),多种桌面协议(RDP,PCoIP,SPICE)。采用All-in-One的设计模式和虚拟设备的部署方式。
NVIDIA A16是基于上一代的M10演进而来,配置64G显存,提供四个编码单元、八个硬解码单元,支持H.265和264的硬解码,支持vP9。在编码的带宽和路数上,A16是M10的 2倍。NVIDIA A16则主要面向vPC的应用场景。最多支持64个vGPU。

NVIDIA A16 GPU
云桌面方案已经广泛应用在学校的计算机教室项目中。 采用云桌面方案的计算机教室,具有维护简单、部署便捷、功耗低的特点的特点。不过一般由于不配置GPU,无法支持一些3D应用软件的教学,比如3D One、Vulkan等。 如果采用 NVIDIA A16 GPU,一个显卡可以支持64用户配置vGPU。一台服务器配置一个A16,即可满足一个计算机教室的3D应用软件的教学需求。
服务器: Xeon 金牌 6226R * 2,512G内存, 960G SSD,2TB HDD, NVIDIA A16-64
虚拟化软件: Proxmox VE 7.x
桌面云软件: DoraCloud V3.3
云终端: 朵拉云 DC15 云终端
替换中科大的源,更新升级系统。 目前最新的版本为 7.2.3
cp /etc/apt/sources.list /etc/apt/sources.list.backup
sed -i 's|^deb http://ftp.debian.org|deb https://mirrors.ustc.edu.cn|g' /etc/apt/sources.list
sed -i 's|^deb http://security.debian.org|deb https://mirrors.ustc.edu.cn/debian-security|g' /etc/apt/sources.list
mv /etc/apt/sources.list.d/pve-enterprise.list /etc/apt/sources.list.d/pve-enterprise.list.bak
CODENAME=`cat /etc/os-release |grep PRETTY_NAME |cut -f 2 -d "(" |cut -f 1 -d ")"`
echo "deb https://mirrors.ustc.edu.cn/proxmox/debian $CODENAME pve-no-subscription" > /etc/apt/sources.list.d/pve-no-subscription.list
#更新
apt update && apt dist-upgrade -y
安装DKMS 依赖包
#安装 DKMS 依赖包
apt install pve-headers dkms -y
服务器为Intel 处理器,通过如下脚本启用IOMMU,如果是AMD处理器,配置有差异。
# 复制如下脚本,启用IO-MMU
# /etc/default/grub 的GRUB_CMDLINE_LINUX_DEFAULT,增加 intel_iommu=on iommu=pt
sed -i 's/GRUB_CMDLINE_LINUX_DEFAULT="quiet"/GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt"/g' /etc/default/grub
update-grub
# 加载 vfio vfio_iommu_type1 vfio_pci vfio_virqfd 4个Modules
echo vfio >> /etc/modules
echo vfio_iommu_type1 >> /etc/modules
echo vfio_pci >> /etc/modules
echo vfio_virqfd >> /etc/modules
echo "options vfio_iommu_type1 allow_unsafe_interrupts=1" > /etc/modprobe.d/iommu_unsafe_interrupts.conf
echo "options kvm ignore_msrs=1" > /etc/modprobe.d/kvm.conf
echo "blacklist nouveau" >> /etc/modprobe.d/blacklist.conf
update-initramfs -u
reboot
重启后,确认 IO-MMU已经启用。
root@pveserver:~# dmesg | grep -e DMAR -e IOMMU
[ 0.000000] ACPI: DMAR 0x0000000079A48648 0000A8 (v01 INTEL EDK2 00000002 01000013)
[ 0.000000] DMAR: IOMMU enabled
[ 0.004000] DMAR: Host address width 39
[ 0.004000] DMAR: DRHD base: 0x000000fed90000 flags: 0x0
[ 0.004000] DMAR: dmar0: reg_base_addr fed90000 ver 1:0 cap 1c0000c40660462 ecap 19e2ff0505e
[ 0.004000] DMAR: DRHD base: 0x000000fed91000 flags: 0x1
[ 0.004000] DMAR: dmar1: reg_base_addr fed91000 ver 1:0 cap d2008c40660462 ecap f050da
注册 NVIDIA 测试账号,下载最新的驱动。以DKMS方式安装驱动。
chmod +x NVIDIA-Linux-x86_64-510.47.03-vgpu-kvm.run
./NVIDIA-Linux-x86_64-510.47.03-vgpu-kvm.run -dkms
驱动安装完毕后,重新加载服务,重启服务器。
systemctl daemon-reload
reboot
安装完毕后,可以通过 nvidia-smi 命令查看到 显卡状态。

需要说明的是 NVIDIA A16 属于最新的安培系列,vGPU的实现方式与之前的模式不一样。采用的是SR-IOV方式实现vGPU。
A16包括四个显卡单元。每个单元可以分别启用vGPU,并且每个单元可以配置成不同的vGPU切割方式。
为了使用A16的vGPU功能,需要先用命令激活显卡SR-IOV功能。
/usr/lib/nvidia/sriov-manage -e 0000:3F:00.0
/usr/lib/nvidia/sriov-manage -e 0000:40:00.0
/usr/lib/nvidia/sriov-manage -e 0000:41:00.0
/usr/lib/nvidia/sriov-manage -e 0000:42:00.0
A16激活后,可以通过 mdevctl types 查看到vGPU的vfio设备。
由于是新的SR-IOV模式,mdevctl types 可以看到的pci-e设备会非常多。
为了验证vGPU效果,我们在Proxmox 上部署DoraCloud。可以采用如下脚本在线安装 DoraCloud
cd /var/lib/vz/dump; wget -qO- https://dl.doracloud.cn/dpinstall.pl --referer https://doracloud.cn | perl
DoraCloud 的配置过程,可以根据配置向导进行配置。模板可以在线下载。可以很快的完成云桌面的部署。
为了让一块A16支持 60个桌面,我们把显卡 vGPU类型配置成nvidia-711 即可。

登录云桌面后,可以看一下NVIDIA 看一下显卡控制面板。3D 效果正常。

使用dxdiag诊断信息如下

通过教学软件,批量运行学生机上的 3Done 教学软件,效果如下。

除了3Done,其他的3D软件,也可以运行。包括 Solidworks,3D Max,Revit 等。满足日常教学,不在话下。
新一轮课改中,中小学信息技术课增加了编程、3D设计、音视频编辑等软件。如scraino、3Done、Photoshop、爱剪辑等。
基于Proxmox + vGPU虚拟化的方式,可以快速的部署支持3D应用的云教室,满足新课改云教室的需求。
此外基于VDI的云教室,还具部署快捷,维护简单的特点。
无论您是想搭建桌面端、WEB端或者移动端APP应用,HOOPSPlatform组件都可以为您提供弹性的3D集成架构,同时,由工业领域3D技术专家组成的HOOPS技术团队也能为您提供技术支持服务。如果您的客户期望有一种在多个平台(桌面/WEB/APP,而且某些客户端是“瘦”客户端)快速、方便地将数据接入到3D应用系统的解决方案,并且当访问数据时,在各个平台上的性能和用户体验保持一致,HOOPSPlatform将帮助您完成。利用HOOPSPlatform,您可以开发在任何环境下的3D基础应用架构。HOOPSPlatform可以帮您打造3D创新型产品,HOOPSSDK包含的技术有:快速且准确的CAD
导读:随着叮咚买菜业务的发展,不同的业务场景对数据分析提出了不同的需求,他们希望引入一款实时OLAP数据库,构建一个灵活的多维实时查询和分析的平台,统一数据的接入和查询方案,解决各业务线对数据高效实时查询和精细化运营的需求。经过调研选型,最终引入ApacheDoris作为最终的OLAP分析引擎,Doris作为核心的OLAP引擎支持复杂地分析操作、提供多维的数据视图,在叮咚买菜数十个业务场景中广泛应用。作者|叮咚买菜资深数据工程师韩青叮咚买菜创立于2017年5月,是一家专注美好食物的创业公司。叮咚买菜专注吃的事业,为满足更多人“想吃什么”而努力,通过美好食材的供应、美好滋味的开发以及美食品牌的孵
本教程将在Unity3D中混合Optitrack与数据手套的数据流,在人体运动的基础上,添加双手手指部分的运动。双手手背的角度仍由Optitrack提供,数据手套提供双手手指的角度。 01 客户端软件分别安装MotiveBody与MotionVenus并校准人体与数据手套。MotiveBodyMotionVenus数据手套使用、校准流程参照:https://gitee.com/foheart_1/foheart-h1-data-summary.git02 数据转发打开MotiveBody软件的Streaming,开始向Unity3D广播数据;MotionVenus中设置->选项选择Unit
Unity自动旋转动画1.开门需要门把手先动,门再动2.关门需要门先动,门把手再动3.中途播放过程中不可以再次进行操作觉得太复杂?查看我的文章开关门简易进阶版效果:如果这个门可以直接打开的话,就不需要放置"门把手"如果门把手还有钥匙需要旋转,那就可以把钥匙放在门把手的"门把手",理论上是可以无限套娃的可调整参数有:角度,反向,轴向,速度运行时点击Test进行测试自己写的代码比较垃圾,命名与结构比较拉,高手轻点喷,新手有类似的需求可以拿去做参考上代码usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;u
之前说过10之后的版本没有3dScan了,所以还是9.8的版本或者之前更早的版本。 3d物体扫描需要先下载扫描的APK进行扫面。首先要在手机上装一个扫描程序,扫描现实中的三维物体,然后上传高通官网,在下载成UnityPackage类型让Unity能够使用这个扫描程序可以从高通官网上进行下载,是一个安卓程序。点到Tools往下滑,找到VuforiaObjectScanner下载后解压数据线连接手机,将apk文件拷入手机安装然后刚才解压文件中的Media文件夹打开,两个PDF图打印第一张A4-ObjectScanningTarget.pdf,主要是用来辅助扫描的。好了,接下来就是扫描三维物体。将瓶
C#实现简易绘图工具一.引言实验目的:通过制作窗体应用程序(C#画图软件),熟悉基本的窗体设计过程以及控件设计,事件处理等,熟悉使用C#的winform窗体进行绘图的基本步骤,对于面向对象编程有更加深刻的体会.Tutorial任务设计一个具有基本功能的画图软件**·包括简单的新建文件,保存,重新绘图等功能**·实现一些基本图形的绘制,包括铅笔和基本形状等,学习橡皮工具的创建**·设计一个合理舒适的UI界面**注明:你可能需要先了解一些关于winform窗体应用程序绘图的基本知识,以及关于GDI+类和结构的知识二.实验环境Windows系统下的visualstudio2017C#窗体应用程序三.
需求:要创建虚拟机,就需要给他提供一个虚拟的磁盘,我们就在/opt目录下创建一个10G大小的raw格式的虚拟磁盘CentOS-7-x86_64.raw命令格式:qemu-imgcreate-f磁盘格式磁盘名称磁盘大小qemu-imgcreate-f磁盘格式-o?1.创建磁盘qemu-imgcreate-fraw/opt/CentOS-7-x86_64.raw10G执行效果#ls/opt/CentOS-7-x86_64.raw2.安装虚拟机使用virt-install命令,基于我们提供的系统镜像和虚拟磁盘来创建一个虚拟机,另外在创建虚拟机之前,提前打开vnc客户端,在创建虚拟机的时候,通过vnc
我正在寻找用于Rails的优质管理插件。似乎大多数现有的插件/gem(例如“restful_authentication”、“acts_as_authenticated”)都围绕着self注册等展开。但是,我正在寻找一种功能齐全的基于管理/管理角色的解决方案——但不是简单地附加到另一个非基于角色的解决方案。如果我找不到,我想我会自己动手......只是不想重新发明轮子。 最佳答案 RyanBates最近做了两个关于授权的railscast(注意身份验证和授权之间的区别;身份验证检查用户是否如她所说的那样,授权检查用户是否有权访问资源
关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于StackOverflow来说是偏离主题的,因为它们往往会吸引自以为是的答案和垃圾邮件。相反,describetheproblem以及迄今为止为解决该问题所做的工作。关闭9年前。Improvethisquestion是否有适用于这些的3d游戏引擎?
我正在根据Rakefile中的现有测试文件动态生成测试任务。假设您有各种以模式命名的单元测试文件test_.rb.所以我正在做的是创建一个以“测试”命名空间内的文件名命名的任务。使用下面的代码,我可以用raketest:调用所有测试require'rake/testtask'task:default=>'test:all'namespace:testdodesc"Runalltests"Rake::TestTask.new(:all)do|t|t.test_files=FileList['test_*.rb']endFileList['test_*.rb'].eachdo|task|n