自学内容网 自学内容网

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实战原理、进阶与性能调优》 


原文地址:https://blog.csdn.net/ejinxian/article/details/144331969

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!