一种面向虚拟化云计算平台的内存优化的方法与流程

文档序号:12271078阅读:203来源:国知局
一种面向虚拟化云计算平台的内存优化的方法与流程

本发明涉及计算机技术领域,具体涉及一种面向虚拟化云计算平台的内存优化的方法。



背景技术:

据统计,在当前的数据中心中,CPU资源的利用率平均在5%~20%之间,而内存资源的利用率也不超过60%。很明显,当前的资源分配模式具有很高的资源浪费度,增加了用户的总体拥有成本(TCO)。而以平均负载为基准来静态分配资源则会使得在峰值负载的情况下服务质量下降,并最终影响云用户的潜在利润。

虚拟化技术的引入带来了如下几个方面的好处:更细粒度的资源共享、安全隔离、高可靠性等。但是,现在的虚拟化技术主要关注在一台物理服务器内的资源优化,通过资源的复用技术来提高单台服务器的资源利用率。而对于全局资源优化来说,由于缺乏访问远程资源的虚拟化支撑技术,全局优化的研究更多地从操作系统的角度进行相关研究。这些工作都需要修改操作系统的源代码或插入对应的驱动来利用远程资源,对于部署多种操作系统平台的云数据中心来说增加了部署的成本。

分布在各个物理平台中的虚拟机(VM)由于其负载的动态变化,其内存利用率在一定的时间内会随负载变化产生波动。所以,每台物理服务器内部及不同物理机之间内存的利用率就呈现不均衡性,并且这种不均衡性随时间而动态变化。这种不均衡性使得平台上的应用性能受到一定的限制。



技术实现要素:

本发明要解决的技术问题是:

(1)如何构建更有弹性的、可靠的全局资源空间,并建立资源流动框架,实现跨越物理机边界的资源优化;

(2)如何动态地识别闲置资源,为资源优化提供可以流动的资源空间。

本发明针对以上问题,提供一种面向虚拟化云计算平台的内存优化的方法。

本发明所采用的技术方案为:

一种面向虚拟化云计算平台的内存优化的方法,所述方法通过双层地址空间映射构成的分布式内存池来调节内存在各个虚拟机内的分配:低负载压力的虚拟机释放空闲内存进入空闲内存池,高负载压力的虚拟机从空闲内存池中申请内存来降低其内存压力;

双层地址空间由两个逻辑部分和一个映射组件构成,其中:

全局扩展地址空间用于管理所有映射到本地扩展地址空间的远程空闲内存;

逻辑扩展地址空间用于扩展本地物理地址空间;

映射组件完成从全局扩展地址空间到逻辑扩展地址空间的映射。

系统中的服务器根据其内存的使用情况分为内存服务器和内存客户端,其中,内存服务器向外提供基于空闲内存的存储服务,而内存客户端则利用远程内存调节其内部内存分配以加速关键应用。

所述全局扩展地址空间用来管理所有被本地虚拟机监控器所使用的远程内存空间,由〈服务器ID,地址段〉来标示其地址构成。

所述逻辑扩展地址空间位于虚拟机监控器中,由一个从零开始的独立地址空间和一个标识其空间的全局唯一标识符构成,通过〈地址, 标识符〉对来对空间进行寻址,并在地址映射组件的翻译下最终确定要访问的远程内存页面;逻辑扩展地址空间的申请和回收都是由虚拟机监控器来控制。

所述地址映射组件的核心功能是提供全局扩展地址空间和逻辑扩展地址空间之间的双向映射,通过维护相关的映射关系来提供高效可靠的远程内存存储抽象。

地址映射组件采用数据同步方法来迁移数据,以支持远程空间的退出,保证数据的有效性;

远程服务器的空闲内存通过地址映射组件被映射到逻辑扩展空间,通过多个服务器空间映射到一个空间,实现数据的冗余存储,提高远程内存的可靠性。

每个远程内存服务器包含多个地址段,能够根据空闲内存变化动态地调整可共享的地址空间。

系统引入如下接口来操作全局扩展地址空间:

(1)Gsm addr space add,添加一段远程内存到全局扩展地址空间,返回该内存段在地址空间中的起始地址;

(2)Gsm addr space del,删除一段全局地址空间;

