KVM kernel-based virtual machine
依赖于 HVM intel VT-x ADM-V 也就是cpu虚拟化技术的支持
目前主流虚拟化有两种分类
hypervisor直接安装在物理机上 type-1
hypervisor作为操作系统的一个程序模块运行 type-2
kvm自然属于type-2类型,kvm采用完全虚拟化,在kvm环境中运行的客户机操作系统是未经修改的普通操作系统,在硬件虚拟化的支持下,内核的kvm模块与QEMU的设备模拟协同工作,构成了一套与物理计算机系统完全一致的计算机软硬件系统
完整的计算机系统应该包括:
cpu:中央处理器
Memory:内存
Storage:外存
Network:网络
Display:输入输出
KVM的整体结构
用户态:命令行或图形化接口,用来管理虚拟机(创建、运行、关机、销毁)
内核态:以内核模块的方式工作在系统内核
kvm组件
/dev/kvm:在用户空间通过系统调用来完成VM的生命周期管理
qemu进程:工作于用户空间,用于实现模拟虚拟机的IO设备
kvm特性
内存管理
支持使用Huge page 大内存页技术
支持使用Intel EPT、AMD RVI技术完成内存地址映射
支持KSM kernel Same-page Merging 内存页合并技术
硬件支持
取决于linux内核,linux支持多少驱动kvm就有多少驱动使用
储存
本地文件系统
网络附加存储
储存区域网络
分布式存储
支持实时迁移 属于高级特性