[爆卦]vt-d是什麼是什麼?優點缺點精華區懶人包

為什麼這篇vt-d是什麼鄉民發文收入到精華區:因為在vt-d是什麼這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者luguo (close to u)看板PC_Shopping標題[閒聊] 要組VM及VT-D,...




總覺得最近回了許多類似的文章有點煩,故在這邊一次回應掉...


1.
Virtual machine 是需求,硬體的實作基本上在 x86 分2種,第一種叫 type 1
hypervisor,第二種叫 type 2 hypervisor。


2.
先講type 2,因為我想有在玩虛擬機的應該都很熟。
其作法是直接在Host OS上架構 hyervisor,而其上的OS通常都叫它 Guest OS。

這樣做的優點在於原先架構的OS(Host)不需其他更動,就可達成虛擬化的目的,
但這麼做也帶來了缺點,由於每個Guest OS要使用硬體的功能時,就必須透過
hyervisor對Host OS做存取,此做法勢必會造成效能的損秏。


3.
至於 type 1 hypervisor 的實作方式,是在硬體上架構 hyervisor,故所有
Guest OS皆平權,由hypervisor調控系統資源

一般常見的軟體如XenServer、VMWare ESX or ESXi、微軟的Hyper-V

而重點在於,除 Unix Kernel-based Virtual Machine 這種算半熔合的type 2
以外,一般在家用級常見的OS是無法直接使用type 1這類技術的。

也就是說,除非使用 Kernel-based Virtual Machine,或利用此技術的軟體(如
Linux 下的 Virtualbox),或其他type 1 VMWare ESXi、Xen、Microsoft Hpyer
-V這類軟體作為hypervisor以外,是無法使用VT-D或IOMMU的功能的。


4.
最後來講講VT-D或IOMMU是拿來幹麼的...

由於 Guest OS 對硬體的操作,實際上是由 hypervisor 所模擬出來的虛擬硬體
接收,再由hypervisor將指令或操作轉換成相對應的指令讓硬體執行。
這一來一往不僅有效能的損秏,對於有直接存取需求的使用者也必然造成困擾。

所以device passthrough就出現了,而一般常用到的不外乎PCI passthrough。

其原理是type 1 hypervisor為Guest OS開了一扇方便之門,可由"指定的 Guest"
直接對指定的硬體進行操作,就如同直接在硬體上架構OS一般。
然而其代價也是相對的。由於這個操作具有獨佔性,所以其他的Guest OS會因此
無法同時對此硬體作操作。


舉個簡單例子,當我的PC使用 Xen 作為 type 1 hypervisor。

使用的情境有兩個 Guest OS 同時運行,取名為Guest01 與 Guest02。
此PC有兩張網卡,在此取名為 網卡1 與 網卡2。且此PC支援PCI passthrough。

若將電腦內的 網卡1 passthrough設置給 Guest01,那麼我在 Guest02 將會無
法對 網卡1 進行任何的操作。反之亦然。




總結:
VT-D 或 IOMMU 的限制相當的多,一來需特定硬體及軟體才能達成,二來是其實
用性會因passthrough而有所限制。

所以除非真的有特定需求非得使用此功能不可,否則在一般消費級的使用者所常見
的 VMWare Workstation、Virtualbox in Windows、Virtual PC 這類hypervisor
使用狀況下,若仍對於VT-D或IOMMU功能有無的抱持著執著,似乎不太合理。


因為使用這類無法用上 device passthrough 的 type 2 hypervisor 的同時,這
些功能的有無似乎也變得不重要了。

註:
1.
hypervisor翻成"程序管理器"或"虛擬機管理員"感覺很虛,所以就直接用原文了。

2.
半夜打了一篇應該沒啥人要看的東西,我是M嗎.....

--


「只有心懷悔恨的人,會恐懼死亡。」

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.228.150.241
※ 編輯: luguo 來自: 61.228.150.241 (05/26 02:06)
perchik :看完推 XD 05/26 02:08
luguo :debug: 進作任何的操作 → 進行任何的操作 05/26 02:12
applepig81 :解釋方法夠簡單,期待下一篇 05/26 02:12
jakkx :推! 05/26 02:36
revorea :推,當初為了搞懂vt-d花了好多時間google阿!! 05/26 03:16
revorea :有問題想請教,假如hypervisor不支援D3D,可是guest 05/26 03:18
revorea :OS透過passthrough取得了顯卡的直接存取權,那guest 05/26 03:19
revorea :能利用顯卡上的硬體加速嗎? 05/26 03:20
charlie20083:看電蝦長知識 推! 05/26 03:50
QuentinHu :M屬性無誤 (指) 05/26 05:01
fabled :推 05/26 09:13
NeedGem :總覺得type1很難搞... 只有一台機器似乎沒理由用1 05/26 09:46
你想得沒錯,若一般家用使用者使用type 1 hypervisor又不使用device
passthrough,那麼這個使用者將會發現他在操作上的使用體驗,並不會
因改用了type 1 hypervisor而變得更好。

s25g5d4 :type2對一般人很好用阿 雙開遊戲 跑舊程式 05/26 09:52
s25g5d4 :當沙盒 拿浮動IP 刷dropbox等等.. 05/26 09:53
s25g5d4 :(以上這些我好像都幹過...) 05/26 09:53
kikka : 05/26 10:44
qqpunpun :推~~長知識 05/26 10:46
NeedGem :以前有三五台機器的時候應該只要一台主控就好... 05/26 10:49
NeedGem :其他就統統 ESXi 掉就好了 (喂喂喂) 05/26 10:49
jack089452 :有看有推 05/26 10:50
NeedGem :hypervisor 對自己的感覺就是無法從本機端直接用機器 05/26 10:50
pikajoke :其實VMWare ESX or ESXi是OS 05/26 11:07
這個說法沒錯。但實作上我認為type 1 hypervisor 在某部份的功能是超
越一般所提及的OS的,像是對層級的管理及轉換等等;然而另一方面又由
於 type 1 hypervisor 所提供的 device passthrough,不怎麼符合一般
所謂的OS能提供的功能,為了避免誤導使用者,所以我在第二篇文章中,
才會如此說明。

impressive9 :大推! 感謝大大這麼晚提供如此詳盡的解釋! 05/26 12:11
impressive9 :看來小弟要買一般PC跑兩個Guest Linux + Oracle的話 05/26 12:11
impressive9 :根本不會用到 type1 那 VT-d 就不需要了! ^o^ 05/26 12:11
terry6503 :推,昨天剛體驗過一次ESXi的passthrough 05/26 12:53
cka :不過虛擬機器到底用來幹嘛啊 05/26 13:01
friedpig :拿來灌一些大陸的垃圾軟體還蠻好用的說= = 05/26 13:26
wch6858 :M 05/26 16:43
※ 編輯: luguo 來自: 61.228.150.241 (05/26 16:59)
s25g5d4 :突然想到一件事 某本雜誌叫電X王的曾經介紹過type1 2 05/26 17:42
s25g5d4 :虛擬機器 不過當初介紹時寫錯便成type0 1(分別對應1 05/26 17:43
s25g5d4 :2) 然後電腦X下期馬上寫出刊誤XDD 05/26 17:43
luguo :作者想說的應該是ring... 但扯太多細節會讓人聽不懂 05/26 18:04
s25g5d4 :樓上也看過那篇嘛? XD 05/26 18:07
landattack :謝謝你! 11/24 09:21
Sousake :新手爬文 推 09/04 15:20

你可能也想看看

搜尋相關網站