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。 實現資源的靈活調配。