intel 虛擬化 VT-d VT-x VT-c 有什么區別,各是什么意思,有什么作用
簡單描述理解 VT-d VT-x VT-c
VT-d 英文全程為 Virtualization Technology for Directed I/O
其中 VT 是 Virtualization Technology 的縮寫,d代表Directed
VT-d 的 Intel 官方中文名稱是 定向 I/O 虛擬化技術 ,這個技術就是俗稱的虛擬化直通技術,就是允許宿主機將某些硬件資源(比如硬盤、顯卡、網卡)的管轄權直接移交給虛擬機,此時宿主機將不能再使用此硬件,虛擬機會以直通獨占的方式使用它們,這種直通的技術帶來的好處就是,虛擬機中使用該硬件的性能損耗是極小的, 改善了 I/O 設備在虛擬化環境中的性能並且隔離更加徹底提高了系統的安全性
VT-x 其實就是 Intel Virtualization Technology
至於為什么后邊有個 x 呢?
是因為英特爾在起名字的時候,將x86平台上的VT技術,稱之為VT-x;在Itanium平台上的VT技術,稱之為VT-i。
VT-x 是 Intel CPU 的硬件虛擬化技術,提供內存以及虛擬機的硬件隔離,這也是平常我們想在 intel 平台上做虛擬化最基本需要支持的技術。
VT-x不僅需要處理器的支持,也需要主板、BOIS的支持
VT-c 英文全程為 Virtualization Technology for Connectivity
VT-c 主要是針對提高網絡 I/O 提供的虛擬化技術,它可以在一個物理網卡上,建立針對虛擬機的設備隊列,最大限度的提高 I/O 吞吐率。
我看網上文章千篇一律的都只是官方的介紹一下 VMDq 和 VMDc ,甚至搞不清 VT-d 和 VT-c 到底有什么區別
其實這個很簡單
一個數據包的處理,傳統方式是由虛擬機管理系統(CPU處理)來分配這個數據包到底給到哪台虛擬機,現在是由網卡的硬件直接來處理,所以減少了處理延遲,提高了效率
和 VT-d 有什么區別?
VT-d 是可以將一個物理網卡直通給一個虛擬機。現在的 VT-c 就很厲害了,可以將一個物理網卡分成十份,分別直通給10個虛擬機,並且這十份都是隔離互不影響的,注意,這里我用了直通兩個字,也就是分割成十份這個操作是不經過虛擬機管理系統的(也就是不經過CPU),所以 I/O 性能很高,並且減少CPU的負載
- 虛擬化分軟件虛擬化和硬件虛擬化,沒有VT-x也能虛擬化,很老的機器都可以跑VMWare,因為使用了軟件虛擬化的方式,不過運行效率肯定沒有硬件虛擬化的高;
- 硬件虛擬化分兩種:CPU層和IO層/芯片層,在Intel平台上,CPU層的虛擬化技術叫VT-x,IO層/芯片層叫VT-d;
- 一個CPU/一套平台可以同時支持VT-x和VTd,或者都不支持,或者只支持VT-x,決不可能只支持VT-d;
- 現階段英特爾SNB/IVB平台都能保證支持VT-x;
- AMD的虛擬化技術叫AMD-v;
- 硬件虛擬化需軟件支持,例如微軟的Hyper-V;
- 現在主流的處理器基本都支持VT-x;
對VT-x和VT-d的簡單介紹
VT-x:
原理:CPU運行有Ring0 ~ Ring3,一些底層操作必須Ring0。如果沒有VT-x,虛擬機軟件只能到Ring1,那么有些內核級別的東西就必須靠軟件模擬,而效率降低。 有了VT-x,相當於多出來一套虛擬機的Ring0 ~ Ring3,這樣在虛擬機內的內核請求和虛擬機外的就等於性質上/效率上沒有差別了,從而提高效率。
用途:提高虛擬機效率,讓虛擬機沒有CPU性能的短板(當然還是受限於你CPU本身的能力)。另外,在32位系統上要跑64位虛擬機的話,也必須要VT-x支持。
VT-d:
原理:是一種基於North Bridge北橋芯片(或者按照較新的說法:MCH)的硬件輔助虛擬化技術,通過在北橋中內置提供DMA虛擬化和IRQ虛擬化硬件,實現了新型的I/O虛 擬化方式,Intel VT-d能夠在虛擬環境中大大地提升 I/O 的可靠性、靈活性與性能。
用途:運用VT-d技術,虛擬機得以使用直接I/O設備分配方式或者I/O設備共享方式來代替傳統的設備模擬/額外設備接口方式,從而大大提升了虛擬化的I/O性能,讓虛擬機性能更接近於真實主機。
原文鏈接:https://www.landui.com/help/show-4705.html
作者:Feng
參考文章:
1. 《intel 虛擬化 VT-d VT-x VT-c 有什么區別,各是什么意思,有什么作用》https://www.d3tt.com/view/111