kvm三個組件及應用
KVM虛擬化架構及三種模式
1、 客户模式(guestOS):VM中的OS為GuestOS
客户機在操作系統中運行的模式,客户機分為內核模成和用户模式
2、用户模式:
為用户提供虛擬機管理的用户空間工具以及代表用户執行I/O, Qemu工作在此模式下(Qemu的主要功能)
3、linux內核模式
模擬CPU、內存,實現客户模式切換,處理從客户模式的推出,KVM即運行在此模式下
KVM原理
1、 Guest:客户機系統,包括CPU (vCPU) 、內存、驅動(Console、 網卡、I/O設備驅動等)
被KVM置於一種受限制的CPU模式下運行。
2、KVM內核模塊模擬處理器和內存以支持虛擬機運行
3、Qemu主要處理I/O以及為客户提供一 個用户空間/dev/kvm工具libvirt來進行虛擬機管理
ioctl(定義)專用於設備輸入輸出操作的系統調用
libvirt: KVM管理工具
以上構成一個完整的虛擬化平台
簡單理解:
KVM驅動提供處理器、內存的虛擬化,以及客户機I/O的攔截,guest的I/O被攔截後,交由Qemu處理
Qemu利用接口libkvm調用(ioctl)虛擬機設備接口/dev/kvm來分配資源、管理、維護虛擬機
KVM工作流程
用户模式的Qemu利用接口libkvm 通過 ioctl系統調用進入內核模式。KVM驅動為虛擬機創建虛擬CPU和虛擬內存,然後執行VMLAU-NCH指令進入客户模式,裝載Guest OS並運行。Guest OS運行過程中如果發生異常,則暫停Guest OS的運行並保存當前狀態同時退出到內核模式來處理這些異常。
內核模式處理這些異常時如果不需要V/O則處理完成後重新進入客户模式。如果需要V/O則進入到用户模式,則由Qemu來處理I/O,處理完成後進入內核模式,再進入客户模式