虛擬化技術系列 虛擬機器管理平台及軟體結構

2021-06-20 04:15:59 字數 3040 閱讀 9513

前一篇基礎概念篇,主要介紹虛擬化技術的發展歷程、基礎概念、關鍵指標等幾個方面,

本篇開始著重於虛擬化平台hypervisor本身相關的技術介紹。

>虛擬化軟體結構層次

下圖是傳統非虛擬化軟體結構層次與虛擬化軟體結構層次的對比,撇開虛擬化環境下同一物理節點上可執行多個os的差別,最大的差別就是

虛擬化環境下,在os和硬體之間多了一層hypervisor。hypervisor即是所謂的虛擬機器管理平台,有些文件也稱為vmm(virtual machine monitor),

但本質上是乙個東西。還有一些平台,習慣於將hypervisor稱為host os,相應的虛擬機器os則成為guest os。這些是最基礎的名詞概念。

>虛擬化平台分類

在虛擬化的環境下,對作業系統來說,最大的差別在於無法直接訪問硬體(當然有例外,後文會逐個展開並提及),

所有硬體資源都是由hypervisor管理並分配給各個os的。對os來說,這一點變化是比較關鍵的。在os核心裡,涉及到大量跟具體cpu架構、外設器件相關的**(彙編指令、驅動**等),當把乙個os從原始的硬體環境移植到hypervisor提供的虛擬硬體環境後,這個os還能執行嗎?答案當然是肯定的,但解決方案有多種。而根據解決方案的不同,hypervisor平台又被分為兩類:半虛擬化平台和全虛擬化平台。

顧名思義,全虛擬化平台指的是,當os從特殊硬體移植到hypervisor上之後,不需要修改核心**即可執行;而半虛擬化平台,os被到hypervisor之後,需要對os核心**進行一定程度的適配修改方可執行。從可移植性來看,全虛擬化平台顯然更佳,但凡事都是有代價的。在介紹全虛擬化平台如何做到不需修改os**的相關技術之前,需要指出的一點是,原始的全虛擬化平台是建立在犧牲效能的前提下的。而半虛擬化平台雖然增大了工作量,在效能上卻能做得更好。那麼有沒有辦法將這兩者的優點結合起來呢?既做到不修改os**且仍然保證系統效能。硬體輔助虛擬化技術比較好地完成了該任務。

硬體輔助虛擬化技術後文會有專門的章節詳細介紹。x86處理器從05年的vt-x技術開始支援硬體輔助虛擬化,目前已經全面擴張到指令集、記憶體、中斷、dma、網絡卡、cache、匯流排頻寬等各個角落,vt-x/d/c系列技術,已經可以提供乙個比較好的硬體輔助虛擬化解決方案,使得全虛擬化平台也可獲得較好的效能體驗;arm處理器雖然聚焦在暫時不需要虛擬化技術的終端應用上,但在arm發布針對低功耗伺服器的v8版本前的cortex a15平台上,也提供了一定的硬體輔助虛擬化技術,包括hyper模式、smmu、gicv2等。時至今日,嚴格區分半虛擬化與全虛擬化的平台已經基本上不存在,大多數hypervisor都同時支援全虛擬化和半虛擬化,而軟體上存在的缺陷和障礙則交由硬體輔助虛擬化技術來逐步解決。

>虛擬化主流平台

當前業界佔最大市場份額的虛擬化平台是vmware,一度佔據80%的市場;最近幾年微軟發力中小企業解決方案,

以更低的**也搶占了不少市場份額,目前在gartner的魔力象限中已經趕超citrix的xen,僅次於vmware。

xen的商業發行者citrix市場份額油一定的下滑,但依然位於leader陣營內。剩下的追趕著主要有red hat(kvm)、oracle等。

(未找到2013最新的,之前曾看到過,跟11年的差不多,因此以11年是魔力象限圖來說明市場份額。)

接下來對一下幾個較有代表性的虛擬化平台進行簡單的介紹:

vmware:是x86伺服器虛擬化市場的絕對王者。

vmware起步於20世紀末,由乙個類posix的核心發展而來。

2023年emc收購了vmware。

vmware的核心產品為vmware esx,並圍繞esx提供了一系列增強工具及服務,

提出了資料中

心虛擬化的全套解決方案vmware vsphere,包括vmware infrastructure,vcenter server, 

capacity planer,data recovery等,

其中insrastructure包含esx、esxi、vmfs、virtual smp、

drs、vmotion、ha等。

此外vmware還提供了虛擬桌面產品和輔助工具產品。隨著sdn的持續

公升溫,2023年vmware收購了nicira,

不惜跟曾經的盟友思科鬧翻開發發展網路虛擬化技術。需

要指出的是,vmware是閉源的商業解決方案。

xen:xen是一款開源的hypervisor,最早是在劍橋大學開發的,xen起源於2023年sosp

的**xen and the art of virtualization。最早發展xen的商業公司是xensource,得到了xen開

源社群的幫助。2023年citrix收購了xensource公司,並進入伺服器虛擬化市場。

citrix收購後,將

開源社群與商業髮型進行了分割,發布了xenserver的伺服器虛擬化產品。

目前雖然後期之秀kvm

攜開源社群的威勢快速追趕,但至少當前市場上還是xen領先。當然,留給xen的時間應該不多了。

kvm:全稱是kernel based virtual machine,起源於linux核心,目前red hat和社群是kvm的主要

推動力。

kvm出現的時間是最晚的,其出身跟linus的務實哲學也是相當吻合的:先有產品,逐步優化。

剛剛發布時的kvm在技術上相當稚嫩,在xen等老大哥面前一直一提。但在開源社群的幫助下,kvm

逐漸趕了上來,

目前在技術層面上,兩者已經基本沒有什麼差別了。當然在商業成功上,kvm還有一

段路要走,

sdn及nfv掀起的網路虛擬化浪潮,或許是kvm走向成功的乙個契機。

上述三個虛擬化平台,包含了目前的王者,曾經的輝煌者,以及有可能是將來的王者;

開放程度上,

也同時覆蓋了閉源、開源兩種形態;技術方案上,三者的差別也各有千秋;

因此個人認為研究虛擬

化技術,基本上無需脫離這三者的範疇。

本系列後續的文章,基本以kvm為主,參考部分xen的技術,vmware由於其封閉性,無法獲得更

多的資料,將較少提及。

python虛擬機器優化 KVM虛擬機器管理及效能優化

kvm虛擬機器管理及效能優化 使用kvm命令集管理虛擬機器 kvm關機開機命令 virsh h 檢視命令幫助 virsh list all 檢視虛擬機器狀態 virsh shutdown centos7.4 x86 64 關閉虛擬機器 virsh start centos7.4 x86 64 啟動虛...

虛擬機器系列

vagrant系列 vagrant v 檢視版本 vagrant up 啟動虛擬機器 vagrant reload 重啟虛擬機器 vagrant halt 關閉虛擬機器 vagrant ssh 以ssh形式連線虛擬機器 vagrant stauts 檢視虛擬機器的狀態 注意 vagrant安裝的li...

虛擬機器管理

虛擬機器管理 先圖形安裝虛擬機器,server with gui 1.指令碼安裝虛擬機器 bin bash virt install cdrom home kiosk desktop rhel server 7.3 x86 64 iso ram 1024 cpus 1 disk var lib li...