KVM原理

作者: jeepshen | 来源:发表于2017-01-06 21:27 被阅读0次

Linux内核模型: 单内核

  1. 单内核
    单内核指整个内核从整体上作为一个过程实现,运行在一个单独的地址空间内 ,内核之间的通信可以简单的用函数调用实现。这样的设计简单高效,但是每次的修改都需要整体重新编译,升级比较麻烦。
  2. 微内核
    微内核是指整个内核划分为多个独立的过程,拥有独立的地址空间,只有少量的核心的过程运行在特权模式下,使用进程通信而不是简单的函数调用。多模块的内核设计能够提升健壮性,但是进程间通信设计内核空间和用户上下文的切换,开销远远大于函数调用
  3. Linux内核
    为了满足性能要求,Linux被设计成单内核,但是也借鉴了微内核的精华:模块化以及模块的动态装载。除了核心模块一直运行在内核如进程切换,内存管理等,其他的大部分内核功能作为单独的模块,以二进制文件的形式存在,使用时动态状态,不使用的时候动态卸载。

虚拟化模型

模型: 物理系统 —— Hypervisor —— 虚拟机
  1. 底层物理系统: 处理器,内存,输入输出设备
  2. VMM/Hypervisor: 管理物理系统,并未虚拟机提供虚拟的硬件平台
  3. 虚拟机: 包括虚拟硬件和虚拟系统

KVM架构

KVM作为内核的一个模块,是KVM虚拟机的核心部分,仅支持硬件虚拟化,其功能是打开并初始化系统硬件以支持虚拟机的运行。
KVM工作流程
  1. KVM模块被内核加载后,首先初始化内部的数据结构;
  2. 检查宿主机的CPU,打开CPU寄存器CR4的虚拟化开关,并将宿主机的操作系统置于虚拟化模式的根模式;
  3. KVM模块创建/dev/kvm,并等待用户空间的指令。
  4. QEMU程序与KVM模块配合完成虚拟机的创建和运行。
虚拟机创建
  1. KVM和用户空间的QEMU通信,主要通过一系列的IOCTL的调用
  2. QEMU发送创建虚拟机的指令给KVM模块,KVM创建对应的内核数据结构,同时返回一个文件句柄表示创建的虚拟机
  3. 对返回的文件句柄操作,可以对虚拟机进行相应的管理:如分配虚拟内存和虚拟CPU,KVM创建对应的句柄以便操作。

QEMU是完全软件虚拟化,KVM仅支持硬件虚拟化,KVM+QEMU是双赢

KVM环境

  1. 内存过载使用
    CPU允许过载使用,同样内存也允许虚拟机过载使用(因为虚拟机中内存和cpu往往不会达到百分百的使用率),内存的过载使用有几种实现方式
    • 交换分区,使用交换分区弥补虚拟内存的不足
    • virio_ballon
    • 页共享,使多个虚拟机上的进程使用相同的内存页。
      KVM允许内存的过载使用,但是在实际的生产环境中使用过载内存,应该经过充分的测试。
  2. qemu支持的镜像格式:
    1. raw :原始的镜像格式,如果系统支持空洞文件,则只有写有数据的扇区才会占用磁盘空间,从而达到节省空间的效果。dd创建的镜像也是raw格式,不过一开始创建的时候就分配全部的空间,没有采用稀疏的文件存储。
    2. qcow2: 推荐的镜像格式。支持稀疏文件存储, 支持可选的AES加密已提高镜像的安全性
    3. vdi:virtualbox
    4. vmdk: vmware
  3. 宿主机镜像存储:
    1. 本地存储 :一开始使用的这个,随着镜像越来越大
    2. 额外的磁盘存储: 挂在单独的磁盘存储镜像
    3. NFS: 集群下开始使用nfs网络文件系统
    4. LVM: 没有使用逻辑卷管理。
  4. 网络配置
  5. 图形显示
    VNC:虚拟远程计算机,使用RFB远程帧缓冲协议,将控制端的鼠标,键盘传递给远程被控制的计算机,并将图形界面反向传输回来。

相关文章

  • KVM原理

    Linux内核模型: 单内核 单内核单内核指整个内核从整体上作为一个过程实现,运行在一个单独的地址空间内 ,内核之...

  • kvm基本命令

    kvm常用管理命令 kvm连接方式 kvm磁盘磁盘 kvm快照管理 kvm克隆虚拟机 kvm桥接网络 kvm虚拟机...

  • KVM 使用

    1. 檢查 kvm-ok cef@P5:~$ kvm-ok INFO: /dev/kvm exists KVM a...

  • ubuntu xenial 安装 KVM

    KVM 官网 http://www.linux-kvm.org/page/Main_Pageubuntu KVM ...

  • KVM的原理与使用

    一、KVM简介 KVM的全称是Kernel Virtual Machine,翻译过来就是内核虚拟机。它是一个 Li...

  • 第二章 KVM原理与环境构建

    获取方式 kvm 源码管理地址 (search "kvm/kvm.git")linux 内核的Tarball (t...

  • OpenStack 01

    KVM KVM 全称是 Kernel-Based Virtual Machine。也就是说 KVM 是基于 Lin...

  • 数字kvm和模拟kvm区别

    数字kvm和模拟kvm最主要的区别是: 数字kvm可以通过网络远程进行管理、操控PC或者服务器;模拟kvm只能在本...

  • KVM

    1、虚拟化技术: 2、KVM的组件: 3、快速使用kvm技术: 4、kvm: Kernel-based Virtu...

  • Hypervisor, KVM, QEMU虚拟化

    Hypervisor, KVM, QEMU总结 Hypervisor 1.概念 Hypervisor, KVM, ...

网友评论

      本文标题:KVM原理

      本文链接:https://www.haomeiwen.com/subject/xnuxbttx.html