一、課程概述
云計算的基礎是虛擬化,作為已經納入Linux內核的虛擬化解決方案,KVM近年來發展迅猛,但學習曲線比較陡,
課程目錄
- 第一章:KVM概述
- 第二章:KVM安裝
- 第三章:創建虛擬機
- 第四章:管理虛擬機
- 第五章:管理虛擬存盤
- 第六章:管理虛擬網路

二、虛擬化概述
什么是虛擬化
虛擬化的定義
在計算機中,虛擬化意味著創建設備或資源的虛擬版本,如服務器、存盤設備、網路或者作業系統等
虛擬化技術
1.系統虛擬化
2.存盤虛擬化
3.網路虛擬化
4.GPU虛擬化
5.軟體虛擬化
6.硬體支持虛擬化
系統虛擬化
這種虛擬化通常表現為在單一系統上運行多個作業系統
這些作業系統同時運行,每個作業系統又是相互獨立
虛擬化有三種實作方式:
1.純軟體仿真
2.虛擬化翻譯
3.容器技術
純軟體仿真
通過模擬完整的硬體環境來虛擬化來賓平臺
模擬X86、ARM、PowerPC等多種CPU
效率比較低
產品或方案
QEMU、Bochs、PearPC
虛擬化層翻譯
多數的虛擬化采用虛擬機管理程式Hypervisor
Hypervisor是一個軟體層或子系統
也稱為VMM(Virtual Machine Monitor,虛擬機監控器)
允許多種作業系統在相同的物理系統中運行
控制硬體并向來賓作業系統提供訪問底層硬體的途徑
向來賓作業系統提供虛擬化的硬體

X86 CPU的保護環

全虛擬化
不需要對GuestOS作業系統軟體的源代碼做任何的修改,就可以運行在這樣的VMM中
在全虛擬化的虛擬平臺中,GuestOS并不知道自己是一臺虛擬機,它會認為自己就是運行在計算機物理硬體設備上的HostOS,因為全虛擬化的VMM會將一個OS所能夠操作的CPU、記憶體、外設等物理設備邏輯抽象成為虛擬CPU、虛擬記憶體、虛擬外設等虛擬設備后,再交由GuestOS來操作使用,這樣的GuestOS會將底層硬體平臺視為自己所有的,但是實際上,這些都是VMM為GuestOS制造了這種假象,
全虛擬化又分為:軟體輔助的全虛擬化 & 硬體輔助的全虛擬化,
軟體輔助的全虛擬化
軟體輔助虛擬化能夠成功的將所有在GuestOS中執行的系統內核特權指令進行捕獲、翻譯,使之成為只能對GuestOS生效的虛擬特權指令,但是退一步來說,之所以需要這么做的前提是因為CPU并不能準確的去判斷一個特權指令到底是由GuestOS發出的還是由HostOS發出的,這樣也就無法針對一個正確的OS去將這一個特權指令執行,
直到后來CPU廠商們發布了能夠判斷特權指令歸屬的標準x86 CPU之后,迎來了硬體輔助全虛擬化,
硬體輔助的全虛擬化
硬體輔助全虛擬化主要使用了支持虛擬化功能的CPU進行支撐,CPU可以明確的分辨出來自GuestOS的特權指令,并針對GuestOS進行特權操作,而不會影響到HostOS,
半虛擬化
需要對GuestOS的內核代碼做一定的修改,才能夠將GuestOS運行在半虛擬化的VMM中,
半虛擬化通過在GuestOS的源代碼級別上修改特權指令來回避上述的虛擬化漏洞,
修改內核后的GuestOS也知道自己就是一臺虛擬機,所以能夠很好的對核心態指令和敏感指令進行識別和處理,但缺點在于GuestOS的鏡像檔案并不通用,
容器技術
LXC和Docker
一種輕量級/作業系統虛擬化方式,由Linux內核支持
起源:chroot系統虛擬化方式,由Linux內核支持
優勢:
更快的交付和部署
更高效率的虛擬化
更輕松的遷移和拓展
更簡單的管理

Hypervisor的分類
裸機型與宿主型

三、KVM概述及參考資料
KVM是什么?
Kernel Virtual Machine
硬體輔助的全虛擬化解決方案
KVM官網
KVM的歷史
以色列的創業公司Qumranet創建了KVM
早期的主要開發者Avi Kivity
2006年10月,在完成基本功能、動態遷移、主要的性能優化后,正式宣布了KVM的誕生
2007年2月發布的內核2.6.20中,開始正式包括了KVM
2008年9月,Redhat 1.7億美收購
RHEL 5.4,在集成Xen的基礎上,又將KVM添加進來
2011年11月,RHEL6使用KVM徹底替換了Xen
QEMU
QEMU是一個通用的開源的硬體模擬器,可以模擬多種硬體
QEMU-KVM從分支到與主干合并,QEMU成立KVM在用戶空間的管理工具
KVM體系結構
KVM
初始化CPU硬體,打開虛擬化模式,以支持虛擬機的運行,
負責CPU、記憶體、中斷、控制器、時鐘
QEMU
模擬網卡、顯卡、存盤控制器和硬碟
libvirt
它提供統一API、守護行程libvirtd和一個默認命令列管理工具virsh

Qemu與KVM
Qemu通過ioctl呼叫/dev/kvm介面,將有關CPU指令的部分交由KVM來做
Qemu還是模擬網卡、顯卡、存盤控制器和硬碟等,會影響這些設備的性能
通過pass through半虛擬化設備virtio_blk, virtio_net,提高設備性能

libvirt與KVM

KVM集中管理與控制
http://www.linux-kvm.org/page/Management_Tools
示例∶
Ovirt
功能強大,是Redhat 虛擬化管理平臺RHEV的開源版本,
http://www.ovirt.org/
WebVirtMgr
https://www.webvirtmgr.net
virt-manager的Web模式的替代品
ConVirt
http://www.convirture.com/
分開源版本和商業版本
Hypervisor /VMM的選擇
電信/ISP公共云
單一hypervisor
KVM
互聯網公司
單一hypervisor
KVM
Web托管和SAS細分市場
單一或多個hypervisor
容器(LXC, Parallels, Docker)
KVM
企業
多種Hypervisor
KVM和 vCenter/ESXi
國產虛擬化解決方案概述
Stop Trying to Reinvent the Wheel,不要重復造輪子
國產虛擬化解決方案重點在虛擬化的管理與桌面協議
Hypervisor/VMM選擇(按漢語拼音排序):
H3: KVM
紅山∶Xen
華為∶Xen → KVM→Xen
浪潮∶Xen
貧訓∶KVM
銳捷∶KVM
深信服∶ KVM
….其他KVM居多
資源與參考資料
Redhat官方檔案
https://access.redhat.com/documentation
Virtualization Getting Started Guide
Virtualization Deployment and Administration Guide
Virtualization Tuning and Optimization Guide
Virtualization Security Guide
KVM 主頁
http://www.linux-kvm.org/
提供了KVM的詳細資訊 ,以及大量資訊來源和相關站點的鏈接
libvirt Virtualization API 網站
http://www.libvirt.org/
提供了有關該API、所支持的虛擬化抽象及其使用的XML格式的詳細資訊
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/472921.html
標籤:其他
上一篇:中科軟測認證中心(隨筆)
下一篇:K8S面試應知必回
