VMware 算是最早將虛擬化(Virtualization)商品化的一家公司,所以他的產品的成熟度相對的比較好.但是價錢相對的高.它成立在 1998 年不過最近被硬體大廠 EMC 所併購.所以現在的 EMC 產品都會搭配 Vmware 做一個整合解決方案.VMware 名稱由來是 1.VM(Virtual Machine:虛擬機器) + 2.ware (software:軟體) 而來的.VMware 的官方網站連結如下:
http://www.vmware.com/download/
大多的產品都可以下載試用,不過也因為產品太多很多人一開始都搞不清楚他們適合用哪一類的產品.在一開始先來說明 VMware 主要的產品線:
最主要的 VMWare 的產品分成兩類,
1. Full Virtualization 使用的是 – Binary Translation (VMware ESX(i) Server )
也正因為 Intel CPU 架構的關係,不少的 CPU 指令必須執行在 Ring 0 底下,而傳統的作業系統核心也必須放在 Ring 0 讓他們能直接存取硬體.所以一開始的虛擬化幾乎不能在 X86的系統上使用.但是 VMware 使用了一種方式讓虛擬化能夠執行在 X86 的系統上.他們使用一種稱為 Binary Translation 加上 direct execution 的方式,所謂的 Binary translation 就是將原本要執行不能虛擬化的指令(nonvirtualizable instructions)VMM 會轉換成另一種語法,然後再交由 VMM 去執行.就像是 Guest OS 要將資料寫入硬碟中,但是其實 Guest OS 的硬碟可能只是硬碟中的一塊磁碟區塊(partition)或是檔案(Loop file),所以 VMM 會把他的請求轉換成另一種方式再來向硬體提出要求.而不再是用原本的指令去執行了.至於 direct execution 是一般性的指令不需要在 Ring0 才能執行就直接可以向硬體提出請求.
這樣的缺點是會造成效率的低落,但好處是虛擬出來的作業系統(Guest OS)並不知道有 VMM 的存在,他會以為自己擁有整個機器,而且虛擬出來的作業系統(Guest OS)也不需要修改核心去配合 VMM.加上 VMM 會去虛擬整個機器包括了虛擬化的 BIOS,devices 和 memory的管理,.而且每一個虛擬出來的作業系統(Guest OS)都是獨立而且安全性高不會受到其他虛擬出來的作業系統(Guest OS)影響.這一類的本身就是一個作業系統,需要切割 partitaion 安裝在邏輯的硬碟上.
2. Application-Level Virtualization (VMWare Server / workstation /Fusion)
還有一種是 Application-Level Virtualization 他是架構在其他作業系統(windows / Linux / MAC)上的,它的架構很簡單,它只是一個作業系統下的一個應用程式,優點是它不需要 Intel VT(Virtualization Technolegy)註1 或是額外的硬體來支援,但相對的缺點就是他的效能相對的不佳.它提供一個全虛擬化的架構虛擬出來的作業系統幾乎都可以包括,像是 Windows, Linux ,Netware 都有支援,如果你沒有特別的需求可以考慮這一類的虛擬化方式.它像是其他虛擬化的環境為每個虛擬出來的 Guest OS 提供了獨立不受其他的 Guest OS 影響的獨立環境,但整體是你的最原始的作業系統沒有被破壞.做出來的 Guest OS 還可以輕易的移到不同的機台下繼續使用.
至於效率當然是第一種 VMWare ESX(i) Server 會比第二種 (VMWare Server/ workstation) 來的好.其中的 VMWare Server 和 VMware ESXi 版本是可以免費下載來使用的. 這 ESXi 相當於 ESX 的精簡版,他並不需要 VT 等的技術就能讓你 Linux , Windows 一手抓.心動了吧!!到下面的網站就可以下載了.
http://www.vmware.com/download/esxi/
當然免費的不能跟要錢的相比,你可以參考官方的網站列出這兩個產品(ESX 和 ESXi)的不同
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd…
通常在桌機 Desktop 或是筆記型電腦 Laptop,都會選擇 VMware Server 來使用,即可以在 Windows 下面使用 Linux ,又不用像是以前需要安裝兩套作業系統(Windows + Linux)在電腦上,如果需要 Linux 只要點選 VMware Server 就可以直接使用 Linux 的功能,不須重新開關機到另一個作業系統上.但是如果是要用在公司想將多台 Server 同時放在一台比較強而有力主機 Server 上,那 VMware EXS(i) 會是你唯一的選擇,你可以在這一台主機 Server 同時安裝 windows 或是 Linux…讓這一台主機 Server 發揮它最大的效能.
註1:
首先要先介紹一個東西 "Ring", 在 Intel 的 CPU 系統運行下可以區分成 Ring 0,Ring 1,Ring 2 和 Ring 3. Ring 0 擁有最高的權限,通常是由系統核心才會有 Ring0 的權限,Ring 0 可以直接和硬體溝通讀取 IO,CPU,Memory,其次是 Ring 1,以此類推.一般 Kernel,driver 會存在 Ring 0.一般 AP Ring 3,採取這種方式的優點是一般運行的程式沒有辦法直接與硬體溝通,所以不會有像 Window95 時一樣的狀況發生,一個程式就能把整個系統 Crash 掉.
在沒有 VT 的時代 Xen 的 VMM(Hybervisor) 是直接載入在 Ring 0 裡面,Dom0 的 kernel 則是被放在 Ring1(Dom0 是第一個在 Xen 底下運行的虛擬機器).後來產生出的 DomU 也是存放在 Ring1(需為 Para-Virtualized).不過一般的 AP 還是運行在 Ring 3.
後來有了 VT 這一項技術.VMM(Virtual Machine Monitor) 和Guest OS(Para-Mode)都可以直接執行在 Ring0 運行.目前 Intel 推出含有 VT 的技術包括了下面幾項.
- VT-x 這是屬於 IA-32 和 Intel 64 架構的
- VT-i 這是屬於 Itanium 架構的
- VT-d refers to Intel VT for Directed I/O
- VT-c refers to Intel VT for Connectivity
2 thoughts on “VMware – 虛擬化初評估”