1. 程式人生 > >虛擬化學習筆記1-概述

虛擬化學習筆記1-概述

此筆記來源於對紅帽課程RHCA-kvm虛擬化(RH-318)的學習總結。學習資源主要來源於紅帽的官方教材和趙小明老師的視訊課程以及Google出來的部落格

一、虛擬化產生的背景:
十幾年前,由於微機效能很低,為了滿足使用者體驗,一個服務應用只能執行在一臺PC上。現如今,微機效能大大提高,在舊模式下,造成了計算資源的極大浪費。虛擬化技術由此而出現,通過硬體虛擬化,把計算資源進行相互獨立的邏輯隔離,使得多個作業系統可以互不干擾的執行在同一個運算體上。而且只需兩套很強的物理裝置,便可實現特殊應用的高可用,大大提高效率,節省大量成本。
二、虛擬化應用:
1、一所大學中為每位大學生部署自己的專屬虛機
2、研究機構裡為每位研究人員部署自己的群集等
(以上場合KVM做不到,目前KVM管理的虛機數在500臺左右)
三、企業虛擬化種類:
伺服器虛擬化:應數量少,所以實現起來很容易
桌面虛擬化(VDI):現如今桌面要求較高(需要音訊,視訊等較高體驗),所以VDI的使用者體驗不高(網線傳輸效率跟不上)。實現起來的成本很高,目前流行的技術Spice。
四、虛擬化結構:
1、計算實體、VMM(虛擬機器監視器)、OS
VMM:如Hypervisor,也叫虛擬機器管理小程式。角色是溝通 計算機實體和OS的橋樑,負責為虛機分配計算機資源。
早期:通過軟體翻譯,模擬CPU指令集,效率很低。下圖:
這裡寫圖片描述

cpu從內到外一共四環,0環是kernal態,3環是使用者態,1、2環很少用,所有的程式都是跑在3環上的。由於程式從3環進入0環需要很大的開銷(system_call),所以不要動不動就把程式往0環上面放。

2005年之後:出現了CPU虛擬化技術(硬體虛擬化的前期),不在需要模擬CPU指令集,在Hypervisor的監管下可直接通過物理CPU進行OS資料的計算。下圖:
這裡寫圖片描述
2、半虛擬化
xen公司將半虛擬化發展到了極致,而且需要修改核心。通過對子作業系統的修改來配合。
虛擬化工具是對半虛擬化功能的一個整合,例如vmware tools等。
3、硬體虛擬化
第一代:CPU虛擬化
第二代:MMU虛擬化(記憶體運算單元虛擬化)
第三代:I/O虛擬化(PCI匯流排的虛擬化)。此時虛機的效能已經接近於native,損失很小<5%
4、KSM
通過收集記憶體片,把虛機記憶體中相同的部分合並,使得4G的記憶體可以當6G或8G使用。例如,跑十個虛擬機器,每一個消耗1G記憶體,因為每份記憶體是一樣的,所以不需要10G記憶體,只需要3G左右就可以。
缺點:收集記憶體片的過程需要消耗CPU資源。非企業級伺服器會很慢很慢。
五、虛擬化和雲端計算:
虛擬化是小角色(家用car),雲端計算是大角色(truck)
如:rhev和OpenStack面向的物件不同;rhev適用於中小企業,
短小精悍,不需要太大的彈性計算,也不需要大規模的設計。
六、虛擬化廠商:
VMware、Xen、KVM