(3)Gsm addr space map,影射一段全局地址空间到逻辑扩展地址空间,返回其在逻辑扩展地址空间中的起始地址;

(4)Gsm addr space unmap,释放从逻辑扩展地址空间中start addr 开始size 大小的空间映射。

所述方法在Xen平台上实现,基于Xen-3.3.1系统开发,通过扩展Xen虚拟机监控器来完成两个核心功能:

(1)引入逻辑扩展地址空间以支持远程内存访问;

(2)对不在本地内存的页面提供透明寻址支持;

通过修改Xen虚拟机监控器中从虚假物理地址到机器地址的映射p2m机制部分,增加新的地址类型来标示逻辑扩展地址空间,以支持逻辑扩展地址空间。

当虚拟机访问逻辑扩展地址空间时,会触发一次缺页异常或触发逻辑扩展地址空间寻址机制;

通过缺页异常处理和指令运行回滚运行时,虚拟机被暂停执行以等待页面重新被装入本地内存;

当页面被重新装入内存时,p2m 被重新设置以指向新装入的内存页面;

如果是半虚拟化情况,缺页异常的处理流程会继续;

在全虚拟化时,异常重播机制将发挥作用以重新调度虚拟机执行,恢复异常的处理过程;

指令运行回滚运行时系统截取在指令模拟执行过程中对逻辑扩展地址空间的访问,触发逻辑扩展地址空间访问异常并逐级往上层函数传递,直到执行逻辑到达虚拟机陷入到Xen 的入口点;

在Xen 的入口点,虚拟机被暂停,对逻辑扩展地址空间的操作命令通过共享内存空间传递给Domain-0;

当数据返回后,指令模拟操作或异常处理操作被继续执行,虚拟机重新被调度;

对远程内存进行读写的命令通过Xen和Domain-0之间的共享缓冲区由Xen发出,Domain-0中的Swap守护进程负责具体处理。

所述地址映射组件支持两类基本的数据操作:数据存取和数据同步,其中,数据存取是基本的远程内存操作,实现对于远程数据的读取和写入;数据同步操作为远程内存服务的退出提供支持,通过从退出服务器到其它备份服务器同步数据,实现数据存储的高可靠性。

本发明的有益效果为:

本发明方法能够很好地优化云平台中内存资源配置,提升整个平台的资源利用率,并对关键任务的执行有显著的加速作用。

附图说明

图1 为本发明所提供双层空间映射图;

图2 为本发明所提供全局扩展地址与逻辑地址映射及寻址。

具体实施方式

下面根据说明书附图,结合具体实施方式对本发明进一步说明:

实施例1

如图1所示,一种面向虚拟化云计算平台的内存优化的方法,所述方法通过双层地址空间映射构成的分布式内存池来调节内存在各个虚拟机内的分配:低负载压力的虚拟机释放空闲内存进入空闲内存池,高负载压力的虚拟机从空闲内存池中申请内存来降低其内存压力;

双层地址空间由两个逻辑部分和一个映射组件构成,其中:

如图2所示,全局扩展地址空间用于管理所有映射到本地扩展地址空间的远程空闲内存;

逻辑扩展地址空间用于扩展本地物理地址空间;

映射组件完成从全局扩展地址空间到逻辑扩展地址空间的映射。考虑到分布式平台的特性,能够利用分布在整个平台各个物理服务器上的空闲内存资源,双层地址空间的构建兼顾了效率和可靠性,提供最大程度的内存资源抽象。

实施例2

在实施例1的基础上,本实施例系统中的服务器根据其内存的使用情况分为内存服务器和内存客户端,其中,内存服务器向外提供基于空闲内存的存储服务,而内存客户端则利用远程内存调节其内部内存分配以加速关键应用。

实施例3

在实施例1或2的基础上,本实施例所述全局扩展地址空间用来管理所有被本地虚拟机监控器所使用的远程内存空间,由〈服务器ID,地址段〉来标示其地址构成。

实施例4

在实施例3的基础上,本实施例所述逻辑扩展地址空间位于虚拟机监控器中,由一个从零开始的独立地址空间和一个标识其空间的全局唯一标识符构成,通过〈地址, 标识符〉对来对空间进行寻址,并在地址映射组件的翻译下最终确定要访问的远程内存页面;逻辑扩展地址空间的申请和回收都是由虚拟机监控器来控制,这样可以提供更为弹性的空间使用模式,比如既可以用作RAM Disk,也可以用作Swap设备。

