广东网站建设怎么选,广西和住房城乡建设厅网站首页,有免费建站的网站,山西住房和建设厅网站前言
大家好#xff0c;我是秋意零。
#x1f47f; 简介
#x1f3e0; 个人主页#xff1a; 秋意零#x1f525; 账号#xff1a;全平台同名#xff0c; 秋意零 账号创作者、 云社区 创建者#x1f9d1; 个人介绍#xff1a;在校期间参与众多云计算相关比赛#x…前言
大家好我是秋意零。 简介 个人主页 秋意零 账号全平台同名 秋意零 账号创作者、 云社区 创建者 个人介绍在校期间参与众多云计算相关比赛如 “省赛”、“国赛”并斩获多项奖项荣誉证书 目前状况24 届毕业生拿到一家私有云IAAS公司 offer目前已在实习欢迎大家欢迎大家一起学习云计算走向年薪 30 万推广CSDN 主页左侧是个人扣扣群推广。方便大家技术交流、技术博客互助。
一、内核模块
KVM内核模块是Linux内核的一部分由于KVM的存在让Linux本身就变成了一个Hypervisor可以原生地支持虚拟化功能。
目前KVM支持多种处理器平台它支持最常见的以Intel和AMD为代表的x86和x86 64平台也支持PowerPC、S/390、ARM等非x86架构的平台。
KVM模块是KVM虚拟化的核心模块KVM的主要功能是初始化CPU硬件打开虚拟化模式然后将虚拟客户机运行在该模式下并对虚拟客户机的运行提供一定的支持。它在内核中由两部分组成
一个是与处理器架构无关用 lsmod 命令可以查看叫作 kvm 模块处理器架构相关部分在Inter平台上就是 kvm_intel 这个内核模块。
二、QEMU用户态设备模拟
QEMU介绍
QEMU是一个开源的虚拟机软件而不是KVM虚拟机软件的一部分。
QEMU虚拟机是一个纯软件的实现通过二进制翻译来实现虚拟化客户机中的CPU指令模拟所以性能比较低。但是优点是跨平台QEMU支持在Linux、Windows、MacOS等多种操作系统上运行。
除了二进制翻译的方式QEMU也能与基于硬件虚拟化的Xen、KVM结合为它们提供客户机的设备模拟。通过与KVM的结合让虚拟化的性能提升非常高。 最早期的KVM开发者们为了简化软件架构和代码重用根据KVM特性在QEMU的基础上进行了修改当然这部分修改已经合并回QEMU的主干代码故现在的QEMU已原生支持KVM虚拟化特性。 工作过程
虚拟机运行期间QEMU会通过KVM模块提供的系统调用进入内核由KVM模块负责将虚拟机置于处理器的特殊模式下运行。遇到虚拟机进行I/O操作时KVM模块会从上次的系统调用出口处返回QEMU由QEMU来负责解析和模拟这些设备。 从QEMU角度来看也可以说QEMU使用了KVM模块的虚拟化功能为自己的虚拟机提供硬件虚拟化的加速从而极大地提高了虚拟机的性能。 除此之外虚拟机的配置和创建虚拟机运行依赖的虚拟设备虚拟机运行时的用户操作环境和交互以及一些针对虚拟机的特殊技术(如: 动态迁移)都是由QEMU自己实现的。 QEMU除了提供完全模拟的设备 (如: e1000网卡、IDE磁盘等)以外还支持virtio协议的设备模拟。
virtio是一个沟通客户机前端设备与宿主机上设备后端模拟的比较高性能的协议在前端客户机中需要安装相应的virtio-blk、virtio.scsi、virtio-net等驱动而QEMU就实现了virtio的虚拟化后端。 虚拟化后端是指在宿主机上实现 virtio 协议的一方也就是 QEMU。它负责实现 virtio 协议并且与客户机中的 virtio 驱动程序协同工作从而实现在客户机和宿主机之间的高效通信。virtio 后端也可以由其他虚拟化工具如 Xen、KVM 等来实现但 QEMU 是最常见的 virtio 后端实现之一。 总结
QEMU既是一个功能完整的虚拟机监控器也在QEMU/KVM的软件栈中承担设备模拟的工作。