计算虚拟化基础介绍
虚拟化对未被充分利用的服务器进行整合,不再为新项目另外购置硬件,从而降低资本成本,同时,精简 数据中心服务器的数量,又可以成比例地减少供电、制冷和场地方面的运营成本。
利用先进的虚拟化管理和云运营管理软件,建立安全的、可审核的数据中心环境,为业务部门提供 成本更低、服务水平更高的基础架构,从而能够针对业务部门的需求做出快速的响应。
通过虚拟化管理和云运营管理软件,完全实现数据中心 IT 基础设施的集中化管理,这样不仅可以精简IT操作,提高管理效率,而且还可以简化监控、管理、报告和远程访问等操作。
最初的x86架构不适合于虚拟化
X86架构存在17条敏感的非特权指令,运行时不会产生异常,这些指令在客户操作系统上的执行会破坏整个系统。
解决方法1:半虚拟化(Para-Virtualization)
Xen 半虚拟化(Para-Virtualization)架构
在Hypervisor上运行的Guest OS已经集成了与半虚拟化有关的代码,使得Guest OS能够非常好地配合Hypervisor来实现虚拟化。
Hypervisor提供Hypercall接口来满足Guest OS的关键内核操作,如内存管理、中断和时间同步等。
解决方法2:BT(Binary Translation,二进制翻译)
全虚拟化
VMware ESX 的软件系统架构
Guest OS指令段在执行前进行整段翻译,将其中的敏感非特权指令替换为Ring0中执行对应特权指令。
非特权指令直接执行。
特权指令首先被陷入到VMM,并VMM通过一系列的模拟操作来实现此特权指令,然后返回给Guest OS,Guest OS从上次被中断的地方继续执行。
硬件辅助虚拟化
硬件辅助虚拟化-CPU
CPU硬件虚拟化—Intel VT-i
硬件辅助虚拟化—内存
IO虚拟化
客户机的设备驱动程序发起 I/O 请求操作请求,KVM 模块中的 I/O 操作捕获代码拦截这次 I/O 请求
经过处理后将本次 I/O 请求的信息放到 I/O 共享页 (sharing page),并通知用户空间的 QEMU 程序。
QEMU 程序获得 I/O 操作的具体信息之后,交由硬件模拟代码来模拟出本次I/O 操作。
完成之后,QEMU 将结果放回 I/O 共享页,并通知 KMV 模块中的 I/O 操作捕获代码。
KVM 模块的捕获代码读取 I/O 共享页中的操作结果,并把结果放回客户机。
主流的Hypervisor产品
ARM处理器模式—虚拟化模式
在 x86 架构中,与根模式相对应的是非根模式(non-root mode),非根模式即传统的 CPU 模 式,包括Ring 0~Ring 3 的权限级;而在根模式中,也有对应的 Ring 0~Ring 3 的权限级。也就是说,根模式和非根模式是平行的;
而在 ARM 中,虚拟化模式和原有的几种模式是并列的,只是虚拟化模式拥有比管理模式更高 的权限等级。
KVM/ARM 虚拟化技术原理
本文来自“计算虚拟化基础介绍”,主要介绍虚拟化的产生与发展,KVM的CPU、内存和IO虚拟化,ARM和X86的比较。
申明:感谢原创作者的辛勤付出。本号转载的文章均会在文中注明,若遇到版权问题请联系我们处理。
推荐阅读
1、全店内容持续更新,现下单“架构师技术全店资料打包汇总(全)”一起发送服务器基础知识全解(终极版)和存储系统基础知识全解 pdf及ppt版本,后续可享全店内容更新“免费”赠阅,价格仅收249元(原总价439元)。
2、随着电子书数量增加及内容更新,价格会随之增加,所以现在下单最划算,购买后续可享全店内容更新“免费”赠阅。
温馨提示:
扫描二维码关注公众号,点击阅读原文链接获取“架构师技术全店资料打包汇总(全)”电子书资料详情。
微信扫码关注该文公众号作者