其他虚拟化技术
约 618 字大约 2 分钟
2026-09-11
这里面的KVM指的不是BMC操作界面的KVM,而是最基础的虚拟化技术,全称是 Kernel-based Virtual Machine; 并且该技术是开源的,它是 Linux 内核的一个模块,可以让Linux系统变成一个虚拟机控制器(Hypervisor).
KVM属于Type-1类型的虚拟化技术,可直接运行在硬件上,虚拟机的性能接近物理机。相比之下,VMware workstation 这些Type-2的虚拟化 需要先在宿主机的操作系统商运行
Type-1 和 Type-2的区别
虚拟机的基本组件包括: - 虚拟化层: 提供抽象硬件功能的接口 - 虚拟硬件: 包括虚拟化 CPU、内存、存储和网络 - 客户操作系统: 运行在虚拟硬件上的操作系统
最简单的理解就是,虚拟机是直接运行在硬件上的,还是再隔了一层用户态的程序。前者是 Type-1, 后者是 Type-2. 
KVM, QEMU, libvirt的关系
Qemu: 作为模拟器,向虚拟出来的OS提供CPU和其他硬件,Guest OS认为自己和硬件直接打交道,其实是同Qemu模拟出来的硬件打交道,Qemu将这些指令转译给真正的硬件。
KVM: KVM需要CPU的支持,采用硬件辅助虚拟化技术 Intel-VT, AMD-V等技术(这些东西是啥,我并不清楚,但是在Bios里面都可以开关), 使用KVM后,Guest OS的CPU指令就可以不经过 Qemu 转译,直接运行, 从而提升速度。 KVM 通过 /dev/kvm 暴露接口,用户态程序可以通过ioctl函数来直接访问这个接口。
Libvirt: 目前使用最广泛的对KVM虚拟机进行管理的工具和API,Libvirt是一个 daemon进程,可以被本地 virsh调用,用来在宿主机上,使用virsh命令来管理下辖的虚拟机。
使用virsh
① 查看所有虚拟机及其运行状态 virsh list --all
② 查看虚拟机的详细配置(CPU、内存、磁盘、网卡等) virsh dominfo <虚拟机名称>
③ 获取虚拟机的 IP 地址 virsh domifaddr <虚拟机名称>
④ 查看虚拟机的磁盘文件位置 virsh domblklist <虚拟机名称>
① 检查生命周期与开机状态 virsh start <虚拟机名称>
① 从宿主机进入虚拟机 virsh console <虚拟机名称>
