kvm是什么?能吃吗??(:=)

一,虚拟是什么?

  • 是一种技术,一种完全虚拟化技术,一般是指使用不同的程序将系统资源逻辑化,在硬件与系统之间建立一个逻辑划分层,从逻辑上将一个系统的资源分配给不同的虚拟机,来达到利用计算机空余性能。这项技术从1960年就已经开始研究,从1961年的Compatible Time Sharing System兼容性分时系统到今天成熟化的kvm,vmwork,VirtualBox等应用。
    在这里插入图片描述

二,虚拟化技术之KVM

KVM(Kernel-based Vritual Machine–基于内核的虚拟机

  • 是基于虚拟化扩展的X86硬件的开源Linux原生的全虚拟化方案 ,需要cpu支持Intel-VT-x或AMD-V,
  • 与其他软件的虚拟化不同KVM内嵌于内核模块中,模拟处理器和内存以支持虚拟机运行
  • 虚拟机被实现为常规的 Linux 进程,由标准 Linux 调度程序进行调度;
    虚拟机的每个虚拟 CPU 被实现为一个常规的 Linux 进程。这使得 KMV 能够使用 Linux 内核的已有功能
    但KVM本身不执行任何模拟。需要客户空间程序(虚拟机)通过/dev/kvm(此虚拟设备需要开起硬件辅助虚拟化才能看到)接口设置一个客户机虚拟服务器的地址空间,

kvm的主要模块

  • Qemu模拟I/O(ioctl)进行调度资源和维护管理
  • Libvirt:KVM的管理工具,除了可以管理KVM这类VMM,还可以管理Xen,VirtualBox,甚至OpenStack底层
  • Libvirt包含3个组件:后台daemon程序libvirtd、API库、命令行工具virsh

KVM架构/三种模式

  • 客户模式(guestOS):VM中的OS为GuestOS
    客户机在操作系统中运行的模式,客户机分为内核模式和用户模式,作用如下:
  • 用户模式:
    为用户提供虚拟机管理的用户空间工具以及代表用户执行I/O,Qemu工作在此模式下(Qemu的主要功能)
  • linux内核模式
    模拟CPU、内存,实现客户模式切换,处理从客户模式的推出,KVM即运行在此模式下

KVM原理

  • Guest:客户机系统,包括CPU(vCPU)、内存、驱动(Console、网卡、I/O 设备驱动等),
    被KVM 置于一种受限制的CPU 模式下运行。
  • KVM 内核模块模拟处理器和内存以支持虚拟机运行
  • Qemu 主要处理I/O以及为客户提供一个用户空间/dev/kvm 工具libvirt 来进行虚拟机管理
    ioctl(定义) 专用于设备输入输出操作的系统调用
    libvirt:KVM管理工具
    以上构成一个完整的虚拟化平台

KVM工作流程

用户模式的 Qemu 利用接口 libkvm 通过 ioctl 系统调用进入内核模式。 KVM驱动为虚拟机创建虚拟 CPU 和虚拟内存,
然后执行 VMLAU·NCH 指令进入客户模式,装载 Guest OS 并运行。Guest OS 运行过程中如果发生异常,则暂停Guest OS
的运行并保存当前状态同时退出到内核模式来处理这些异常。
内核模式处理这些异常时如果不需要 I/O则处理完成后重新进入客户模式。如果需要 I/O 则进入到用户模式,
则由 Qemu 来处理 I/O,处理完成后进入内核模式,再进入客户模式

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值