◎補充1:microbenchmark測試
VT-x.tif
在此還是提供網友一些官方的測試方式,例如Intel採用microbenchmark測試虛擬機器在entry/exit時,VMX Transcation與Latency Reductions數值。由於Intel VT-x會增加一個稱為VMX Root的特權空間(privilege space),Guest OS則在VMX Non-Root,因此Guest OS不用降為Ring 1而是保留在Ring 0,與真實主機時一樣。VT-x可以輔助VM entry/exit時,在VMX間切換時所降低的效能問題,虛擬機器的運作也較穩定。
在沒有硬體輔助指令時,VMX在Root與Non-Root間切換依賴Hypervisor這一層軟體負責。此時Hypervisor監控Guest OS所發出的特權指令(透過不斷地掃瞄記憶體內容),除了攔截並發出中斷外,並做出例外處理。在高負載伺服器集中時,軟體處理可能出錯,通常這時候虛擬機器沒有任何反應,所以難以察覺例外處理是否正常進行。VT-x/Pacifica只是讓這個過程更精確地執行,使虛擬機器更穩定,相對地效能較高。
◎補充2:虛擬機器分類
Privilege Rings.tif
以下是虛擬機器的簡略分類,文章中提到的Para-virtualization與圖中的Native VM在概念上是相同的。網友可以注意到Native VM中,Guest OS在Ring 0,但在另外2種VM則是Ring 1,也就是Guest OS會降低特權階層(De-privileged)。使得Guest OS所發出的特權指令得先在VMM中轉為Ring 0,再由VMM轉到Host OS所在的Ring 0,最後才到硬體。層層轉換不僅損耗寶貴的效能,也容易出錯,這是x86虛擬化迫切解決中的問題。
文章中提到資訊安全議題,在Native VM中反而突顯其重要性。從圖中可以看到此時的VMM處於Ring O,取得VMM管理權等於掌控硬體操作,這時Guest OS的防護幾乎是虛設。
目前已知Intel提出TXT(Trusted Execution Technology),以硬體加上TPM方式提供較安全的防護,但實際產品還沒出現在市場。
◎補充3:Virtual Iron中硬體資源元件
Components.png
文章中提過,Virtual Iron所有硬體都集中成Resource Center統一管理,包括主機與儲存裝置。這些資源再細分為Virtual Data Center,其中每一部虛擬機器(Virtual Iron稱為Virtual Server)則是節點(Node)。
這種資源配置,代表虛擬機器不一定侷限在某部實體主機上。以圖中5部主機所組成的Virtual Data Center,管理員僅知道其中負載多少的虛擬機器,但每一部虛擬機器的運算資源是5部主機所共同提供的。
將硬體資源抽象化管理的優點,除了具備較佳的擴充性,在於虛擬機器可以快速地在Virtual Data Center中轉移,不用擔心硬體本身所造成的隔離。同樣地,在同一個Resource Center下,Virtual Data Center也能快速地轉移,包括其下的虛擬機器群。
缺點是備份時,造成運算資源處於高負載下,動態調整哪些虛擬機器的資源變得困難。一般在未虛擬化前,伺服器通常有多餘的運算能力,所以備份時還不至於造成服務中斷,但虛擬化後可能受到其他虛擬機器難以理解的交互作用所影響,因為所有虛擬機器共用底層硬體的資源,導致結果難以預測。
◎補充4:Virtual Storage
Virtual Storage.png
圖中簡略說明Virtual Iron的Virtual Storage階層關係,從Disk Group→Logical Disk→Virtual Hard Disk,同樣地具備較佳的擴充性與效能。