KVM介绍

kvm包含一个为处理器提供底层虚拟化、可加载的核心模块kvm.ko(kvm-intel.ko或kvm-amd.ko),使用QEMU(QEMU-KVM)作为虚拟机上层控制工具。

KVM架构

KVM就是内核的一个模块,用户空间通过QEMU模拟硬件提供给虚拟机使用,一台虚拟机就是一个普通的linux进程。

QEMU

QEMU是一个开源项目,实际就是一台硬件模拟器,可以模拟许多硬件,各种架构的CPU、网卡、显卡、声卡、等,还可以存储还原虚拟机的运行状态。还内建了DHCP、DNS、SMB、TFTP服务器。

QEMU就是一个纯软件模拟,可以在所支持的平台模拟支持的设备。

Libvirt

Libvirt是一套开源的虚拟化的管理工具,主要由三部分组成:

  • 一套API的lib库

  • Libvirt服务

  • 命令行工具virsh

Libvirt设计的目标就是通过相同的方式管理不同的虚拟化引擎,如KVM、Xen、HyperV、VMware ESX等。

Libvirt可以实现对虚拟机的管理。如虚拟机的创建、启动、关闭、暂停、恢复、迁移、销毁,以及虚拟机网卡、硬盘、cpu、内存等多种设备的热添加。

Libvirt还支持远程的宿主机管理。

Libvirt将虚拟机的管理分为以下两个方面:

  • 存储池资源管理

    支持本地文件系统目录、裸设备、lvm、nfs、iscsi等方式。在虚拟机磁盘格式上支qcow2、vmdk、raw等格式。

  • 网络资源管理

    支持linux桥、VLAN、多网卡绑定管理,新版本还支持Open vSwitch。

    Libvirt还支持nat和路由方式的网络,Libvirt可以通过防火墙让虚拟机通过宿主机建立网络通道,和外部网络进行通信。

KVM的优势

  • 开源、免费

  • 性能好

  • 技术支持成熟

总结

虚拟化技术的优势和特征:

  • 成本低

  • 快速部署、高可用和在线迁移

  • 硬件级别标准化

  • 资源调配管理快速方便