Linux KVM虚拟机PVE使用指南 - 图文 联系客服

发布时间 : 星期一 文章Linux KVM虚拟机PVE使用指南 - 图文更新完毕开始阅读452e0e2610a6f524cdbf8507

Linux KVM虚拟机PVE使用指南

1 引言

KVM (全称是 Kernel-based Virtual Machine) 是 Linux 下 x86 硬件平台上的全功能虚拟化解决方案,包含一个可加载的内核模块 kvm.ko 提供和虚拟化核心架构和处理器规范模块。

使用 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等。

virt-manager是一个基于Python和pygtk编写的虚拟机管理工具前端,通过引用libvirt来进行桌面环境下的虚拟机管理。

而PVE是在libvirt接口的基础上实现了整个虚拟环境的WEB化管理。

3 安装与使用

KVM虚拟化需要CPU的支持,只有具体该功能的CPU,才能使用KVM虚拟化方案。

3.1 前提条件

1确定机器有VT

终端输入命令: grep vmx /proc/cpuinfo (INTEL芯片)

grep svm /proc/cpuinfo (AMD芯片)

不知道芯片的生产厂商则输入:egrep '(vmx|svm)' /proc/cpuinfo

如果flags: 里有vmx 或者svm就说明支持VT;如果没有任何的输出,说明你的cpu不支持,将无法成功安装KVM虚拟机。

2 确保BIOS里开启VT:

Intel(R) Virtualization Tech [Enabled]

如有必要,还需在BIOS中开启VT-d

3.2 安装

安装非常简单,一步一步设置下去就好,具体过程如下:

输入回车开始,然后出现下图,选择同意即可。