CPU虚拟化
通过时分、空分方式实现多个VM共享CPU资源,对VM的敏感指令进行截获并模拟执行
X86,Ring0-Ring3,操作系统内核、操作系统、操作系统、应用程序,优先级从高到低
虚拟化方法:特权解除(Privilege deprivileging)/陷入-模拟(Trap-and-Emulation)
GuestOS 大部分指令直接运行在硬件上,当执行特权指令时,才会陷入VMM模拟执行(陷入-模拟)
X86架构无法使用经典虚拟化技术的完全虚拟化解决方案:
半虚拟化:修改操作系统,只能是Linux
全虚拟化:二进制翻译,增加了复杂性
硬件辅助虚拟化:简化VMM软件功能
在分配虚拟机VCPU的时候最大值不超过该物理服务器线程总数
再分配VCPU时尽量不要选择单核(即1VCPU),如果选择单核,在FC平面上默认不支持CPU扩容。
内存虚拟化
物理机的内存统一管理,包装成多份虚拟的内存给虚拟机使用,物理内存和虚拟内存通过VM