虚拟存储系统及其实现方法、服务器和虚拟机监控器的制造方法

文档序号:9754682阅读:514来源:国知局
虚拟存储系统及其实现方法、服务器和虚拟机监控器的制造方法
【技术领域】
[0001]本发明涉及云计算领域,尤其涉及一种虚拟存储系统及其实现方法、服务器和虚拟机监控器。
【背景技术】
[0002]在云计算数据中心中,客户端上的虚拟存储空间映射到服务器上的虚拟磁盘映像(Virtual Disk Image,VDI),对VDI的读写请求是服务器负载的主要来源。根据用途的不同,VDI可分为虚拟磁盘映像BootVDI和用户虚拟磁盘UserVDI两类,其中,BootVDI负责保存操作系统和程序,操作系统启动和程序加载时所需的数据,大多是通过读取BootVDI获得。由于服务器带宽和处理能力有限,当多个客户端同时进行操作系统启动、程序加载等操作时,服务器资源的争用会造成大量请求在缓存中排队,造成响应时间大幅增加,使得读效率低,影响虚拟存储系统的性能。
[0003]因此,有必要提出一种方法以优化BootVDI的读效率,减少客户端对服务器的访问量,提高虚拟存储系统的性能。

【发明内容】

[0004]本公开要解决的一个技术问题是如何优化BootVDI的读效率,减少对服务器的访问量,提高虚拟存储系统的性能。
[0005]本公开提供一种虚拟存储系统实现方法,包括:
[0006]从服务器下载系统虚拟磁盘映像BootVDI数据,将BootVDI数据以缓存块的方式缓存在虚拟机监控器的合作式缓存中;
[0007]接收来自客户端操作系统的BootVDI读请求,BootVDI读请求中包括BootVDI数据的缓存块标识;
[0008]将合作式缓存中缓存的BootVDI数据的缓存块提供给客户端操作系统。
[0009]在一实施例中,该虚拟存储系统实现方法还可以包括:
[0010]服务器根据缓存块的历史热度,均衡分配各客户端需缓存的BootVDI数据块,并将分配结果生成全局缓存访问表GCT ;
[0011]服务器将各客户端需缓存的BootVDI数据块和GCT发送给各客户端。
[0012]在一实施例中,服务器根据缓存块的历史热度,均衡分配各客户端需缓存的BootVDI数据块,包括:
[0013]服务器根据缓存块的历史热度,通过动态平衡热度和空间缓存块分配DPSB算法均衡分配各客户端需缓存的BootVDI数据块;
[0014]在一实施例中,还包括:服务器根据缓存块的历史热度,均衡分配各客户端需缓存的BootVDI数据块,包括:服务器根据缓存块的历史热度,将热度超过第一阈值的缓存块分解为至少两个缓存块副本,并使缓存块副本与缓存块具有相同的地址。
[0015]在一实施例中,该虚拟存储系统实现方法包括:
[0016]接收客户端操作系统的BootVDI读请求,查询GCT,确定BootVDI数据的缓存块的地址;
[0017]判断缓存BootVDI数据的缓存块是否过载,以及判断是否命中BootVDI数据;
[0018]若缓存BootVDI数据的缓存块过载或未命中BootVDI数据,发送BootVDI转发请求至服务器。
[0019]在一实施例中,服务器接收BootVDI转发请求,根据BootVDI转发请求返回BootVDI数据和控制命令,控制命令包括缓存块替换命令和更新GCT命令。
[0020]在一实施例中,还包括:接收服务器返回的BootVDI数据和控制命令,执行控制命令,将BootVDI数据缓存在合作式缓存的缓存块中,替换热度小于第二阈值的缓存块副本或孤本,并更新GCT表。
[0021 ] 本公开还提供一种虚拟机监控器,包括:
[0022]网络单元,用于从服务器下载系统虚拟磁盘映像BootVDI数据,将BootVDI数据以缓存块的方式缓存在虚拟机监控器的合作式缓存中;
[0023]读写单元,与网络单元相连接,用于接收来自客户端操作系统的BootVDI读请求,BootVDI读请求中包括BootVDI数据的缓存块标识;
[0024]处理单元,与读写单元和网络单元相连接,用于将合作式缓存中缓存的BootVDI数据的缓存块提供给客户端操作系统。
[0025]可选地,网络单元还用于:
[0026]将缓存块的热度发送给服务器;
[0027]接收服务器发送的BootVDI数据和全局缓存访问表GCT,其中,服务器根据缓存块的历史热度,均衡分配各客户端需缓存的BootVDI数据块,并将分配结果生成GCT,将各客户端需缓存的BootVDI数据块和GCT发送给各客户端。
[0028]可选地,处理单元还用于根据各缓存块的历史热度,将热度超过第一阈值的缓存块分解为至少两个缓存块副本,并使缓存块副本与缓存块具有相同的地址。
[0029]可选地,处理单元还用于:
[0030]根据接收到的客户端操作系统的BootVDI读请求,查询GCT,确定BootVDI数据的缓存块的地址;
[0031]判断缓存BootVDI数据的缓存块是否过载,以及判断是否命中BootVDI数据;
[0032]若缓存BootVDI数据的缓存块过载或未命中BootVDI数据,发送BootVDI转发请求至服务器。
[0033]可选地,网络单元还用于向服务器发送BootVDI转发请求,其中,服务器若接收到BootVDI转发请求,根据BootVDI转发请求返回BootVDI数据和控制命令,控制命令包括缓存块替换命令和更新GCT命令。
[0034]可选地,处理单元还用于:接收服务器返回的BootVDI数据块和控制命令,执行控制命令,将BootVDI数据缓存在合作式缓存的缓存块中,替换热度小于第二阈值的缓存块副本或孤本,并更新GCT表。
[0035]本公开还提供一种虚拟存储系统服务器,其特征在于,包括:
[0036]输入输出单元,用于发送系统虚拟磁盘映像BootVDI数据,将BootVDI数据以缓存块的方式存储在各客户端的虚拟机监控器的合作式缓存中;
[0037]管理单元,与输入输出单元相连接,用于根据缓存块的历史热度,均衡分配各客户端需缓存的BootVDI数据块。
[0038]可选地,管理单元还用于根据缓存块的历史热度,通过动态平衡热度和空间缓存块分配DPSB算法均衡分配各客户端需缓存的BootVDI数据块,并将分配结果生成全局缓存访问表GCT ;
[0039]输入输出单元还用于将各客户端需缓存的BootVDI数据块和GCT发送给各客户端。
[0040]可选地,管理单元还用于根据缓存块的历史热度,将热度超过第一阈值的缓存块分解为至少两个缓存块副本,并使缓存块副本与缓存块具有相同的地址。
[0041]可选地,管理单元用于:
[0042]若接收到客户端操作系统的BootVDI读请求,根据BootVDI读请求返回BootVDI数据和控制命令,控制命令包括缓存块替换命令和更新GCT命令。
[0043]可选地,管理单元用于:
[0044]若接收到BootVDI转发请求,根据BootVDI转发请求返回BootVDI数据和控制命令,控制命令包括缓存块替换命令和更新GCT命令。
[0045]可选地,输入输出单元还用于向客户端发送BootVDI数据和控制命令,客户端执行控制命令,将BootVDI数据块缓存在合作式缓存中的缓存块中,替换热度小于第二阈值的缓存块副本或孤本,并更新GCT表。
[0046]本公开还提供一种虚拟存储系统,包括:上述的虚拟机监控器;上述的虚拟存储系统服务器。
[0047]本公开提供的虚拟存储系统及其实现方法、服务器和虚拟机监控器,通过在各客户端的虚拟机监控器中设置用于保存系统虚拟磁盘映像BootVDI数据的合作式缓存,并共享合作式缓存,使得各客户端能根据需要读取其他客户端的BootVDI,减少对服务器的访问量,优化虚拟存储系统的读效率。
【附图说明】
[0048]图1示出本发明一实施例的虚拟存储系统实现方法的流程图。
[0049]图2示出本发明一实施例的虚拟存储系统的结构示意图。
[0050]图3示出本发明一实施例的虚拟存储系统的结构示意图。
[0051]图4示出本发明另一实施例的虚拟存储系统实现方法的流程图。
[0052]图5示出本发明一实施例的虚拟存储系统实现方法的DPSB算法。
[0053]图6示出本发明另一实施例的虚拟存储系统实现方法的流程图。
[0054]图7示出本发明另一实施例的虚拟存储系统实现方法的流程图。
[0055]图8示出本发明一实施例的虚拟存储系统客户端的结构框图。以及
[0056]图9示出本发明一实施例的虚拟存储系统服务器的结构框图。
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1