背景

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

  1. cp /etc/apt/sources.list /etc/apt/sources.list.backup
  2. sed -i 's|^deb http://ftp.debian.org|deb https://mirrors.ustc.edu.cn|g' /etc/apt/sources.list
  3. sed -i 's|^deb http://security.debian.org|deb https://mirrors.ustc.edu.cn/debian-security|g' /etc/apt/sources.list
  4.  
  5. mv /etc/apt/sources.list.d/pve-enterprise.list /etc/apt/sources.list.d/pve-enterprise.list.bak
  6. CODENAME=`cat /etc/os-release |grep PRETTY_NAME |cut -f 2 -d "(" |cut -f 1 -d ")"`
  7. echo "deb https://mirrors.ustc.edu.cn/proxmox/debian $CODENAME pve-no-subscription" > /etc/apt/sources.list.d/pve-no-subscription.list
  8.  
  9. #更新
  10. apt update && apt dist-upgrade -y

安装DKMS 依赖包


  1. #安装 DKMS 依赖包
  2. apt install pve-headers dkms -

3、启用 IOMMU

服务器为Intel 处理器,通过如下脚本启用IOMMU,如果是AMD处理器,配置有差异。

  1. # 复制如下脚本,启用IO-MMU
  2.  
  3. # /etc/default/grub 的GRUB_CMDLINE_LINUX_DEFAULT,增加 intel_iommu=on iommu=pt
  4. sed -i 's/GRUB_CMDLINE_LINUX_DEFAULT="quiet"/GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt"/g' /etc/default/grub
  5.  
  6. update-grub
  7.  
  8. # 加载 vfio vfio_iommu_type1 vfio_pci vfio_virqfd 4个Modules
  9. echo vfio >> /etc/modules
  10. echo vfio_iommu_type1 >> /etc/modules
  11. echo vfio_pci >> /etc/modules
  12. echo vfio_virqfd >> /etc/modules
  13.  
  14. echo "options vfio_iommu_type1 allow_unsafe_interrupts=1" > /etc/modprobe.d/iommu_unsafe_interrupts.conf
  15. echo "options kvm ignore_msrs=1" > /etc/modprobe.d/kvm.conf
  16. echo "blacklist nouveau" >> /etc/modprobe.d/blacklist.conf
  17.  
  18. update-initramfs -u
  19. reboot

重启后,确认 IO-MMU已经启用。

  1. root@pveserver:~# dmesg | grep -e DMAR -e IOMMU
  2. [ 0.000000] ACPI: DMAR 0x0000000079A48648 0000A8 (v01 INTEL EDK2 00000002 01000013)
  3. [ 0.000000] DMAR: IOMMU enabled
  4. [ 0.004000] DMAR: Host address width 39
  5. [ 0.004000] DMAR: DRHD base: 0x000000fed90000 flags: 0x0
  6. [ 0.004000] DMAR: dmar0: reg_base_addr fed90000 ver 1:0 cap 1c0000c40660462 ecap 19e2ff0505e
  7. [ 0.004000] DMAR: DRHD base: 0x000000fed91000 flags: 0x1
  8. [ 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功能。

  1. /usr/lib/nvidia/sriov-manage -e 0000:3F:00.0
  2. /usr/lib/nvidia/sriov-manage -e 0000:40:00.0
  3. /usr/lib/nvidia/sriov-manage -e 0000:41:00.0
  4. /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

  1. 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. 转载:介绍AD另外一种奇葩的多通道复用的方法

    原文链接:http://www.eda365.com/forum.php?_dsign=74fe4957&mod=viewthread&page=1&tid=110710 在设 ...

  2. sticker-footer 布局

    sticker-footer 1.嵌套层级不深,可直接继承自 body width:100%: height:100%; // html <body> <div id="s ...

  3. 截取url传值

    // 页面传值 subStr(url) { var obj = {}; var str = url.split('?')[1]; var str2 = str.split('&'); cons ...

  4. centOS一次性更新所有依赖库

    CentOS中使用yum一次性更新安装依赖库 [tom@localhost /]# sudo -s [root@localhost /]# LANG=C [root@localhost /]# yum ...

  5. Spring的事务控制-基于xml方式

    介绍:该程序模拟了转账操作,即Jone减少500元,tom增加500元 1.导入坐标 <dependency> <groupId>junit</groupId> & ...

  6. window升级Nginx1.10到1.12.2

    window升级Nginx较为简单,只需要修改配置文件,然后启动即可. 环境:window系统 服务器:10.123.98.92 Nginx目录:e:\hgeagle\nginx-1.10.1 旧版N ...

  7. conn username/password@servicename

    conn username/password 方式连接的时候,会碰到这样的错误问题 oracle@prd:/home/oracle/impdir$sqlplus /nolog SQL*Plus: Re ...

  8. 帝国CMS后台采集关键字的方法

    小伙伴们知道帝国CMS后台的采集功能是不能采集关键字的,那么老墨今天给大家说一个变通方法,让后台能采集关键字!方法如下: 1.系统设置--管理数据表--管理字段--增加字段(字段名:keywords字 ...

  9. linux centos 8.2 安装docker

    1 使用yum -y install docker安装后启动docker提示Failed to start docker.service: Unit docker.service not found. ...

  10. Python Json分别存入Mysql、MongoDB数据库,使用Xlwings库转成Excel表格

    将电影数据 data.json 数据通过xlwings库转换成excel表格,存入mysql,mongodb数据库中.python基础语法.xlwings库.mysql库.pymongo库.mongo ...