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指令进入客户模式,装载GuestOS并运行。GuestOS运行过程中如果发生异常,则暂停GuestOS的运行并保存当前状态同时退出到内核模式来处理这些异常。内核模式处理这些异常时如果不需要V/O则处理完成后重新进入客户模式。如果需要V/O则进入到用户模式,则由Qemu来处理I/O,处理完成后进入内核模式,再进入客户模式