KVM QEMU虛擬化概念

2022-03-12 00:46:45 字數 2228 閱讀 1176

概念:

kvm,即kernel-basedvirtual machine,由redhat開發,是一種開源、免費的虛擬化技術。對企業來說,是一種可選的虛擬化解決方案。

定義:基於linux核心的虛擬機器

解釋:kvm 、xen、hyper-v 這類 hypervisor 是為商用而生的,他們本身就是一種 os,直接執行

在硬體之上,例如kvm,架構是:硬體 ---> ---> vm,即載入了

kvm module 的 linux kernel 本身就是一種完備的 hypervisor,執行在核心態。這樣做的

好處在於可以使用 kernel 本身的 cpu 排程 和 記憶體管理,不用像xen一樣自己實現,所以

說,kvm 是基於 linux kernel 的。

優點:kvm最大的好處就在於它是與linux核心整合的,所以速度很快。kvm的宿主作業系統必須是linux,支援的客戶機作業系統包括linux、windows、solaris和bsd,執行在支援虛擬化擴充套件的x86和x86_64硬體架構上,cpu支援vt技術。

qemu:

qemu是乙個主機上的vmm(virtual machine monitor),通過動態二進位制轉換來模擬cpu,並提供一系列的硬體模型,使guest os認為自己和硬體直接打交道,其實是同qemu模擬出來的硬體打交道,qemu再將這些指令翻譯給真正硬體進行操作。通過這種模式,guest os可以和主機上的硬碟,網絡卡,cpu,cd-rom,音訊裝置和usb裝置進行互動。但由於所有指令都需要經過qemu來翻譯,因而效能會比較差。

硬體基礎:

kvm功能,是以擴充套件虛擬化cpu為硬體基礎(如intel-vt,amd-v),利用cpu虛擬化技術。

實現方式:(模組化)

kvm作為核心的乙個模組,來提供虛擬化功能。如果系統需要虛擬化功能,則kvm模組可以被linux核心按需動態載入到記憶體執行。如果不需要的kvm功能,可以動態解除安裝該模組。

kvm+qemu工作原理:

kvm包含乙個核心模組kvm.ko用來實現核心虛擬化功能,以及乙個和處理器強相關的模組如kvm-intel.ko或kvm-amd.ko。kvm本身不實現任何模擬,僅僅是暴露了乙個/dev/kvm介面,這個介面可被宿主機用來主要負責vcpu的建立,虛擬記憶體的位址空間分配,vcpu暫存器的讀寫以及vcpu的執行。有了kvm以後,guest os的cpu指令不用再經過qemu來轉譯便可直接執行,大大提高了執行速度。但kvm的kvm.ko本身只提供了cpu和記憶體的虛擬化,所以它必須結合qemu才能構成乙個完整的虛擬化技術,這樣,kvm和qemu聯合就提供了乙個模擬的(虛擬的)硬體層(cpu、記憶體、io裝置等),虛擬機器就執行在這個模擬的硬體層之上。

上圖,是kvm虛擬機器的整體架構。kvm核心模組在執行時按需載入進入核心空間執行。kvm本身不執行任何硬體裝置模擬,需要使用者空間程式qemu通過/dev/kvm介面設定乙個虛擬客戶機的位址空間,向它提供模擬的i/o等硬體裝置。

總結:kvm核心模組在執行時只關注cpu排程和記憶體管理;而包括網絡卡在內的其他i/o硬體裝置是qemu虛擬提供的。

kvm是以擴充套件虛擬化的cpu為硬體基礎,但是kvm也可執行在不支援虛擬化技術的cpu之上。只不過,後者是使用qemu提供的純粹的模擬方式,效能較低。

kvm管理工具:

virtual machine manager(vmm),由redhat開發的,是乙個圖形化管理工具。

kvm也有自己的語法規則,你可以使用kvm的語法規則編寫命令,使用命令列方式來管理虛擬機器。 for more information, reference to :

the kernel virtualmachine - community ubuntu documentation

kvm tutorials onhowtoforge.com

kvm/virsh -community ubuntu documentation

kvm的優勢和劣勢:

優勢:kvm是乙個免費開源軟體,提供了虛擬化解決方案;提供了強大的命令列介面。

劣勢:kvm可以執行在不支援虛擬化的cpu硬體上,但是在這樣的話,效率會很低;kvm也可能會和虛擬機器virtualbox衝突; kvm只是提供命令列介面,使用者可以寫指令碼來管理kvm,並沒有乙個友好的gui。

kvm qemu 虛擬化相關資料收集

這篇文章中第乙個圖不錯,說明了記憶體和vcpu的建立流程,從qemu開始到核心的各個介面。也就是vcpu是在核心中建立的。以下這篇文章 講的清晰明了 首先kvm kernel virtual machine 是linux的乙個核心驅動模組,它能夠讓linux主機成為乙個hypervisor 虛擬機器...

資料虛擬化 基礎概念

資料儲存型別 資料倉儲 乙個支援管理決策程序的面向主題的,整合的,隨時間變化的,永久儲存的資料集合 資料集市 資料倉儲的子集,用於提高部分使用者的分析效能 資料中轉區 資料暫存區.資料流 資料來源 資料中轉區 資料倉儲.用於簡化資料倉儲的資料來源整合規則 同時便於資料倉儲進行資料清洗,轉換 運算元據...

虛擬化技術簡單概念

1 引入虛擬化技術的必要性 2 虛擬化的概念 虛擬化是指通過虛擬化技術將計算機虛擬為多台邏輯計算機。在一台計算機上同時執行多個邏輯計算機,每個邏輯計算機可執行不同的作業系統,並且應用程式都可以相互在獨立的空間內執行而互不影響。從而顯著提高計算機的工作效率。3 簡單虛擬化示意圖 虛擬化前 虛擬化後 4...