隨著數(shù)字貨幣的價(jià)格走高,顯卡在挖礦需求的推動下價(jià)格日益走高。那么有沒有辦法讓現(xiàn)有的圖形工作站虛擬化,供多個人使用呢?一方面實(shí)現(xiàn)資源共享,降低成本,另一方面也可以實(shí)現(xiàn)信息安全和保密需求。桌面云和GPU虛擬化技術(shù)為使實(shí)現(xiàn)工作站虛擬化成為可能。
本文介紹了使用Proxmox + DoraCloud 實(shí)現(xiàn) Dell T3640工作站虛擬化的過程。經(jīng)過改造的工作站,可以支持8個虛擬桌面,每個虛擬桌面可以分配到1G顯存的vGPU。
T3640配置為: i7-10700,64G內(nèi)存,1TB NVME,Tesla P4-8G 顯卡
Proxmox virtualization environment,簡稱PVE,是一個開源免費(fèi)的基于linux的企業(yè)級虛擬化方案,功能不輸專業(yè)收費(fèi)的VMware。簡單的說,PVE是一個基于Debian的linux系統(tǒng),內(nèi)置了一套虛擬機(jī)管理工具,并提供了web管理頁面,讓我們可以非常簡單的通過網(wǎng)頁管理虛擬機(jī)。
DoraCloud是一套多平臺、一體化、分布式的桌面虛擬化方案。基于開放架構(gòu),支持多種虛擬化平臺(Hyper-V,VMware,Proxmox,XenServer),多種桌面協(xié)議(RDP,PCoIP,SPICE)。采用All-in-One的設(shè)計(jì)模式和虛擬設(shè)備的部署方式。
NVIDIA Tesla P4單精度運(yùn)算能力將達(dá)到5.5FLOPS,每秒可進(jìn)行22萬億次計(jì)算,其擁有2560個流處理器,搭配8GB GDDR5顯存。
本文描述在服務(wù)器上部署 Proxmox、DoraCloud,并創(chuàng)建帶有vGPU的虛擬桌面的過程。
1、下載安裝Proxmox 7.1.2
推薦中科大( USTC)的源下載 ISO,然后使用 rufus 制作 啟動U盤。?
https://mirrors.ustc.edu.cn/proxmox/iso/
2、修改中科大源,更新
替換中科大的源,更新升級系統(tǒng)。?
cp /etc/apt/sources.list /etc/apt/sources.list.backupsed -i's|^deb http://ftp.debian.org|deb https://mirrors.ustc.edu.cn|g'/etc/apt/sources.listsed -i's|^deb http://security.debian.org|deb https://mirrors.ustc.edu.cn/debian-security|g'/etc/apt/sources.listmv /etc/apt/sources.list.d/pve-enterprise.list /etc/apt/sources.list.d/pve-enterprise.list.bakCODENAME=`cat /etc/os-release|grep PRETTY_NAME|cut -f2-d"("|cut -f1-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
服務(wù)器為Intel 處理器,通過如下腳本啟用IOMMU,如果是AMD處理器,配置有差異。
# 復(fù)制如下腳本,啟用IO-MMU# /etc/default/grub 的GRUB_CMDLINE_LINUX_DEFAULT,增加 intel_iommu=on iommu=ptsed -i 's/GRUB_CMDLINE_LINUX_DEFAULT="quiet"/GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt"/g' /etc/default/grubupdate-grub# 加載 vfio vfio_iommu_type1 vfio_pci vfio_virqfd 4個Modulesecho vfio >> /etc/modulesecho vfio_iommu_type1 >> /etc/modulesecho vfio_pci >> /etc/modulesecho vfio_virqfd >> /etc/modulesecho "options vfio_iommu_type1 allow_unsafe_interrupts=1" > /etc/modprobe.d/iommu_unsafe_interrupts.confecho "options kvm ignore_msrs=1" > /etc/modprobe.d/kvm.confecho "blacklist nouveau" >> /etc/modprobe.d/blacklist.confupdate-initramfs -ureboot
執(zhí)行完畢腳本,會自動重啟服務(wù)器,然后查看日志,確認(rèn) IOMMU已經(jīng)啟用。
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 內(nèi)核驅(qū)動程序
#下載nvidia 驅(qū)動wgethttp://www1.deskpool.com:9000/software/NVIDIA-Linux-x86_64-470.82-vgpu-kvm.runchmod+x NVIDIA-Linux-x86_64-470.82-vgpu-kvm.run
#安裝驅(qū)動
./NVIDIA-Linux-x86_64-470.82-vgpu-kvm.run -dkms
NVIDIA 驅(qū)動安裝成功后,運(yùn)行如下命令,重啟Proxmox 服務(wù)器。
systemctl daemon-reload
reboot
系統(tǒng)啟動后,檢查日志,確認(rèn) vgpu 驅(qū)動已經(jīng)啟動。? 可以看到不同類型的vGPU?,后續(xù)計(jì)劃為桌面配置的vGPU TYPE為 0x3f(十進(jìn)制63),型號為P4-1Q
root@pveserver:~# cat /var/log/syslog |grep P4
Nov 22 21:29:17 pveserver nvidia-vgpud: VGPU Type 0x47: GRID P4-1B Class: NVS
Nov 22 21:29:17 pveserver nvidia-vgpud: VGPU Type 0x3f: GRID P4-1Q Class: Quadro
Nov 22 21:29:17 pveserver nvidia-vgpud: VGPU Type 0x40: GRID P4-2Q Class: Quadro
Nov 22 21:29:17 pveserver nvidia-vgpud: VGPU Type 0x41: GRID P4-4Q Class: Quadro
Nov 22 21:29:17 pveserver nvidia-vgpud: VGPU Type 0x42: GRID P4-8Q Class: Quadro
Nov 22 21:29:17 pveserver nvidia-vgpud: VGPU Type 0x43: GRID P4-1A Class: NVS
Nov 22 21:29:17 pveserver nvidia-vgpud: VGPU Type 0x44: GRID P4-2A Class: NVS
Nov 22 21:29:17 pveserver nvidia-vgpud: VGPU Type 0x45: GRID P4-4A Class: NVS
Nov 22 21:29:17 pveserver nvidia-vgpud: VGPU Type 0x46: GRID P4-8A Class: NVS
Nov 22 21:29:17 pveserver nvidia-vgpud: VGPU Type 0x9d: GRID P4-2B Class: NVS
Nov 22 21:29:17 pveserver nvidia-vgpud: VGPU Type 0xd6: GRID P4-2B4 Class: NVS
Nov 22 21:29:17 pveserver nvidia-vgpud: VGPU Type 0xf3: GRID P4-1B4 Class: NVS
Nov 22 21:29:17 pveserver nvidia-vgpud: VGPU Type 0x121: GRID P4-8C Class: Compute
Nov 22 21:29:17 pveserver nvidia-vgpud: VGPU Type 0x120: GRID P4-4C Class: Compute
5、部署 DoraCloud
為了驗(yàn)證vGPU效果,我們在Proxmox 上部署DoraCloud??梢圆捎萌缦履_本在線安裝 DoraCloud
cd /var/lib/vz/dump; wget -qO- https://dl.doracloud.cn/dpinstall.pl --referer https://doracloud.cn | perl
重啟完畢后,然后瀏覽器登錄 DoraCloud 管理后臺,輸入 賬號? admin? DoraCloud,登錄后臺。

根據(jù)配置向?qū)?,完成DoraCloud的初始化配置。





接下來,我們下載支持vGPU的桌面模板。 win10LTSC2019GPU。

??然后創(chuàng)建桌面池,選擇 win10LTSC2019GPU這個模板。 GPU型號選擇 NVIDIA P4,vGPU類型選擇 GRID P4-1Q

?配置桌面池內(nèi)創(chuàng)建4個桌面。然后設(shè)置桌面池的綁定賬號為 administrator? 123456 。這樣賬號是windows7x64模板的Windows 賬號。
啟用綁定賬號后,終端可以識別這個綁定賬號,登陸桌面windows。

?桌面創(chuàng)建完畢后,可以在PVE中查看桌面虛擬的硬件配置,確認(rèn)桌面虛擬機(jī)正常配置了 PCI device。

?接下來回到DoraCloud管理后臺,添加用戶,為用戶分配桌面池。

6、登錄桌面,驗(yàn)證vGPU效果
DoraCloud有多種登錄方式,我們選擇網(wǎng)頁登錄DoraCloud,輸入用戶賬號? user01,密碼123456。 然后打開一個 RDP 文件,輸入管理員賬號 administrator? 123456,即可登錄 windows 桌面。

?進(jìn)入桌面后,通過dxdiag,查看系統(tǒng)的顯卡,顯示為 NVIDIA GRID P4-1Q。

接下來,可以進(jìn)行3D性能的測試了。 推薦兩個在線測試的網(wǎng)站。
基于WebGL的水母? ? https://akirodic.com/p/jellyfish/
基于WebGL的網(wǎng)頁游戲 https://www.crazygames.com/

