当前位置:首页 > 虚拟化 > 正文

kvm如何实现虚拟化(kvm虚拟化技术原理)

虚拟化技术KVM和XEN的区别

虚拟化的类型
全虚拟化(FullVirtualization)
全虚拟化也成为最初的虚拟化技术。该模型使用虚拟机来编排来宾作和本机硬件。VMM为了在来宾作和硬件之间进行协调,虚拟机管理程序必须捕获并处理一些受保护的命令。
图1全虚拟化模型
全虚拟化运行速度比硬件模拟快,但由于虚拟集的原因,其性能不如机虚拟化需要占用一些资源资源
ParaVirtualization(ParaVirtualization)
ParaVirtualization是另一种类似于全虚拟化的技术。它使用虚拟机管理程序来共享对底层硬件的访问,但其客户作集成了虚拟化代码。这种不需要重新编译或陷阱,因为作本身可以很好地与虚拟进程配合使用。
图2半虚拟化模型
半虚拟化要求来宾作进行一些修改,以使来宾作识别出它处于虚拟化环境中,但半虚拟化提供了类似的性能到本机作。
虚拟化技术
KVM(Kernel-basedVirtualMachine)基于内核的虚拟机
KVM是集成到Linux内核中的Hypervisor,是X86架构适用于Linux的完整虚拟化解决方案,具有虚拟化技术(IntelVT或AMD-V)的硬件支持。这是一个小型的Linux模块,它使用Linux来做很多事情,比如任务调度、内存管理以及与硬件设备交互。
图3KVM虚拟化平台架构
Xen
Xen是类运行在机上的虚拟化管理程序(Hypervisor)。它支持全虚拟化和并行虚拟化。Xen支持虚拟机管理程序和虚拟机之间的通信,并在所有Linux版本上提供产品,包括RedHatEnterpriseLinux和SUSELinuxEnterpriseServer。Xen最重要的优点是半虚拟化,此外,未经修改的作也可以直接在Xen上运行(如Windows),允许虚拟机无需模拟即可高效运行,因此虚拟机无需模拟虚拟硬件即可到达hypervisor,从而实现高性能。
图4Xen虚拟化平台架构
QEMU
QEMU是由FabriceBellard编写的处理器模拟软件套件。它与Bochs和PearPC类似,但它具有这两种PearPC所不具备的一些特性,例如高速和跨平台特性。通过开源加速工具kqemu,QEMU可以模拟接近真实计算机的速度。
KVM与QEMU的关系
准确的说,KVM是Linux内核的一个模块
。您可以使用modprobe命令加载KVM模块。加载模块后,您可以通过其他工具创建额外的虚拟机。但仅仅一个KVM模块是不够的,因为用户无法直接控制内核模块做事,还必须有一个运行在用户空间的工具。对于这个用户空间工具,kvm开发人员选择了已经成熟的开源虚拟化软件QEMU。说起来,QEMU也是一个虚拟化软件。它的特点是可以虚拟不同的CPU。例如,PowerCPU可以在x86CPU上虚拟化,并可以用来编译可以在Power上运行的程序。KVM使用了QEMU的一部分,并对其进行了一些修改,成为可以控制KVM的用户空间工具。因此,您将看到官方KVM包含两个部分(qemu和kvm)和三个文件(KVM模块、QEMU工具以及两者的)。换句话说,您可以仅升级KVM模块或仅升级QEMU引擎。这就是KVM和QEMU的关系。
图5KVM与QEMU关系

电脑不支持kvm怎么启动模拟器

安装KVM前的检测工作:检查你的电脑CPU是否支持虚拟化
登录Ubuntu,使用以下命令:
egrep-c'(vmx|svm)'/proc/cpuinfo
egrep-c'(vmx|svm)'/proc/cpuinfo
如果输出结果为0,则表示CPU不支持硬件虚拟化
如果输出结果大于0,可以支持
使用root用户为当前用户添加权限sudo,避免安装时需要输入root密码
输入以下命令:
echo"dickALL=(ALL)ALL">>/etc/sudoers
echo"dickALL=(ALL)NOPASSWD:ALL">>/etc/sudoers
其中dick是用户名
再次登录Ubuntu,检查用户的sudo权限
输入命令sudoapt-getupdate。如果没有出现密码提示,则说明sudo权限设置成功。
安装KVM包
输入以下命令进行安装:
sudoapt-getinstallqemu-kvmlibvirt-binubuntu-vm-builderbridge-utils
安装完成后,需要再次登录,并确保用户已加入libvirtd组
验证KVM是否安装成功
使用以下命令:
virshlist--all
如果没有错误信息,则表示KVM安装成功。
安装KVM虚拟机GUI管理工具
使用命令下一步:
sudoapt-getinstallvirt-manager
使用虚拟机GUI管理工具创建虚拟机
搜索VirtualMachineManager,打开虚拟机管理工具创建虚拟机
创建虚拟机时,使用文件安装虚拟机

KVM与XEN虚拟化环境究竟有何不同

虚拟化的概念近年来变得非常流行。原因很简单:虚拟化可以限度地提高资源利用率,为企业节省成本。目前,市场上比较流行的虚拟架构主要有KVM、XEN和VMware。其中KVM和XEN是开源的,而VMware是付费的。因此,这次我只是比较KVM和XEN的区别。

如果只分KVM和XEN的话,KVM是一种完全虚拟化技术,也称为硬件辅助虚拟化技术(FullVirtualization)。相反,XEN是半虚拟化技术,也叫半虚拟化技术。

全虚拟化技术(左)和半虚拟化技术(右)

KVM在虚拟机和硬件之间添加了一个软件层——Hypervisor,或者虚拟机管理器(VMM),KVM的虚拟机管理程序直接运行在物理硬件上。XEN基于全虚拟化。它修改了客户作并添加了特殊的API,使客户作能够集成虚拟化代码。这种不需要重新编译或导致陷阱,因为作本身能够与虚拟进程很好地配合。

KVM架构

也有人将KVM架构分解为两部分:KVM驱动程序,它是linux内核中的一个模块,和Qemu,用于模拟虚拟化。机器的用户空间组件提供I/O设备模型和访问外设的方式。它的主要优点是KVM与Linux内核集成,因此速度更快。同时KVM是完全虚拟的,所以不需要区分pv和hvm。它可以安装各种Linux发行版和Windows发行版,并且可以在支持虚拟化的上运行。关于扩展的X86和X86-64硬件架构。

XEN其实比KVM更早出现。它由剑桥大学开发,是一个开源虚拟机。半虚拟化架构规定它不应该是一个真正的虚拟机,而是一个运行内核的实例。它还区分了Xen+pv+和Xen+hvm,其中pv仅支持Linux,而hvm支持Windows。此外,XEN还具有更好的可用资源、平台支持、可管理性、实施、实时迁移支持和性能基准等优势。

参考资料: