文章目录
前言
- KVM 自 Linux 2.6.20 版本后就直接整合到 Linux 内核, 它依托 CPU 虚拟化指令集(如
Intel-VT、 AMD-V) 实现高性能的虚拟化支持。
一:KVM理论
1.1:概述
-
广义的 KVM 实际上包含两部分, 一部分是基于 LINUX 内核支持的 KVM 内核模块, 另一部
分就是经过简化和修改的 Qemu。
- KVM 内核模块模拟处理器和内存以支持虚拟机的运行,Qemu 主要处理 I/O 以及为用户提
供一个用户空间工具来进行虚拟机的管理。 两者相互结合, 相辅相成, 构成了一个完整的虚
拟化平台。 - 请注意: Qemu 本身并不是 KVM 的一部分, Qemu 是一套完整的虚拟化解决方案, 是纯软
件实现虚拟化, 包括处理器虚拟化、 内存虚拟化以及各种虚拟设备的模拟, 但因为是纯软件
模拟出来的, 所以 Qemu 的性能比较低。
- KVM 内核模块模拟处理器和内存以支持虚拟机的运行,Qemu 主要处理 I/O 以及为用户提
1.2:KVM运行时的三种模式
-
客户模式: 可以简单理解成客户机在操作系统运行中的模式, 客户模式又分为内核模式
和用户模式。-
用户模式: 为用户提供虚拟机管理的用户空间工具以及代表用户执行 I/O, Qemu 运行在
这个模式之下。 -
内核模式: 模拟 CPU 以及内存, 实现客户模式的切换, 处理从客户模式的退出。 KVM 内
核模块运行在这个模式下
-
1.3:KVM工作原理
- 用户模式的 Qemu 利用接口 libkvm 通过 ioctl 系统调用进入内核模式。 KVMDriver 为虚
拟机创建虚拟 CPU 和虚拟内存, 然后执行 VMLAU·NCH 指令进入客户模式, 装载 Guest OS 并运
行。 Guest OS 运行过程中如果发生中断或者影子缺页等异常, 将暂停 Guest OS 的运行并保
存当前上下文退出到内核模式来处理这些异常。 内核模式处理这些异常时如果不需要 I/O
则处理完成后重新进入客户模式。 如果需要 I/O 则进入到用户模式, 由 Qemu 来处理 I/O,
处理完成后进入内核模式, 再进入客户模式,
二:KVM虚拟化平台实操
-
拓扑图:
2.1:安装centos7系统
- 在VMware软件中新建虚拟机,并安装centos7系统
- 此处比较简单,不在赘述
2.2:centos7系统开局优化和KVM环境准备
-
centos7系统安装完成后,需要勾选上KVM虚拟化功能,且网卡选择NAT模式
-
设置镜像光盘自动挂载
[root@localhost ~]# vim /etc/fstab /dev/sr0 /mnt iso9660 defaults 0 0 '//尾行添加&#