集群系统中内存资源的管理方法、设备及网络系统.pdf

上传人:r7 文档编号:966540 上传时间:2018-03-22 格式:PDF 页数:25 大小:1.20MB
返回 下载 相关 举报
摘要
申请专利号:

CN200910158467.8

申请日:

2009.06.30

公开号:

CN101594309A

公开日:

2009.12.02

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效|||公开

IPC分类号:

H04L12/56; H04L29/06; G06F12/08

主分类号:

H04L12/56

申请人:

华为技术有限公司; 北京大学

发明人:

全小飞; 罗英伟

地址:

518129广东省深圳市龙岗区坂田华为总部办公楼

优先权:

专利代理机构:

深圳市深佳知识产权代理事务所(普通合伙)

代理人:

彭愿洁;李文红

PDF下载: PDF下载
内容摘要

本发明实施例提供一种集群系统中内存资源的管理方法及设备,其中,种集群系统中内存资源的管理方法包括:请求方向仲裁服务器发送请求远程缓存的消息,所述请求远程缓存的消息包括本地虚拟机需要的远程缓存容量;请求方接收所述仲裁服务器发送的供给方的信息,所述供给方的信息是所述仲裁服务器根据集群系统中的物理主机上报的空闲内存信息和所述本地虚拟机需要的远程缓存容量获得的;请求方根据所述供给方的信息,利用所述供给方的空闲内存,其中,所述请求方和供给方是所述集群系统中不同的物理主机。使用本发明实施例提供的技术方案,能够提高集群系统中内存资源的利用率。

权利要求书

1、  一种集群系统中内存资源的管理方法,其特征在于,包括:
请求方向仲裁服务器发送请求远程缓存的消息,所述请求远程缓存的消息包括本地虚拟机需要的远程缓存容量;
请求方接收所述仲裁服务器发送的供给方的信息,所述供给方的信息是所述仲裁服务器根据集群系统中的物理主机上报的空闲内存信息和所述本地虚拟机需要的远程缓存容量获得的;
请求方根据所述供给方的信息,利用所述供给方的空闲内存,其中,所述请求方和供给方是所述集群系统中不同的物理主机。

2、
  根据权利要求1所述的方法,其特征在于,所述请求方向仲裁服务器发送请求远程缓存的消息之前还包括:
请求方的虚拟机管理器VMM在本地内存中分配用于模拟远程缓存的伪缓冲区,统计对所分配的伪缓冲区的访问次数,根据统计结果,判断伪缓冲区所模拟的远程缓存容量是否为本地虚拟机需要的远程缓存容量,如果否,请求方的VMM在本地内存中重新分配用于模拟远程缓存的伪缓冲区,直到伪缓冲区所模拟的远程缓存容量为本地虚拟机需要的远程缓存容量为止。

3、
  根据权利要求1所述的方法,其特征在于,
所述利用所述供给方的空闲内存包括:
所述请求方的VMM根据所述供给方的信息,将所述本地虚拟机的页面内容和磁盘块索引发送给所述供给方,使所述供给方将空闲内存中一个页面的关键字设置为所述磁盘块索引,将来自请求方的页面内容复制到所述空闲内存的所述页面中。

4、
  根据权利要求3所述的方法,其特征在于,在将所述本地虚拟机的页面内容和磁盘块索引发送给所述供给方之后,该方法还包括:
所述请求方的VMM向供给方的VMM发送页面请求消息,所述页面请求消息中携带所述磁盘块索引和所述请求方的标识;所述供给方的VMM根据所述请求方的标识和所述磁盘块索引查找页面,将所找到的页面的内容发送给所述请求方的VMM;
或者,
所述请求方的VMM向供给方的VMM发送丢弃消息DISCARD,所述丢弃消息中携带所述磁盘块索引和所述请求方的标识;所述供给方的VMM根据所述请求方的标识和所述磁盘块索引查找页面,将所找到的页面回收到空闲内存中。

5、
  一种集群系统中内存资源的管理方法,其特征在于,包括:
接收集群系统内物理主机上报的空闲内存信息;
接收请求方发送的请求远程缓存的消息,所述请求远程缓存的消息中携带所述请求方的虚拟机需要的远程缓存容量;
根据所述请求方的虚拟机需要的远程缓存容量和所述集群系统内物理主机上报的空闲内存信息,确定供给方,将所述供给方的信息发送给请求方,以便所述请求方利用所述供给方的空闲内存,其中,所述请求方和供给方是所述集群系统中不同的物理主机。

6、
  根据权利要求5所述的方法,其特征在于,在接收集群系统内物理主机上报的空闲内存信息之前,该方法还包括:
所述集群系统内物理主机的客户操作系统Guest OS统计对最近最久未使用LRU队列中页面的访问次数,根据统计结果,预测空闲的内存页面数量;
所述集群系统内物理主机的VMM根据各Guest OS预测的空闲的内存页面数量,确定所述供给方的空闲内存大小。

