《庖丁解牛Linux 操作系统分析》第10章KVM及虚拟化技术的学习:
1. 虚拟化技术概述
- 虚拟化(Virtualization) 是指通过软件技术模拟硬件环境,从而在单一物理硬件上运行多个操作系统或应用程序。
- 虚拟化的关键目的是提高资源利用率、隔离不同应用、简化管理、实现动态扩展。
- 类型:
- 全虚拟化(Full Virtualization):完全模拟物理硬件,虚拟机无法感知其底层硬件。
- 半虚拟化(Para-Virtualization):虚拟机操作系统知道自己是虚拟机,并与虚拟化层进行通信。
- 硬件虚拟化(Hardware-Assisted Virtualization):使用硬件支持虚拟化(如Intel VT-x、AMD-V等),以提高性能。
- 从设计架构来讲:
- 根据hypervisor部署方式不同
2. KVM(Kernel-based Virtual Machine)概述
- KVM 是Linux内核中的虚拟化模块,它允许Linux作为宿主操作系统运行多个虚拟机。KVM是完全虚拟化的,它利用了现代处理器提供的硬件虚拟化特性。
- KVM将Linux内核本身转变为一个虚拟机监控程序(hypervisor)。与传统的虚拟机管理程序(如VMware、Xen)不同,KVM直接集成在Linux内核中,利用内核本身的调度和内存管理等功能。
- KVM的关键组件:
- kvm.ko:内核模块,提供虚拟化支持。
- qemu-kvm:用户空间的QEMU组件,负责虚拟机的管理、启动和控制。
3. KVM的架构
- KVM的架构由三个主要组件构成:
- 硬件层:提供硬件虚拟化支持(例如Intel VT-x、AMD-V&