KVM虚拟化平台搭建+理论


在这里插入图片描述

一、KVM虚拟化架构

KVM 自 Linux 2.6.20 版本后就直接整合到 Linux 内核, 它依托 CPU 虚拟化指令集(如Intel-VT、 AMD-V) 实现高性能的虚拟化支持。 由于与 Linux 内核高度整合, 因此在性能、安全性、 兼容性、 稳定性上都有很好的表现。
下面图,描绘了 KVM 虚拟化架构,在 KVM 环境中运行的每一个虚拟化操作系统都将表现为单个独立的系统进程。 因此它可以很方便地与 Linux 系统中的安全模块进行整合(SELinux) , 可以灵活地实现资源的管理及分配。
在这里插入图片描述

二、KVM组成

KVM Driver

  • 虚拟机创建
  • 虚拟机内存分配
  • 虚拟CPU寄存器读写
  • 虚拟CPU运行

QEMU(经过简化与修改)

  • 模拟PC硬件的用户控件组件
  • 提供I/O设备模型及访问外设的途径

三、KVM原理简介

​ 广义的 KVM 实际上包含两部分, 一部分是基于 LINUX 内核支持的 KVM 内核模块, 另一部分就是经过简化和修改的 Qemu。
​ KVM 内核模块模拟处理器和内存以支持虚拟机的运行,Qemu 主要处理 I/O 以及为用户提供一个用户空间工具来进行虚拟机的管理。 两者相互结合, 相辅相成, 构成了一个完整的虚拟化平台。
请注意: Qemu 本身并不是 KVM 的一部分, Qemu 是一套完整的虚拟化解决方案, 是纯软件实现虚拟化, 包括处理器虚拟化、 内存虚拟化以及各种虚拟设备的模拟, 但因为是纯软件模拟出来的, 所以 Qemu 的性能比较低

四、KVM 运行时的三种模式

客户模式

  • 可以简单理解成客户机在操作系统运行中的模式, 客户模式又分为内核模式和用户模式。

用户模式

  • 为用户提供虚拟机管理的用户空间工具以及代表用户执行 I/O, Qemu 运行在这个模式之下。

内核模式

  • 模拟 CPU 以及内存, 实现客户模式的切换, 处理从客户模式的退出。 KVM 内核模块运行在这个模式下
    在这里插入图片描述

五、KVM工作原理

用户模式的 Qemu 利用接口 libkvm 通过 ioctl 系统调用进入内核模式。 KVMDriver 为虚拟机创建虚拟 CPU 和虚拟内存, 然后执行 VMLAU·NCH 指令进入客户模式, 装载 Guest OS 并运行。 Guest OS 运行过程中如果发生中断或者影子缺页等异常, 将暂停 Guest OS 的运行并保存当前上下文退出到内核模式来处理这些异常。 内核模式处理这些异常时如果不需要 I/O则处理完成后重新进入客户模式。 如果需要 I/O 则进入到用户模式, 由 Qemu 来处理 I/O,处理完成后进入内核模式, 再进入客户模式
在这里插入图片描述

六、案例

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值