2024年4月19日发(作者:)
Linux KVM虚拟机PVE使用指南
1 引言
KVM (全称是 Kernel-based Virtual Machine) 是 Linux 下 x86 硬件平台
上的全功能虚拟化解决方案,包含一个可加载的内核模块 提供和虚拟化
核心架构和处理器规范模块。
使用 KVM 可允许多个包括 Linux 和 Windows 每个虚拟机有私有的硬件,
包括网卡、磁盘以及图形适配卡等
PVE使用图形化安装方式,支持裸机安装,管理界面是WEB方式,易于操作,
浏览器(fireox,chrome等)支持JAVA即可以进行guest OS的图形管理,无须
安装客户端,方便快捷。
本文将详细介绍PVE的安装,使用,部署优化等各方面的内容。
2 KVM/QEMU体系架构
2.1 总体架构
QEMU作为一个开源的硬件模拟器项目,除了支持x86体系架构之外,还支
持ARM、MIPS、PowerPC、IA64等多种硬件架构。QEMU采用模块化设计的方法,
因此,还能支持多种多样的外设硬件,并且能够方便地进行扩充。
除了支持KVM之外,QEMU还支持全模拟化和kqemu加速模块等方式,这三
种方式的架构区别如图5-6所示。
第一种模式是通过kqemu模块实现内核态的加速。通过在内核中加入kqemu
的相关模块,在用户态的QEMU则通过访问/dev/kqemu设备文件接口调用改进型
加速。在这种模式中,主要针对虚拟机和宿主机运行于统一架构的情况下进行虚
拟化。
第二种模式是在用户态直接运行QEMU,由QEMU对目标机的所有指令进行翻
译后执行,相当于全虚拟化。在这种模式下,可以运行各种不同形态的体系结构,
如Android开发环境中即使用了QEMU来为其模拟ARM运行环境,但是在这种模
拟环境下,每一条目标机的执行指令都需要耗费少则数个,多则成千上万个宿主
机的指令周期来模拟实现,速度方面不太理想。
第三种模式则是KVM官方提供的kvm-qemu加速模式。运行在内核态的KVM
模块通过/dev/kvm字符设备文件向外提供操作接口。KVM通过提供libkvm这个
操作库,将/dev/kvm这一层面的ioctl类型的API转化成为通常意义上的函数
API调用,提供给qemu的相应适配层,通过qemu的支持来完成整个虚拟化工作。
针对这三种不同运行模式的测试结果表明,通过KVM对QEMU进行加速从而
获取的性能最为理想。
2.2 Libvirt
在很多开源版本的qemu-kvm实现中,并不仅仅提供qemu-kvm软件来进行管理,
而引入了一个叫做libvirt的库和virt-manager进行管理。
libvirt和virt-managater都是开源的多虚拟化产品解决方案,能够支持qemu、
Xen、KVM等解决方案在内的多种虚拟机。在Cent OS等发行版本中,通过使用
libvirt和virt-manager来进行虚拟机管理,libvirt通过引入软件适配层的概
念,通过统一的上层接口管理虚拟机,对下则提供针对不同解决方案的适配器,
如QEMU、Xen和KVM等。


发布评论