背景

本文介绍了在 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

推荐中科大( USTC)的源下载 ISO,然后使用 rufus 制作 启动U盘。 
https://mirrors.ustc.edu.cn/proxmox/iso/

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云教室的更多相关文章

  1. 基于HTML5快速搭建3D机房设备面板

    以真实设备为模型,搭建出设备面板,并实时获取设备运行参数,显示在设备面板上,这相比于纯数值的设备监控系统显得更加生动直观.今天我们就在HT for Web的3D技术上完成设备面板的搭建. 我们今天模拟 ...

  2. 通过openswan基于Azure平台搭建VPN server

    用过Azure的读者都知道,Vnet一直是Azure比较自豪的地方,尤其是VPN,Azure提供了两种VPN以及专线来保证客户数据的安全性,S2S vpn(站点到站点的,基于IPsec的),P2S v ...

  3. 基于windows平台搭建elasticsearch

    部署准备 elasticsearch-6.0.1.zip--https://www.elastic.co/downloads/elasticsearch elasticsearch-head-mast ...

  4. 基于windows平台搭建elasticsearch 补充

    https://www.cnblogs.com/skychen1218/p/8108860.html 参考此大神写的内容,感谢感谢. 不过 好像漏掉了一块内容. 导致出现问题 连接不上的问题.后来修改 ...

  5. 轻松搭建Windows8云平台开发环境

    原文:轻松搭建Windows8云平台开发环境 Windows Store应用是基于Windows 8操作系统的新一代Windows应用程序,其开发平台以及运行模式和以往传统平台略有不同.为了帮助更多开 ...

  6. SAAS云平台搭建札记: (二) Linux Ubutu下.Net Core整套运行环境的搭建

    最近做的项目,由于预算有限,公司决定不采购Windows服务器,而采购基于Linux的服务器. 一般的VPS服务器,如果使用Windows系统,那么Windows Server2012\2016安装好 ...

  7. 超简单!基于Python搭建个人“云盘”

    1. 简介 当我们想要从本地向云服务器上传文件时,比较常用的有pscp等工具,但避免不了每次上传都要写若干重复的代码,而笔者最近发现的一个基于Python的工具updog,可以帮助我们在服务器上搭建类 ...

  8. 基于Moodle的IT课程辅助教育平台搭建

    基于Moodle的IT课程辅助教育平台搭建 Moodle是一个开源课程管理系统(CMS),也被称为学习管理系统(LMS)或虚拟学习环境(VLE).它已成为深受世界各地教育工作者喜爱的一种为学生建立网上 ...

  9. 基于VPN搭建混合云架构需要考虑的网络因素

     Joy Qiao from MSFT Wed, Jan 21 2015 8:44 AM 很多用户在搭建混合云架构时,会使用到微软Azure虚拟网络中的 VPN功能,来实现Azure中的虚拟网络与用户 ...

随机推荐

  1. 【前端小技巧】利用border画三角形及梯形

    border是围绕元素内容和内边距的一条或多条线,border 属性允许你规定元素边框的样式.宽度和颜色 值: border-width 粗细 none/hidden/solid/dashed/dot ...

  2. H5复制粘贴双端适配的解决方案(终极版)

    前言 最终适配所有机型的方案基于clipboardjs官网https://clipboardjs.com/ 这个库由几个不同的CDN提供商托管.选择你最喜欢的:) jsDelivr <scrip ...

  3. java中请给出一个return this的例子。

    [新手可忽略不影响继续学习]下面例子中setYear中的return this;返回了一个指向对象的指针,this.setMonth(8).setDay(20);是合法的,如果像原来的例子一样什么都不 ...

  4. pytest-mark 参数化

    在类前或用例前用pytest.mark.parametrize ,可进行参数化 传参方式比较灵活,有很多种,下面是列出的几种方式,其他的可自行研究 @pytest.mark.parametrize(& ...

  5. 论文解读(MLGCL)《Multi-Level Graph Contrastive Learning》

    论文信息 论文标题:Structural and Semantic Contrastive Learning for Self-supervised Node Representation Learn ...

  6. el-tree小知识点

    <el-tree ref="tree" :props="props" :data="initData" node-key=" ...

  7. CentOS8 AnolisOS8 yum安装 No match for argument: htop Error: Unable to find a match: htop

    这里写自定义目录标题 CentOS8 AnolisOS8 yum安装失败 安装失败原因 阿里云官方镜像主页 正确的操作步骤 学习交流 My Blog 技术交流 CentOS8 AnolisOS8 yu ...

  8. Objective-C 基础教程第九章,内存管理

    目录 Object-C 基础教程第九章,内存管理 前言: 对象生命周期 引用计数 RetainCount1项目例子 对象所有权 访问方法中的保留和释放 自动释放 所有对象放入池中 自动释放池的销毁时间 ...

  9. Dapr 远程调试之 Nocalhost

    虽然Visual studio .Visual studio code 都支持debug甚至远程debug ,Dapr 搭配Bridge to Kubernetes 支持在计算机上调试 Dapr 应用 ...

  10. Linux下安装并使用jumpserver跳板机

    堡垒机介绍: 官方网站:https://www.jumpserver.org/ 在一个特定网络环境下,为了保障网络和数据不受外界入侵和破坏,而运用各种技术手段实时收集和监控网络环境中每一个组成部分的系 ...