7、
  一种物理主机,其特征在于,包括:
第一消息收发单元,用于向仲裁服务器发送请求远程缓存的消息,所述请求远程缓存的消息包括所述物理主机的虚拟机需要的远程缓存容量;接收所述仲裁服务器发送的供给方的信息,所述供给方的信息是所述仲裁服务器根据集群系统中的物理主机上报的空闲内存信息和所述物理主机的虚拟机需要的远程缓存容量获得的;
利用单元,用于根据所述供给方的信息,利用所述供给方的空闲内存。

8、
  根据权利要求7所述的物理主机,其特征在于,该物理主机还包括:
伪缓冲区分配单元,用于在本地内存中分配用于模拟远程缓存的伪缓冲区;
统计单元,用于统计对所述伪缓冲区分配单元所分配的伪缓冲区的访问次数;
判断单元,用于根据所述统计单元的统计结果,判断伪缓冲区所模拟的远程缓存容量是否为本地虚拟机需要的远程缓存容量,如果否,控制所述伪缓冲区分配单元在本地内存中重新分配用于模拟远程缓存的伪缓冲区。

9、
  根据权利要求7所述的物理主机,其特征在于:
所述利用单元包括第二消息收发单元,用于根据所述供给方的信息,将所述物理主机的虚拟机的页面内容和磁盘块索引发送给所述供给方,使得所述供给方将空闲内存中一个页面的关键字设置为所述磁盘块索引,将来自请求方的页面内容复制到所述空闲内存的所述页面中。

10、
  根据权利要求9所述的物理主机,其特征在于,
所述第二消息收发单元,还用于向供给方发送页面请求消息,所述页面请求消息中携带所述磁盘块索引和所述物理主机的标识;接收所述供给方发送的页面内容,所述页面内容是所述供给方根据所述物理主机的标识和所述磁盘块索引所查找到的页面的内容;
或者,
所述第二消息收发单元,还用于向供给方发送丢弃消息DISCARD,所述丢弃消息中携带所述磁盘块索引和所述物理主机的标识,使所述供给方将根据所述物理主机的标识和所述磁盘块索引所查找到的页面回收到空闲内存中。

11、
  一种仲裁服务器,其特征在于,包括:
消息接收单元,用于接收集群系统内物理主机上报的空闲内存信息;接收请求方发送的请求远程缓存的消息,所述请求远程缓存的消息中携带所述请求方虚拟机需要的远程缓存容量;
供给方确定单元,用于根据所述请求方虚拟机需要的远程缓存容量和所述集群系统内物理主机上报的空闲内存信息,确定供给方;
消息发送单元,用于将所述供给方的信息发送给请求方,以便所述请求方利用所述供给方的空闲内存。

12、
  一种网络系统,其特征在于,包括:请求方和仲裁服务器,
所述请求方,用于向仲裁服务器发送请求远程缓存的消息,所述请求远程缓存的消息包括请求方的虚拟机需要的远程缓存容量;接收所述仲裁服务器发送的供给方的信息,根据所述供给方的信息,利用所述供给方的空闲内存;
所述仲裁服务器,用于接收集群系统内物理主机上报的空闲内存信息;接收请求方发送的请求远程缓存的消息,根据所述请求远程缓存的消息中的请求方的虚拟机需要的远程缓存容量和所述集群系统内物理主机上报的空闲内存信息,确定供给方,将所述供给方的信息发送给请求方。

说明书

