基于Proxmox平台搭建3D云教室
背景
本文介绍了在 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 云终端
1、下载安装Proxmox 7.2
2、修改中科大源,更新
替换中科大的源,更新升级系统。 目前最新的版本为 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
3、启用 IOMMU
服务器为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
4、安装DKMS 和 NVIDIA 内核驱动程序
注册 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设备会非常多。
5、部署 DoraCloud
为了验证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 即可。
6、云教室3D应用和效果测试
登录云桌面后,可以看一下NVIDIA 看一下显卡控制面板。3D 效果正常。
使用dxdiag诊断信息如下
通过教学软件,批量运行学生机上的 3Done 教学软件,效果如下。
除了3Done,其他的3D软件,也可以运行。包括 Solidworks,3D Max,Revit 等。满足日常教学,不在话下。
总结
新一轮课改中,中小学信息技术课增加了编程、3D设计、音视频编辑等软件。如scraino、3Done、Photoshop、爱剪辑等。
基于Proxmox + vGPU虚拟化的方式,可以快速的部署支持3D应用的云教室,满足新课改云教室的需求。
此外基于VDI的云教室,还具部署快捷,维护简单的特点。
基于Proxmox平台搭建3D云教室的更多相关文章
- 基于HTML5快速搭建3D机房设备面板
以真实设备为模型,搭建出设备面板,并实时获取设备运行参数,显示在设备面板上,这相比于纯数值的设备监控系统显得更加生动直观.今天我们就在HT for Web的3D技术上完成设备面板的搭建. 我们今天模拟 ...
- 通过openswan基于Azure平台搭建VPN server
用过Azure的读者都知道,Vnet一直是Azure比较自豪的地方,尤其是VPN,Azure提供了两种VPN以及专线来保证客户数据的安全性,S2S vpn(站点到站点的,基于IPsec的),P2S v ...
- 基于windows平台搭建elasticsearch
部署准备 elasticsearch-6.0.1.zip--https://www.elastic.co/downloads/elasticsearch elasticsearch-head-mast ...
- 基于windows平台搭建elasticsearch 补充
https://www.cnblogs.com/skychen1218/p/8108860.html 参考此大神写的内容,感谢感谢. 不过 好像漏掉了一块内容. 导致出现问题 连接不上的问题.后来修改 ...
- 轻松搭建Windows8云平台开发环境
原文:轻松搭建Windows8云平台开发环境 Windows Store应用是基于Windows 8操作系统的新一代Windows应用程序,其开发平台以及运行模式和以往传统平台略有不同.为了帮助更多开 ...
- SAAS云平台搭建札记: (二) Linux Ubutu下.Net Core整套运行环境的搭建
最近做的项目,由于预算有限,公司决定不采购Windows服务器,而采购基于Linux的服务器. 一般的VPS服务器,如果使用Windows系统,那么Windows Server2012\2016安装好 ...
- 超简单!基于Python搭建个人“云盘”
1. 简介 当我们想要从本地向云服务器上传文件时,比较常用的有pscp等工具,但避免不了每次上传都要写若干重复的代码,而笔者最近发现的一个基于Python的工具updog,可以帮助我们在服务器上搭建类 ...
- 基于Moodle的IT课程辅助教育平台搭建
基于Moodle的IT课程辅助教育平台搭建 Moodle是一个开源课程管理系统(CMS),也被称为学习管理系统(LMS)或虚拟学习环境(VLE).它已成为深受世界各地教育工作者喜爱的一种为学生建立网上 ...
- 基于VPN搭建混合云架构需要考虑的网络因素
Joy Qiao from MSFT Wed, Jan 21 2015 8:44 AM 很多用户在搭建混合云架构时,会使用到微软Azure虚拟网络中的 VPN功能,来实现Azure中的虚拟网络与用户 ...
随机推荐
- 用AltiumDesigner画完PCB生成gerber(光绘)文件详细说明
什么是gerber文件 Gerber文件是所有电路设计软件都可以产生的文件,在电子组装行业又称为模版文件(stencil data),在PCB制造业又称为光绘文件.可以说Ger ...
- IdentityServer4系列 | 支持数据持久化
一.前言 在前面的篇章介绍中,一些基础配置如API资源.客户端资源等数据以及使用过程中发放的令牌等操作数据,我们都是通过将操作数据和配置数据存储在内存中进行实现的,而在实际开发生产中,我们需要考虑如何 ...
- CSS: 给表格的第一列和最后一列不同的样式
table td:first-child { width:160px; height:20px; border:solid 1px Black; padding:5px; text-align:cen ...
- AMS分析 -- 启动过程
一. AMS简介 AmS可以说是Android上层系统最核心的模块之一,其主要完成管理应用进程的生命周期以及进程的Activity,Service,Broadcast和Provider等. 从系统运行 ...
- Django项目引入NPM和gulp管理前端资源
前言 之前写了一篇<Asp-Net-Core开发笔记:使用NPM和gulp管理前端静态文件>,现在又来用Django开发项目了,之前我搞了一个Django的快速开发脚手架「DjangoSt ...
- 常⽤的meta标签有哪些
meta 标签由 name 和 content 属性定义,用来描述网页文档的属性,比如网页的作者,网页描述,关键词等,除了HTTP标准固定了一些name作为大家使用的共识,开发者还可以自定义name. ...
- ELK日志保留7天-索引生命周期策略
一.简介 ELK日志我们一般都是按天存储,例如索引名为"kafkalog-2022-04-05",因为日志量所占的存储是非常大的,我们不能一直保存,而是要定期清理旧的,这里就以保留 ...
- Java实现单链表的合并(保证数据的有序性)
一.思路 1.比较两个链表的大小 2.将小链表插入到大链表中 3.使用插入保证链表数据的有序性 二.核心代码 /** * 合并两个链表,并且按照有序合并 * @param singleLinkedLi ...
- 从实例学习 Go 语言、"并发内容" 学习笔记及心得体会、Go指南
第一轮学习 golang "并发内容" 学习笔记,Go指南练习题目解析.使用学习资料 <Go-zh/tour tour>.记录我认为会比较容易忘记的知识点,进行补充,整 ...
- node.js -- 身份认证
请问昨天结束的早是对堆积在了今天吗,今天还来加个班更博,看在这个毅力的份上能否给亿点点推荐. 有个好消息有个坏消息,先说坏消息吧,就是在这么学下去我急需急支糖浆,来回顾回顾前面的知识,这几天学的太急了 ...