实施例5

在实施例4的基础上,本实施例所述地址映射组件的核心功能是提供全局扩展地址空间和逻辑扩展地址空间之间的双向映射,通过维护相关的映射关系来提供高效可靠的远程内存存储抽象;

地址映射组件采用数据同步方法来迁移数据,以支持远程空间的退出,保证数据的有效性;

远程服务器的空闲内存通过地址映射组件被映射到逻辑扩展空间,通过多个服务器空间映射到一个空间,实现数据的冗余存储,提高远程内存的可靠性。

实施例6

在实施例5的基础上,本实施例每个远程内存服务器包含多个地址段,能够根据空闲内存变化动态地调整可共享的地址空间。

实施例7

在实施例6的基础上,本实施例系统引入如下接口来操作全局扩展地址空间:

(1)Gsm addr space add(server id,star t addr,size),添加一段远程内存到全局扩展地址空间,返回该内存段在地址空间中的起始地址;

(2)Gsm addr space del(server id,start addr,size),删除一段全局地址空间;

(3)Gsm addr space map(start addr , size),影射一段全局地址空间到逻辑扩展地址空间,返回其在逻辑扩展地址空间中的起始地址;

(4)Gsm addr space unmap (start addr,size),释放从逻辑扩展地址空间中start addr 开始size 大小的空间映射。

实施例8

在实施例7的基础上,本实施例所述方法在Xen平台上实现,基于Xen-3.3.1系统开发,通过扩展Xen虚拟机监控器来完成两个核心功能:

(1)引入逻辑扩展地址空间以支持远程内存访问;

(2)对不在本地内存的页面提供透明寻址支持;

通过修改Xen虚拟机监控器中从虚假物理地址到机器地址的映射p2m机制部分,增加新的地址类型来标示逻辑扩展地址空间,以支持逻辑扩展地址空间。

Xen 虚拟机监控器原始的设计通过修改操作系统的代码来完成虚拟化任务,通过在操作系统内核中调用超级调用(Hy percall)实现对于敏感指令的模拟执行,这种虚拟化方式被称作半虚拟化(para-vi rtualizatio n)。在Intel公司的VT-x和AMD公司的SVM 技术支持下,Xen 虚拟机监控器也支持不修改操作系统源代码的全虚拟化方案。我们的实现对于这两种情况都是适用的。

实施例9

在实施例8的基础上,本实施例当虚拟机访问逻辑扩展地址空间时,会触发一次缺页异常或触发逻辑扩展地址空间寻址机制;

通过缺页异常处理和指令运行回滚运行时,虚拟机被暂停执行以等待页面重新被装入本地内存;

当页面被重新装入内存时,p2m 被重新设置以指向新装入的内存页面;

如果是半虚拟化情况,缺页异常的处理流程会继续;

在全虚拟化时,异常重播机制将发挥作用以重新调度虚拟机执行,恢复异常的处理过程;

指令运行回滚运行时系统截取在指令模拟执行过程中对逻辑扩展地址空间的访问,触发逻辑扩展地址空间访问异常并逐级往上层函数传递,直到执行逻辑到达虚拟机陷入到Xen 的入口点;

在Xen 的入口点,虚拟机被暂停,对逻辑扩展地址空间的操作命令通过共享内存空间传递给Domain-0;

当数据返回后,指令模拟操作或异常处理操作被继续执行,虚拟机重新被调度;

对远程内存进行读写的命令通过Xen和Domain-0之间的共享缓冲区由Xen发出,Domain-0中的Swap守护进程负责具体处理。

这样做的原因在于Xen本身缺乏网络协议栈,且这样的设计可以很大程度地提高系统弹性。

实施例10

在实施例5的基础上,本实施例所述地址映射组件支持两类基本的数据操作:数据存取和数据同步,其中,数据存取是基本的远程内存操作,实现对于远程数据的读取和写入;数据同步操作为远程内存服务的退出提供支持,通过从退出服务器到其它备份服务器同步数据,实现数据存储的高可靠性。

实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1