【IT168 技术】在现代虚拟化数据存储架构中,内存气球(Memory Ballooning)技术起着至关重要的作用。由于物理和虚拟资产都需要内存资源,因此需要以多种方式声明、释放和回收内存。
内存气球是虚拟化技术使用的一种常见技术,使用的是虚拟机内存。在这篇文章中,我们将对内存气球定义和概念进行解释,包括该技术与虚拟化管理程序的关系。
Pexels 上的 TimSon Foox 拍摄的照片
什么是内存气球
近年来,IT专业人员已经习惯了云计算和虚拟化的一个基本概念,即弹性或自动伸缩。也就是说,服务和资源根据完成给定任务或满足特定可用性需求的需要而伸缩。
内存气球与自动伸缩并不完全相同,但在概念上可以认为是相似的。内存气球就是为了使虚拟机内存能够扩展——如果需要的话。有了内存气球技术,系统可以在需要时为特定的虚拟机提供更多的内存。
内存气球的概念和方法,是特定于虚拟机内存以及VMware内存用例和VMware内存性能来运行的。其他虚拟机监控程序,包括微软的Hyper-V,以及开源KVM项目,都有类似的进程,为虚拟机监控程序内存提供虚拟气球功能。
什么是管理程序(Hypervisor)?
内存气球在虚拟化管理程序中工作。管理程序定义可以概述为:管理程序是使虚拟机能够运行的技术,为软件提供了一个虚拟抽象层。
目前广泛使用的管理程序技术有很多种,包括VMware ESXi、Microsoft Hyper-V以及开源Xen和KVM技术。每个管理程序都可以用来启用客户虚拟机,这些虚拟机以抽象的虚拟方式运行操作系统和应用程序。
管理程序使用跨正在运行的客户虚拟机的驱动程序来处理不同的需求,包括资源约束,如虚拟CPU、磁盘空间和内存。气球驱动程序跨虚拟机运行,并使管理程序能够将内存从一台虚拟机重新分配到另一台虚拟机。
理解记忆气球的执行过程
理解管理程序的工作原理与理解内存气球的过程有着内在的联系。管理程序抽象有限的系统资源,然后将它们分配给运行虚拟机进程。
·主机物理内存。下级服务器或云平台有一定数量的已安装系统内存,表示可用内存的绝对总量。
·客户机的物理内存。虚拟机监控程序被分配给主机一定数量的物理内存,以便为正在运行的虚拟机提供资源。客户机物理内存是管理程序可用内存的最大数量。
·客户机的虚拟内存。管理程序将给定数量的总内存资源作为虚拟内存分配给正在运行的客户机虚拟机。
在内存气球模型中,如果一个虚拟机有8 GB的客户虚拟内存分配给它,而它没有使用这些内存,那么可以将RAM的一部分重新分配给另一个正在运行同时需要额外的内存的虚拟机。
气球驱动程序跟踪从一个虚拟机到另一个虚拟机的内存分配。内存气球的主要目标是使虚拟机能够获得满足特定进程或应用程序需求高峰所需的内存。即便它通常没有分配足够的内存,也会发生这种情况。
为什么内存气球很重要?
·资源优化。使用内存气球技术,内存将从当前没有使用所有可用内存的虚拟机中取出,未使用的内存将重新分配给需要额外资源的虚拟机。
·内存可用性。内存气球不是简单地由于需求或进程激增而不向虚拟机提供所需的资源,而是在需要时提供更多的内存。
·降低成本。通过更有效地使用内存,就不需要部署更多的物理服务器或分配更多的物理内存,这会带来额外的操作和能源成本。
内存气球也存在一些问题
·高气球内存利用率。可能出现的问题之一是高利用率。气球驱动程序可能占用太多内存,以至于管理程序缺乏在性能非常好的时运行所需的全部资源。
·性能。如果多个正在运行的虚拟机同时请求气球内存,那么可能会出现CPU和物理磁盘使用量激增的问题,因为管理程序通过内存交换技术来获取资源,这将进一步降低系统的整体性能。
原文作者:Sean Michael Kerner