作者: luguo (close to u) 看板: PC_Shopping
標題: [閒聊] 要組VM及VT-D, IOMMU功能的麻煩先看一下
時間: Sat May 26 02:01:29 2012



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


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

arrow
arrow
    全站熱搜

    健康新聞 發表在 痞客邦 留言(0) 人氣()