DoraCloud搭建8卡GPU云桌面环境
1 介绍
ContextCapture 是 Bentley Systems 开发的一款专业摄影测量软件,用于从照片和激光扫描点云生成高精度的 3D 模型。它特别适合用于地理信息系统 (GIS)、工程、建筑、考古、以及城市规划等领域。
项目在一台8卡的GPU服务器部署DoraCloud云桌面系统,搭建用于ContextCapture的云桌面环境。支持8个带GPU的桌面,满足8个设计人员独立工作。 也可以作为一个ContextCapture的集群,完成大规模的建模工作。
2 硬件配置
项目采用8卡GPU服务器。配置为:
处理器:AMD EPYC 7443 24核 * 2
内 存:64GB * 8
硬 盘:4TB NVME + 16TB HDD * 6
GPU: NVIDIA 4070TI * 8
网 卡:I350-T4,X520-2
电 源:4个2000瓦电源
机 箱:4U机箱
3 软件部署
服务器的软件部署分为几个步骤:
- 部署 Proxmox VE 8.2 的虚拟化环境。
- 部署 DoraCloud 桌面虚拟化系统。
- 在桌面模板中,部署ContextCapture软件。
3.1 部署Proxmox VE 8.2
Proxmox 8.x 开始,支持 Resource Mapping 特性,可以对PCI设备统一管理。因此选用最新的Proxmox VE 8.2版本。
3.1.1 Proxmox的配置规划
1、Proxmox安装后,默认的存储为Local-lvm,为了提升效率,需要改造成文件存储。
2、6个16TB的硬盘,通过ZFS管理,配置为RAID10方式。
3、创建Resource Mapping,将8个NVIDIA 4070TI添加进去。
3.1.2 改造Local-lvm为目录存储
PVE安装在4TB的 NVME硬盘上。 默认安装后, Local占用100GB,剩下的被分区为Local-lvm。
Local-lvm的IO效率比较低。我们使用如下脚本,将Local-lvm改造成xfs存储。
脚本:将Local-LVM改造成基于XFS的目录存储
pvesh delete /storage/local-lvm
umount /dev/pve/data
lvremove /dev/pve/data -y
vgdisplay pve | grep Free | awk '{print "lvcreate -l " $5 " -n data pve -y"}' |bash
mkfs.xfs /dev/pve/data
mkdir /mnt/data
mount /dev/pve/data /mnt/data
echo "/dev/pve/data /mnt/data xfs defaults 0 0" >> /etc/fstab
pvesm add dir data --path=/mnt/data
3.1.3 使用ZFS管理6个HDD
在Proxmox管理后台,选择创建ZFS,选中6个硬盘。选择raid10模式。
点击查看代码
root@GPUserver01:~# zpool status
pool: zfs
state: ONLINE
config:
NAME STATE READ WRITE CKSUM
zfs ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
ata-WDC_WUH721816ALE6L4_2CG62V3N ONLINE 0 0 0
ata-WDC_WUH721816ALE6L4_2CJB0HAP ONLINE 0 0 0
mirror-1 ONLINE 0 0 0
ata-WDC_WUH721816ALE6L4_2CKPE6TJ ONLINE 0 0 0
ata-WDC_WUH721816ALE6L4_2BHUP1BN ONLINE 0 0 0
mirror-2 ONLINE 0 0 0
ata-WDC_WUH721816ALE6L4_2CJ78JTN ONLINE 0 0 0
ata-WDC_WUH721816ALE6L4_2CJD0T1L ONLINE 0 0 0
3.1.4 为GPU创建Resource Mapping
Resource Mapping 换个说法,就是PCI设备的资源池。在Proxmox上创建 Resouce Mapping后,每个虚拟机只需要配置 Resource Mapping的ID,Proxmox就会自动根据Resource Mapping的定义,从资源池选择合适的PCI设备分配个虚拟机。实现了直通GPU设备的池化管理。
3.2 部署DoraCloud云桌面
3.2.1 在线安装DoraCloud
DoraCloud可以通过一键安装脚本。
cd /var/lib/vz/dump; wget -qO- https://dl.doracloud.cn/dpinstall.pl --referer https://doracloud.cn | perl
3.2.2 DoraCloud的基础配置
DoraCloud安装后,进入后台(账号 admin,密码 DoraCloud),会启动一个配置向导。 根据向导即可完成 虚拟化、资源池、集群、用户数据库的配置。
具体可以参考DoraCloud的部署教程 https://docs.doracloud.cn/getting-started/proxmox
3.2.3 DoraCloud配置模板和桌面池
DoraCloud提供了模板的在线下载功能。 选择模板:win10ltscv5 。
下载完毕后,复制模板,然后模板制作向导中,向模板内添加软件。 包括NVIDIA 显卡驱动、一些常见的办公软件。
添加完毕软件后,根据向导保存模板。
说明一下,编辑模板时,创建的临时虚拟机是没有GPU的。 需要通过Proxmox VE的管理后台,为这个临时的虚拟机添加GPU。 添加一个 PCI 设备。设备内容填写 mapping=GPUPool,pcie=1 即可。 这样这个临时的虚拟机就有了直通的GPU设备。
创建桌面池环节,为桌面池配置GPU。GPU型号选择 GPUPool,vGPU类型选择 Passthrough。
由于ResourceMapping中有8个GPU,桌面池的大小也设置为8。
桌面池创建后,再创建群组和用户,既完成云桌面的配置。
3.3 部署ContextCapture
在DoraCloud云桌面部署后,可以在桌面模板中添加 ContextCapture 软件。
ContextCapture的部署,比较专业,请参考相关的文档。
4 方案的应用和总结
项目向用户交付了8个带4070TI GPU的桌面。设计人员可以在自己的电脑上安装DoraClient,通过DoraClient客户端软件接入到云桌面进行设计。
这样一台服务器即可满足8个设计时的日常设计工作。由于设计资料集中保存的服务器,避免了资料泄密和丢失的风险。
云桌面也允许用户远程访问桌面,实现出差、回家时,仍然可以访问云桌面进行工作,提高了工作效率和资源利用率。
此外方案还具有弹性和灵活性。比如遇到重大设计任务,客户可以将8个桌面配置成CentextCapture,共同完成一个大的计算任务。 另外系统也可以灵活分配资源。比如可以创建4个桌面,每个桌面2个GPU。 实现资源的灵活调配。