KVM詳解


一、 KVM概述

1.1 KVM 即 Kernel-based Virtual Machine 基於內核的虛擬機。
KVM,是一個開源的系統虛擬化模塊,自 Linux 2.6.20 之后集成在 Linux 的各個主要發行版本中。它使用 Linux 自身的調度器進行管理,所以相對於Xen,其核心源碼很少。KVM 目前已成為學術界的主流 VMM(虛擬機監控器)之一。KVM 的虛擬化需要硬件支持(如 Intel VT 技術戒者 AMD V 技術)。是基於硬件的完全虛擬化。而 Xen 早期則是基於軟件模擬的 Para-Virtualization。

1.2 虛擬化技術

例如很常見的VMWare、VirtualBox、Citrix Xen、kvm等。桌面虛擬化 將原本在本地電腦安裝的桌面系統統一在后端數據中心進
行部署和管理; 用戶可以通過任何設備,在任何地點,任何時間訪問屬於
自己的桌面系統環境。還有服務器虛擬化。包括全虛擬化(Full-Virtulization):
無需修改操作系統,VM ESXi、Linux KVM
• 半虛擬化(Para-Virtulization):
集成半虛擬化代碼,直接運行特權指令,性能接近物理機,需要修改操作
系統,
MS Hyper-V、 Ctrix Xen、IBM PowerVM
• 操作系統層虛擬化
開發、測試環境,VM Workstation、VM Server
通過虛擬化技術將一台計算機虛擬為多台邏輯計算機,在一台計算機上同時運行多個邏輯計算機,同時每個邏輯計算機可運行不同的操作系統,應用程序都可以在相互獨立的空間內運行而互相不影響,從而提高計算機的工作效率

1.3構成
KVM: 是指基於 Linux 內核的虛擬機(Kernel-based Virtual Machine)。是第一個整合到 Linux內核的虛擬化技術。在 KVM 模型中,每一個虛擬機都是一個由 Linux 調度程序管理的標准進程,你可以在用戶空間啟動客戶機操作系統。
一個普通的 Linux 進程有兩種運行模式:內核和用戶。 KVM 增加了第三種模式:客戶模式(有自己的內核和用戶模式)
XEN :需要升級內核,只能支持和物理機系統一樣的操作系統。 xen 虛擬上,可以運行 windows ?
KVM: 支持 linux 以外的其它系統。比如:windows
QEMU:是一套由 Fabrice Bellard 所編寫的以 GPL 許可證分發源碼的模擬處理器,在 GNU/Linux平台上使用廣泛。QEMU 具有高速度和跨平台的特性,QEMU 能模擬至接近真實電腦的速度。
QEMU 能模擬整個電腦系統,包括中央處理器及其他周邊設備。
QEMU 和 vmware 一樣都是支持仿真虛擬化,效率比較低。

二、虛擬化類型

1、全虛擬化:將物理硬件資源全部通過軟件的方式抽象化,最后進行調用
使用的方法:使用hypervisor(VMM)軟件,其原理是在底層硬件和服務器之間建立一個抽象層,而基於核心的虛擬機是面向Linux系統的開源產品hypervisor(VMM)可以捕捉CPU的指令,為指令訪問硬件控制器和外設充當中介。
2、半虛擬化:需要修改操作系統
3、直通:直接使用物理硬件資源(需要支持,還不完善)

三 虛擬化的優缺點
特性:
優勢
① 集中化管理(遠程管理、維護)
② 提高硬件利用率(物理資源利用率低-例如峰值,虛擬化解決了“空閑”容量)
③ 動態調整機器/資源配置(虛擬化把系統的應用程序和服務硬件分離、提高了靈活性)
④ 高可靠(可部署額外的功能和方案,可提高透明負載均衡、遷移、恢復復制等應用環境)

缺點
① 前期高額費用(初期的硬件支持)
② 降低硬件利用率(特定場景-例如極度吃資源的應用不一定適合虛擬化)
③ 更大的錯誤影響面(本地物理機down機會導致虛擬機均不可用,同時可能虛擬機中文件全部損壞)
④ 實施配置復雜、管理復雜(管理人員運維、排障困難)
⑤ 一定的限制性(虛擬化技術涉及各種限制,必須與支持/兼容虛擬化的服務器、應用程序及供應商結合使用)
⑥ 安全性(虛擬化技術自身的安全隱患)

四 KVM架構及原理:
在這里插入圖片描述
1、客戶模式(guestOS):VM中的OS為GuestOS
客戶機在操作系統中運行的模式,客戶機分為內核模式和用戶模式,作用如下:
2、用戶模式:
為用戶提供虛擬機管理的用戶空間工具以及代表用戶執行I/O,Qemu工作在此模式下(Qemu的主要功能)
3、linux內核模式
模擬CPU、內存,實現客戶模式切換,處理從客戶模式的退出,KVM即運行在此模式下

五 KVM實際應用:
Vmware workstation、virtualbox等,是模擬硬件資源/設備

六 KVM工作流程
用戶模式的 Qemu 利用接口 libkvm 通過 ioctl 系統調用進入內核模式。 KVM驅動為虛擬機創建虛擬 CPU 和虛擬內存,
然后執行 VMLAU·NCH 指令進入客戶模式,裝載 Guest OS 並運行。Guest OS 運行過程中如果發生異常,則暫停Guest OS
的運行並保存當前狀態同時退出到內核模式來處理這些異常。
內核模式處理這些異常時如果不需要 I/O則處理完成后重新進入客戶模式。如果需要 I/O 則進入到用戶模式,
則由 Qemu 來處理 I/O,處理完成后進入內核模式,再進入客戶模式


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM