参考:KVM 虚拟化环境搭建 - ProxmoxVE
https://www.cnblogs.com/jiading/articles/13384611.html
KVM 整套解决方案一般分三层:
KVM:内核级别的虚拟化功能,主要模拟指令执行和 I/O
QEMU:提供用户操作界面,VNC/SPICE 等远程终端服务
Libvirtd:虚拟化服务,运行在 Hypervisor 上提供 TCP 接口用于操作虚拟机的创建和启停
虚拟化工具(Virt Tools)是包括六个开源虚拟化工具的集合,让你的虚拟化使用更加便利。
KVM 需要安装在linux宿主机上。
KVM是在包含虚拟化扩展的硬件上为Linux提供的完整虚拟化解决方案。KVM为各种各样的操作系统提供硬件虚拟化,包括Linux、Windows、macOS、ReactOS和Haiku。使用KVM,可以在未修改的Linux或Windows镜像上运行多个虚拟机。每个虚拟机都有自己的虚拟硬件:网卡、硬盘、显卡等等。大多数时候,你不会直接与KVM交互。相反,必须使用QEMU,virt-manager或其他虚拟化管理工具来利用KVM。
QEMU 是一个通用的、开源的机器仿真器。
当用作仿真器时,QEMU可以在另一台机器(如自己的x86_64 PC)上运行操作系统和程序。当用作虚拟器时,QEMU通过使用KVM直接在主机CPU上执行客户代码来实现近乎本机的性能。QEMU在多个操作系统上受支持,其安装过程就像运行一些简单命令一样容易。
Libvirt是一个库和守护程序,提供了用于管理虚拟化主机的稳定的开源API。
它针对多个虚拟机管理程序,包括QEMU,KVM,LXC,Xen,OpenVZ,VMWare ESX,VirtualBox等。KubeVirt是一个用于在Kubernetes平台内创建和管理虚拟机的开源项目,它很大程度上利用了Libvirt。
Libguestfs是用于访问和修改虚拟机磁盘镜像的一组工具。
可以使用它来查看和编辑hosts内部的文件。对虚拟机进行脚本更改;监控磁盘已用/可用统计信息;创建物理到虚拟(P2V)或虚拟到虚拟(V2V)的客户机;执行备份;克隆虚拟机;建立虚拟机;格式化磁盘;调整磁盘大小等等。
Virt-manager是用于通过libvirt管理虚拟机的桌面用户界面。
它主要针对KVM虚机,但也管理Xen和LXC。它还包括命令行配置工具virt-install。其实virt-manager就是服务于虚拟机,而且易于使用的管理工具。如可以使用virt-manager在Linux上运行Windows环境,反之也可以。
Libosinfo
Libosinfo提供了有关操作系统版本的信息数据库,来帮助在部署虚拟机时配置硬件。libosinfo更像是启用操作系统功能的构建块,但它是非常重要的。