一、什么是KVM虚拟机?
KVM 是 Kernel-based Virtual Machine 的缩写,是一种用于虚拟化的开源硬件虚拟化技术。它使用 Linux 内核的虚拟化模块,将物理服务器划分为多个虚拟机。KVM 允许虚拟机直接访问物理硬件资源,从而提供出色的性能和稳定性,同时还支持许多常见的操作系统和应用程序。KVM 使用了 QEMU (Quick Emulator) 作为其默认的虚拟机监控程序。 除此之外,KVM 还支持多种嵌入式和云计算场景,并且得到了广泛的应用。
二、KVM应用场景
云计算:KVM 在云计算中表现优异,可用于构建虚拟私有云、虚拟机托管服务等。KVM可以帮助企业实现资源共享、高可用性和快速部署的目标,同时还可以提高数据安全性和隔离性。
Web 托管: KVM 可以用于 Web 服务器的虚拟化,通过将多个虚拟机分配在一个物理服务器上,可以极大地提高服务器的利用率和性能。同时,KVM 还提供了快速备份和恢复数据的功能,保证了服务器的高可靠性。
测试和开发:KVM 可以帮助开发者创建多个虚拟机进行测试和开发,从而提高软件开发周期的效率和速度。开发者可以在虚拟机中运行不同的操作系统和应用程序,隔离他们的开发环境,同时可以在开发过程中随时备份和还原虚拟机。
HPC(高性能计算):KVM 可以用于构建 HPC 集群系统。通过虚拟化技术,HPC 集群系统可以实现资源共享和高效管理,同时保证计算资源的隔离性和安全性。
VDI(虚拟桌面基础设施):KVM 可以用于构建VDI 系统,将多个桌面虚拟机部署在一个物理服务器上,实现桌面虚拟化。VDI 系统可以提供远程访问、资源共享和快速部署的功能,同时可以保证数据隔离和安全性。
三、KVM 所支持的功能包括:
1、支持CPU 和 memory 超分(Overcommit)
2、支持半虚拟化I/O(virtio)
3、支持热插拔(cpu,块设备、网络设备等)
4、支持对称多处理(Symmetric Multi-Processing,缩写为 SMP )
5、支持实时迁移(Live Migration)
6、支持PCI设备直接分配和 单根I/O 虚拟化 (SR-IOV)
7、支持内核同页合并 (KSM )
8、支持NUMA (Non-Uniform Memory Access,非一致存储访问结构 )
四、KVM常用组件简介:
1、通过下面命令安装qemu和virt-manager软件包
yum install qemu-kvm qemu-img virt-manager libvirt libvirt-python python-virtinst libvirt- client virt-install virt-viewer
yum install qemu-kvm virt-manager libvirt libvirt-python libguestfs-tools bridge-utils
yum install qemu libvirt edk2-aarch64 qemu-img bridge-utils (arm架构下,推荐使用此命令安装所需安装包和依赖组件)
2、组件简介:
qemu-kvm:qemu模拟器
qemu-img: qemu磁盘image管理器
virt-install: 用来创建虚拟机的命令行工具
libvirt:提供libvirtd daemon来管理虚拟机和控制hypervisor
libvirt-client:提供客户端API用来访问server和提供管理虚拟机命令行工具的virsh实体
virt-viewer: 图形控制台
virsh:基于 libvirt 的 命令行工具 (CLI)
virt-manager:基于 libvirt 的 GUI 工具
virt-v2v:虚机格式迁移工具
virt-* 工具:包括 virt-install (创建KVM虚机的命令行工具), Virt-viewer (连接到虚机屏幕的工具),Virt-clone(虚机克隆工具),virt-top 等
sVirt:安全工具
edk2-aarch64 UEFI方式引导工具
brid