全虛擬化vs半虛擬化


1、全虛擬化vs半虛擬化

 尊重原著,轉載請注明轉載地址。

 

 

 

 

轉自:http://zhumeng8337797.blog.163.com/blog/static/100768914201122025837742/

 

PV vs. FV
PV(Para-Vritralization)和FV(Full-Vritralization)的差別,主要以guest OS的硬件仿真程度做區分。

FV:FV是一般較常看到的作法,所有的guest OS完全不會看到實際的硬件為何,只能使用由Supervisor所提供的所有虛擬硬件,因此,在這種機制下,guest OS動作的性能一定會大受虛擬接口的影響。另外還有一個特點,就是因為完全仿真的關系,不支持新的技術,連ACPI開關機的機制都無法使用,也就是當使用者在FV的guest OS下,若直接觸動關機的按鈕(這里的按鈕是由VMM所提供的,不是主機上的)會直接斷電,而不會進行關機程序。

PV:至於PV的作法,有鑒於一般Virtual Machine工具都是以完全仿真的方式,造成性能上的降低,因此,XEN在設計上,希望各操作系統可以在開發時就已經將XEN的技術包括進去,這樣在使用時,就可以用局部仿真的方式,讓操作系統可以直接使用到硬件中的CPU、內存等,而不需要通過XEN做仿真的操作。

 

這樣,若硬件都是由Virtual Machine仿真出來的,性能自然會變得比較慢,所以XEN所主推的概念就是,當操作系統默認支持XEN時就可以通過XEN的機制,直接使用到底層的硬件,而不是每個OS都要通過Hypervisor的接口,性能上就可大為提高。

在PV與FV的安裝上,對CPU的要求是有差異的。以PV而言,因為OS原本就支持XEN,所以不需要經過特殊的處理步驟,因此,對CPU來於,沒有特殊的要求,基本上都可以使用。


但FV就不同,因為FV模式是以完全仿真的方式進行,所以CPU必須要特別將此功能加入到CPU的核心中,因此,CPU是有特殊需求的。在Intel與AMD中針對Virtual Machine所加入的功能名稱不同,分別為Intel VT與AMD-V。

在目前Linux的世界,XEN並不是唯一的,除了XEN這一架構外,另外還有一個KVM(Kernel based Vitrual Machine),從2.6.20版本之后的Linux Kernel就支持其功能。因為KVM的做法是以原本Kernel為依據,只要將其module加載即可使用,唯一較XEN弱勢的是KVM以單一Full Virtuallization為服務方式。


資料來源:http://en.opensuse.org/Virtualization_Terminology

 

從以上看來,我們現在用的vsphere是一個完全虛擬化的,因為它完全依賴於CPU的虛擬技術,這樣它的性能有30%的區別也不奇怪。sun XVM也是基於Hypervisor技術,那天sun那人說的很厲害,我們看結果也會跟vmware差不多。

以上今天早上發給我的boss,現在需要改正一下,vsphere是支持半虛擬化技術的。

 

啟用了 VMI 的可用內核包括 Ubuntu 7.04 (Feisty) 或更高版本。
使用 32 位 Intel x86 系統的標准映像。VMI 當前僅支持 32 位客戶機。
注意 :只有硬件版本 7.0 虛擬機支持 VMI。 

全虛擬化和半虛擬化

半虛擬化的意思是需要修改被虛擬系統的內核,以實現系統能被完美的虛擬在Xen上面。完全虛擬化則是不需要修改系統內核則可以直接運行在Xen上面。

VMWARE Workstation是全虛擬化,所以可以虛擬windows

XEN是一個半虛擬化解決方案,目前暫不支持虛擬windows,(在硬件的支持下可以做到,當CPU支持VT技術,新一代的intel和amd x86處理器已經支持了VT技術)


XEN需要修改被虛擬得操作系統,修改內核,

Xen采用了VT技術來實現計算機底層虛擬化功能,它很充分的發揮了硬件輔助虛擬化技術的優點,不再將虛擬機模型建立在真實機操作系統之上,而是在硬件平台上構建一套類似於中間件(並不是真正意義上的中間件)的軟件邏輯層,所有操作系統都建立在這個“中間件”之上。

XEN的使用文檔
http://www.linuxsir.org/main/?q=node/188


一、Xen是一款虛擬化軟件,支持半虛擬化和完全虛擬化。它在不支持VT技術的cpu上也能使用,但是只能以半虛擬化模式運行。
二、半虛擬化的意思是需要修改被虛擬系統的內核,以實現系統能被完美的虛擬在Xen上面。完全虛擬化則是不需要修改系統內核則可以直接運行在Xen上面。
三、VMware是一款完全虛擬化軟件。完全虛擬的弱點是效率不如半虛擬化的高。半虛擬化系統性能可以接近在裸機上的性能。
四、 Xen是由一個后台守護進程維護的,叫做xend,要運行虛擬系統,必須先將它開啟。它的配置文件在/etc/xen/xend-config.sxp,內容包括宿主系統的類型,網絡的連接結構、宿主操作系統的資源使用設定,以及vnc連接的一些內容。(如果你想增加一個虛擬網絡設備的話,是需要在這里設定的)
五、/etc/xen/auto 的含義是如果你想讓被虛擬系統隨着宿主系統一同啟動的話,就把虛擬系統的配置文件放到這個目錄下面來。
六、/etc/xen/scripts 是些腳本文件,用於初始化各種虛擬設備,比如虛擬網橋等。(如果要增加一個虛擬網絡設備,同樣需要在此處調節)
七、在/etc/xen下面會有些配置文件,這就是虛擬系統引導時所必須的些文件,里面記錄了引導和硬件信息。
八、Xen的配置工具有許多,我使用的是virt-manager(GUI)、virt-install和xm。第一個用於管理和安裝系統,第二個只用於安裝系統,第三個用於啟動系統。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM