PC 一機變多機 虛擬化應用詳解 (上)

| Ringo | 14-04-2017 12:00 | |
PC 一機變多機  虛擬化應用詳解 (上)

相信大對 Virtualization (虛擬化) 不陌生,除了伺服器平台外,家用處理器、主機板均已全面支援,而且相關軟件愈出愈多,可見 Virtualization 是電腦發展的一大趨勢。簡單來說,Virtualization 技術是將電腦內各硬件資源如:處理器、記憶體、硬碟、輸入 / 輸出裝置等重新分配,令一部電腦能在單一硬體下安裝多個作業系統 (Operating System),並可同時運作,彼此不會出現衝突問題。

運作原理

一部電腦可分為 2 個層面:硬件層 (Hardware Layer) 及軟件層 (Software Layer)。前者包括:處理器、主機板、記憶體、輸入輸出等實體裝置;後者則為作業系統及應用軟件。在一般情況下,作業系統需擁有完整硬件管理權才正常運作,因此在同一電腦系統內只允許一個作業系統運作。Virtualization 是在硬件層及軟件層之間加入虛擬機器管理器 (Virtual Machine Monitor;VMM),對現有的實體硬件資源進行管理及分享,並為作業系統提供一套完整模擬系統 (Virtual Machine;VM),讓作業系統以為擁有硬件管理權並正常地運作,其實當作業系統對硬件下達指令時,先交由 VMM 統一管理,才傳送至硬件層。VMM 可同時建立多個 VM,供用家在各 VM 內安裝不同作業系統,各 VM 內的作業系統可同時間運作,而且不會出現資源衝突問題。

PC 一機變多機  虛擬化應用詳解 (上)
Virtualization 在硬件層及軟件層之間加入 VMM 層作硬件資源管理及分享。

VMX 專用指令

針對 Virtualization,處理器廠商研發出一套專用指命集 —— Virtual Machine Extensions (簡稱 VMX)。VMX 為處理器加入 10 個進行虛擬化時的指令,包括︰VMPTRLD、VMPTRST、VMCLEAR、VMREAD、VMWRITE、VMCALL、VMLAUCH、VMRESUME、VMXOFF 及 VMXON。虛擬環境下設有 2 種模式:Root 與 Non-Root。在 Root 模式可全面使用處理器資源,所以一般只有 VMM 軟件能以 Root 模式運作。至於 VM 內的作業系統 (Guest OS),則需以 Non-Root 模式運作,即每次耗用處理器資源時,皆需由 Root 模式的 VMM 分配。由於各處理器的指令及回應均由 VMM 處理才傳回至相關的 VM,難免會出現延遲令效能下降。VMX 指令作用是當 VM 啟動時,直接以 VMXON 與 VMLAUNCH 通知處理器預留資源,配合 VMREAD 與 VMWRITE 讀寫資料,以及採用 VMRESUME 與 VMOFF 關閉 VM。雖然這些指令同樣經過 VMM 層,但由於每個指令已匯入相關 VM 的 ID,分流工作完全在處理器內進行,故 VMM 只是進行簡單的轉送,令延遲減少而提升效率。

PC 一機變多機  虛擬化應用詳解 (上)
處理器內的 VMX 專用指令,令 Virtualization 執行更有效率。

VM 數目限制

相信不少用家均有疑問,究竟同一部電腦可以建立多少個 Virtual Machines?其實大部分 VMM 軟件不設 VM 數目上限,因為 VMM 可同時處理各 VM 的硬體及資源要求,進行排序及分流,同時執行數十、甚至上百個 VM ,理論上是沒有問題。不過,當 VM 數目太多,各 VM 可分得的處理器、記憶體等資源亦有限,會令運作效率大幅降低,甚至出現「定格」等問題。

PC 一機變多機  虛擬化應用詳解 (上)
建立多個 VM 作不同用途,藉此提升保安程度。

Source:ezone.hk

Page 1 of 9