RHEL 8 系统下 KVM 虚拟化技术全解析
1. 虚拟化技术概述
虚拟化是指在单个主机操作系统内运行多个客户操作系统的能力。目前主要有基于客户操作系统的虚拟化和基于管理程序的虚拟化两种方式。
1.1 基于客户操作系统的虚拟化
这种虚拟化方式会进行二进制重写,即扫描执行中的客户系统的指令流,并将特权指令替换为安全的模拟指令,让客户系统以为自己直接运行在系统硬件上。客户操作系统在虚拟化应用程序内的虚拟机中运行,而虚拟化应用程序则像其他应用程序一样运行在主机操作系统之上。不过,客户操作系统与底层主机硬件之间的多层抽象不利于虚拟机的高性能运行。但它的优点是无需对主机或客户操作系统进行任何更改,也不需要特殊的 CPU 硬件虚拟化支持。
1.2 基于管理程序的虚拟化
管理程序的任务是处理虚拟机的资源和内存分配,并为更高级别的管理和监控工具提供接口。基于管理程序的解决方案分为 Type - 1 和 Type - 2 两类。
- Type - 2 管理程序(托管型管理程序) :作为软件应用程序安装在主机操作系统之上,通过协调对 CPU、内存和网络等资源的访问,为客户虚拟机提供虚拟化功能。
- Type - 1 管理程序(原生管理程序) :直接在主机系统的硬件上的 ring 0 中运行。由于管理程序占用了 CPU 的 ring 0,客操作系统的内核必须在较低特权的 CPU 环中运行。但大多数操作系统内核是为在 ring 0 中运行而编写的,这就需要一些解决方案来解决这个问题,主要有以下三种:
- 半虚拟化 :修改客户操作
超级会员免费看
订阅专栏 解锁全文
42

被折叠的 条评论
为什么被折叠?



