• KVM整体架构


    KVM整体架构

    *图2*

    KVM中的一个客户机作为一个用户空间进程(qemu-kvm)运行的,它和其他普通的用户进程一样由内核来调度使其运行在物理cpu上,不过它由KVM模块控制,可以在三种执行模式下运行。


    1.KVM架构中的3个组件:
    1) Guest: 客户机系统

    2) KVM:运行在Linux内核空间,成为内核模块
    提供CPU 和内存的虚级化,以及客户机的 I/O 拦截;
    Guest 的 I/O 被KVM 拦截后,交给 QEMU 处理;
    KVM驱动给用户空间的QEMU提供了/dev/kvm字符设备。

    3) QEMU
    修改过的为 KVM虚拟机使用的 QEMU 代码(称为qemu-kvm),运行在用户空间,
    提供硬件 I/O 设备的模拟,
    还通过对/dev/kvm设备执行IOCTL来和 KVM 交互执行创建虚拟机、vCPU等对guest的控制操作。

    2. Qemu-KVM
    KVM只负责CPU和内存的虚拟化,用户无法直接控制内核去做事情(KVM只提供接口,怎么创建虚拟机,分配vCPU等并不在它上面进行)
    还必须有个运行在用户空间的工具才行,KVM的开发者选择了比较成熟的开源虚拟化软件QEMU来作为这个工具,并对其进行了修改,最后形成了QEMU-KVM。
    QEMU-KVM具有两大作用:
    1) 提供对cpu,内存(KVM负责),IO设备(QEMU负责)的虚拟
    2) 对各种虚拟设备的创建,调用进行管理(QEMU负责)

    3.Libvirtd是一个daemon进程,virsh、virt-manager等工具呼叫libvirtd,而Libvirtd则调用qemu-kvm操作虚拟机。

  • 相关阅读:
    UML统一建模语言笔记
    从零开始学JavaWeb
    也谈微信小程序
    Memcached,你懂的
    一个简单的配置管理器(SettingManager)
    我的AngularJS 学习之旅
    .NET Core 跨平台
    ASP.NET Core 中间件自定义全局异常处理
    面试必考题——递归解题套路
    程序员着装指南
  • 原文地址:https://www.cnblogs.com/stellar/p/8399183.html
Copyright © 2020-2023  润新知