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

企业级开源虚拟化技术(有哪些开源的虚拟化技术)


一、企业级虚拟化Kvm实战

最常用的虚拟化产品有哪些?
1.企业级Kvm(Redhat)

--桌面端的Vmware工作站(Windows和Linux)level
--Vmware-fusion(mac)
--Vmware-esxi(企业级)是一个独立的操作系统。
-v(微软)
(Oracle公司-Windowslinux)virtulbox
(rhel6之前所有版本的默认虚拟化产品)
分类虚拟化技术:

我们通常所说的虚拟化主要是指利用控制程序(ControlProgram,也称为VirtualMachineMonitor(虚拟监视器VMM)或hypervisor)来隐藏特定计算的特征的平台虚拟化技术平台为用户提供一个抽象的、统一的、模拟的计算环境(即虚拟机)。:

硬件辅助虚拟化

部分虚拟化
企业级虚拟化与桌面级虚拟化的区别

来自rhel6,kvm模块直接内置于内核的一部分

rhel6之前的企业版默认内核不支持xen,需要使用Xen功能内核重新安装

KVM目标在x86硬件上运行的内核驻留虚拟化基础架构。KVM是第一个成为本机Linux内核(2.6.20)一部分的虚拟机管理程序,由AviKivity开发和维护,现在归RedHat所有。该虚拟机管理程序提供x86虚拟化,可访问PowerPC®和IA64。此外,最近添加了KVM,以支持对称多处理主机(和来宾),并支持主动迁移(支持来宾操作系统迁移)等企业级功能。物理服务器之间)

KVM是作为内核模块实现的,因此Linux只需要加载这个模块。它成为一个虚拟机管理程序,为支持虚拟机管理程序指令技术[IntelVT]或AMD虚拟化产品[AMD-V]的硬件平台提供完全虚拟化,还支持半虚拟化客户操作系统,包括Linux和Windows®。第一个是可加载的KVM模块,可以通过/proc管理虚拟化硬件。第二个组件用于PC平台仿真,由QEMU的修改版本作为用户空间进程运行,并协调客户操作系统与内核的要求。

当一个新的操作系统在KVM上启动时(通过一个名为kvm的实用程序),它就成为主机操作系统的一个进程,因此可以像其他进程一样进行调度。但与传统的Linux进程不同,来宾操作系统被虚拟机管理程序识别为处于“来宾”模式(无论内核和用户模式如何)。

每个客户操作系统都通过/dev/kvm设备进行映射,并拥有自己的虚拟地址空间,映射到主机内核的物理地址空间。如前所述,KVM利用底层硬件的虚拟化支持来提供完整的(本机)虚拟化。I/O请求通过主机内核映射到主机(虚拟机管理程序)上运行的QEMU进程。

KVM在Linux环境中作为主机运行,但只要底层硬件虚拟化支持,就可以支持大量的客户操作系统。


二、虚拟化技术—QEMU-KVM基于内核的虚拟机

探索虚拟化巅峰:QEMU-KVM的基石和高效运行


QEMU-KVM是与Linux内核集成的高效虚拟化解决方案,其核心是TYPE1Hypervisor。它使用与Linux内核紧密配合的硬件辅助虚拟化技术,提供出色的性能和资源管理功能。要了解KVM,首先需要了解它如何使用硬件支持作为内核模块来提供对虚拟环境的控制和优化,以确保兼容性和效率。


2007年,KVM正式加入Linux家族,支持多核架构(SMP)和NUMA,其功能扩展到LiveMigration和KernelSame-pageMerging(KSM),实现了动态大改进。虚拟机迁移和内存管理效率。启动时,KVM内核模块使用RootMode进行初始化,并通过UserApplicationQEMU神奇地模拟虚拟硬件并为虚拟机提供服务。


QEMU由天才开发者FabriceBellard于2001年发布,名为TYPE2Hypervisor,采用动态二进制翻译技术,兼容多CPU架构和设备模拟,但性能略低于KVM。虽然稍逊一筹,但QEMU的灵活性与KVM相结合,打造出一个强大的分支——QEMU-KVM,共同推动虚拟化技术的创新。


KVM软件组件包括内核模块、开源虚拟机管理器QEMU、QEMU-KVM以及AWS、阿里云等云服务提供商使用的virtio驱动程序。为虚拟化技术奠定坚实的基础。


QEMU-KVM分支是QEMU的一部分,但在KVM环境中,首选将QEMU称为KVM的执行引擎。KVM的工作方式很聪明。存在于内核空间,通过/dev/kvm与用户空间实时交互,并提供libkvm库。QEMU通过open、close、ioctl等系统调用访问KVM接口,实现CPU、内存、I/O的虚拟化,VM管理和I/O模拟由QEMU独立处理。


创建虚拟机的过程就像艺术一样精确。首先,打开/dev/kvm并通过ioctl命令创建虚拟机,然后配置硬件抽象层(HVA)、物理地址(HPA)和PCI设备模拟。然后映射QEMU镜像,构建vCPU,并启动GuestOS。在此过程中,主线程继续侦听来自VM的关闭事件,以响应来自虚拟环境的中断和设备访问。


当页面错误中断或设备访问触发关闭事件时,KVM接管CPU,Linux内核通过ioctl与QEMU交互,以管理虚拟机及其vCPU。KVM支持三种操作模式:用户、内核(root模式)和guest(非root模式)。QEMU通过/dev/kvm实现内存虚拟化,并创建全局页表(GPA)映射以确保GuestOS的隔离。对于I/O虚拟化,QEMU负责设备模拟和I/O请求捕获,构建QEMU-KVM架构,该架构由vCPU、虚拟内存、虚拟I/O和GuestOS构建,形成独特的用户进程结构。


QEMU-KVM的架构形成两层调度,其中vCPU根据HostOS的调度由GuestOS和HostOS共同管理。GuestOS负责更高层。调度涉及vCPU线程、QEMU线程和物理CPU,而HostOS(LinuxScheduler)负责底层调度。KVM支持SMP和NUMA,允许用户自定义虚拟机的vCPU布局,保证迁移过程中CPU型号的安全。


-qemu-kvm命令允许开发人员自定义VM的CPU配置并选择自定义模型和功能。然而,值得注意的是,软件模拟可能会影响性能。默认使用-host模型,磁盘设备选项丰富多样,包括文件路径、接口类型、索引和格式等。-boot等启动选项用于指定启动设备,并根据体系结构支持各种字符标识符。QEMU的网卡模拟功能强大,支持多种网卡类型、MAC地址和VLAN,还可以通过Tap接口连接物理网络,支持用户态网络堆栈设计。


QEMU-KVM是虚拟化技术卓越之旅,引导您探索具有卓越性能和灵活性的高级计算世界。无论是基本配置还是高级功能,QEMU-KVM以优秀的工程设计为云计算和虚拟化环境提供强大的支持。