Linux KVM 虚拟化技术
目錄
- KVM 介紹
- 一、KVM虛擬化
- 二、虛擬化技術
- 三、虛擬化技術發展
- 四、虛擬化類型
- 五、虛擬化特性
- 優勢
- 劣勢
- 案例
- VMM主要功能
- 六、KVM架構及原理
- KVM簡介
- KVM原理
- KVM虛擬化架構/三種模式
- KVM工作流程
- 虛擬化前、虛擬化后對比
- 總結
- KVM創建虛擬機教程
KVM 介紹
KVM 全稱是 基于內核的虛擬機(Kernel-based Virtual Machine),它是Linux 的一個內核模塊,該內核模塊使得 Linux 變成了一個 Hypervisor:
① 、它由 Quramnet 開發,該公司于 2008年被 Red Hat 收購。
②、它支持 x86 (32 and 64 位), s390, Powerpc 等 CPU。
③ 、它從 Linux 2.6.20 起就作為一模塊被包含在 Linux 內核中。
④ 、它需要支持虛擬化擴展的 CPU。
⑥ 、它是完全開源的
一、KVM虛擬化
- 美國環境保護EPA報告曾經統計過一組數據:EPA研究服務器和數據中心的能源效率時發現,實際上服務器只有5%的時間在工作,其他時間一直處于休眠狀態。
- 軟件資源是沒有硬件資源性能高(穩定好效率)的(相同功能)
二、虛擬化技術
- 通過虛擬化技術將一臺計算機虛擬為多臺邏輯計算機,在一臺計算機上同時運行多個邏輯計算機,同時每個邏輯計算機可運行不同的操作系統,應用程序都可以在相互獨立的空間內運行而互相不影響,從而提高計算機的工作效率
- 1、在一個操作系統中(win10)模擬多個操作系統(centos、win10、suse),同時每個操作系統可以跑不同的服務(nginx和tomcat),從而實現一臺宿主機搭建一個集群
2、通過軟件/應用程序的方式,來實現物理硬件的功能
例:ensp以軟件形式實現物理設備的功能(二層交換機、路由器、三層交換機等)、workstation等
三、虛擬化技術發展
雛形:
- 1961年,IBM709機器實現了分時系統,將CPU占用切分為多個極短的時間片(1/100sec)每個時間片執行不同的工作,通過對這些時間片進行輪詢從而將一個cpu偽裝成多個cpu
- 1972年,IBM公司正式將system370機器的分時系統命名為虛擬機
- 1990年,IBM推出的system390機支持邏輯分區(將一個cpu分為多份,相互獨立,也就是邏輯分分割)
Xen:
- 2003年問世,一個外部的hypervisor/VMM程序(虛擬機管理程序),能夠控制宿主機和給多個客戶機分配資源
- 支持的虛擬化技術:全虛擬化、半虛擬化
KVM:
- 2007年問世,現已內置在kernel內核中,支持的虛擬化技術:全虛擬化
四、虛擬化類型
- 全虛擬化:將物理硬件資源全部通過軟件的方式抽象化,最后進行調用
使用的方法:使用hypervisor(VMM)軟件,其原理是在底層硬件和服務器之間建立一個抽象層,而基于核心的虛擬機是面向Linux系統的開源產品hypervisor(VMM)可以捕捉CPU的指令 - 半虛擬化:需要修改操作系統
- 直通:直接使用物理硬件資源(需要設備支持,還不完善)
五、虛擬化特性
優勢
- 集中化管理(遠程管理、維護)
- 提高硬件利用率(物理資源利用率低,例如峰值,虛擬化解決了“空閑”容量)
- 動態調整機器/資源配置(虛擬化把系統的應用程序和服務硬件分離、提高了靈活性)
- 高可靠(可部署額外的功能和方案,可提高透明負載均衡、遷移、恢復復制等應用環境)
劣勢
- 前期高額費用(初期的硬件支持)
- 降低硬件利用率(特定場景,例:極度吃資源的應用不一定適合虛擬化)
- 更大的錯誤影響面(本地物理機down機會導致虛擬機均不可用,同時可能虛擬機中文件全部損壞)
- 實施配置復雜、管理復雜(管理人員運維、排障困難)
- 一定的限制性(虛擬化技術涉及各種限制,必須與支持/兼容虛擬化的服務器、應用程序以及供應商結合使用)
- 安全性(虛擬化技術自身的安全隱患)
案例
- VMwareWorkstation: 使用軟件達到虛擬多操作系統
- VirtualBox: 使用軟件虛擬出多物理設備功能
以VMwareworkstation為例
- workstation支持intel公司和AMD公司的虛擬化技術
- 硬件輔助虛擬化技術Intel-VT-x AMD-V
- Intel VT -x技術主要包含CPU、內存和I / O三方面的虛擬化技術,同時提供優化處理(早期為彌補X86架構虛擬化的缺陷)
- AMD-V是對x86處理器系統架構的一組硬件擴展和硬件輔助虛擬化技術,可以簡化純軟件的虛擬化解決方案
改進VMM (虛擬機監視器)的設計,更充分地利用硬件資源,提高服務器和數據中心的虛擬化效率
VMM(虛擬機監視器/管理程序) haperivisor
VMM是一個系統軟件, 可以維護多個效、隔離的程序環境(虛擬機),同時可以管理計算機系統的真實資源、為虛擬機提供接口
VMM主要功能
- 對物理資源進行邏輯分割(轉化為虛擬資源)
- 調用虛擬資源供與
六、KVM架構及原理
KVM簡介
廣義KVM:
- KVM (Kernel-based Vritual Machine)–基于內核的虛擬機
- KVM是基于虛擬化擴展的x86硬件的開源Linux原生的全虛擬化方案(要求cpu支持Intel-VT-x或AMD-v)
- KVM內嵌于內核模塊中,模擬處理器和內存以支持虛擬機運行
- 虛擬機被實現為常規的Linux進程,由標準Linux調度程序進行調度;
- 虛擬機的每個虛擬cPU被實現為一個常規的 Linux進程。這使得KMNV能夠使用Linux內核的已有功能
- 但KWwM本身不執行任何模擬。需要客戶空間程序《虛擬機)通過/dev/kvm(此虛擬設備需要開起硬件輔助虛擬化才能看到〉接口設置一個客戶機虛擬服務器的地址空間,并且由Qemu模擬工/o (iocti)進行調度資源和維護管理
- Libvirt: KVM的管理工具,除了可以管理KVM這類vWM,還可以管理xen,VirtualBox,甚至OpenStack底層
- Libvirt包含3個組件:后臺daemon程序libvirtd、API庫、命令行工具virsh
KVM原理
- Guest: 客戶機系統,包括CPU (vCPU) 、內存驅動(Console、 網卡、I/O設備驅動等),被KVM置于-種受限制的CPU 模式下運行。
- KVM內核模塊模擬處理器和內存以支持虛擬機運行
- Qemu 主要處理I/O以及為客戶提供一個用戶空間/dev/kvm 工具ibvirt來進行虛擬機管理
ioctl (定義) 專用于設備輸入輸出操作的系統調用
libvirt: KVM管理工具 - 簡單理解:
KVM驅動提供處理器、內存的虛擬化,以及客戶機I/o的攔截(攔截敏感指令),guest的I/o被攔截后,交由Qemu處理Qemu利用接口libkvm調用(ioctl)虛擬機設備接口/dev/kvm來分配資源、管理、維護虛擬機
KVM虛擬化架構/三種模式
- 1、客戶模式(guestlos)
- VM中的os為Guestos客戶機在操作系統中運行的模式,客戶機分為內核模式和用戶模式,作用如下;
- 2、用戶模式
為用戶提供虛擬機管理的用戶空間工具以及代表用戶執行I/o,Qemu工作在此模式下(gemu的主要功能) - 3、linux內核模式
模擬cPU、內存,實現客戶模式切換,處理從客戶模式的推出,KVM即運行在此模式下
KVM工作流程
用戶模式的Qemu利用接口libkvm通過ioctl系統調用進入內核模式。
KVM驅動為虛擬機創建虛擬CPU和虛擬內存
然后執行VMLAU.NCH指令進入客戶模式,裝載Guest OS并運行。
Guest OS運行過程中如果發生異常,則暫停Guest OS的運行并保存當前狀態同時退出到內核模式來處理這些異常。
內核模式處理這些異常時如果不需要I/O則處理完成后重新進入客戶模式。
如果需要I/O則進入到用戶模式,則由Qemu來處理I/O,處理完成后進入內核模式,再進入客戶模式
虛擬化前、虛擬化后對比
- 虛擬化前
①每臺主機擁有一個操作系統
②軟硬件緊密結合
③在同—個主機上運行多個應用程序通常會產生沖突
④系統資源利用率低(例如:5%)
⑤硬件成本高昂并且不夠靈活 - 虛擬化后
①打破了操作系統和硬件的互相依賴
②通過封裝到虛擬機的技術,管理操作系統和應用程序為單一的個體
③強大的安全和故障隔離
④虛擬機時獨立于硬件的,它們可以在任何硬件上運行
總結
1、KVM技術介紹
通過虛擬化技術將一臺計算機虛擬為多臺邏輯計算機,在一臺計算機上同時運行多個邏輯計算機,同時每個邏輯計算機可運行不同的操作系統,應用程序都可以在相互獨立的空間內運行而互相不影響,從而提高計算機的工作效率。
2、KVM技術定位(實際應用)
workstation、 virtualbox模擬硬件資源/設備/操作系統
3、KVM虛擬化技術核心功能(原理方面)
QEMU(工作在用戶層,控制libkvm工具(工具作用,控制內核中的KVM)來調用物理虛擬化資源(調用物理虛擬化資源的方式是ioctl,供給虛擬機)
KVM(工作在內核層,虛擬化/抽象化物理硬件資源,供給Qemu組件調用
4、KVM各核心組件功能
QEMU
功能:控制I/O虛擬化,調用硬件資源
KVM
功能:為虛擬機提供cPU、內存(硬件資源)的虛擬化
KVM 公司使用場景 ;
一般是底層采用 KVM 上層采用 OpenStack ,通過OpenStack 來管理 KVM 的 ;
KVM創建虛擬機教程
超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生總結
以上是生活随笔為你收集整理的Linux KVM 虚拟化技术的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 企业日志分析ELK(Logstash+E
- 下一篇: linux基础系统命令大全