云計算常見虛擬化的類型有哪些?
云計算常見虛擬化的類型有三種,各自特點如下所述:一、全虛擬化(Full Virtulization)(vmware、kvm)
簡介:主要是在客戶操作系統(tǒng)和硬件之間捕捉和處理那些對虛擬化敏感的特權指令,使客戶操作系統(tǒng)無需修改就能運行,速度會根據(jù)不同的實現(xiàn)而不同,但大致能滿足用戶的需求。這種方式是業(yè)界現(xiàn)今最成熟和最常見的,而且屬于 Hosted 模式和 Hypervisor 模式的都有,知名的產(chǎn)品有IBM CP/CMS,VirtualBox,KVM,VMware Workstation和VMware ESX(它在其4.0版,被改名為VMware vSphere)。
【優(yōu)點】Guest OS無需修改,速度和功能都非常不錯,更重要的是使用非常簡單,不論是 VMware 的產(chǎn)品,還是Sun(Oracle?)的 VirtualBox。
【缺點】基于Hosted模式的全虛擬產(chǎn)品性能方面不是特別優(yōu)異,特別是I/O方面。
【未來】因為使用這種模式,不僅Guest OS免于修改,而且將通過引入硬件輔助虛擬化技術來提高其性能,我個人判斷,在未來全虛擬化還是主流。
CPU全虛擬化:采用二進制代碼動態(tài)翻譯技術,即在執(zhí)行時動態(tài)地重寫虛擬機的執(zhí)行代碼,需要在vmm監(jiān)控和模擬的位置(即敏感指令前)插入陷入指令的技術。
【優(yōu)點】Guest OS無需修改即可運行。
【缺點】動態(tài)翻譯會帶來一定的性能開銷。
二、半虛擬化(Parairtulization)(xen)
簡介:它與完全虛擬化有一些類似,它也利用Hypervisor來實現(xiàn)對底層硬件的共享訪問,但是由于在Hypervisor 上面運行的Guest OS已經(jīng)集成與半虛擬化有關的代碼,使得Guest OS能夠非常好地配合Hyperivosr來實現(xiàn)虛擬化。通過這種方法將無需重新編譯或捕獲特權指令,使其性能非常接近物理機,其最經(jīng)典的產(chǎn)品就是xen,而且因為微軟的Hyper-V所采用技術和Xen類似,所以也可以把Hyper-V歸屬于半虛擬化。
【優(yōu)點】這種模式和全虛擬化相比,架構更精簡,而且在整體速度上有一定的優(yōu)勢。
【缺點】需要對Guest OS進行修改,所以在用戶體驗方面比較麻煩。
【未來】覺得其將來應該和現(xiàn)在的情況比較類似,在公有云(比如Amazon EC2)平臺上應該繼續(xù)占有一席之地,但是很難在其他方面和類似VMware vSphere這樣的全虛擬化產(chǎn)品競爭,同時它也將會利用硬件輔助虛擬化技術來提高速度,并簡化架構。
CPU半虛擬化:通過修改Guest OS的內(nèi)核源代碼,將待監(jiān)控的操作替換為對VMM的超級調(diào)用(Hypercall)
【優(yōu)點】避免了“二進制代碼動態(tài)翻譯”這種開銷較大的做法,性能方面得到了很大的提升。
【缺點】需要修改Guest OS的源代碼,使虛擬機上的操作系統(tǒng)類型受到限制,不開源的操作系統(tǒng)(如windows系統(tǒng)???那pv-driver呢?)就很難移植到半虛擬化的vmm平臺上。
三、硬件輔助虛擬化(Hardware Assisted Virtualization)(kvm、vmware、xen均可以用該技術)
簡介:Intel/AMD等硬件廠商通過對部分全虛擬化和半虛擬化使用到的軟件技術進行硬件化(具體將在下文詳述)來提高性能。硬件輔助虛擬化技術常用于優(yōu)化全虛擬化和半虛擬化產(chǎn)品,而不是獨創(chuàng)一派,最出名的例子莫過于VMware Workstation,它雖然屬于全虛擬化,但是在它的6.0版本中引入了硬件輔助虛擬化技術,比如Intel的VT-x和AMD的AMD-V。現(xiàn)在市面上的主流全虛擬化和半虛擬化產(chǎn)品都支持硬件輔助虛擬化,包括VirtualBox,KVM,VMware ESX和Xen。
【優(yōu)點】通過引入硬件技術,將使虛擬化技術更接近物理機的速度。(半虛擬化vmm能夠在不修改guest os內(nèi)核的基礎上,同時支持兩種不同的虛擬化架構,xen是最大的受益者)。
【缺點】現(xiàn)有的硬件實現(xiàn)不夠優(yōu)化,還有進一步提高的空間。
【未來】因為通過使用硬件技術不僅能提高速度,而且能簡化虛擬化技術的架構,所以預見硬件技術將會被大多數(shù)虛擬化產(chǎn)品所采用