Qemu-KVM基本工作原理分析
2016-12-09 11:29
218 查看
1、理解KVM与Qemu的关系
我们都知道开源虚拟机KVM,并且知道它总是跟Qemu结合出现,那这两者之间有什么关系呢?
首先,Qemu本身并不是KVM的一部分,而是一整套完整的虚拟化解决方案,它是纯软件实现的,包括处理器虚拟化、内存虚拟化以及各种虚拟设备的模拟,但因为是纯软件模拟,所以性能相对比较低。
而广义的KVM实际上包含两部分,一部分是基于LINUX内核支持的KVM内核模块,另一部分就是经过简化和修改Qemu。
KVM内核模块模拟处理器和内存以支持虚拟机的运行,Qemu主要处理I/O以及为用户提供一个用户空间工具来进行虚拟机的管理。两者相互结合,相辅相成,构成了一个完整的虚拟化平台。
2、KVM运行时的三种模式
在虚拟机运行时,有三种模式,分别是:
客户模式:我们可以简单理解成客户机操作系统运行在的模式,它本身又分为自己的内核模式和用户模式。
用户模式:为用户提供虚拟机管理的用户空间工具以及代表用户执行I/O,Qemu运行在这个模式之下。
内核模式:模拟CPU以及内存,实现客户模式的切换,处理从客户模式的退出。KVM内核模块运行在这个模式下。
三种模式的层次关系我们可以用图简单描述一下:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202007/27/bf8d6bd6e496afb0dd88761fe79623aa)
3、KVM工作原理
KVM的大致工作原理:用户模式的Qemu利用接口libkvm通过ioctl系统调用进入内核模式。KVMDriver为虚拟机创建虚拟CPU和虚拟内存,然后执行VMLAUNCH指令进入客户模式,装载Guest OS并运行。Guest OS运行过程中如果发生中断或者影子缺页等异常,将暂停Guest OS的运行并保存当前上下文退出到内核模式来处理这些异常。内核模式处理这些异常时如果不需要I/O则处理完成后重新进入客户模式,如果需要I/O则进入到用户模式,由Qemu来处理I/O,处理完成后进入内核模式,再进入客户模式。
KVM的工作原理如图:
我们都知道开源虚拟机KVM,并且知道它总是跟Qemu结合出现,那这两者之间有什么关系呢?
首先,Qemu本身并不是KVM的一部分,而是一整套完整的虚拟化解决方案,它是纯软件实现的,包括处理器虚拟化、内存虚拟化以及各种虚拟设备的模拟,但因为是纯软件模拟,所以性能相对比较低。
而广义的KVM实际上包含两部分,一部分是基于LINUX内核支持的KVM内核模块,另一部分就是经过简化和修改Qemu。
KVM内核模块模拟处理器和内存以支持虚拟机的运行,Qemu主要处理I/O以及为用户提供一个用户空间工具来进行虚拟机的管理。两者相互结合,相辅相成,构成了一个完整的虚拟化平台。
2、KVM运行时的三种模式
在虚拟机运行时,有三种模式,分别是:
客户模式:我们可以简单理解成客户机操作系统运行在的模式,它本身又分为自己的内核模式和用户模式。
用户模式:为用户提供虚拟机管理的用户空间工具以及代表用户执行I/O,Qemu运行在这个模式之下。
内核模式:模拟CPU以及内存,实现客户模式的切换,处理从客户模式的退出。KVM内核模块运行在这个模式下。
三种模式的层次关系我们可以用图简单描述一下:
3、KVM工作原理
KVM的大致工作原理:用户模式的Qemu利用接口libkvm通过ioctl系统调用进入内核模式。KVMDriver为虚拟机创建虚拟CPU和虚拟内存,然后执行VMLAUNCH指令进入客户模式,装载Guest OS并运行。Guest OS运行过程中如果发生中断或者影子缺页等异常,将暂停Guest OS的运行并保存当前上下文退出到内核模式来处理这些异常。内核模式处理这些异常时如果不需要I/O则处理完成后重新进入客户模式,如果需要I/O则进入到用户模式,由Qemu来处理I/O,处理完成后进入内核模式,再进入客户模式。
KVM的工作原理如图:
相关文章推荐
- KVM源代码分析1:基本工作原理
- udev文件系统的使用和基本工作原理分析
- QEMU-KVM live migration流程分析
- qemu中KVM硬件虚拟化的初始化分析 (tcg、xen、kvm、qtest)(转)
- 几篇QEMU/KVM代码分析文章
- qemu-kvm 线程事件模型 【QEMU-KVM代码分析之三】
- udev文件系统的使用和基本工作原理分析
- qemu-kvm中断分析
- qemu-kvm-1.1.0源代码中关于迁移的代码分析
- 【QEMU-KVM代码分析之三】IO thread源码浅析之main loop
- qemu-kvm 代码分析
- qemu-kvm下memory hotplug 分析
- KVM-QEMU vdagent实现机制分析(二)
- KVM-QEMU vdagent实现机制分析(一)
- udev文件系统的使用和基本工作原理分析
- udev文件系统的使用和基本工作原理分析
- KVM QEMU 解读(原理及源码分析)
- qemu-kvm创建参数分析
- qemu-kvm-1.1.0源码中关于迁移的代码分析
- qemu-kvm 中断虚拟化代码分析