当前位置: 首页 > article >正文

KVM 虚拟化

KVM(Kernel-based Virtual Machine)是一种基于内核的虚拟机技术,具有以下优势:

  • 开源性‌:KVM是完全开源的,这意味着它没有许可费用,适合预算有限的用户。
  • 性能‌:KVM利用Linux内核的现有功能,通常在性能上表现出色,特别是在x86平台上。
  • 广泛支持‌:KVM支持多种处理器架构,包括x86、PowerPC、S/390和ARM等,适用于多种硬件平台。
  • 社区支持‌:KVM拥有活跃的开源社区,用户可以获得丰富的资源和支持。

目前VMware ESXi是领导者,

几种主流虚拟化技术架构:ESXi、Xen与KVM,其主要差别在与各组件(CPU、内存、磁盘与网络IO)的虚拟化与调度管理实现组件有所不同。在ESXi中,所有虚拟化功能都在内核实现。Xen内核仅实现CPU与内存虚拟化, IO虚拟化与调度管理由Domain0(主机上启动的第一个管理VM)实现。​KVM内核实现CPU与内存虚拟化,QEMU实现IO虚拟化,通过Linux进程调度器实现VM管理。

KVM虚拟化有两个核心模块:

1)KVM内核模块:主要包括KVM虚拟化核心模块KVM.ko,以及硬件相关的KVM_intel或KVM_AMD模块;负责CPU与内存虚拟化,包括VM创建,内存分配与管理、vCPU执行模式切换等。

2)QEMU设备模拟:实现IO虚拟化与各设备模拟(磁盘、网卡、显卡、声卡等),通过IOCTL系统调用与KVM内核交互。KVM仅支持基于硬件辅助的虚拟化(如Intel-VT与AMD-V),在内核加载时,KVM先初始化内部数据结构,打开CPU控制寄存器CR4里面的虚拟化模式开关,执行VMXON指令将Host OS设置为root模式,并创建的特殊设备文件/dev/kvm等待来自用户空间的命令,然后由KVM内核与QEMU相互配合实现VM的管理。KVM会复用部分Linux内核的能力,如进程管理调度、设备驱动,内存管理等。

 

参考:

《KVM实战原理、进阶与性能调优》 


http://www.kler.cn/a/429032.html

相关文章:

  • 后盾人JS -- 好用的 JavaScript Symbol 类型
  • OSPF小实验
  • Flink (九):DataStream API (六) Process Function
  • Kubernetes(k8s)和Docker Compose本质区别
  • Web渗透测试之伪协议与SSRF服务器请求伪装结合? 能产生更多的效果
  • Html5 video标签学习
  • 深度学习中的数据并行
  • Qt学习笔记第51到60讲
  • 深入探索 Compose 渲染流程:从 UI 树到 Skia 绘制的实现解析
  • 关于csgo游戏搬砖作弊与封禁
  • 沪合共融 “汽”势如虹 | 昂辉科技参加合肥上海新能源汽车产业融合对接会
  • git 拉取代码时报错 gitignore Please move or remove them before you merge.
  • 21 网络编程:Go 语言如何玩转 RESTful API 服务
  • 数据分析: 基于CSDN博客排行榜TOP100的博客创作分析和建议
  • .vscode文件中各个脚本需要修改的地方
  • uni-app登录界面样式
  • python插入mysql数据
  • 漫画之家系统:Spring Boot技术下的漫画阅读优化
  • 【C语言】fscanf 和 fprintf函数
  • 【Qt移植LVGL】QWidget手搓LVGL软件仿真模拟器(非直接运行图形库)
  • 用Python开发一个经典贪吃蛇小游戏
  • 【Stable Diffusion】ComfyUI 基础教程-环境部署和插件安装
  • MQ 队列 的 通信过程
  • SpringBoot整合Mockito进行单元测试超全详细教程 JUnit断言 Mockito 单元测试
  • String IP和Int IP的互相转换
  • HTML旋转爱心(完整代码)