千家信息网

OpenStack中如何理解KVM和QEMU

发表于:2025-02-06 作者:千家信息网编辑
千家信息网最后更新 2025年02月06日,OpenStack中如何理解KVM和QEMU,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一、KVM概述KVM是Kern
千家信息网最后更新 2025年02月06日OpenStack中如何理解KVM和QEMU

OpenStack中如何理解KVM和QEMU,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

一、KVM概述

KVM是Kernel-based Virtual Machine的缩写,即基于linux内核的虚拟机,是一种的完全虚拟化的解决方案,也就是说普通的操作系统不需经过修改就可以在KVM上运行。它使用linux自身的调度器进行管理,所以相对于xen,其核心源码很少。KVM的虚拟化需要硬件的支持(如intel VT技术或者AMD V技术),是基于硬件的完全虚拟化。

准确来说,KVM是Linux的一个模块。可以用modprobe去加载KVM模块。加载了模块后,就可以使用KVM模块创建虚拟机,实现虚拟内存的分配,虚拟CPU寄存器的读写以及管理虚拟CPU的运行。但仅有KVM模块是远远不够的,因为用户无法直接控制内核模块去作事情,所以还必须有一个用户空间的工具才行。这个用户空间的工具,开发者选择了已经成型的开源虚拟化软件 QEMU,使用它来模拟PC硬件的用户空间组件,模拟I/O设备模型以及提供访问外设的途径。后边会详细的介绍QEMU,这里先知道它用了QEMU就好了。

KVM基本架构如下图所示。

其中KVM被加入到标准的Linux内核中,被组织成Linux中标准的字符设备(/dev/kvm)。Qemu利用KVM提供的LibKvm应用程序接口,通过ioctl系统调用创建和运行虚拟机。KVM Driver使得整个Linux成为一个虚拟机监控器。并且在原有的Linux两种执行模式(内核模式和用户模式)的基础上,新增加了客户模式,客户模式拥有自己的内核模式和用户模式。在虚拟机运行下,三种模式的分工如下:

  • 客户模式:执行非I/O的客户代码,虚拟机运行在客户模式下。

  • 内核模式:实现到客户模式的切换,处理因为I/O或者其它指令引起的从客户模式的退出,KVM Driver工作在这种模式下。

  • 用户模式:代表客户执行I/O指令Qemu运行在这种模式下。

KVM的具体工作流程如下:
用户模式的qemu利用libkvm通过ioctl进入内核模式,kvm模块未虚拟机创建虚拟内存,虚拟CPU后执行VMLAUCH指令进入客户模式。加载Guest OS并执行。如果Guest OS 发生外部中断或者影子页表缺页之类的情况,会暂停Guest OS的执行,退出客户模式出行异常处理,之后重新进入客户模式,执行客户代码。如果发生I/O事件或者信号队列中有信号到达,就会进入用户模式处理。

二、 QEMU概述

QEMU(Quick Emulator)是一个独立的开源虚拟机软件,它是通过纯软件来仿真X86平台处理器的取指、解码和执行,虚拟客户机的指令并不在物理平台上直接执行,它利用其中的微型代码生成器模块进行动态翻译,将需要模拟的客户机的代码架构转换成主机代码架构并最终执行。QEMU虚拟机是一个纯软件的实现(KVM需要硬件虚拟化技术支持),所以性能低下。但是,其优点是虚拟机可以与宿主机并不是同一个架构。与KVM不同的是,QEMU的代码中有整套的虚拟机实现,包括处理器虚拟化、内存虚拟化,以及KVM使用到的虚拟设备模拟(比如网卡、显卡、存储控制器和硬盘等)

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

模式 客户 用户 模块 内核 代码 运行 处理 指令 架构 硬件 软件 内存 技术 空间 设备 支持 信号 处理器 客户机 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 数据库中的多条件查询 地质数据库软件官方最新版 工业网络技术可以报考二建 数据库查询sql语句的底层原理 服务器属于什么开票类别 神通数据库使用的是哪个技术 福州app软件开发多少钱 长春软件开发首推吉网传媒好 vfp学生数据库管理 软件开发质量自动化管理工具 苹果连接服务器错误 数据库大写字母是什么数据类型 aria2服务器设置 防护空间服务器出售 江苏中帮互联网科技有限公司 服务器怎么不让别人存放东西 switch 2k 连接服务器 sql2000数据库备份 管理steam游戏服务器 服务器基线配置不当 电子商务所运用的网络技术 网络安全专业需要编写程序吗 迁安网络技术不二之选 上海活动网络安全知识竞赛 高陵区网络安全管理 浪潮英信服务器硬盘怎么拆 河北net软件开发价格 宁夏捍生互联网科技有限公司 数据库设计两个方面的设计 电子科技大学互联网十
0