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章。

  1. 硬件平台
  2. KVM与内核
  3. QEMU
  4. 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截获并模拟)。

KVM 对接块存储 kvm zen_KVM 对接块存储


在系统的底层CPU硬件中需要有硬件辅助虚拟化技术的支持(Intel VT或AMD-V 等),宿主机就运行在硬件之上,KVM的内核部分是作为可动态加载内核模块运行在宿主机中的,其中一个模块是与硬件平台无关的实现虚拟化核心基础架构的kvm模块,另一个是硬件平台相关的kvm_intel(或kvm_amd)模块。

KVM 对接块存储 kvm zen_虚拟化_02

5.2.2 SMP的支持

多处理器、多核、超线程技术 SMP

网站

中断控制器的创建和虚拟化

PIC APIC

pic apic