测试环境 Ubuntu 22.04 (Ubuntu 5.15.0-58.64-generic 5.15.74) server版本
ubuntu server虚拟化官方文档
suse 15sp2 虚拟化官方文档
概述
KVM: Kernel-based Virtual Machine,基于内核的虚拟机,是全虚拟化的解决方案。
硬件要求
X86_64体系架构:
AMD系列中支持AMD-V(svm) 和 Intel系列中支持VT-x(vmx)的处理器
1
2
3baoze@baoze:~$ cat /proc/cpuinfo |grep -Eoc "(svm|vmx)"
8
baoze@baoze:~$BIOS中未禁用虚拟化功能
1
2
3
4
5baoze@baoze:~$ sudo apt install cpu-checker
baoze@baoze:~$ kvm-ok
INFO: /dev/kvm exists
KVM acceleration can be used
baoze@baoze:~$
arm体系架构:最初是从 Arm Cortex-A15 开始向 Armv7-A 处理器添加虚拟化支持的,其中包括 Cortex-A7 和 Cortex-A17。Armv8-A 处理器包含虚拟化支持
kvm相关组件
包括两个主要组件:
- 一组内核模块(kvm.ko、kvm-intel.ko 和 kvm-amd.ko),提供核心虚拟化基础结构和特定于处理器的驱动程序。
- 一个用户空间程序 (qemu-system-ARCH/libvirt),提供虚拟设备模拟以及用于管理 VM Guest(虚拟机)的控制机制。
可以直接使用 QEMU 工具或使用基于 libvirt 的堆栈来管理 VM Guest(虚拟机)、虚拟储存和虚拟网络。
- QEMU 工具包括 qemu-system-ARCH、QEMU 监视器、qemu-img 和 qemu-ndb。
- 基于 libvirt 的堆栈包括 libvirt 本身,以及 virsh、virt-manager、virt-install 和 virt-viewer 等基于 libvirt 的应用程序。
libvirt
libvirt 是一个库,提供用于管理 KVM、LXC、Xen 等流行虚拟化解决方案的通用 API。该库为这些虚拟化解决方案提供规范化管理 API,以便为更高层级的管理工具提供一个跨超级管理程序的稳定接口。该库还提供用于管理 VM 主机服务器上的虚拟网络和储存的 API。每个 VM Guest 的配置都储存在 XML 文件中。
virsh (libvirt-clients包)
用于管理 VM Guest 的命令行工具,其功能与虚拟机管理器类似。可让您更改 VM Guest 的状态(启动、停止、暂停等)、设置新的 Guest 和设备,或编辑现有配置。virsh 还可用于编写 VM Guest 管理操作的脚本。virt-manager
用于管理 VM Guest 的桌面工具,通常成为虚拟机管理器。
virt-install
用于通过 libvirt 库创建新 VM Guest 的命令行工具。virt-install 是虚拟机管理器使用的默认安装工具。virt-viewer
VM Guest 图形控制器的查看器。
QEMU
QEMU 是快速的跨平台开源计算机模拟器,可为您模拟数量庞大的硬件体系结构。QEMU 可让您在现有系统(VM 主机服务器)之上运行未经修改的完整操作系统 (VM Guest)。