[顯示卡直通]Server 2016/2019 Hyper-V顯示卡直通Win10教學及過程中會遇到的問題蒐集以及詳解-第一章DDA裝置以及準備
Hi,大家好我是遊戲主播火線兔
火線兔講廢話環節
噗!為什麼今天這麼介紹自己這呢,是因為這期虛擬化的專題的啟動是因為需要在直播的時候使用GPU編碼技術,微軟自帶的RemoteFX技術是沒有辦法實現顯示卡轉碼技術的,所以這裡需要使用顯示卡直通方案,請注意,
從這期文章開始,我們的虛擬化的技術全部是基於微軟Hyper-v的VM虛擬機器也是Windows10的!這個難度比Hyper-v顯示卡直通Linux來的難非常多!如果你技術不足的情況下,請移步Linux顯示卡直通文章,謝謝!
本文章是為了能最便宜最方便的去實現功能,甚至使用淘汰的顯示卡來達成我們的目標,所以如果你跟我說你有一個需求確實要用Grid卡什麼的,那我非常願意跟你討論技術,但是如果你只是想裝裝比過來抬槓,那我可躺下了?!
文中會出現的表述詞
- DDA=Discrete Device Assignment=顯示卡直通=GPU passthrough
- 在本文這是同一個東西,他們的關係是:
- DDA=Discrete Device Assignment>顯示卡直通=GPU passthrough
- DDA是直通的意思,可以直通很多東西包括顯示卡,所以本文中的DDA指的就是顯示卡直通,出現如上其他詞主要是為了SEO
- 宿主機
- 就是裝Hyper-v的這臺實體伺服器
顯示卡虛擬化幾大實現
首先我們先介紹下目前Hyper-v下可以使用的顯示卡共享方案
- 基於單顯示卡多VM共享的RemoteFX技術
- 基於單顯示卡多核心的NvidiaGrid技術
- 基於核心DDA
- 基於單顯示卡單核心分配的PCI技術
- 基於單PCI的DDA
- 基於多PCI的DDA
如上的內容就是目前你在Hyper-v平臺上能做到的所有顯示卡共享/直通方案的總和了!
你適合哪種技術方案?
- 如果你是一個普通使用者
- 你需要開啟多個VM,這多個VM都是Windows系統,你需要在這個Windows系統上執行一些帶有圖形性質的程式,例如Potplayer,例如OBS(一般不能很好支援),例如企鵝電競這種強制要求安裝直播客戶端的直播平臺
- VM中不需要執行顯示卡特性的使用者
- 例如GPU轉碼等
- 例如OpenCL應用
- 所有非顯示,需要顯示卡參與運算的應用例如挖礦等
- 需要使用顯示卡底層特性的使用者
- 如果你和我一樣是個主播
- 你需要執行一些圖形應用,例如直播客戶端
- 使用GPU轉碼來分離錄製推流(例如你使用高位元速率來做直播錄影,然後使用4000k-8000k的位元速率推給平臺)
- 你需要使用FFMPEG+GPU來做直播水印
- 如果你是一個礦主
- 你需要顯示卡的OpenCL特性
- 如果你是一個轉碼廠廠長
- 你需要顯示卡的h264_nvenc特性
- 如果你和我一樣是個主播
這些方案就是你選擇使用RemoteFX或者DDA技術時需要考慮的選擇方向了
當然如果你有多顯示卡的情況下,是可以兩個都做的,只不過功耗將會非常嚴重,如果你不考慮省電問題的話,建議兩個都做
技術成本(不談技術成本就是耍流氓):
這兩個技術難度都不是太高,RemoteFX毫無技術難度,裝上驅動選擇顯示卡就能用
DDA或者叫顯示卡直通的話需要使用PowerShell來輸入命令,略有難度, 出現問題的概率也比較大
歷史和應用的(廢話部分):
1.首先微軟在Server2012和Server2016上更新了一個新功能,名稱叫做RemoteFX,這個技術主要是在Hyperv中安裝Windows系統時可以直接通過微軟內建的驅動共享顯示卡,除了宿主機擁有完整的顯示卡功能以外,所有的VM僅享受顯示卡的顯示服務。
- 舉個例子,比如你在VM上執行企鵝直播助手或者虎牙主播助手等軟體的時候,這個時候你會發現CPU顯著提高了,因為這個時候是CPU在處理顯示的畫面,這將會大大的浪費CPU的資源,但是在開啟了RemoteFX的情況下,你會發現宿主機的GPU佔用提升了,VM中的CPU佔用降低到正常個位數的佔用水平,因為是RemoteFX發揮了顯示卡的顯示特性(僅僅是顯示特性)
2.接著微軟在Server2016上試水了DDA,並且在Server2019的時候取消了RemoteFX(我當時裝了Server2019後才發現RemoteFX沒了),其實倒是沒有取消,只是遮蔽掉了,通過讀了很多國外的帖子,大致瞭解到,因為很多客戶覺得這個功能太好用了,所以微軟在Server2019上砍掉了
- 在Server2019上開啟RemoteFX的方法比DDA還難,反正微軟也放棄了
3.微軟NV和AMD的窒息操作並未停止,通過EULA阻止了NV和AMD的Consumer 驅動在Server平臺上的安裝,你可以試試,Nvidia驅動會提示系統版本不受支援,AMD驅動會直接提示找不到合適的GPU,這也就引出了今天本文討論的GPU PassThrough技術
4.如果你是用這樣的單路平臺(這個是我的超微X9SRL-F主機板),那麼在早期的Server2016版本上是可以安裝GT740以下的驅動的,如果你是雙路主機板,恭喜,暴死!
DDA要解決什麼問題?
這段非常重要,我們為什麼要用DDA,如上文所述,如果你僅僅是在Windows10或者Linux這樣的Consumer作業系統上安裝顯示卡的驅動,那自然是沒有任何問題,但是如果你打算在WindowsServer中安裝顯示卡驅動,受限於顯示卡廠商的驅動限制,**你沒有任何成功安裝顯示卡高階特性的可能性!**這句話通俗的說就是比如你用AMD的卡你確實可以通過安裝15.7版本的驅動來解決Winserver中沒有驅動可以用的問題,但是這都是治標不治本的方法!即使你安裝上了驅動,你也沒有辦法使用Nvidia的NVENC或者AMD的VCE轉碼引擎,這張顯示卡只能當成RemoteFX顯示卡來用,功能大大受限!
但是如果將這塊顯示卡繫結給虛擬機器使用,那麼虛擬機器就可以完全使用這張顯示卡的高階特性,這樣做的好處就是省錢!省錢!省錢!省錢!你可以直接買一張GTX750或者750ti來代替Quadro M2000或者使用一張GTX1050來替代Quadro P600,你最少能省下一半的錢!那為什麼不呢?
我知道解決這些問題就是一張Quardo/Tesla卡的事情,不過你要是做技術的,給自己也是這麼個答案……那……35歲前真的應該轉行了哥/姐/阿姨/叔叔!
GPU Passthrough裝置準備:
平臺告知:
首先兔子的平臺是一個雙路主機板,是來自超微的X9DRD-4DNF
圖中裝的顯示卡是AMD的R7 240顯示卡,也是AMD還一直有提供驅動的顯示卡,但是:
請大家特別注意一下,顯示卡直通不要使用AMD顯示卡!!!能成功但很容易當機!!!
請大家特別注意一下,顯示卡直通不要使用AMD顯示卡!!!能成功但很容易當機!!!
請大家特別注意一下,顯示卡直通不要使用AMD顯示卡!!!能成功但很容易當機!!!
關於當機:
在你做了DDA之後,會不定期的在重啟VM的時候導致宿主機出現當機的情況,
1.AMD顯示卡尤其是!在安裝了AMD的驅動後,幾乎每次或者每2次重啟VM都會導致宿主機藍屏重啟(server2016好像是黑屏二維碼)
2.NV的話大概每6-8次就會有一次,不固定
關於DDA顯示卡選擇:
1.只要是NV的卡就行,不要太新的,上限是GTX2080ti(3080ti後面製作驅動的時候可能會不支援,請務必主題)
2.我用的是GTX750,是來自Maxwell一代的顯示卡,使用GM107核心,使用這個核心也就限制了我們無法使用HEVC轉碼,不過我這個用來轉碼直播用的,H264就行,如果大家想要做HEVC轉碼,請使用GTX1050系的顯示卡,目前的話GTX1050是轉碼卡里面比較實惠的
關於顯示卡電力支援
如果你伺服器和我一樣是自己用的,那麼節電是你必須要考慮的,顯示卡直通的話因為顯示卡是給VM使用的,所以相關的省電配置在VM中完成即可,另外,如果使用NV顯示卡,儘量使用刷BIOS控制頻率的方法,這樣可以大大避免由於軟體所帶來的的不穩定
另外儘量不要選擇外接電源的顯示卡,這樣的顯示卡TDP一般都是70w以上的,說句老實話如果你的轉碼佇列沒有那麼多,真的沒有必要!!!因為大多數顯示卡開始轉碼的時候,功率就全開了,耗電量太嚴重了,沒有必要的!大多數時候一張顯示卡全功率的情況下可以開啟14條標清轉碼佇列了,GTX750可以開啟17條(驅動破解後)
好的那麼第一課的內容就到此結束了,預先準備好裝置可以有效的避免我們在後期可能遇到的問題,如果大家有什麼想討論的,可以本文討論,可以訪問http://tuuz.cn,參與討論
我是主播火線兔,敬請期待下一章
相關文章
- PVE容器直通顯示卡教程
- Ubuntu上安裝KVM並配置顯示卡直通Ubuntu
- PYTORCH安裝過程以及遇到的問題PyTorch
- 虛擬化中裝置直通的實現
- 無線路由器撥號過程中可能會遇到的問題以及解決方法路由器
- Android開發過程中遇到的問題以及解決辦法 how toAndroid
- Mysql安裝過程中遇到的問題及解決辦法MySql
- elk(單機)安裝過程中遇到的問題及解決方法
- 安裝pygame和pip的問題以及過程GAM
- STATSPACK安裝過程中遇到的問題
- 學習vue過程中遇到的問題Vue
- Oracle 11gR1 RAC安裝過程中遇到的問題:OCR裝置大小的問題Oracle
- 安裝vCenter6.0遇到的問題以及解決方法
- 你遇到過的相容性問題以及解決辦法
- 記一次wordpress安裝過程中遇到的問題及解決辦法
- win10怎麼檢視電腦的顯示卡 win10裝置管理器看顯示卡Win10
- 近兩天學習使用 Homestead 過程中遇到的問題及解決方法
- Oracle 11gR1 RAC安裝過程中遇到的問題:OCR裝置的許可權問題Oracle
- 【DATAGUARD 學習】學習DATAGUARD 過程中遇到的問題
- 關於ubuntu安裝中過程遇到問題Ubuntu
- 專業顯示卡和遊戲顯示卡的區別詳解 專業顯示卡和遊戲顯示卡哪個好?遊戲
- Oracle 11gR1 RAC安裝過程中遇到的問題:網路卡的裝置名Oracle
- 爬蟲過程中遇到的問題爬蟲
- myeclipse2017破解過程以及遇到的破解失敗的問題Eclipse
- 安裝gcc過程中遇到相互依賴的問題GC
- 使用CoordinatorLayout過程中遇到的兩個問題以及淺析CoordinatorLayout工作機制
- PVE 直通 硬碟硬碟
- Win10電腦解除安裝顯示卡驅動及重灌顯示卡驅動的方法教程Win10
- 部署專案遇到的mysql問題以及解決方法MySql
- 【Laravel】Laravel5遇到的問題以及解決方案Laravel
- win10怎麼檢查顯示卡是否有問題_win10怎麼看顯示卡是不是有問題Win10
- oracle 11.2.0.4 DataGuard Broker配置過程中可能遇到的問題及解決方法Oracle
- oracle 10g R2 安裝過程遇到的問題及解決方法Oracle 10g
- RIDE匯入AutoItLibrary的安裝以及遇到的問題IDE
- Hadoop之hive安裝過程以及執行常見問題HadoopHive
- 死鎖問題排查過程-間隙鎖的復現以及解決
- SQL Server 2016升級遷移過程中效能問題解決案例SQLServer
- Oracle RAC之--安裝過程中碰到的問題及解決方法Oracle