集群系统中内存资源的管理方法、设备及网络系统
技术领域
本发明涉及通信技术领域,特别涉及一种集群系统中内存资源的管理方法、设备及网络系统。
背景技术
在一台物理主机上虚拟出多个虚拟计算机(Virtual Machine,VM),简称虚拟机,其上能同时运行多个独立的客户操作系统,这些客户操作系统(Guest OS)通过虚拟机管理器(Virtual Machine Monitor,VMM)访问实际的物理资源。
现有技术提供一种利用独享式的内存服务器作为物理主机内存和本地磁盘之间的缓冲区,由该内存服务器维护一个空闲内存池,作为各物理主机的远程缓冲区,使各物理主机的虚拟机上的操作系统和应用软件能够利用高速网络透明的跨越物理主机使用该内存服务器上的内存资源。
现有技术的缺点是:
现有技术中,由单一的内存服务器维护一个空闲内存池,作为各物理主机的远程缓冲区,当物理主机个数增多时,需要内存服务器维护的空闲内存池容量增大,一台内存服务器很难满足大容量的内存需求;且各物理主机的空闲内存资源没有被利用,使集群系统中内存资源的利用率低。
发明内容
本发明实施例提供一种集群系统中内存资源的管理方法、设备及网络系统,能够提高集群系统中内存资源的利用率,在物理主机个数增多时,满足集群系统内物理主机大容量的内存需求。
有鉴于此,本发明实施例提供:
一种集群系统中内存资源的管理方法,该方法包括:
请求方向仲裁服务器发送请求远程缓存的消息,所述请求远程缓存的消息包括本地虚拟机需要的远程缓存容量;
请求方接收所述仲裁服务器发送的供给方的信息,所述供给方的信息是所述仲裁服务器根据集群系统中的物理主机上报的空闲内存信息和所述本地虚拟机需要的远程缓存容量获得的;
请求方根据所述供给方的信息,利用所述供给方的空闲内存,其中,所述请求方和供给方是所述集群系统中不同的物理主机。
一种集群系统中内存资源的管理方法,该方法包括:
接收集群系统内物理主机上报的空闲内存信息;
接收请求方发送的请求远程缓存的消息,所述请求远程缓存的消息中携带所述请求方的虚拟机需要的远程缓存容量;
根据所述请求方的虚拟机需要的远程缓存容量和所述集群系统内物理主机上报的空闲内存信息,确定供给方,将所述供给方的信息发送给请求方,以便所述请求方利用所述供给方的空闲内存,其中,所述请求方和供给方是所述集群系统中不同的物理主机。
一种物理主机,该物理主机包括:
第一消息收发单元,用于向仲裁服务器发送请求远程缓存的消息,所述请求远程缓存的消息包括所述物理主机的虚拟机需要的远程缓存容量;接收所述仲裁服务器发送的供给方的信息,所述供给方的信息是所述仲裁服务器根据集群系统中的物理主机上报的空闲内存信息和所述物理主机的虚拟机需要的远程缓存容量获得的;
利用单元,用于根据所述供给方的信息,利用所述供给方的空闲内存。
一种仲裁服务器,该仲裁服务器包括:
消息接收单元,用于接收集群系统内物理主机上报的空闲内存信息;接收请求方发送的请求远程缓存的消息,所述请求远程缓存的消息中携带所述请求方虚拟机需要的远程缓存容量;
供给方确定单元,用于根据所述请求方虚拟机需要的远程缓存容量和所述集群系统内物理主机上报的空闲内存信息,确定供给方;
消息发送单元,用于将所述供给方的信息发送给请求方,以便所述请求方利用所述供给方的空闲内存。
一种网络系统,该网络系统包括:请求方和仲裁服务器,
所述请求方,用于向仲裁服务器发送请求远程缓存的消息,所述请求远程缓存的消息包括请求方的虚拟机需要的远程缓存容量;接收所述仲裁服务器发送的供给方的信息,根据所述供给方的信息,利用所述供给方的空闲内存;
所述仲裁服务器,用于接收集群系统内物理主机上报的空闲内存信息;接收请求方发送的请求远程缓存的消息,根据所述请求远程缓存的消息中的请求方的虚拟机需要的远程缓存容量和所述集群系统内物理主机上报的空闲内存信息,确定供给方,将所述供给方的信息发送给请求方。
本发明实施例中请求方接收仲裁服务器发送的供给方的信息,所述仲裁服务器根据集群系统中各物理主机上报的空闲内存信息和请求方上报的虚拟机需要的远程缓存容量确定供给方的信息,请求方根据供给方的信息利用供给方的空闲内存,提高了集群系统中内存资源的利用率,在物理主机个数增多时,满足集群系统内物理主机的大容量的内存需求。
本发明实施例根据物理主机上报的空闲内存信息和请求方的虚拟机需要的远程缓存容量,将确定的供给方信息提供给请求方,以便请求方根据供给方的信息利用供给方的空闲内存,提高了集群系统中内存资源的利用率,在物理主机个数增多时,满足集群系统内多物理主机的大容量的内存需求。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a是本发明实施例一提供的集群系统中内存资源的管理方法流程图;
图1b是本发明实施例二提供的集群系统中内存资源的管理方法流程图;
图2是本发明实施例三提供的集群系统中内存资源的管理方法流程图;
图3是本发明实施例三提供的LRU队列命中统计示意图;
图4是本发明实施例四提供的集群系统中内存资源的管理方法流程图;
图5是本发明实施例五提供的物理主机结构图;
图6是本发明实施例六提供的物理主机结构图;
图7是本发明实施例七提供的仲裁服务器结构图;
图8是本发明实施例八提供的网络系统结构图。
具体实施方式
实施例一:
参阅图1a,本发明实施例一提供一种集群系统中内存资源的管理方法,该方法包括:
101a、请求方向仲裁服务器发送请求远程缓存的消息,所述请求远程缓存的消息包括本地虚拟机需要的远程缓存容量。
102a、请求方接收所述仲裁服务器发送的供给方的信息,所述供给方的信息是所述仲裁服务器根据集群系统中的物理主机上报的空闲内存信息和所述本地虚拟机需要的远程缓存容量获得的。
103a、请求方根据所述供给方的信息,利用所述供给方的空闲内存。
其中,所述请求方和供给方是所述集群系统中的不同的物理主机。
本发明实施例一中请求方接收仲裁服务器发送的供给方的信息,所述仲裁服务器根据集群系统中各物理主机上报的空闲内存信息和请求方上报的虚拟机需要的远程缓存容量确定供给方的信息,请求方根据供给方的信息利用供给方的空闲内存,而现有技术是单一的内存服务器维护一个空闲内存池供给内存不足的物理主机用,即使集群系统中的其他物理主机有空闲内存,该空闲内存也不会转移给单一的内存服务器,而是闲置没有被利用,所以本发明实施例相对于现有技术,利用了物理主机的空闲内存,能够提高集群系统中内存资源的利用率,且在物理主机个数增多时,满足集群系统内物理主机的大容量的内存需求。
实施例二:
参阅图1b,本发明实施例二提供一种集群系统中内存资源的管理方法,该方法包括:
101b、接收集群系统内物理主机上报的空闲内存信息;
102b、接收请求方发送的请求远程缓存的消息,所述请求远程缓存的消息中携带所述请求方的虚拟机需要的远程缓存容量;
103b、根据所述请求方的虚拟机需要的远程缓存容量和所述集群系统内物理主机上报的空闲内存信息,确定供给方,将所述供给方的信息发送给请求方,以便所述请求方利用供给方的空闲内存,其中,所述请求方和供给方是所述集群系统中不同的物理主机。
该方法的执行主体为仲裁服务器,该仲裁服务器可以位于集群系统中任一物理主机上,或者位于一个独立于物理主机的设备上,不影响本发明的实现。
其中,仲裁服务器可以采用如下方式确定供给方:仲裁服务器根据集群系统内物理主机上报的空闲内存信息,查找空闲内存大于或者等于请求方的虚拟机需要的远程缓存容量的物理主机,如果找到多个物理主机,则选择空闲内存与请求方虚拟机需要的远程缓存容量最接近的物理主机作为供给方。
本发明实施例二根据物理主机上报的空闲内存信息和请求方的虚拟机需要的远程缓存容量,将确定的供给方信息提供给请求方,以便请求方根据供给方的信息利用供给方的空闲内存,提高了集群系统中内存资源的利用率,在物理主机个数增多时,满足集群系统内多物理主机的大容量的内存需求。
实施例三:
参阅图2,本发明实施例三提供一种集群系统中内存资源的管理方法,该方法利用快速交换网络将请求方的页面内容迁移到供给方的空闲内存中保存,该方法包括:
201、集群系统内的各物理主机根据自身的虚拟机的运行情况预测自己能够提供的空闲内存的大小,周期性的向仲裁服务器发送心跳消息,心跳消息中携带空闲内存大小;仲裁服务器可以使用一个数据结构或数据表保存各物理主机的空闲内存大小,并周期性的更新各物理主机的空闲内存大小。
本步骤中集群系统内的物理主机可以采用如下方式预测自己能够提供空闲内存的大小:
物理主机上的客户操作系统Guest OS根据虚拟机的内存利用情况,可确定可以抽取多少内存页面作为远程缓存,具体的,物理主机上的客户操作系统Guest OS为LRU(Least Recently Used,最近最久未使用)队列中的每个页面或者每组页面设置一个计数器,以统计访问次数,如图3所示,Guest OS根据统计结果就能够预测出在不显著影响虚拟机性能的前提下,可以抽取多少内存页面出来作为远程缓存。
该物理主机上的VMM综合各个Guest OS的预测结果,确定本物理主机所能提供的空闲内存大小。
仲裁服务器维护一个数据结构,该数据结构称为“远程缓存表”,该数据结构中记录集群系统中每一台物理主机的空闲内存信息,每一个表项包括3项内容:nodeID,表示物理主机ID;CacheSize,表示物理主机上可用空闲内存的大小;port,表示物理主机开放的用于远程交换的端口。仲裁服务器接收物理主机周期性发送的携带当前最新空闲内存大小的心跳消息,远程缓存表的内容也随之更新。
需要说明的是,该仲裁服务器可以位于集群系统中任一台物理主机上,也可以位于独立的设备上,不影响本发明的实现。
202、当一台物理主机上的内存资源紧缺时,该物理主机会预测自己所需要的远程缓存容量,并向仲裁服务器发送请求远程缓存的消息,该请求远程缓存的消息中携带需要的远程缓存容量,本步骤中向仲裁服务器发送请求远程缓存的消息的物理主机称为请求方。
该步骤中请求方预测自己所需要的远程缓存容量可以采用如下方式:
当内存不足时,请求方上的VMM在本地内存中分配一块空间,称为“伪缓冲区(Ghost Buffer)”,用该伪缓冲区模拟远程缓存,该伪缓冲区是一个具有索引结构、而不存储实际内容的缓存,假定需要模拟100个页面大小的远程缓存,则伪缓冲区存储的是这100个页面的索引,一个页面的索引可能只有几十个字节。VMM统计对“伪缓冲区”的访问次数,将统计结果与预设数值进行比较,若统计结果大于预设数值,则该伪缓冲区所模拟的远程缓存容量与请求方虚拟机需要的远程缓存容量相同,若统计结果小于预设数值,则该伪缓冲区所模拟的远程缓存容量小于请求方需要的远程缓存容量,需重新分配伪缓冲区,此时需要伪缓冲区所模拟的远程缓存包含的页面数量增多,再继续统计对“伪缓冲区”的访问次数,直到统计结果大于预设数值为止。
该步骤中物理主机向仲裁服务器发送请求远程缓存的消息具体可以通过物理主机的VMM向仲裁服务器的VMM发送设置大小SETSIZE(ID,npages)消息来实现,其中,npages表示请求方所请求的缓存容量。
203、仲裁服务器查询数据结构的记录,根据数据结构中记录的各物理主机的空闲内存大小,确定为请求方提供远程缓存的物理主机,即供给方,将供给方的信息发送给请求方,其中,供给方的信息包括供给方的ID和供给方用于远程交换的端口port。
其中,仲裁服务器可以采用如下方式确定供给方:仲裁服务器根据集群系统内物理主机上报的空闲内存大小,查找空闲内存大于或者等于请求方的虚拟机需要的远程缓存容量的物理主机,如果找到多个物理主机,则选择空闲内存与请求方虚拟机需要的远程缓存容量最接近的物理主机作为供给方。
204、请求方根据供给方的信息将虚拟机需要存储的页面内容和磁盘块索引发送给供给方。
具体的,该步骤中将需要存储的页面内容和磁盘块索引发送给供给方可以通过如下方式实现:请求方的VMM向供给方的VMM发送传输页面SENDPAGE(ID,bno,data)消息。其中,bno是磁盘块的索引,data是需要存储的页面内容。
205、供给方在本地空闲内存中分配一个新的页面,将新页面的关键字设置为该磁盘块索引bno,将来自请求方的页面内容复制到该页面中,并向请求方发送表示存储成功的响应消息。
具体的,供给方的VMM通过调用mmap()和mlock()在本地空闲内存中分配新页面,将该页面的关键字设置为该磁盘块索引,并维护一个哈希表用来加速查找磁盘块索引对应的页面。其中,mmap()函数用于在本地空闲内存中分配新页面,mlock()函数用于给分配的新页面加锁,防止其他线程或者进行使用该页面。
其中,请求方与供给方通过TCP(Transmission Control Protocol,传输控制协议)连接,两者之间通过TCP消息传输相关信息。
需要说明的是,请求方为了跟踪存储在远程缓存的页面内容,在步骤204或者在步骤205接收到供给方发送的表示存储成功的响应消息之后,请求方的VMM在本地维护一个“缓存索引表”,该表中的每一个表项记录了存储在远程缓存(即远程物理主机的空闲内存)上的页面内容的磁盘块索引bno以及对应的远程物理主机的ID。
后续当请求方上的VMM截获到Guest OS的页面置换请求后,VMM首先查找缓存索引表,获得该页面的磁盘块索引bno以及对应的远程物理主机的ID(即供给方的ID),根据远程物理主机的ID,向对应的远程物理主机(即供给方)发送页面请求消息,该页面请求消息携带请求方的ID和磁盘块索引bno,供给方的VMM根据请求方的ID和磁盘块索引bno,利用哈希表找到对应的页面,并将页面内容发出,供给方的VMM将页面内容存入磁盘。
本发明实施例三中请求方根据供给方的信息,将需要迁移的页面内容迁移到远程物理主机(供给方)的空闲内存中,实现内存资源在不同物理主机之间的动态调配;并通过快速交换网络利用远程物理主机的空闲内存作为本地磁盘和内存间的二级缓存,不需要直接将页面内容迁移到本地磁盘上,避免效率低下的本地磁盘交换;在物理主机个数增多时,满足集群系统内多物理主机的大容量的内存需求;且利用集群系统中物理主机能提供的空闲内存作为其他物理主机的远程缓存,使得在保持各个物理主机的虚拟机性能的前提下,使整个集群系统总体性能达到最优,有利于集群系统的负载均衡。
需要说明的是,在步骤203中仲裁服务器可能给请求方提供多个供给方,比如,请求方请求的远程缓存容量为5M,仲裁服务器确定两个物理主机为请求方提供远程缓存,第一个物理主机为请求方提供2M的内存空间,第二个物理主机为请求方提供3M的内存空间,不影响本发明的实现。
如下是对在远程物理主机的空闲内存中的数据进行处理的描述:
1、远程缓存中页面内容的更新:
请求方的VMM向供给方的VMM发送SENDPAGE(ID,bno,data)消息,其中,bno是磁盘块的索引,data是需要存储的页面内容。供给方的VMM接收到这个消息后,根据请求方的ID和磁盘块索引bno,在远程缓存(即供给方的空闲内存)中查找bno对应的页面,用请求方需要存储的页面内容(data)更新上述远程缓存中所找到的页面内容。
2、当请求方上的虚拟机需要读远程缓存中的数据时,请求方的VMM分配一个请求标识符regid来标识请求消息REQUEST(ID,bno,reqid),该请求消息REQUEST为页面请求消息;供给方的VMM收到请求消息REQUEST(ID,bno,reqid)后,根据ID和bno,查找属于请求方的且以bno作为关键字的页面,向请求方回复页面传送消息SENDPAGE(ID,bno,reqid,data),其中data为所获得的页面内容。请求方的VMM根据regid找到等待队列中的请求消息REQUEST(ID,bno,reqid),核实页面传送消息中的bno为请求消息中的bno,将页面内容data复制到虚拟机给定的内存空间中。
若供给方的VMM在远程缓冲区中没有找到以bno为关键字的页面,或者虽然找到以bno作为关键字的页面但是页面内容丢失,则供给方的VMM向请求方的VMM发送错误error(ID,regid)消息,表明找不到请求方所请求的页面内容,请求方的VMM收到这个消息后,从缓存索引表中删除该bno及供给方的ID。
3、关于缓存淘汰:
有如下两种情况需要进行缓存淘汰:
1)由于请求方的缓存队列会保存磁盘块索引bno,用于跟踪存储到远程缓存中的页面内容,当缓存队列满且需要加入新的磁盘块索引bno时,则位于缓存队列的队列头的磁盘块索引bno需要淘汰掉,则该磁盘块索引bno所对应的远程缓存中的页面内容需要被淘汰掉。
2)物理主机上的VMM设置缓存策略,本发明实施例中所设置的缓存策略为排除型缓存策略,排除型缓存策略指在某个数据块被上层缓存淘汰时才将其加入本级缓存,对本发明实施例来说可指数据块被虚拟机的缓冲区buffercache淘汰时才将其存入远程缓存。当一个I/O请求命令(如读命令或者写命令)所请求的数据存储在远程缓存中时,在执行该I/O请求命令时,虚拟机的buffercache里面会保存最新访问的数据,那么存放在远程缓存中同样的数据内容也就没有意义了,所以需要将远程缓存中的相同数据淘汰。
以上两种情况下,请求方的VMM发送丢弃消息DISCARD(ID,bno)给供给方的VMM,供给方的VMM将根据ID和磁盘块索引bno所找到的页面回收到远程缓存中。
4、如下是数据写入的方式:
第一种方式:物理主机上的VMM设置数据写入的方式为回写策略,回写策略指当数据传送到远程缓存时并不同时写到磁盘中去,在数据要淘汰的时候才将它写到磁盘。因此,请求方的VMM在淘汰数据块前需要向供给方的VMM发送请求消息REQUEST(ID,bno,reqid),请求将磁盘块索引bno对应的页面内容传回,再写入磁盘。
第二种方式:为了防止在一台物理主机系统出现故障时造成其他物理主机数据的丢失,请求方的VMM设置数据写入的方式为写穿透(Write-through)策略,写穿透策略指请求方的VMM在把一个页面内容传送到供给方的远程缓存上时,也向磁盘提交写请求,而且只有当页面内容被真正写入磁盘后,请求方的VMM才会通知Guest OS该操作完成,以保证数据的持久性。由于写磁盘的操作与向远程缓存传输页面内容的操作是重叠进行的,所以写穿透策略不会引入额外的磁盘访问延迟。
实施例四:
参阅图4,本发明实施例四提供一种集群系统中内存资源的管理方法,该方法利用快速交换网络将请求方虚拟机的客户操作系统及其上运行的服务迁移到供给方的空闲内存中,该方法包括:
401、集群系统内的各物理主机根据自身的虚拟机的运行情况预测自己能够提供的空闲内存的大小,周期性的向仲裁服务器发送心跳消息,心跳消息中携带空闲内存大小;仲裁服务器使用一个数据结构保存各物理主机的空闲内存大小,并周期性的更新各物理主机的空闲内存大小。
402、当一台物理主机上的内存资源紧缺时,该物理主机会预测自己所需要的远程缓存容量,并向仲裁服务器发送请求远程缓存的消息,该请求远程缓存的消息中携带需要的远程缓存容量。本步骤中向仲裁服务器发送请求远程缓存的消息的物理主机称为请求方。
403、仲裁服务器查询数据结构的记录,根据数据结构中记录的各物理主机的空闲内存大小,确定为请求方提供远程缓存的物理主机,即供给方,将供给方的信息发送给请求方,其中,供给方的信息包括供给方的ID和供给方用于远程交换的端口port。
404、请求方根据供给方的信息,将本地虚拟机的客户操作系统及其上运行的服务迁移到供给方的空闲内存中去。
具体的,该步骤中将本地虚拟机的内存内容和上下文信息迁移到供给方的空闲内存中,其中内存内容中包括客户操作系统和服务的程序以及数据,上下文信息包括程序所运行的状态记录。
本发明实施例四中请求方根据供给方的信息,将本地虚拟机的客户操作系统及其上运行的服务迁移到远程物理主机(供给方)的空闲内存中,实现内存资源在不同物理主机之间的动态调配;并通过快速交换网络利用远程物理主机的空闲内存作为本地磁盘和内存间的二级缓存,不需要将本地虚拟机的客户操作系统及其上运行的服务迁移到本地磁盘上,避免效率低下的本地磁盘交换;在物理主机个数增多时,满足集群系统内多物理主机的大容量的内存需求;且利用集群系统中物理主机能提供的空闲内存作为其他物理主机的远程缓存,使得在保持各个物理主机的虚拟机性能的前提下,使整个集群系统总体性能达到最优,有利于集群系统的负载均衡;且本发明实施例在VMM层对资源进行监控,可以集中的管理所有硬件资源的负载情况,让软件资源透明的在物理主机之间转移,调节物理主机之间的负载平衡。
实施例五:
参阅图5,本发明实施例五提供一种物理主机,该物理主机在集群系统中是作为请求方的物理主机,即请求远程缓存的物理主机,该物理主机包括:
第一消息收发单元501,用于向仲裁服务器发送请求远程缓存的消息,所述请求远程缓存的消息包括所述物理主机的虚拟机需要的远程缓存容量;接收所述仲裁服务器发送的供给方的信息,所述供给方的信息是所述仲裁服务器根据集群系统中的物理主机上报的空闲内存信息和所述物理主机的虚拟机需要的远程缓存容量获得的;
利用单元502,用于根据所述供给方的信息,利用所述供给方的空闲内存。
具体的,利用单元502包括:第二消息收发单元,用于根据所述供给方的信息,将所述物理主机的虚拟机的页面内容和磁盘块索引发送给所述供给方,使得所述供给方将空闲内存中一个页面的关键字设置为所述磁盘块索引,将来自请求方的页面内容复制到所述空闲内存的所述页面中。
其中,第二消息收发单元,还用于向供给方发送页面请求消息,所述页面请求消息中携带所述磁盘块索引和所述物理主机的标识;接收所述供给方发送的页面内容,所述页面内容是所述供给方根据所述物理主机的标识和所述磁盘块索引所查找到的页面的内容;和/或,还用于向供给方发送丢弃消息DISCARD,所述丢弃消息中携带所述磁盘块索引和所述物理主机的标识,使所述供给方将根据所述物理主机的标识和所述磁盘块索引所查找到的页面回收到空闲内存中。
优选的,该物理主机还包括:伪缓冲区分配单元503,用于在本地内存中分配用于模拟远程缓存的伪缓冲区;和统计单元504,用于统计对所述伪缓冲区分配单元503所分配的伪缓冲区的访问次数;和判断单元505,用于根据所述统计单元504的统计结果,判断伪缓冲区所模拟的远程缓存容量是否为本地虚拟机需要的远程缓存容量,如果否,控制所述伪缓冲区分配单元503在本地内存中重新分配用于模拟远程缓存的伪缓冲区。
本发明实施例五中物理主机接收仲裁服务器发送的供给方的信息,所述仲裁服务器根据集群系统中各物理主机上报的空闲内存信息和作为请求方的物理主机的虚拟机需要的远程缓存容量确定供给方的信息,该作为请求方的物理主机根据供给方的信息利用供给方的空闲内存,提高了集群系统中内存资源的利用率,在物理主机个数增多时,满足集群系统内物理主机的大容量的内存需求。
实施例六:
参阅图6,本发明实施例六提供一种物理主机,该物理主机在集群系统中是作为供给方的物理主机,即将自己的空闲内存供其他物理主机使用的物理主机,该物理主机包括:
第三消息收发单元601,用于向仲裁服务器上报空闲内存信息,所述空闲内存信息包括所述物理主机上的空闲内存大小;
第四消息收发单元602,用于接收请求方的迁移请求,所述迁移请求中包括:所述请求方的虚拟机需要迁移的内容;所述请求方的迁移请求是在仲裁服务器确定所述物理主机为所述请求方提供远程缓存后由请求方发出的;所述仲裁服务器是根据请求方的虚拟机需要的远程缓存容量和所述物理主机的空闲内存大小确定所述物理主机为所述请求方提供远程缓存的;
控制单元603,用于将所述请求方的虚拟机需要迁移的内容存储到所述物理主机的空闲内存中。
优选的,该物理主机还包括确定单元604,具体用于根据各客户操作系统Guest OS预测的空闲的内存页面数量,确定所述供给方的空闲内存大小,其中,所述Guest OS预测的空闲的内存页面数量是通过统计对最近最久未使用LRU队列中页面的访问次数得到的。
控制单元603包括:页面分配单元,用于从所述物理主机的空闲内存中分配页面;和设置单元,用于将所分配的页面的关键字设置为请求方发送的磁盘块索引;和复制单元,用于将所述请求方的虚拟机的页面内容复制到所分配的页面中。
该物理主机还包括查找单元605和回收单元606,其中,
第四消息收发单元602,还用于接收请求方发送的页面请求消息,将查找单元605所找到页面的内容发送给请求方;接收丢弃消息DISCARD;
查找单元605,用于根据页面请求消息中的请求方的标识和磁盘块索引查找页面;根据丢弃消息中的请求方的标识和磁盘块索引查找页面;
回收单元606,用于将查找单元605根据丢弃消息中的请求方的标识和磁盘块索引所找到的页面回收到空闲内存中。
本发明实施例六中的物理主机确定自身空闲内存大小并通知仲裁服务器,使仲裁服务器根据请求方的虚拟机需要的远程缓存容量和供给方的空闲内存大小确定可以为请求方提供远程缓存的供给方的信息,将请求方的虚拟机需要迁移的内容保存到供给方的空闲内存中,提高集群系统中内存资源的利用率,在物理主机个数增多时,满足集群系统内多物理主机的大容量的内存需求。
实施例七:
参阅图7,本发明实施七提供一种仲裁服务器,包括:
消息接收单元701,用于接收集群系统内物理主机上报的空闲内存信息;接收请求方发送的请求远程缓存的消息,所述请求远程缓存的消息中携带所述请求方虚拟机需要的远程缓存容量;
供给方确定单元702,用于根据所述请求方虚拟机需要的远程缓存容量和所述集群系统内物理主机上报的空闲内存信息,确定供给方;
消息发送单元703,用于将所述供给方的信息发送给请求方,以便所述请求方利用所述供给方的空闲内存。
优选的,该仲裁服务器可以位于所述集群系统内的物理主机上。
本发明实施例七中的仲裁服务器根据请求方需要的远程缓存容量和集群系统内物理主机上报的空闲内存信息,确定供给方,将供给方信息发送给请求方以便请求方利用供给方的空闲内存,实现内存资源在不同物理主机之间的动态调配,提高了集群系统中内存资源的利用率,在物理主机个数增多时,满足集群系统内多物理主机的大容量的内存需求。
实施例八:
如图8所示,为本发明实施八提供的一种网络系统,包括:请求方801和仲裁服务器802,
请求方801,用于向仲裁服务器802发送请求远程缓存的消息,所述请求远程缓存的消息包括请求方的虚拟机需要的远程缓存容量;接收仲裁服务器802发送的供给方的信息,根据供给方的信息,利用所述供给方的空闲内存;
仲裁服务器802,用于接收集群系统内物理主机上报的空闲内存信息;接收请求方发送的请求远程缓存的消息,根据所述请求远程缓存的消息中的请求方的虚拟机需要的远程缓存容量和所述集群系统内物理主机上报的空闲内存信息,确定供给方,将所述供给方的信息发送给请求方801。
其中,供给方、请求方为集群系统中的物理主机。仲裁服务器可位于集群系统中任一物理主机上,或者位于与物理主机独立的设备上。
本发明实施八中仲裁服务器根据集群系统中各物理主机上报的空闲内存信息和请求方上报的虚拟机需要的远程缓存容量确定供给方的信息,将供给方的信息发送给请求方,请求方根据供给方的信息利用供给方的空闲内存,提高了集群系统中内存资源的利用率,在物理主机个数增多时,满足集群系统内物理主机的大容量的内存需求。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,例如只读存储器,磁盘或光盘等。
以上对本发明实施例所提供的集群系统中内存资源的管理方法、设备及网络系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

集群系统中内存资源的管理方法、设备及网络系统.pdf_第1页
第1页 / 共25页
集群系统中内存资源的管理方法、设备及网络系统.pdf_第2页
第2页 / 共25页
集群系统中内存资源的管理方法、设备及网络系统.pdf_第3页
第3页 / 共25页
点击查看更多>>
资源描述

《集群系统中内存资源的管理方法、设备及网络系统.pdf》由会员分享,可在线阅读,更多相关《集群系统中内存资源的管理方法、设备及网络系统.pdf(25页珍藏版)》请在专利查询网上搜索。

本发明实施例提供一种集群系统中内存资源的管理方法及设备,其中,种集群系统中内存资源的管理方法包括:请求方向仲裁服务器发送请求远程缓存的消息,所述请求远程缓存的消息包括本地虚拟机需要的远程缓存容量;请求方接收所述仲裁服务器发送的供给方的信息,所述供给方的信息是所述仲裁服务器根据集群系统中的物理主机上报的空闲内存信息和所述本地虚拟机需要的远程缓存容量获得的;请求方根据所述供给方的信息,利用所述供给方的。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 电学 > 电通信技术


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1