一个普通的 linux 进程有两种运行模式:内核和用户。而 KVM 增加了第三
种模式:客户模式(有自己的内核和用户模式)。在 kvm 模型中,每一个虚拟
机都是由 linux 调度程序管理的标准进程。
总体来说,深圳企业云超融合部署方案,kvm 由两个部分组成:一个是管理虚拟硬件的设备驱动,该驱
动使用字符设备/dev/kvm 作为管理接口;另一个是模拟 PC 硬件的用户空间组
件,这是一个稍作修改的 qemu 进程。
同时,aSV 采用 KVM 优势有:
? 嵌入到 Linux 正式 Kernel(****兼容性)
? 代码级资源调用(****性能)
? 虚拟机就是一个进程(内存易于管理)
? 直接支持 NUMA 技术(****扩展性)
? 保持开源发展模式(强大的社区支持)
VMM (Virtual Machine Monitor)对物理资源的虚拟可以划分为三个部分:
CPU 虚拟化、内存虚拟化和 I/O 设备虚拟化,其中以 CPU 的虚拟化****为关键。
经典的虚拟化方法: 现代计算机体系结构一般至少有两个特权级(即用户
态和核心态,x86 有四个特权级 Ring0~ Rin*)用来分隔系统软件和应用软
件。那些只能在处理器的特权级(内核态)执行的指令称之为特权指令,
一般可读写系统关键资源的指令(即敏感指令)决大多数都是特权指令(X86
存在若干敏感指令是非特权指令的情况)。如果执行特权指令时处理器的状态
不在内核态,通常会引发一个异常而交由系统软件来处理这个访问(陷
12
入)。经典的虚拟化方法就是使用“特权解除”和“陷入-模拟”的方式,即将
GuestOS 运行在非特权级,而将 VMM 运行于特权级(完全控制系统资
源)。解除了 GuestOS 的特权级后,Guest OS 的大部分指令仍可以在硬件上
直接运行,只有执行到特权指令时,才会陷入到 VMM 模拟执行(陷入-模
拟)。“陷入-模拟” 的本质是保证可能影响 VMM 正确运行的指令由 VMM
模拟执行,大部分的非敏感指令还是照常运行。