KVM简介

KVM(基于内核的虚拟机 kernel based virtual machine)

它是一个linux内核模块,使得linux变成了一个hypervisor。kvm包括一个处理器提供底层虚拟化,可加载各种模块kvm. ko,使用QEMU作为虚拟机的上层控制工具,不改变系统就能运行。

架构

基于intel-V或者AMD-V提供的虚拟化平台,利用普通linux进程运行于虚拟态的指令集。模拟虚拟机监视器和cpu。KVM不提供硬件虚拟化操作,其IO操作等都借助QWEM来完成。
kvm属于完全虚拟化,功能组件由kvm driver(内核态),Qemu(用户态)组成。
kvm driver 负责模拟虚拟机cpu的运行,内存管理,设备管理
Qemu 模拟虚拟机的I/O设备接口以及用户态的控制接口

QEMU是一个模拟器,它向Guest Os模拟CPU.和其他硬件,Guest OS认为自己和硬件直接打交道,其实是同qemu模拟出来的硬件打交道,qemu将这些指令转译给真正的硬件,由于所有的指令都要从qemu过一手,因而性能较差

qemu将kvm整合进来,通过ioctl调用/dev/kvm接口,将有关的cpu指令部分交由内核模块来做。kvm负责cpu虚拟化和内存虚拟化,实现了cpu和内存的虚拟化,到kvm不能模拟其他设备,qemu. 模拟i/o设备(网卡,磁盘等),kvm加上qemu之后,就能实现真正意义上的服务器虚拟化。这两个东西称之为qemu-kvm。

libvriy 是目前使用最广泛的对kvm虚拟机进行管理的工具和API。libvirtd是一个daemon进程,可以被本地virsh使用,也可以被远程virsh调用,libvirtd调用qemu-kvm操作虚拟机。

libvirt包括:
一套API lib.库
Libvirtd服务
命令行工具virsh

libvirt管理各种虚拟化引擎:kvm,xen,hyperv,esxi

可以实现对虚拟机的各种操作

你可能感兴趣的:(云计算,虚拟化)