不同的基于KVM的虚拟化平台可能使用不同的虚拟化组件。目前传统的采用QEMU-KVM组件,但不同产品的版本和功能有所不同。下面是一些概念,我们来解决一下
KVM:Kernel-BasedVirtualMachine是基于内核的虚拟机。它是Linux内核的一个可加载模块。通过调用Linux内核本身的函数,可以实现底层的CPU虚拟化和内存虚拟化,使Linux内核成为一个虚拟化层,这需要x86架构和支持虚拟化功能的硬件支持(如IntelVT、AMD-V)。它是一个完整的虚拟化架构。KVM于2007年2月在Linux内核2.6.20中引入。从存在形式来看,它包括两个内核模块:和kvm_(或kvm_)。本质上,KVM是一个管理虚拟硬件设备的驱动程序。该驱动程序使用/dev/kvm字符设备(由KVM本身Created提供)作为管理接口,主要负责创建vCPU、分配虚拟内存、读写vCPU寄存器以及执行vCPU。
QEMU:这是由FabriceBellard编写的一套免费的处理器模拟软件。它是一个完整的软件,可以独立运行,可以独立模拟整个处理器。每台计算机,包括CPU、内存和IO设备,都使用特殊的“重新编译器”来翻译特定处理器的二进制代码,从而实现跨平台的通用性。QEMU有两种运行模式:系统模式,可以模拟整个计算机系统;用户模式,可以运行当前硬件平台以外的其他平台上的程序(比如运行在x86平台上、运行在ARM平台上)。计划);它的代码地址是
常用的虚拟化产品有哪些
企业级(redhat)
:
--桌面级Vmware-workstation(windows和linux)
--Vmware-fusion(mac)
--Vmware-esxi(企业级)本身就是一个操作系统。
-v(微软)
(oracle公司--Windowslinux)virtulbox
(rhel6之前所有版本的默认虚拟化产品)
分类虚拟化技术:
我们常说的虚拟化主要是指平台虚拟化技术,它是利用控制程序(ControlProgram又名VirtualMachineMonitor(VMM虚拟桌面)或Hypervisor)进行隐藏的。为用户提供抽象、统一、模拟的计算环境(称为虚拟机)的特定计算平台的特征。
平台虚拟化的类型
全虚拟化:
准虚拟化:
硬件辅助虚拟化
部分虚拟化
企业级虚拟化和桌面级虚拟化的区别
从rhel6开始,kvm模块直接成为内核的一部分
内核不支持xenrhel6之前的企业版默认支持,需要使用xen功能重新安装内核
KVM目标在x86硬件上运行的内核驻留虚拟化基础架构。KVM是第一个成为原始Linux内核(2.6.20)一部分的虚拟机管理程序,由AviKivity开发和开发,现在由红帽拥有。
虚拟机管理程序此虚拟化为x86虚拟化提供了对以下两种资源的访问:PowerPC®和IA64。此外,最近添加了KVM以支持服务器(和来宾)对称多处理(SMP),同时还支持主动迁移(允许操作系统来宾在物理服务器之间移动)等企业级功能。
该技术由两个组件实现。第一个是可加载的KVM模块。当安装在Linux内核中时,它可以管理虚拟化硬件并通过/proc传递。文件系统代表其功能。第二个组件用于模拟PC平台,并由QEMU的修改版本提供支持。QEMU作为用户空间中的进程执行,并根据客户操作系统的请求与内核进行协调。
当一个新的操作系统在KVM上启动时(通过一个名为kvm的实用程序),它就成为主机操作系统的一个进程,因此可以像其他进程一样进行调度。但与传统的Linux进程不同,来宾操作系统由虚拟机管理程序确定处于“来宾”模式(独立于内核和用户模式)。
每个客户操作系统都通过/dev/kvm设备进行映射,它们都有自己的虚拟地址空间,该虚拟地址空间映射到主机内核的物理地址空间。前面提到,KVM利用底层硬件的虚拟化支持来提供全(本机)虚拟化能力。I/O请求通过主机内核映射到在主机(管理程序)上执行的QEMU进程。
KVM在Linux环境下作为服务器运行,但只要底层虚拟化硬件支持,就可以支持大量的客户操作系统。
上一篇:kvm虚拟化分为
下一篇:什么叫kvm虚拟化技术