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

kvm是全虚拟化还是半虚拟化(部署kvm虚拟化平台)

KVM技术是什么?KVM是最新的虚拟化技术,是一种基于内核的虚拟化技术。
阿里巴巴,国内很多运营商如亚马逊等都在尝试使用该技术。
而红帽目前的产品RHEV虚拟化采用的是基于内核的KVM技术;
红帽放弃了之前的ZEN虚拟化,转而采用KVM;
基本上,源代码更少,更轻量级。
是一个大趋势。未来虚拟化的发展,
因为虚拟化的热门话题已经转向了云的热门话题;
根据红帽官方的产品定位,据说是采用KVM技术。RHEV本身就是针对企业私有云开发的,
中国有很多这样的社区。你可以找到它们,你会学到更多。>你可以去探索下: kvm和qemu的关系kvm为什么没有做io虚拟化半虚拟化和全虚拟化的区别kvm是否在内

不同的基于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平台上)。计划);它的代码地址是

亚马逊选择centos服务器 企业级虚拟化Kvm实战

常用的虚拟化产品有哪些
企业级(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环境下作为服务器运行,但只要底层虚拟化硬件支持,就可以支持大量的客户操作系统。