KVM虚拟化的简单概论
生活随笔
收集整理的這篇文章主要介紹了
KVM虚拟化的简单概论
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
KVM虛擬化的簡單概論
- 一、什么是虛擬化
- 二、虛擬化技術(shù)
- 三、虛擬化技術(shù)的發(fā)展史
- 四、虛擬化類型
- 五、虛擬化特性
- 六、KVM簡介
- 1、廣義KVM
- 2、KVM架構(gòu)及原理
- ①、KVM虛擬化架構(gòu)/三種模式
- ②、KVM工作原理
- 3、KVM工作流程
- 4、KVM各核心組件功能
- 總結(jié)
- KVM工作原理
一、什么是虛擬化
- 虛擬化,是指通過虛擬化技術(shù)將一臺計算機虛擬為多臺邏輯計算機(對計算機物理資源的抽象,實現(xiàn)資源的模擬、隔離和共享)。在一臺計算機上同時運行多個邏輯計算機,每個邏輯計算機可運行不同的操作系統(tǒng),并且應用程序都可以在相互獨立的空間內(nèi)運行而互不影響,從而顯著提高計算機的工作效率。
- 虛擬化是一種資源管理技術(shù),打破實體結(jié)構(gòu)的不可分割的障礙,可以對數(shù)據(jù)中心的所有資源進行虛擬化和管理,可以實現(xiàn)服務虛擬化、存儲虛擬化、網(wǎng)絡虛擬化和桌面虛擬化。
- 在實際的生產(chǎn)環(huán)境中,虛擬化技術(shù)主要用來解決高性能的物理硬件產(chǎn)能過剩和老的、舊的硬件產(chǎn)能過低的重組、重用,透明化底層物理硬件,從而最大化的利用物理硬件,對資源充分利用。
- 解決的兩個問題:
- 資源充分利用
- 縮短交付時間
二、虛擬化技術(shù)
- 通過虛擬化技術(shù)將一臺計算機虛擬為多臺邏輯計算機,在一臺計算機上同時運行多個邏輯計算機,同時每個邏輯計算機可運行不同的操作系統(tǒng),應用程序都可以在相互獨立的空間內(nèi)運行而互相不影響,從而提高計算機的工作效率,例如ensp、workstation等
- 在一個操作系統(tǒng)中(win10)模擬多個操作系統(tǒng)(centos、win10、suse),同時每個操作系統(tǒng)可以跑不同的服務(nginx和tomcat),從而實現(xiàn)一臺宿主機搭建一個集群
- 通過軟件/應用程序的方式,來實現(xiàn)物理硬件的功能,例:ensp以軟件形式實現(xiàn)物理設備的功能(二層交換機、路由器、三層交換機等)
三、虛擬化技術(shù)的發(fā)展史
- 【1】1961年,IBM709機器實現(xiàn)了分時系統(tǒng),將CPU占用切分為多個極短的時間片(1/100sec)每個時間片執(zhí)行不同的工作,通過對這些時間片進行輪詢從而將一個cpu偽裝成多個cpu
- 【2】1972年,IBM公司正式將system370機器的分時系統(tǒng)命名為虛擬機
- 【3】1990年,IBM推出的system390機支持邏輯分區(qū)(將一個cpu分為多份,相互獨立,也就是邏輯分分割)
- 【4】Xen:2003年問世,一個外部的hypervisor/VMM程序(虛擬機管理程序),能夠控制宿主機和給多個客戶機分配資源:支持的虛擬化技術(shù):全虛擬化、半虛擬化
- 【5】KVM:2007年問世,現(xiàn)已內(nèi)置在kernel內(nèi)核中,支持的虛擬化技術(shù):全虛擬化
四、虛擬化類型
- 全虛擬化:將物理硬件資源全部通過軟件的方式抽象化,最后進行調(diào)用
- 使用的方法:使用hypervisor(VMM)軟件,其原理是在底層硬件和服務器之間建立一個抽象層,而基于核心的虛擬機是面向Linux系統(tǒng)的開源產(chǎn)品hypervisor(VMM)可以捕捉CPU的指令
- 半虛擬化:需要修改操作系統(tǒng)
- 直通:直接使用物理硬件資源(需要設備支持,還不完善)
五、虛擬化特性
- 優(yōu)勢:
- 集中化管理(遠程管理、維護)
- 提高硬件利用率(物理資源利用率低,例如峰值,虛擬化解決了“空閑”容量)
- 動態(tài)調(diào)整機器/資源配置(虛擬化把系統(tǒng)的應用程序和服務硬件分離、提高了靈活性)
- 高可靠(可部署額外的功能和方案,可提高透明負載均衡、遷移、恢復復制等應用環(huán)境)
- 劣勢:
- 前期高額費用(初期的硬件支持)
- 降低硬件利用率(特定場景,例:極度吃資源的應用不一定適合虛擬化)
- 更大的錯誤影響面(本地物理機down機會導致虛擬機均不可用,同時可能虛擬機中文件全部損壞)
- 實施配置復雜、管理復雜(管理人員運維、排障困難)
- 一定的限制性(虛擬化技術(shù)涉及各種限制,必須與支持/兼容虛擬化的服務器、應用程序以及供應商結(jié)合使用)
- 安全性(虛擬化技術(shù)自身的安全隱患)
六、KVM簡介
1、廣義KVM
- KVM (Kernel-based vritual Machine)——基于內(nèi)核的虛擬機
- KVM是基于虛擬化擴展的X86硬件的開源Linux原生的全虛擬化方案(要求cpu支持Intel-vT-x或AMD-V)
- KVM內(nèi)嵌于內(nèi)核模塊中,模擬處理器和內(nèi)存以支持虛擬機運行
- 虛擬機被實現(xiàn)為常規(guī)的Linux進程,由標準Linux調(diào)度程序進行調(diào)度;虛擬機的每個虛擬CPU被實現(xiàn)為一個常規(guī)的Linux進程。這使得KMV能夠使用Linux內(nèi)核的已有功能但KVM本身不執(zhí)行任何模擬。
- 需要客戶空間程序(虛擬機)通過/dev/kvm (此虛擬設備需要開起硬件輔助虛擬化才能看到)接口設置一個客戶機虛擬服務器的地址空間,并且由Qemu模擬I/O (ioctl)進行調(diào)度資源和維護管理
- Libvirt:KVM的管理工具,除了可以管理KM這類VMM,還可以管理xen,VirtualBox,甚至Openstack底層
- Libvirt包含3個組件:后臺daemon程序libvirtd、 API庫、命令行工具virsh
2、KVM架構(gòu)及原理
①、KVM虛擬化架構(gòu)/三種模式
- 客戶機在操作系統(tǒng)中運行的模式,客戶機分為內(nèi)核模式和用戶模式,作用如下:
- 【1】客戶模式:
- 為用戶提供虛擬機管理的用戶空間工具以及代表用戶執(zhí)行I/O,Qemu_ 工作在此模式下(Qemu的主要功能)
- 【2】linux內(nèi)核模式:
- 模擬CPU、內(nèi)存,實現(xiàn)客戶模式切換,處理從客戶模式的推出,KVM即運行在此模式下
- 【1】客戶模式:
②、KVM工作原理
- Guest: 客戶機系統(tǒng),包括CPU (vCPU) 、內(nèi)存驅(qū)動(Console、 網(wǎng)卡、I/O設備驅(qū)動等),被KVM置于-種受限制的CPU 模式下運行。
- KVM內(nèi)核模塊模擬處理器和內(nèi)存以支持虛擬機運行
- Qemu 主要處理I/O以及為客戶提供一個用戶空間/dev/kvm 工具ibvirt來進行虛擬機管理
- ioctl (定義) 專用于設備輸入輸出操作的系統(tǒng)調(diào)用
- libvirt: KVM管理工具
- 以上構(gòu)成一個完整的虛擬化平臺
簡單理解:
- KVM驅(qū)動提供處理器、內(nèi)存的虛擬化,以及客戶機I/O的攔截,guest的I/O被攔截后,交由Qemu處理
- Qemu利用接口libkvm調(diào)用(ioctl) 虛擬機設備接口/dev/kvm來分配資源、管理、維護虛擬機
3、KVM工作流程
- 【1】用戶模式的Qemu利用接口libkvm通過ioctl系統(tǒng)調(diào)用進入內(nèi)核模式。
- 【2】KVM驅(qū)動為虛擬機創(chuàng)建 虛擬CPU和虛擬內(nèi)存,
- 【3】然后執(zhí)行VMLAU.NCH指令進入客戶模式,裝載Guest OS并運行。
- 【4】Guest OS運行過程中如果發(fā)生異常,則暫停Guest OS的運行并保存當前狀態(tài)同時退出到內(nèi)核模式來處理這些異常。
- 【5】內(nèi)核模式處理這些異常時如果不需要I/O則處理完成后重新進入客戶模式。如果需要I/O則進入到用戶模式,則由Qemu來處理I/O,處理完成后進入內(nèi)核模式,再進入客戶模式
4、KVM各核心組件功能
- QEMU
- 功能:控制I/O虛擬化,調(diào)用硬件資源
- KVM
- 功能:為虛擬機提供CPU、內(nèi)存(硬件資源)的虛擬化
總結(jié)
KVM工作原理
- 【1】QEMU:負責抽象化I/O資源
- 【2】KVM:內(nèi)置在內(nèi)核中,負責對實際物力資源進行抽象/邏輯分割
- 【3】QEMU:會借助libvirt工具對內(nèi)核中(KVM邏輯分割的資源進行調(diào)用)
- 【4】然后。將資源傳輸至VM
總結(jié)
以上是生活随笔為你收集整理的KVM虚拟化的简单概论的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 为你讲解ELK的组成与部署
- 下一篇: OpenStack(一)——OpenSt