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

kvm虚拟机管理


一、虚拟化技术—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以及设备模拟,虽然性能稍差低于KVMInferior,QEMU的多功能性使其可以与KVM结合,创建强大的QEMU-KVM分支。两者共同推动虚拟化技术的创新。


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


虽然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命令创建VM,并配置硬件抽象层(HVA)和物理寻址(HPA)以及PCI设备的模拟。然后映射QEMU映像、构建vCPU并启动GuestOS。在此过程中,主线程不断监听VM的退出事件,以响应中断并访问虚拟环境中的设备。


当设备中断或设备访问触发退出事件时,KVM接管CPU,Linux内核通过ioctl与QEMU交互,管理虚拟机及其vCPU。KVM支持三种操作模式:User、Kernel(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负责高层管理。HostOS(LinuxScheduler)负责底层调度,包括vCPU线程、QEMU线程和物理CPU。KVM支持SMP和NUMA,允许用户自定义虚拟机的vCPU布局,保证迁移过程中CPU型号的安全。


通过-qemu-kvm命令,开发人员可以自定义VM的CPU配置并选择自定义型号和功能。但是,应该注意的是,软件模拟会影响性能。默认使用-host模式,磁盘设备选项丰富多样,包括文件路径、接口类型、索引、格式等。-boot等引导选项用于指定引导设备,并根据体系结构支持不同的字符标识符。QEMU的网卡仿真功能非常强大,支持多种类型的网卡、MAC地址和VLAN。它甚至可以通过Tap接口连接到物理网络,并支持用户模式网络堆栈设计。


QEMU-KVM以其卓越的性能和灵活性带我们探索更高层次的计算世界,这是虚拟化技术的一次精彩之旅。无论是基本配置还是高级功能,QEMU-KVM以优秀的技术设计为云计算和虚拟化环境提供了强有力的支持。


二、KVM虚拟机的KVM管理工具


有很多工具可以管理KVM。首先是单一资源的基本虚拟化管理。libvirt开源虚拟化工具包通过命令行界面提供安全的远程管理,并且可以管理单个系统。
有两种方法可以管理运行KVM的多个服务器:RedHatEnterpriseVirtualization-Management,特别是RHEV-M(RHEV-H多系统管理)和IBMSystemsDirectorVMControl(管理多个RHEL系统)。
最后是Tivoli产品。包括TivoliProvisioningManager、TivoliServiceAutomationManager和TivoliMonitoringforVirtualServers。
IBMSystemsDirectorVMControl
IBMSystemsDirectorVMControl既可以执行异构跨平台管理,也可以执行异构跨系统管理。VMControl是IBMSystemsDirector平台管理解决方案的一部分,涵盖虚拟化管理的三个关键领域:虚拟化、管理和自动化。VMControl也可作为独立的产品插件使用。
不久前,IBM发布了新版本的VMControl2.4,可以管理KVM和其他虚拟化软件。VMControl可以管理物理和虚拟资源以及异构管理程序。用户可以在现有的VMware环境中安装KVM,管理无压力。
VMControl2.4实现跨平台图像管理和交叉监控,降低复杂度,提高生产效率。该软件目前支持IBMPowerVM、z/VMVMware、MicrosoftXen和KVM服务器虚拟机技术。主要分为三个版本:VMControlExpressEdition:轻松管理虚拟机。探索虚拟化资源、了解系统行为并虚拟化工作负载。包括查看、创建、修改和删除虚拟机;启动、停止和迁移虚拟机并管理多个虚拟机管理程序。VMControlStandardEdition:专注于虚拟机映像管理。添加对虚拟映像库的全面支持,包括映像创建、捕获、导入和部署。自动化资源配置和资源迁移。VMControlEnterpriseEdition:自动化工作负载配置。创建并启用系统组管理、自动化工作负载迁移并全面支持KVM。Tivoli产品线
Tivoli是对IBMSystemsDirector和VMControl的有用补充。提供高水平的端到端管理能力。主要的Tivoli产品已经支持KVM。Tivoli具有三个重要功能:IBMTivoliMonitoring:通过分析候选虚拟化服务器的历史趋势,确定集成级别的优先级。此外,允许用户对系统事件做出最佳响应。TivoliProvisioningManager:为物理和虚拟硬件和软件提供端到端自动化。包括虚拟资源发现和监控、同时创建数百个虚拟机以及Linux服务器的自动软件配置。TivoliServiceAutomationManager:自动请求、部署、监视和管理云服务。通过自动化和降低技能要求,降低了服务交付成本,同时提供高度标准化的IT服务,帮助IT管理员节省完成高价值服务的时间。RHEV-M
RHEV-M(RedHatEnterpriseVirtualization-Management)使用图形用户界面来管理物理和逻辑资源。使管理员能够查看和管理虚拟机及其镜像,并支持高可用性集群的实时迁移和配置。随着RHEV3.0的发布,RHEV-M3.0也随之上市。
作为红帽虚拟化平台的核心组件,RHEV-M管理控制台还可以运行虚拟机主机节点。可以将具有虚拟化授权的RHEV-Hypervisor或RRedHatEnterpriseLinuxServer配置为节点。两种节点类型都使用KVM作为底层管理程序。RHEV-Hypervisor是设置RHEV节点的默认选项。这是一个裸机管理程序,仅包含运行虚拟机的RHEL代码的子集。因此,RHEV-H服务器的维护更加容易。此外,这些服务器需要较少的修补和维护来确保其安全性。
RHEV-H基础文件系统仅超过100MB,并在内存中运行,避免了对基础映像的更改。专用的安全增强型Linux防火墙和策略会阻止所有流量,以确保RHEV-H节点的安全。
RHEVManager还支持运行KVM的RHEL服务器。此功能使得在现有RHEL环境中部署RHEV变得更加容易。
还有很多可以管理KVM的开源工具。例如IBM、RedHat等厂商都加入了oVirt。这个开源虚拟化项目提供了功能丰富的服务器虚拟化管理系统,为服务器和服务器提供了高级功能,包括规划具有高可用性的便携式存储管理系统。

上一篇:爱快自带虚拟机

下一篇:kvm虚拟机命令