KVM(二)
- 第5章 KVM核心基础功能
- 5.1 硬件平台和软件版本说明
- 5.2 CPU配置
- 5.2.1 vCPU的概念
- 5.2.2 SMP的支持
- 网站
- 中断控制器的创建和虚拟化
- PIC APIC
第5章 KVM核心基础功能
KVM采用的是完全虚拟化(Full Virtualizaiton)技术,在KVM环境中运行的客户机 (Guest)操作系统是未经过修改的普通操作系统。在硬件虚拟化技术的支持下,内核的 KVM模块与QEMU的设备模拟协同工作,从而构成了一整套与物理计算机系统完全一致 的虚拟化的计算机软硬件系统。要运行一个完整的计算机系统,必不可少的也是最重要的子系统包括:处理器 (CPU)、内存(Memory)、存储(Storage)、网络(Network)、显示(Display) 等。
5.1 硬件平台和软件版本说明
在本章及第6章中,除非特别注明,否则默认使用的硬件平台(CPU)是Intel Xeon CPU E5或者E3,软件系统中宿主机和客户机都是RHEL 7.3系统,而宿主机内核是Linux stable tree 4.8.5版本,用户态的QEMU是QEMU 2.7.0版本。在正式开始本章内容之前,先 分别对软硬件环境进行较为详细的说明,其中涉及的编译和配置过程请参考第3章。
- 硬件平台
- KVM与内核
- QEMU
- qemu命令行开启KVM加速功能
需要在qemu启动的命令行加上“-enable-kvm”这个参数来使用KVM硬件加速功能。
5.2 CPU配置
5.2.1 vCPU的概念
在KVM环境中,每个客户机都是一个标准的Linux进程 (QEMU进程),而每一个vCPU在宿主机中是QEMU进程派生的一个普通线程。
在普通的Linux系统中,进程一般有两种执行模式:内核模式和用户模式。而在KVM 环境中,增加了第3种模式:客户模式。vCPU在3种执行模式下的不同分工如下。
(1)用户模式(User Mode) 主要处理I/O的模拟和管理,由QEMU的代码实现。
(2)内核模式(Kernel Mode) 主要处理特别需要高性能和安全相关的指令,如处理客户模式到内核模式的转换,处 理客户模式下的I/O指令或其他特权指令引起的退出(VM-Exit),处理影子内存管理 (shadow MMU)。
(3)客户模式(Guest Mode) 主要执行Guest中的大部分指令,I/O和一些特权指令除外(它们会引起VM-Exit,被 Hypervisor截获并模拟)。
在系统的底层CPU硬件中需要有硬件辅助虚拟化技术的支持(Intel VT或AMD-V 等),宿主机就运行在硬件之上,KVM的内核部分是作为可动态加载内核模块运行在宿主机中的,其中一个模块是与硬件平台无关的实现虚拟化核心基础架构的kvm模块,另一个是硬件平台相关的kvm_intel(或kvm_amd)模块。
5.2.2 SMP的支持
多处理器、多核、超线程技术 SMP
网站
中断控制器的创建和虚拟化
PIC APIC
pic apic