一、定義與意義
1、可以理解為虛擬機技術中,物理機上由操作系統控制的虛擬機(通常稱為全虛擬化)直接訪問底層硬件資源,省去了中間件的干涉。這種方式可以提高虛擬機的性能表現,對於需要快速響應的高吞吐量應用尤其有益。
2、去虛擬化本質是使用虛擬化技術將硬件資源虛擬化,將各個應用隔離開來,相互之間不會產生衝突。自然,每個應用訪問時間、資源需要都各不相同,因此對於一些對性能要求高的應用,如數據庫系統、數據備份等,造成額外的開銷會相對較大,此時若能夠去虛擬化,將不可避免地提升性能。
3、而虛擬化技術讓用戶可以將若干物理計算機的資源匯聚為虛擬環境中的單台計算機,在運行時虛擬機計算機將每個虛擬機看作單獨的物理機,這樣就增加了可伸縮性,提高了資源利用率。
二、實現方式
1、類全虛擬化:在類全虛擬化方式下,VM不再需要直接訪問物理硬件,而是通過直接操作虛擬設備以及虛擬機設備來實現訪問,進而避免DeviceInsterface層帶來的中間件干預。而常用的就是Xen,vSphere、RHEV、Hyper-V、Openstack、Kubernetes等。
2、Para-virtualization方式:在Para-virtualization方式下,所有的虛擬機都運行在同一個內核下,而不是僅僅啟動一個虛擬機單獨使用一個內核,因此這也是類全虛擬化的體現,而常用的就是Xen、docker等。
3、硬件輔助虛擬化:這種方式基於CPU的虛擬化,CPU內置了硬件虛擬化的支持,可以增加虛擬化的效率,並減輕操作系統對真實硬件的壓力,後來也被VMware等虛擬化開發者引入。
三、幾種方案的實踐與比對
1、全虛擬化的缺陷在於,由於直接訪問硬件,因此對於性能要求非常高的應用,如HPC,而對於那些採用Para-virtualization方式以上等的應用,則性能會好很多,如Xen、VMware。在實踐中,可通過提升應用性能的方式來實現。(註:此處可結合具體的實踐案例來給出詳細闡述,並附上代碼示例)
2、對於虛擬機環境的搭建,KVM作為全面覆蓋Linux的虛擬環境,具備性能卓越,同時也是安全性和穩定性良好的選擇。通過對比可知,對於Linux虛擬機的搭建,KVM是推薦的選擇。(註:此處可結合具體的實踐案例來給出詳細闡述,並附上代碼示例)
3、在實踐中,常常會將虛擬機架構和容器化架構組合使用,兩者各自具有優勢,能夠互相補充。事實上,在實際生產環境中,容器和VM都需要相互搭配使用,且各扮演重要角色,不可缺少。(註:此處可結合具體的實踐案例來給出詳細闡述,並附上代碼示例)
四、補充說明
1、與容器相比,VM的不足在於虛擬化主機的特殊性,虛擬化層的層數以及複雜度比較高,因此VM的性能和可維護性相比,都有所欠缺。但在某些場景下,VM的優勢也表現得淋漓盡致。
2、從容器技術的角度來看,雖然有時比不上虛擬機的性能,但容器的大小、快速地創建和銷毀、更高的彈性和可移植性使得其在雲時代中更為受歡迎。
示例代碼
def vmware_deploy():
#使用vmware部署虛擬機
pass
def kvm_deploy():
#使用kvm部署虛擬機
pass
def container_deploy():
#使用容器部署應用
pass
def hybrid_deploy():
#混合部署:使用虛擬化技術和容器技術相結合
pass
原創文章,作者:JBAAY,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/371737.html