用于动态高速缓存共享的系统、方法和计算机可读介质.pdf

上传人:b*** 文档编号:177030 上传时间:2018-01-31 格式:PDF 页数:21 大小:5.34MB
返回 下载 相关 举报
摘要
申请专利号:

CN201410051986.5

申请日:

2014.02.17

公开号:

CN104049906A

公开日:

2014.09.17

当前法律状态:

实审

有效性:

审中

法律详情:

发明专利申请公布后的视为撤回IPC(主分类):G06F 3/06申请公布日:20140917|||专利申请权的转移IPC(主分类):G06F 3/06变更事项:申请人变更前权利人:LSI公司变更后权利人:安华高科技通用IP(新加坡)公司变更事项:地址变更前权利人:美国加利福尼亚变更后权利人:新加坡新加坡市登记生效日:20150819|||实质审查的生效IPC(主分类):G06F3/06申请日:20140217|||公开

IPC分类号:

G06F3/06; G06F12/08

主分类号:

G06F3/06

申请人:

LSI公司

发明人:

P·R·凡卡泰纱; S·K·潘达; P·R·玛哈拉纳; L·伯特

地址:

美国加利福尼亚

优先权:

2013.03.11 IN 270/KOL/2013

专利代理机构:

中国国际贸易促进委员会专利商标事务所 11038

代理人:

郭思宇

PDF下载: PDF下载
内容摘要

本发明涉及用于动态高速缓存共享的系统、方法和计算机可读介质。在客户虚拟机内的O/S内核层、驱动器层和应用层中实现的高速缓存控制器将高速缓存存储区动态分配给虚拟机,以改善对虚拟机的不断变化的需求的响应性。以多个逻辑装置的形式提供单个高速缓存装置或者一群高速缓存装置,并暴露给资源分配器。核心缓存算法在客户虚拟机中执行。当在虚拟机监视器的管理下,增加新的虚拟机时,促使现有虚拟机放弃分配的供相应的现有虚拟机使用的高速缓存存储区的一部分。放弃的高速缓存被分配给新的虚拟机。类似地,如果虚拟机被关闭或者被迁移到新的主机系统,那么分配给该虚拟机的高速缓存容量在由虚拟机监视器管理的剩余的虚拟机之间被重新分配。

权利要求书

1.  一种管理高速缓存存储区的方法,所述高速缓存存储区由一群一个或多个基于闪存的装置和管理一组虚拟机的主计算机系统支持,所述方法包括:
向虚拟机管理器提供高速缓存资源管理器应用,高速缓存资源管理器被配置有用于根据由主计算系统支持的虚拟机的数目来分配可用的高速缓存存储容量的标识部分的倍数的一个或多个策略;
向虚拟机管理器提供高速缓存资源分配器和基于闪存的高速缓存装置驱动器,高速缓存资源分配器被配置成要求一群基于闪存的高速缓存装置,向每个虚拟机分配逻辑驱动器,并标识由一群基于闪存的装置提供的可用高速缓存存储容量的一部分;
向虚拟基础架构客户端提供插件,该插件被配置成向至少一个基于闪存的高速缓存装置提供虚拟机、虚拟机管理器和客户上下文;和
将驱动器暴露给每个虚拟机,以使虚拟机能够与一群基于闪存的高速缓存装置通信,好像虚拟机在与专用存储装置通信似的。

2.
  按照权利要求1所述的方法,其中将驱动器暴露给每个虚拟机是对在虚拟机上执行的操作系统和高速缓存资源管理器定义的区间映射起反应。

3.
  按照权利要求2所述的方法,其中每个虚拟机只响应于区间映射而将I/O操作指向区间。

4.
  按照权利要求2所述的方法,其中高速缓存资源管理器响应于在主计算系统上工作的虚拟机的数目的变化,来动态地修改区间映射。

5.
  按照权利要求1所述的方法,其中插件被配置成向人机接口提供信息。

6.
  按照权利要求1所述的方法,其中插件还被配置成代表高速缓存资源管理器来与虚拟机通信。

7.
  按照权利要求1所述的方法,其中每个驱动器以映射到基于闪存的高速缓存装置的区间,发出对于来自所述一群基于闪存的高速缓 存装置中的基于闪存的一个高速缓存装置的命中或高速缓存填充I/O,所述I/O由与映射到特定虚拟机的逻辑驱动器关联的高速缓存资源分配器接收,高速缓存资源分配器确认I/O范围,并将该I/O重定向到物理装置。

8.
  一种高速缓存资源管理系统,适合于动态管理由一群一个或多个基于闪存的装置和管理一组虚拟机的主计算机系统支持的高速缓存存储区,所述系统包括:
在主计算机系统上运行的高速缓存资源管理器应用,该高速缓存资源管理器应用被配置有用于根据由主计算系统支持的虚拟机的数目来分配可用的高速缓存存储容量的标识部分的倍数的一个或多个策略;
在主计算机系统上运行的虚拟机管理器,该虚拟机管理器布置有高速缓存资源分配器和基于闪存的高速缓存装置驱动器,高速缓存资源分配器被配置成要求一群基于闪存的高速缓存装置,向每个虚拟机分配逻辑驱动器,并标识由该群基于闪存的装置提供的可用高速缓存存储容量的一部分;
被布置成与虚拟基础架构客户端通信的插件,所述插件被配置成向至少一个基于闪存的高速缓存装置提供虚拟机、虚拟机管理器和客户上下文;和
每个虚拟机可用的至少一个驱动器,使得能够实现与一群基于闪存的高速缓存装置的通信,好像该虚拟机在与专用存储装置通信似的。

9.
  按照权利要求8所述的系统,其中所述至少一个驱动器是根据在虚拟机上运行的操作系统配置的,并且对高速缓存资源管理器定义的区间映射起反应。

10.
  按照权利要求9所述的系统,其中每个虚拟机只响应于区间映射而将I/O操作指向区间。

11.
  按照权利要求9所述的系统,其中高速缓存资源管理器响应于在主计算系统上工作的虚拟机的数目的变化,动态地修改区间映射。

12.
  按照权利要求8所述的系统,其中插件还被配置成向人机接 口提供信息。

13.
  按照权利要求8所述的系统,其中插件还被配置成代表高速缓存资源管理器来与虚拟机通信。

14.
  按照权利要求8所述的系统,其中每个驱动器以映射到基于闪存的高速缓存装置的区间,发出对于来自所述一群基于闪存的高速缓存装置中的一个基于闪存的高速缓存装置的命中或高速缓存填充I/O,所述I/O由与映射到特定虚拟机的逻辑驱动器关联的高速缓存资源分配器接收,高速缓存资源分配器确认I/O范围,并将该I/O重定向到物理装置。

15.
  一种计算机可读介质,具有以非临时的形式存储在其上的计算机可执行指令,所述可执行指令当在主计算机的处理系统上执行时指示处理系统:
指示高速缓存资源分配器要求耦接到主计算机的高速缓存装置;
指示高速缓存资源管理应用:
与高速缓存资源分配器通信,以确定可用的高速缓存装置,和
扫描主计算机,以确定由主计算机支持的虚拟机的数目,一旦标识出虚拟机的数目和可用的高速缓存装置,高速缓存资源管理器就指示高速缓存资源分配器:
将可用的高速缓存容量分成相同大小的区间,和
创建逻辑驱动器,并按照高速缓存分配策略创建区间映射;还指示高速缓存资源管理器:
将每个逻辑驱动器映射到相应的虚拟机;和
将区间映射与每个逻辑驱动器联系起来;和
指示虚拟机:将高速缓存装置添加到高速缓存群中。

16.
  按照权利要求15所述的计算机可读介质,其中处理器还被指示指令虚拟机通过高速缓存装置之一来处理I/O操作。

17.
  按照权利要求15所述的计算机可读介质,其中处理器还被指示指令虚拟机管理器监视由主计算机活动地支持的虚拟机的数目。

18.
  按照权利要求17所述的计算机可读介质,其中当虚拟机管理器检测到支持额外的虚拟机的请求时,高速缓存资源分配器利用策略来确定待分配给新虚拟机的高速缓存的量,资源管理器确定将从目前在主计算机上执行的虚拟机收回的高速缓存的量,指示目前在主计算机上执行的虚拟机释放所述量的高速缓存,将该高速缓存分配给新的虚拟机,更新区间映射,指示资源分配器创建新的逻辑驱动器,并用高速缓存装置配置该新的虚拟机。

19.
  按照权利要求17所述的计算机可读介质,其中当虚拟机管理器检测到禁止支持虚拟机的请求时,高速缓存资源分配器将可供在主计算机上执行的剩余虚拟机之间重新分配的高速缓存存储空间的量通知给高速缓存资源管理器,资源管理器按照策略将可用的高速缓存分配给每个剩余的虚拟机,更新区间映射,指令资源分配器除去该逻辑驱动器,并利用可用高速缓存存储空间的相应部分来重新配置剩余的虚拟机。

20.
  按照权利要求18所述的计算机可读介质,其中所述策略以平等的高速缓存分配、最低保证高速缓存容量和相应虚拟机的当前工作负荷中的一个或多个为基础。

说明书

用于动态高速缓存共享的系统、方法和计算机可读介质
技术领域
本发明涉及数据存储系统,更具体地,涉及采用基于闪存的数据高速缓存的数据存储系统。
背景技术
随着多核处理器和输入-输出(I/O)互连带来的技术进步,当今服务器的执行应用程序的能力正在快速增长。然而,支持服务器的传统数据存储装置,比如硬盘驱动器的I/O速度并未按与I/O互连和多核处理器相同的速率增大。从而,对传统的数据存储装置的I/O操作已成为限制应用性能的瓶颈。换句话说,在服务器上运行的应用不能充分利用可获得的计算速度和数据传输能力。
一些常规的计算系统采用非易失性存储器作为较慢的数据存储装置(例如,磁盘存储介质、光盘存储介质或者可通过网络访问的一个或多个数据存储装置)的块级或文件级存储替代物,以改善计算系统和/或由计算系统执行的应用的性能。在这方面,由于与往来于较慢的存储装置相比,对于某些非易失性存储器(为简单起见,下面称为“高速缓存装置”),可以明显较快地进行输入/输出(I/O)操作,因此,高速缓存装置的使用提供显著提高I/O操作的速率的机会。
使用了基于企业级固态磁盘(SSD)和高速外设互联标准(PCIe)的机载固态存储,力图通过提供极优的I/O数据速率性能来解决I/O瓶颈。然而,SSD较贵,并且性能改善并不总是证明对于所有长期存储,部署SSD的投资都是正确的。因而,部署SSD,以通过利用SSD作为保存频繁使用的数据的高速缓存来提高服务器的性能。
虚拟化解决方案的最新进展使数据中心能够在多个仿真机之间合 并和共享硬件资源。即,单个服务器能够提供对客户端用户来说表现为专用服务器平台的事物中的共享资源。这些允许网络的虚拟化解决方案的普及对I/O性能提出了额外的压力。例如,易于预测一些应用将在一天的特定时间被使用和接收更多的I/O请求。然而,在许多客户端访问特定硬件平台的情况下,当多个客户端I/O请求在特定时刻到达服务器时,有时不能预测应用性能命中。通过将频繁访问的“热”数据从长期存储装置转移到与服务器耦接的SSD,虚拟化环境中的服务器方缓存能够显著加速应用性能。
在虚拟化环境中实现服务器方缓存的挑战是如何在多个客户机之间共享在单个基于SSD/PCIe的高速缓存装置中可用的高速缓存存储区。通过将虚拟机的文件系统从一个存储系统转移到另一个存储系统,使虚拟机能够被迁移到新的硬件平台的虚拟化特征(例如,vMotion),和使支持到x86处理器指令集的64位扩展的机器上的平台虚拟化成为可能的服务器虚拟化要求服务器方缓存需要是动态的,以容纳迁入或迁出物理机的各个虚拟服务器。
发明内容
用于动态管理高速缓存存储区,以便改善对虚拟机的不断变化的需求的响应性的系统和方法的实施例以多个逻辑装置的形式,提供单个高速缓存装置或者一群高速缓存装置,并向虚拟机监视器暴露所述单个高速缓存装置或者一群高速缓存装置。核心缓存算法在客户虚拟机中执行。当在虚拟机监视器的管理下,添加新的虚拟机时,促使现有虚拟机放弃分配的供相应的现有虚拟机使用的高速缓存存储区的一部分。放弃的高速缓存被分配给新的虚拟机。类似地,如果虚拟机被关闭或者被迁移到新的主机系统,那么分配给该虚拟机的高速缓存容量在由虚拟机监视器管理的剩余虚拟机之间被重新分配。
在例证实施例中,公开一种适合于动态管理由一群一个或多个基于闪存的装置和管理一组虚拟机的主计算机系统支持的高速缓存存储区的高速缓存资源管理系统。系统包括高速缓存资源管理器、虚拟机 管理器、插件和驱动器。高速缓存资源管理器是在主计算机系统上运行的应用。高速缓存资源管理器配置有按照主计算系统支持的虚拟机的数目,分配可用的高速缓存存储容量的标识部分(例如,区间)的倍数的一个或多个策略。虚拟机管理器集成在运行于主计算机系统上的O/S的内核中。虚拟机管理器布置有高速缓存资源分配器和基于闪存的高速缓存装置驱动器。高速缓存资源分配器要求一群基于闪存的高速缓存装置,向每个虚拟机分配逻辑驱动器,并标识由一群基于闪存的装置提供的可用高速缓存存储容量的一部分。插件与虚拟基础架构客户端通信,向至少一个基于闪存的高速缓存装置提供虚拟机、虚拟机管理器和客户虚拟机角度的上下文。每个虚拟机可用的驱动器使能够实现与一群基于闪存的高速缓存装置的通信,好像该虚拟机在与专用存储装置通信似的。
在另一个例证实施例中,公开一种管理由一群一个或多个基于闪存的装置和管理一组虚拟机的主计算机系统支持的高速缓存存储区的方法。所述方法包括以下步骤:向虚拟机管理器提供高速缓存资源管理器应用,高速缓存资源管理器利用按照主计算系统支持的虚拟机的数目,分配可用的高速缓存存储容量的标识部分的倍数的一个或多个策略,向虚拟机管理器提供高速缓存资源分配器和基于闪存的高速缓存装置驱动器,高速缓存资源分配器要求一群基于闪存的高速缓存装置,向每个虚拟机分配逻辑驱动器,并标识由一群基于闪存的装置提供的可用高速缓存存储容量的一部分,向虚拟基础架构客户端提供插件,插件向至少一个基于闪存的高速缓存装置提供虚拟机、虚拟机管理器和客户上下文,并将驱动器暴露给每个虚拟机,以使虚拟机能够与一群基于闪存的高速缓存装置通信,好像虚拟机在与专用存储装置通信似的。
在另一个例证实施例中,公开一种具有以非临时的形式保存在其上的可执行指令的计算机可读介质,当在主计算机的处理系统上执行时,所述可执行指令指示处理系统协调以下任务。指示高速缓存资源分配器要求耦接到主计算机的高速缓存装置。高速缓存资源管理器被 启动,与高速缓存资源分配器通信,以确定可用的高速缓存装置,并扫描主计算机,以确定主计算机支持的数目。一旦标识出虚拟机的数目和可用的高速缓存装置,高速缓存资源管理器就指示高速缓存资源分配器将可用的高速缓存容量分成相同大小的区间,创建逻辑驱动器,并按照高速缓存分配策略,创建区间映射。处理系统还指示高速缓存资源管理器将每个逻辑驱动器映射到相应的虚拟机,并将区间映射与每个逻辑驱动器联系起来。之后,处理系统指示虚拟机将高速缓存装置添加到高速缓存群中。
附图说明
图1是图解说明按照本发明的例证实施例的主计算机环境的示意图。
图2是图解说明图1的高速缓存群内的高速缓存数据布局的方框图。
图3是图1的动态高速缓存共享系统的体系结构的示意图。
图4是单个高速缓存装置在一组虚拟机之间的分配的示意图。
图5是图解说明准备图3的动态高速缓存共享系统的方法的流程图。
图6是在引入新的虚拟机之后的区间映射的示意图。
图7是图解说明利用图3的动态高速缓存共享系统,处理I/O操作的方法的流程图。
图8A和8B包括图解说明动态管理高速缓存存储区的方法的流程图。
具体实施方式
当增加或者从虚拟机管理器的控制中除去虚拟机时,在客户虚拟机内的O/S内核层、驱动器层和应用层中实现的动态高速缓存共享系统将高速缓存存储区动态分配给虚拟机,以改善对主计算机上的虚拟机的不断变化的存储需求的响应性。以多个逻辑装置的形式提供单个 高速缓存装置或者一群高速缓存装置,并暴露给资源分配器。核心缓存算法在客户虚拟机中执行。借助定义的接口,核心缓存算法起O/S不可知的可移植库作用。O/S栈中的过滤驱动器截取I/O请求,并通过高速缓存管理库路由I/O请求,以实现缓存功能。高速缓存管理库与过滤驱动器通信,以实现O/S特定动作和I/O路由。当在虚拟机管理器的管理下,增加新的虚拟机时,促使现有虚拟机放弃分配的供相应的现有虚拟机使用的高速缓存存储区的一部分。放弃的高速缓存被分配给新的虚拟机。类似地,如果虚拟机被关闭或者被迁移到新的主机系统,那么分配给该虚拟机的高速缓存容量在由虚拟机监视器管理的剩余的虚拟机之间被重新分配。
如图1中图解所示,在按照本发明的主计算机环境100的说明性或例证实施例中,诸如FB高速缓存卡132和FB高速缓存卡134之类的基于闪存的高速缓存装置的高速缓存群130通过相应的高速外设接口(PCIe)总线耦接到主机系统110。FB高速缓存卡132和FB高速缓存卡134是独立标识的高速缓存装置,所述高速缓存装置被管理,并且其相应的高速缓存存储区作为高速缓存群130被共享。
另外,主机系统110通过外设互连卡140耦接到一组本地存储装置145,并通过外设互连卡150,耦接到对应的一组远程数据存储装置155。本地存储装置145和远程数据存储装置155用作为复合数据存储区暴露于虚拟环境100的各组物理磁盘驱动器实现。外设互连卡140和/或外设互连卡150可利用将物理磁盘驱动器组合成单个逻辑单元的独立磁盘冗余阵列管理技术,来管理由各组物理磁盘驱动器提供的存储空间。取决于对应的数据存储区支持的应用所要求的可靠性和性能,用通常称为“RAID级”的几种方式之一,在物理驱动器之间分配数据。
如图1中所示,主机系统110是诸如具有通过总线相互耦接的处理器112和存储器120的服务器计算机之类的计算机。操作中,处理器112在应用层128、文件系统126和动态高速缓存共享系统300中执行指令,以使主机系统110上的虚拟机的托管成为可能。处理器112通过高速缓存装置驱动器121与高速缓存群130通信。处理器112通 过串行连接小型计算机系统接口/高级主计算机接口(SAS/AHCI)驱动器122和外设互连卡140,与本地卷145通信。处理器112还通过存储区域网/网络接口连接器(SAN/NIC)驱动器123和外设互连卡150,与远程卷155通信。
按照本发明的主计算机环境100高度可缩放,并不局限于单个处理器112或单个存储器120。在备选实施例(未示出)中,主机系统110可包括与处理器112相似或不相似的多个处理器。另外,主机系统110可包括与存储器120相似或不相似的附加存储元件。类似地,通过产生多个实例高速缓存装置驱动器121、SAS/ACHI驱动器122和SAN/NIC驱动器123,另外的存储装置可被并入主机系统110。
操作中,动态高速缓存共享系统300动态管理由一群一个或多个基于闪存的装置(例如,高速缓存群130)和管理一组虚拟机的主机系统110支持的高速缓存存储区200。动态高速缓存共享系统300是在位于应用层128和文件系统126之下的共享装置驱动器层实现的。动态高速缓存共享系统300是与基于闪存的高速缓存装置(例如,FB高速缓存卡132和FB高速缓存卡134)和常规的数据存储系统(例如,利用诸如因特网小型计算机系统接口(iSCSI)、以太网光纤通道(FCoE)、光纤通道(FC)、SAS和串行高级技术附件(SATA)之类的各种接口实现的数据存储系统)结合的通用缓存层。动态高速缓存共享系统300在块设备层工作,对文件系统126和应用层128中的应用来说透明。动态高速缓存共享系统300标识和消耗存在于并入高速缓存群130中的FB高速缓存卡132和FB高速缓存卡134中的存储空间。另外,动态高速缓存共享系统300提供跨常规数据存储系统,比如本地卷145和远程卷155的缓存功能。利用相对于物理磁盘和高速缓存资源管理应用的定义明确的接口,核心缓存功能被实现成O/S不可知的可移植库。
高速缓存元数据管理(比如散列表、LRU、空闲列表、高速缓存分配单元管理数据结构)对极大的高速缓存存储区的设计来说重要。由于固态磁盘(SSD)高速缓存可扩展到千兆字节,并且主机系统110上的每个I/O涉及查寻散列列和高速缓存分配单元数据结构,以决定高速缓 存命中/缺失,因此必要的是应考虑到性能而优化高速缓存元数据管理,元数据足迹(footprint)应小到足以保存在双倍数据速率(DDR)随机存取存储器(RAM)中,以便快速查寻。
图2是图解说明图1的高速缓存群130内的高速缓存存储区200的方框图。高速缓存存储区200被分区或分割成至少两个独立的存储区。第一部分或分区包括高速缓存元数据210。第二或数据存储部分220包括一组高速缓存窗口222。如图2中进一步图解所示,高速缓存元数据210包括关于每个高速缓存窗口222的对应条目215。高速缓存存储区300的相当大量的存储容量被分配给在例证中被标识成高速缓存窗口的区域。每个高速缓存窗口被进一步细分成期望大小的多行的高速缓存块225。
高速缓存存储区200的分配单元和高速缓存块大小相当大,从而降低元数据存储器需求。在例证实施例中,整个高速缓存数据存储部分200被分成多个大块的分配单元(称为高速缓存窗口,每个1MB)。高速缓存窗口大小是可调的参数,可根据主机系统配置和I/O工作负荷而调整。高速缓存窗口222是用于高速缓存管理的分配/解除分配单元。每个高速缓存窗口222由均为64KB多个高速缓存块组成。高速缓存块大小是可调的参数,可根据主机系统配置和I/O工作负荷而调整。整个高速缓存存储区200可被用于缓存多个块装置,每个高速缓存窗口222代表单个块装置上的空间的连续区域。
散列表、空闲高速缓存列表、最近最少使用(LRU)列表和高速缓存替换算法在高速缓存窗口级工作。这显著减小了为表示高速缓存元数据210而需要的存储器的数量,因为每个高速缓存窗口222是相当大的分配单元。高速缓存元数据210被保存在用于读缓存的内存中,以便快速查寻。高速缓存替换以需求、阈值、寿命、或许其它因素为基础,并利用基于多优先权的LRU队列。基于优先权的LRU队列利用有效高速缓存行的数目和高速缓存窗口222被访问的次数来确定高速缓存窗口222的优先权。已满并且被访问最多的高速缓存窗口222被赋予最高的优先权,并被放置在最高优先权LRU队列的结尾。一旦 整个高速缓存存储区200已满,优先权最低的高速缓存窗口222将首先被替换,从而保留最频繁访问的数据。智能热图生成算法缓存被反复访问的区域。本地卷145或远程卷155中的很少被访问的数据区不被放入高速缓存存储区200中。
图3是图1的动态高速缓存共享系统300的体系结构的示意图。动态高速缓存共享系统300包括直接与主机系统硬件310通信的虚拟机管理器320,和在应用层128中工作以支持使在主机系统110上运行的虚拟环境的实时监视成为可能的各种功能的高速缓存资源管理器330。虚拟机管理器320是通常称为内核的O/S组件。虚拟机管理器320从虚拟服务器接收监视信息,并集中管理将高速缓存群130中的一个或多个基于闪存的高速缓存装置暴露给由主机系统硬件310及本地卷145和远程卷155提供的数据存储区支持的数十个或数百个虚拟机的机制。
虚拟机管理器320能够支持多个O/S,每个O/S具有与虚拟机管理器320的应用层128接口。在图解所示的实施例中,O/S A(例如,Linux、Unix)由接口350支持,接口350包括用户层中的管理API354,和通过SCSI HBA仿真器与虚拟机管理器320通信的内核层中的过滤驱动器和库352。类似地,O/S B(例如,Windows Server2008)由接口360支持,接口360包括管理API364及过滤驱动器和库362。
虚拟机管理器320布置有高速缓存资源分配器322、高速缓存装置驱动器324和CICOM提供器326,以管理和控制高速缓存存储区200,并与高速缓存资源管理器330通信。这些和其它组件在主机系统110上的客户虚拟机中执行,以提供I/O过滤、热数据分类和缓存功能。虚拟机管理器320利用SCSI HBA仿真器,向虚拟机模仿高速缓存装置。按照两种方式将装置暴露给虚拟机。在第一种方式中,原始磁盘访问模块328以原始装置的方式暴露数据存储装置。原始磁盘访问模块328装置直接向虚拟机暴露SCSI块装置。另一方面,借助集成在虚拟机管理器320中的虚拟机文件系统(VMFS)模块,通过VMFS向虚拟机暴露数据存储区。VMFS模块可保存和管理将虚拟装置逻辑 块地址和物理磁盘或高速缓存存储区200联系起来的映射。VMFS还创建精简配置的逻辑存储区,以利用虚拟磁盘支持数据快照、备份和其它操作。配置VMFS的磁盘所在的物理装置被称为数据存储区。利用带有管理插件340的虚拟基础架构客户端(VIC),这些虚拟磁盘可被动态转移到动态高速缓存共享系统300中的不同数据存储区(物理磁盘),而不存在虚拟机的任何停机时间。
高速缓存资源分配器322负责标识和要求动态高速缓存共享系统300中的所有高速缓存装置,并为该系统上的被配置成与动态高速缓存共享系统300的管理组件通信的每个虚拟机分配逻辑驱动器。高速缓存资源分配器322创建的逻辑驱动器作为RAW装置被映射到客户虚拟机。高速缓存资源分配器322将整个高速缓存容量分成相同大小的多个区间或块。区间大小被调整为等于高速缓存窗口大小。高速缓存存储容量被分配给在区间边界中的不同虚拟机。
高速缓存资源分配器322提供一组定义明确的API,以便为每个虚拟机创建和破坏逻辑驱动器。高速缓存资源分配器创建的每个逻辑驱动器具有动态高速缓存共享系统300支持的最大高速缓存容量的容量,然而整个高速缓存装置只有少数区间被映射到每个虚拟机。映射信息由高速缓存资源管理器330提供。根据在资源管理器330中定义的策略,和随着时间的推移的虚拟机的增加和去除,在动态高速缓存共享系统300的使用期限内,映射信息可动态变化。
高速缓存资源分配器322通过确保对照当前的有效区间映射,证实对应于每个逻辑驱动器的I/O,强制实施由高速缓存资源管理器定义的区间映射。高速缓存资源分配器322根据区间映射,通过高速缓存装置驱动器324或其它装置(未示出),将I/O请求重定向到物理装置。
高速缓存资源管理器330是起主机系统110上的客户虚拟机作用的较小并且高效的软件模块。在虚拟机管理器320的控制下,高速缓存资源管理器324监视和管理在所有虚拟机之间的高速缓存装置利用和分配。在初始化期间,高速缓存资源管理器324连接到所有的虚拟机,分配高速缓存容量,并监视高速缓存利用。高速缓存资源管理器 324还通过虚拟机管理器320的虚拟化服务API,向虚拟服务器注册和等待诸如虚拟机增加、除去、迁移之类的事件,并协调高速缓存存储容量在当前执行的虚拟机之间的重新分配。
另外,高速缓存资源管理器324执行负责以受控的方式在虚拟机间分配高速缓存的策略引擎。策略引擎可包括在所有虚拟机之间平等共享高速缓存容量,向某些虚拟机保证最小的高速缓存容量,并在其它虚拟机之间重新分配剩余的高速缓存容量,在所有虚拟机之间保持热图,并根据每个虚拟机进行的I/O活动,根据当前工作负荷重新分配高速缓存的策略。
当新的虚拟机被增加或迁移到物理机时,高速缓存资源管理器324检测该事件,并尝试通过进行以下步骤,在可用的虚拟机之间重新分配高速缓存。首先,高速缓存资源管理器324通过客户虚拟机中的管理API354、356,请求分配有高速缓存容量的当前运行的客户虚拟机放弃一定量的高速缓存。由于高速缓存分配的区间大小等于高速缓存窗口大小,因此客户虚拟机将从其LRU队列的顶部放弃最不热的数据,从而降低由减少的高速缓存分配引起的性能影响。一旦主机系统110上的所有虚拟机都放弃分配给它们的一定量的高速缓存,释放的高速缓存区间被分配给被增加或迁移的新的虚拟机。
插件340被安排成与虚拟基础架构客户端(VIC)通信,以提供在虚拟环境中管理动态高速缓存共享系统解决方案的管理能力。插件340向就数据中心群集、主机和客户机而论的管理动作提供上下文。系统管理员将能够利用插件340来监视和管理动态高速缓存共享系统解决方案。插件340利用管理API354、364和高速缓存资源管理器330与虚拟机交互,以提供上述管理功能。
虚拟机将根据在虚拟机中执行的O/S,使用过滤驱动器和库352、362。过滤驱动器和库352、362使高速缓存装置能够被配置以区间映射,并确保高速缓存装置只利用分配给它的区间。另外,过滤驱动器和库352、362使得能够在作为增加新的虚拟机、虚拟机离线或者被迁出主机系统110的结果的高速缓存重新分配期间,实现向虚拟机增加 区间和从虚拟机除去区间。此外,过滤驱动器和库352、362确保暴露给虚拟机的原始装置被配置成高速缓存装置。
图4是借助平等的高速缓存分配管理策略,在一组虚拟机之间分配单个高速缓存装置的示意图。图4中图解所示的实施例是用于举例说明3个虚拟机如何平等共享基于闪存的高速缓存存储区200的高速缓存窗口222的小规模布置。
在举例说明的实施例中,基于闪存的高速缓存存储区200包括30个高速缓存窗口(用块0-29表示),高速缓存窗口0-9与虚拟机1关联,并且对虚拟机1来说被标识成逻辑磁盘1,高速缓存窗口10-19与虚拟机2关联,并且对虚拟机2来说被标识成逻辑磁盘2,高速缓存窗口20-29与虚拟机3关联,并且对虚拟机3来说被标识成逻辑磁盘3。与高速缓存资源分配器322一起工作的原始磁盘访问模块328完成逻辑驱动器和高速缓存存储区200中的指定的一组连续块之间的上述关联或链接。
图5是图解说明准备图3的动态高速缓存共享系统的方法500的流程图。方法500始于方框502,在方框502,高速缓存资源分配器标识并要求耦接到主机系统的基于闪存的高速缓存装置。在方框504,虚拟机管理器确定将由主机系统支持的虚拟机的数目。在方框506,在主计算机中运行的动态高速缓存共享系统指令高速缓存资源分配器将可用的高速缓存容量分成相等的区间或块。在方框508,进一步指令高速缓存资源分配器为将由主机系统支持的每个虚拟机创建逻辑驱动器。在方框510,指令高速缓存资源分配器按照高速缓存分配策略,创建区间映射。在方框512,资源管理器将逻辑驱动器作为相应的原始装置映射到每个虚拟机,还指令虚拟机依据区间映射,将高速缓存装置加入高速缓存群中。之后,如在方框514中所示,根据使用频度算法,缓存主机系统上的I/O操作。
图6是在引入新的虚拟机之后的区间映射的示意图。图6中图解说明的实施例是举例说明当采用平等共享基于闪存的高速缓存存储区200的高速缓存窗口222的分配策略时,如何实现第4个虚拟机的增 加的小规模布置。
在举例说明的实施例中,基于闪存的高速缓存存储区200包括30个高速缓存窗口(用块0-29表示),高速缓存窗口3-9与虚拟机1关联,并且对虚拟机1来说被标识成逻辑磁盘1,高速缓存窗口13-19与虚拟机2关联,并且对虚拟机2来说被标识成逻辑磁盘2,高速缓存窗口23-29与虚拟机3关联,并且对虚拟机3来说被标识成逻辑磁盘3。用带标记的块0-2、10-12、20-22表示的释放的高速缓存窗口作为逻辑磁盘4被重新分配给虚拟机4。在重新分配之后,虚拟机1-3分别被分配总共30个高速缓存窗口中的7个高速缓存窗口,而虚拟机4被分配剩余的9个高速缓存窗口。与高速缓存资源分配器322一起工作的原始磁盘访问模块328完成逻辑驱动器和高速缓存存储区200中的指定的各组块之间的上述关联或链接。
图7是图解说明利用图3的动态高速缓存共享系统300,处理I/O操作的方法700的流程图。如图所示,方法700始于方框702,在方框702,动态高速缓存共享系统驱动器按照映射到高速缓存装置的区间,发出对于高速缓存装置的命中或高速缓存填充I/O操作。在方框704,资源分配器接收与映射到特定虚拟机的暴露的逻辑驱动器标识符相关的I/O操作。在方框706,资源分配器确认该I/O操作在区间映射中,被标识成属于指定虚拟机的区间的范围内。在方框708,高速缓存资源管理器通过适当的SCSI驱动器,将I/O重定向到物理装置。
图8A和8B包括图解说明动态管理高速缓存存储区的方法800的流程图。方法800始于方框802,在方框802,动态高速缓存共享系统关于将在主机系统上支持的虚拟机的数目的变化,来监视虚拟化服务API。如在判定框804中所示,判定是在向主机支持的虚拟机的集合中添加虚拟机,还是在从所述集合中除去虚拟机。当在增加虚拟机时(如用退出判定框804的标记“是”的流程控制箭头所示),处理继续进行方框806,在方框806,高速缓存资源分配器根据分配策略,确定待分配给新的虚拟机的高速缓存的量。否则,处理转到方框812,如用连接符B所示。在方框808,高速缓存资源管理器与每个现有的虚拟 机通信,以释放适当量的高速缓存存储容量,以便重新分配给新的虚拟机。另外,更新区间映射,并传送给高速缓存资源分配器。在方框810,指令高速缓存资源分配器创建新的逻辑驱动器,并使之与最近释放的区间或高速缓存窗口相联系。另外,指令高速缓存资源分配器向该虚拟机暴露新生成的逻辑驱动器。之后,处理继续进行方框802的功能。
当虚拟机被迁离主机系统时,处理继续进行方框812,在方框812,高速缓存资源分配器确定在从离开主机系统的虚拟机释放之后,变得可供重新分配给剩余虚拟机的高速缓存容量的量。在方框814,按照分配策略,资源管理器确定应使之可供剩余的虚拟机使用的释放的存储容量的量。应注意当分配策略如此规定时,重新分配给每个虚拟机的存储容量的量可能不必相等。在方框816,指令高速缓存资源分配器除去与旧的虚拟机相联系的逻辑驱动器,和更新修正的区间映射,并利用可用的高速缓存容量的相应部分重新配置剩余的虚拟机。
应理解,图5、7、8A和8B的流程图只是用来例证或说明成为所述方法的基础的逻辑。本领域的技术人员会理解,在各个实施例中,可以按照任意各种方式设计或配置包括动态高速缓存处理系统或高速缓存控制器的数据处理系统,以实现所述方法。上面说明的步骤或动作可按任何适当的顺序或序列发生,包括并行或者彼此同步地发生。在一些实施例中,上面关于图5、7、8A和8B说明的步骤或动作可以与其它步骤或动作结合,或者被省略。尽管为了清楚起见,以图5、7、8A和8B中的流程图的形式进行了说明,不过基础的逻辑可被模块化,或者以任何适当的方式布置。本领域的技术人员能够容易地编程或配置适当的软件或适当的逻辑,比如以专用集成电路(ASIC)或者类似装置或者装置的组合的形式,以实现上面说明的方法。另外,应理解软件指令或类似逻辑与其中保存或包含这样的软件指令或类似逻辑,以便由处理器112执行的局部存储器120或其它存储器的组合包括“计算机可读介质”或“计算机程序产品”,如在专利词典中使用该术语一样。
应注意为了说明本发明的原理和概念,参考一个或多个例证实施 例,说明了本发明。本发明并不局限于这些实施例。鉴于这里提供的说明,本领域的技术人员会明白,可对这里说明的实施例作出许多变化,所有这样的变化都在权利要求书中限定的本发明的范围之内。

用于动态高速缓存共享的系统、方法和计算机可读介质.pdf_第1页
第1页 / 共21页
用于动态高速缓存共享的系统、方法和计算机可读介质.pdf_第2页
第2页 / 共21页
用于动态高速缓存共享的系统、方法和计算机可读介质.pdf_第3页
第3页 / 共21页
点击查看更多>>
资源描述

《用于动态高速缓存共享的系统、方法和计算机可读介质.pdf》由会员分享,可在线阅读,更多相关《用于动态高速缓存共享的系统、方法和计算机可读介质.pdf(21页珍藏版)》请在专利查询网上搜索。

1、10申请公布号CN104049906A43申请公布日20140917CN104049906A21申请号201410051986522申请日20140217270/KOL/201320130311ING06F3/06200601G06F12/0820060171申请人LSI公司地址美国加利福尼亚72发明人PR凡卡泰纱SK潘达PR玛哈拉纳L伯特74专利代理机构中国国际贸易促进委员会专利商标事务所11038代理人郭思宇54发明名称用于动态高速缓存共享的系统、方法和计算机可读介质57摘要本发明涉及用于动态高速缓存共享的系统、方法和计算机可读介质。在客户虚拟机内的O/S内核层、驱动器层和应用层中实现的高。

2、速缓存控制器将高速缓存存储区动态分配给虚拟机,以改善对虚拟机的不断变化的需求的响应性。以多个逻辑装置的形式提供单个高速缓存装置或者一群高速缓存装置,并暴露给资源分配器。核心缓存算法在客户虚拟机中执行。当在虚拟机监视器的管理下,增加新的虚拟机时,促使现有虚拟机放弃分配的供相应的现有虚拟机使用的高速缓存存储区的一部分。放弃的高速缓存被分配给新的虚拟机。类似地,如果虚拟机被关闭或者被迁移到新的主机系统,那么分配给该虚拟机的高速缓存容量在由虚拟机监视器管理的剩余的虚拟机之间被重新分配。30优先权数据51INTCL权利要求书3页说明书8页附图9页19中华人民共和国国家知识产权局12发明专利申请权利要求书。

3、3页说明书8页附图9页10申请公布号CN104049906ACN104049906A1/3页21一种管理高速缓存存储区的方法,所述高速缓存存储区由一群一个或多个基于闪存的装置和管理一组虚拟机的主计算机系统支持,所述方法包括向虚拟机管理器提供高速缓存资源管理器应用,高速缓存资源管理器被配置有用于根据由主计算系统支持的虚拟机的数目来分配可用的高速缓存存储容量的标识部分的倍数的一个或多个策略;向虚拟机管理器提供高速缓存资源分配器和基于闪存的高速缓存装置驱动器,高速缓存资源分配器被配置成要求一群基于闪存的高速缓存装置,向每个虚拟机分配逻辑驱动器,并标识由一群基于闪存的装置提供的可用高速缓存存储容量的一。

4、部分;向虚拟基础架构客户端提供插件,该插件被配置成向至少一个基于闪存的高速缓存装置提供虚拟机、虚拟机管理器和客户上下文;和将驱动器暴露给每个虚拟机,以使虚拟机能够与一群基于闪存的高速缓存装置通信,好像虚拟机在与专用存储装置通信似的。2按照权利要求1所述的方法,其中将驱动器暴露给每个虚拟机是对在虚拟机上执行的操作系统和高速缓存资源管理器定义的区间映射起反应。3按照权利要求2所述的方法,其中每个虚拟机只响应于区间映射而将I/O操作指向区间。4按照权利要求2所述的方法,其中高速缓存资源管理器响应于在主计算系统上工作的虚拟机的数目的变化,来动态地修改区间映射。5按照权利要求1所述的方法,其中插件被配置。

5、成向人机接口提供信息。6按照权利要求1所述的方法,其中插件还被配置成代表高速缓存资源管理器来与虚拟机通信。7按照权利要求1所述的方法,其中每个驱动器以映射到基于闪存的高速缓存装置的区间,发出对于来自所述一群基于闪存的高速缓存装置中的基于闪存的一个高速缓存装置的命中或高速缓存填充I/O,所述I/O由与映射到特定虚拟机的逻辑驱动器关联的高速缓存资源分配器接收,高速缓存资源分配器确认I/O范围,并将该I/O重定向到物理装置。8一种高速缓存资源管理系统,适合于动态管理由一群一个或多个基于闪存的装置和管理一组虚拟机的主计算机系统支持的高速缓存存储区,所述系统包括在主计算机系统上运行的高速缓存资源管理器应。

6、用,该高速缓存资源管理器应用被配置有用于根据由主计算系统支持的虚拟机的数目来分配可用的高速缓存存储容量的标识部分的倍数的一个或多个策略;在主计算机系统上运行的虚拟机管理器,该虚拟机管理器布置有高速缓存资源分配器和基于闪存的高速缓存装置驱动器,高速缓存资源分配器被配置成要求一群基于闪存的高速缓存装置,向每个虚拟机分配逻辑驱动器,并标识由该群基于闪存的装置提供的可用高速缓存存储容量的一部分;被布置成与虚拟基础架构客户端通信的插件,所述插件被配置成向至少一个基于闪存的高速缓存装置提供虚拟机、虚拟机管理器和客户上下文;和每个虚拟机可用的至少一个驱动器,使得能够实现与一群基于闪存的高速缓存装置的通信,好。

7、像该虚拟机在与专用存储装置通信似的。9按照权利要求8所述的系统,其中所述至少一个驱动器是根据在虚拟机上运行的操权利要求书CN104049906A2/3页3作系统配置的,并且对高速缓存资源管理器定义的区间映射起反应。10按照权利要求9所述的系统,其中每个虚拟机只响应于区间映射而将I/O操作指向区间。11按照权利要求9所述的系统,其中高速缓存资源管理器响应于在主计算系统上工作的虚拟机的数目的变化,动态地修改区间映射。12按照权利要求8所述的系统,其中插件还被配置成向人机接口提供信息。13按照权利要求8所述的系统,其中插件还被配置成代表高速缓存资源管理器来与虚拟机通信。14按照权利要求8所述的系统,。

8、其中每个驱动器以映射到基于闪存的高速缓存装置的区间,发出对于来自所述一群基于闪存的高速缓存装置中的一个基于闪存的高速缓存装置的命中或高速缓存填充I/O,所述I/O由与映射到特定虚拟机的逻辑驱动器关联的高速缓存资源分配器接收,高速缓存资源分配器确认I/O范围,并将该I/O重定向到物理装置。15一种计算机可读介质,具有以非临时的形式存储在其上的计算机可执行指令,所述可执行指令当在主计算机的处理系统上执行时指示处理系统指示高速缓存资源分配器要求耦接到主计算机的高速缓存装置;指示高速缓存资源管理应用与高速缓存资源分配器通信,以确定可用的高速缓存装置,和扫描主计算机,以确定由主计算机支持的虚拟机的数目,。

9、一旦标识出虚拟机的数目和可用的高速缓存装置,高速缓存资源管理器就指示高速缓存资源分配器将可用的高速缓存容量分成相同大小的区间,和创建逻辑驱动器,并按照高速缓存分配策略创建区间映射;还指示高速缓存资源管理器将每个逻辑驱动器映射到相应的虚拟机;和将区间映射与每个逻辑驱动器联系起来;和指示虚拟机将高速缓存装置添加到高速缓存群中。16按照权利要求15所述的计算机可读介质,其中处理器还被指示指令虚拟机通过高速缓存装置之一来处理I/O操作。17按照权利要求15所述的计算机可读介质,其中处理器还被指示指令虚拟机管理器监视由主计算机活动地支持的虚拟机的数目。18按照权利要求17所述的计算机可读介质,其中当虚拟。

10、机管理器检测到支持额外的虚拟机的请求时,高速缓存资源分配器利用策略来确定待分配给新虚拟机的高速缓存的量,资源管理器确定将从目前在主计算机上执行的虚拟机收回的高速缓存的量,指示目前在主计算机上执行的虚拟机释放所述量的高速缓存,将该高速缓存分配给新的虚拟机,更新区间映射,指示资源分配器创建新的逻辑驱动器,并用高速缓存装置配置该新的虚拟机。19按照权利要求17所述的计算机可读介质,其中当虚拟机管理器检测到禁止支持虚拟机的请求时,高速缓存资源分配器将可供在主计算机上执行的剩余虚拟机之间重新分配的高速缓存存储空间的量通知给高速缓存资源管理器,资源管理器按照策略将可用的高速缓存分配给每个剩余的虚拟机,更新。

11、区间映射,指令资源分配器除去该逻辑驱动器,并利用可用高速缓存存储空间的相应部分来重新配置剩余的虚拟机。权利要求书CN104049906A3/3页420按照权利要求18所述的计算机可读介质,其中所述策略以平等的高速缓存分配、最低保证高速缓存容量和相应虚拟机的当前工作负荷中的一个或多个为基础。权利要求书CN104049906A1/8页5用于动态高速缓存共享的系统、方法和计算机可读介质技术领域0001本发明涉及数据存储系统,更具体地,涉及采用基于闪存的数据高速缓存的数据存储系统。背景技术0002随着多核处理器和输入输出I/O互连带来的技术进步,当今服务器的执行应用程序的能力正在快速增长。然而,支持服。

12、务器的传统数据存储装置,比如硬盘驱动器的I/O速度并未按与I/O互连和多核处理器相同的速率增大。从而,对传统的数据存储装置的I/O操作已成为限制应用性能的瓶颈。换句话说,在服务器上运行的应用不能充分利用可获得的计算速度和数据传输能力。0003一些常规的计算系统采用非易失性存储器作为较慢的数据存储装置例如,磁盘存储介质、光盘存储介质或者可通过网络访问的一个或多个数据存储装置的块级或文件级存储替代物,以改善计算系统和/或由计算系统执行的应用的性能。在这方面,由于与往来于较慢的存储装置相比,对于某些非易失性存储器为简单起见,下面称为“高速缓存装置”,可以明显较快地进行输入/输出I/O操作,因此,高速。

13、缓存装置的使用提供显著提高I/O操作的速率的机会。0004使用了基于企业级固态磁盘SSD和高速外设互联标准PCIE的机载固态存储,力图通过提供极优的I/O数据速率性能来解决I/O瓶颈。然而,SSD较贵,并且性能改善并不总是证明对于所有长期存储,部署SSD的投资都是正确的。因而,部署SSD,以通过利用SSD作为保存频繁使用的数据的高速缓存来提高服务器的性能。0005虚拟化解决方案的最新进展使数据中心能够在多个仿真机之间合并和共享硬件资源。即,单个服务器能够提供对客户端用户来说表现为专用服务器平台的事物中的共享资源。这些允许网络的虚拟化解决方案的普及对I/O性能提出了额外的压力。例如,易于预测一些。

14、应用将在一天的特定时间被使用和接收更多的I/O请求。然而,在许多客户端访问特定硬件平台的情况下,当多个客户端I/O请求在特定时刻到达服务器时,有时不能预测应用性能命中。通过将频繁访问的“热”数据从长期存储装置转移到与服务器耦接的SSD,虚拟化环境中的服务器方缓存能够显著加速应用性能。0006在虚拟化环境中实现服务器方缓存的挑战是如何在多个客户机之间共享在单个基于SSD/PCIE的高速缓存装置中可用的高速缓存存储区。通过将虚拟机的文件系统从一个存储系统转移到另一个存储系统,使虚拟机能够被迁移到新的硬件平台的虚拟化特征例如,VMOTION,和使支持到X86处理器指令集的64位扩展的机器上的平台虚拟。

15、化成为可能的服务器虚拟化要求服务器方缓存需要是动态的,以容纳迁入或迁出物理机的各个虚拟服务器。发明内容0007用于动态管理高速缓存存储区,以便改善对虚拟机的不断变化的需求的响应性的说明书CN104049906A2/8页6系统和方法的实施例以多个逻辑装置的形式,提供单个高速缓存装置或者一群高速缓存装置,并向虚拟机监视器暴露所述单个高速缓存装置或者一群高速缓存装置。核心缓存算法在客户虚拟机中执行。当在虚拟机监视器的管理下,添加新的虚拟机时,促使现有虚拟机放弃分配的供相应的现有虚拟机使用的高速缓存存储区的一部分。放弃的高速缓存被分配给新的虚拟机。类似地,如果虚拟机被关闭或者被迁移到新的主机系统,那么。

16、分配给该虚拟机的高速缓存容量在由虚拟机监视器管理的剩余虚拟机之间被重新分配。0008在例证实施例中,公开一种适合于动态管理由一群一个或多个基于闪存的装置和管理一组虚拟机的主计算机系统支持的高速缓存存储区的高速缓存资源管理系统。系统包括高速缓存资源管理器、虚拟机管理器、插件和驱动器。高速缓存资源管理器是在主计算机系统上运行的应用。高速缓存资源管理器配置有按照主计算系统支持的虚拟机的数目,分配可用的高速缓存存储容量的标识部分例如,区间的倍数的一个或多个策略。虚拟机管理器集成在运行于主计算机系统上的O/S的内核中。虚拟机管理器布置有高速缓存资源分配器和基于闪存的高速缓存装置驱动器。高速缓存资源分配器。

17、要求一群基于闪存的高速缓存装置,向每个虚拟机分配逻辑驱动器,并标识由一群基于闪存的装置提供的可用高速缓存存储容量的一部分。插件与虚拟基础架构客户端通信,向至少一个基于闪存的高速缓存装置提供虚拟机、虚拟机管理器和客户虚拟机角度的上下文。每个虚拟机可用的驱动器使能够实现与一群基于闪存的高速缓存装置的通信,好像该虚拟机在与专用存储装置通信似的。0009在另一个例证实施例中,公开一种管理由一群一个或多个基于闪存的装置和管理一组虚拟机的主计算机系统支持的高速缓存存储区的方法。所述方法包括以下步骤向虚拟机管理器提供高速缓存资源管理器应用,高速缓存资源管理器利用按照主计算系统支持的虚拟机的数目,分配可用的高。

18、速缓存存储容量的标识部分的倍数的一个或多个策略,向虚拟机管理器提供高速缓存资源分配器和基于闪存的高速缓存装置驱动器,高速缓存资源分配器要求一群基于闪存的高速缓存装置,向每个虚拟机分配逻辑驱动器,并标识由一群基于闪存的装置提供的可用高速缓存存储容量的一部分,向虚拟基础架构客户端提供插件,插件向至少一个基于闪存的高速缓存装置提供虚拟机、虚拟机管理器和客户上下文,并将驱动器暴露给每个虚拟机,以使虚拟机能够与一群基于闪存的高速缓存装置通信,好像虚拟机在与专用存储装置通信似的。0010在另一个例证实施例中,公开一种具有以非临时的形式保存在其上的可执行指令的计算机可读介质,当在主计算机的处理系统上执行时,。

19、所述可执行指令指示处理系统协调以下任务。指示高速缓存资源分配器要求耦接到主计算机的高速缓存装置。高速缓存资源管理器被启动,与高速缓存资源分配器通信,以确定可用的高速缓存装置,并扫描主计算机,以确定主计算机支持的数目。一旦标识出虚拟机的数目和可用的高速缓存装置,高速缓存资源管理器就指示高速缓存资源分配器将可用的高速缓存容量分成相同大小的区间,创建逻辑驱动器,并按照高速缓存分配策略,创建区间映射。处理系统还指示高速缓存资源管理器将每个逻辑驱动器映射到相应的虚拟机,并将区间映射与每个逻辑驱动器联系起来。之后,处理系统指示虚拟机将高速缓存装置添加到高速缓存群中。附图说明说明书CN104049906A3。

20、/8页70011图1是图解说明按照本发明的例证实施例的主计算机环境的示意图。0012图2是图解说明图1的高速缓存群内的高速缓存数据布局的方框图。0013图3是图1的动态高速缓存共享系统的体系结构的示意图。0014图4是单个高速缓存装置在一组虚拟机之间的分配的示意图。0015图5是图解说明准备图3的动态高速缓存共享系统的方法的流程图。0016图6是在引入新的虚拟机之后的区间映射的示意图。0017图7是图解说明利用图3的动态高速缓存共享系统,处理I/O操作的方法的流程图。0018图8A和8B包括图解说明动态管理高速缓存存储区的方法的流程图。具体实施方式0019当增加或者从虚拟机管理器的控制中除去虚。

21、拟机时,在客户虚拟机内的O/S内核层、驱动器层和应用层中实现的动态高速缓存共享系统将高速缓存存储区动态分配给虚拟机,以改善对主计算机上的虚拟机的不断变化的存储需求的响应性。以多个逻辑装置的形式提供单个高速缓存装置或者一群高速缓存装置,并暴露给资源分配器。核心缓存算法在客户虚拟机中执行。借助定义的接口,核心缓存算法起O/S不可知的可移植库作用。O/S栈中的过滤驱动器截取I/O请求,并通过高速缓存管理库路由I/O请求,以实现缓存功能。高速缓存管理库与过滤驱动器通信,以实现O/S特定动作和I/O路由。当在虚拟机管理器的管理下,增加新的虚拟机时,促使现有虚拟机放弃分配的供相应的现有虚拟机使用的高速缓存。

22、存储区的一部分。放弃的高速缓存被分配给新的虚拟机。类似地,如果虚拟机被关闭或者被迁移到新的主机系统,那么分配给该虚拟机的高速缓存容量在由虚拟机监视器管理的剩余的虚拟机之间被重新分配。0020如图1中图解所示,在按照本发明的主计算机环境100的说明性或例证实施例中,诸如FB高速缓存卡132和FB高速缓存卡134之类的基于闪存的高速缓存装置的高速缓存群130通过相应的高速外设接口PCIE总线耦接到主机系统110。FB高速缓存卡132和FB高速缓存卡134是独立标识的高速缓存装置,所述高速缓存装置被管理,并且其相应的高速缓存存储区作为高速缓存群130被共享。0021另外,主机系统110通过外设互连卡。

23、140耦接到一组本地存储装置145,并通过外设互连卡150,耦接到对应的一组远程数据存储装置155。本地存储装置145和远程数据存储装置155用作为复合数据存储区暴露于虚拟环境100的各组物理磁盘驱动器实现。外设互连卡140和/或外设互连卡150可利用将物理磁盘驱动器组合成单个逻辑单元的独立磁盘冗余阵列管理技术,来管理由各组物理磁盘驱动器提供的存储空间。取决于对应的数据存储区支持的应用所要求的可靠性和性能,用通常称为“RAID级”的几种方式之一,在物理驱动器之间分配数据。0022如图1中所示,主机系统110是诸如具有通过总线相互耦接的处理器112和存储器120的服务器计算机之类的计算机。操作中。

24、,处理器112在应用层128、文件系统126和动态高速缓存共享系统300中执行指令,以使主机系统110上的虚拟机的托管成为可能。处理器112通过高速缓存装置驱动器121与高速缓存群130通信。处理器112通过串行连接小型计算机系统接口/高级主计算机接口SAS/AHCI驱动器122和外设互连卡140,与本说明书CN104049906A4/8页8地卷145通信。处理器112还通过存储区域网/网络接口连接器SAN/NIC驱动器123和外设互连卡150,与远程卷155通信。0023按照本发明的主计算机环境100高度可缩放,并不局限于单个处理器112或单个存储器120。在备选实施例未示出中,主机系统11。

25、0可包括与处理器112相似或不相似的多个处理器。另外,主机系统110可包括与存储器120相似或不相似的附加存储元件。类似地,通过产生多个实例高速缓存装置驱动器121、SAS/ACHI驱动器122和SAN/NIC驱动器123,另外的存储装置可被并入主机系统110。0024操作中,动态高速缓存共享系统300动态管理由一群一个或多个基于闪存的装置例如,高速缓存群130和管理一组虚拟机的主机系统110支持的高速缓存存储区200。动态高速缓存共享系统300是在位于应用层128和文件系统126之下的共享装置驱动器层实现的。动态高速缓存共享系统300是与基于闪存的高速缓存装置例如,FB高速缓存卡132和FB。

26、高速缓存卡134和常规的数据存储系统例如,利用诸如因特网小型计算机系统接口ISCSI、以太网光纤通道FCOE、光纤通道FC、SAS和串行高级技术附件SATA之类的各种接口实现的数据存储系统结合的通用缓存层。动态高速缓存共享系统300在块设备层工作,对文件系统126和应用层128中的应用来说透明。动态高速缓存共享系统300标识和消耗存在于并入高速缓存群130中的FB高速缓存卡132和FB高速缓存卡134中的存储空间。另外,动态高速缓存共享系统300提供跨常规数据存储系统,比如本地卷145和远程卷155的缓存功能。利用相对于物理磁盘和高速缓存资源管理应用的定义明确的接口,核心缓存功能被实现成O/S。

27、不可知的可移植库。0025高速缓存元数据管理比如散列表、LRU、空闲列表、高速缓存分配单元管理数据结构对极大的高速缓存存储区的设计来说重要。由于固态磁盘SSD高速缓存可扩展到千兆字节,并且主机系统110上的每个I/O涉及查寻散列列和高速缓存分配单元数据结构,以决定高速缓存命中/缺失,因此必要的是应考虑到性能而优化高速缓存元数据管理,元数据足迹FOOTPRINT应小到足以保存在双倍数据速率DDR随机存取存储器RAM中,以便快速查寻。0026图2是图解说明图1的高速缓存群130内的高速缓存存储区200的方框图。高速缓存存储区200被分区或分割成至少两个独立的存储区。第一部分或分区包括高速缓存元数据。

28、210。第二或数据存储部分220包括一组高速缓存窗口222。如图2中进一步图解所示,高速缓存元数据210包括关于每个高速缓存窗口222的对应条目215。高速缓存存储区300的相当大量的存储容量被分配给在例证中被标识成高速缓存窗口的区域。每个高速缓存窗口被进一步细分成期望大小的多行的高速缓存块225。0027高速缓存存储区200的分配单元和高速缓存块大小相当大,从而降低元数据存储器需求。在例证实施例中,整个高速缓存数据存储部分200被分成多个大块的分配单元称为高速缓存窗口,每个1MB。高速缓存窗口大小是可调的参数,可根据主机系统配置和I/O工作负荷而调整。高速缓存窗口222是用于高速缓存管理的分。

29、配/解除分配单元。每个高速缓存窗口222由均为64KB多个高速缓存块组成。高速缓存块大小是可调的参数,可根据主机系统配置和I/O工作负荷而调整。整个高速缓存存储区200可被用于缓存多个块装置,每个高速缓存窗口222代表单个块装置上的空间的连续区域。0028散列表、空闲高速缓存列表、最近最少使用LRU列表和高速缓存替换算法在高说明书CN104049906A5/8页9速缓存窗口级工作。这显著减小了为表示高速缓存元数据210而需要的存储器的数量,因为每个高速缓存窗口222是相当大的分配单元。高速缓存元数据210被保存在用于读缓存的内存中,以便快速查寻。高速缓存替换以需求、阈值、寿命、或许其它因素为基。

30、础,并利用基于多优先权的LRU队列。基于优先权的LRU队列利用有效高速缓存行的数目和高速缓存窗口222被访问的次数来确定高速缓存窗口222的优先权。已满并且被访问最多的高速缓存窗口222被赋予最高的优先权,并被放置在最高优先权LRU队列的结尾。一旦整个高速缓存存储区200已满,优先权最低的高速缓存窗口222将首先被替换,从而保留最频繁访问的数据。智能热图生成算法缓存被反复访问的区域。本地卷145或远程卷155中的很少被访问的数据区不被放入高速缓存存储区200中。0029图3是图1的动态高速缓存共享系统300的体系结构的示意图。动态高速缓存共享系统300包括直接与主机系统硬件310通信的虚拟机管。

31、理器320,和在应用层128中工作以支持使在主机系统110上运行的虚拟环境的实时监视成为可能的各种功能的高速缓存资源管理器330。虚拟机管理器320是通常称为内核的O/S组件。虚拟机管理器320从虚拟服务器接收监视信息,并集中管理将高速缓存群130中的一个或多个基于闪存的高速缓存装置暴露给由主机系统硬件310及本地卷145和远程卷155提供的数据存储区支持的数十个或数百个虚拟机的机制。0030虚拟机管理器320能够支持多个O/S,每个O/S具有与虚拟机管理器320的应用层128接口。在图解所示的实施例中,O/SA例如,LINUX、UNIX由接口350支持,接口350包括用户层中的管理API35。

32、4,和通过SCSIHBA仿真器与虚拟机管理器320通信的内核层中的过滤驱动器和库352。类似地,O/SB例如,WINDOWSSERVER2008由接口360支持,接口360包括管理API364及过滤驱动器和库362。0031虚拟机管理器320布置有高速缓存资源分配器322、高速缓存装置驱动器324和CICOM提供器326,以管理和控制高速缓存存储区200,并与高速缓存资源管理器330通信。这些和其它组件在主机系统110上的客户虚拟机中执行,以提供I/O过滤、热数据分类和缓存功能。虚拟机管理器320利用SCSIHBA仿真器,向虚拟机模仿高速缓存装置。按照两种方式将装置暴露给虚拟机。在第一种方式中。

33、,原始磁盘访问模块328以原始装置的方式暴露数据存储装置。原始磁盘访问模块328装置直接向虚拟机暴露SCSI块装置。另一方面,借助集成在虚拟机管理器320中的虚拟机文件系统VMFS模块,通过VMFS向虚拟机暴露数据存储区。VMFS模块可保存和管理将虚拟装置逻辑块地址和物理磁盘或高速缓存存储区200联系起来的映射。VMFS还创建精简配置的逻辑存储区,以利用虚拟磁盘支持数据快照、备份和其它操作。配置VMFS的磁盘所在的物理装置被称为数据存储区。利用带有管理插件340的虚拟基础架构客户端VIC,这些虚拟磁盘可被动态转移到动态高速缓存共享系统300中的不同数据存储区物理磁盘,而不存在虚拟机的任何停机时。

34、间。0032高速缓存资源分配器322负责标识和要求动态高速缓存共享系统300中的所有高速缓存装置,并为该系统上的被配置成与动态高速缓存共享系统300的管理组件通信的每个虚拟机分配逻辑驱动器。高速缓存资源分配器322创建的逻辑驱动器作为RAW装置被映射到客户虚拟机。高速缓存资源分配器322将整个高速缓存容量分成相同大小的多个区间或块。区间大小被调整为等于高速缓存窗口大小。高速缓存存储容量被分配给在区间边界中的不同虚拟机。说明书CN104049906A6/8页100033高速缓存资源分配器322提供一组定义明确的API,以便为每个虚拟机创建和破坏逻辑驱动器。高速缓存资源分配器创建的每个逻辑驱动器具。

35、有动态高速缓存共享系统300支持的最大高速缓存容量的容量,然而整个高速缓存装置只有少数区间被映射到每个虚拟机。映射信息由高速缓存资源管理器330提供。根据在资源管理器330中定义的策略,和随着时间的推移的虚拟机的增加和去除,在动态高速缓存共享系统300的使用期限内,映射信息可动态变化。0034高速缓存资源分配器322通过确保对照当前的有效区间映射,证实对应于每个逻辑驱动器的I/O,强制实施由高速缓存资源管理器定义的区间映射。高速缓存资源分配器322根据区间映射,通过高速缓存装置驱动器324或其它装置未示出,将I/O请求重定向到物理装置。0035高速缓存资源管理器330是起主机系统110上的客户。

36、虚拟机作用的较小并且高效的软件模块。在虚拟机管理器320的控制下,高速缓存资源管理器324监视和管理在所有虚拟机之间的高速缓存装置利用和分配。在初始化期间,高速缓存资源管理器324连接到所有的虚拟机,分配高速缓存容量,并监视高速缓存利用。高速缓存资源管理器324还通过虚拟机管理器320的虚拟化服务API,向虚拟服务器注册和等待诸如虚拟机增加、除去、迁移之类的事件,并协调高速缓存存储容量在当前执行的虚拟机之间的重新分配。0036另外,高速缓存资源管理器324执行负责以受控的方式在虚拟机间分配高速缓存的策略引擎。策略引擎可包括在所有虚拟机之间平等共享高速缓存容量,向某些虚拟机保证最小的高速缓存容量。

37、,并在其它虚拟机之间重新分配剩余的高速缓存容量,在所有虚拟机之间保持热图,并根据每个虚拟机进行的I/O活动,根据当前工作负荷重新分配高速缓存的策略。0037当新的虚拟机被增加或迁移到物理机时,高速缓存资源管理器324检测该事件,并尝试通过进行以下步骤,在可用的虚拟机之间重新分配高速缓存。首先,高速缓存资源管理器324通过客户虚拟机中的管理API354、356,请求分配有高速缓存容量的当前运行的客户虚拟机放弃一定量的高速缓存。由于高速缓存分配的区间大小等于高速缓存窗口大小,因此客户虚拟机将从其LRU队列的顶部放弃最不热的数据,从而降低由减少的高速缓存分配引起的性能影响。一旦主机系统110上的所有。

38、虚拟机都放弃分配给它们的一定量的高速缓存,释放的高速缓存区间被分配给被增加或迁移的新的虚拟机。0038插件340被安排成与虚拟基础架构客户端VIC通信,以提供在虚拟环境中管理动态高速缓存共享系统解决方案的管理能力。插件340向就数据中心群集、主机和客户机而论的管理动作提供上下文。系统管理员将能够利用插件340来监视和管理动态高速缓存共享系统解决方案。插件340利用管理API354、364和高速缓存资源管理器330与虚拟机交互,以提供上述管理功能。0039虚拟机将根据在虚拟机中执行的O/S,使用过滤驱动器和库352、362。过滤驱动器和库352、362使高速缓存装置能够被配置以区间映射,并确保高。

39、速缓存装置只利用分配给它的区间。另外,过滤驱动器和库352、362使得能够在作为增加新的虚拟机、虚拟机离线或者被迁出主机系统110的结果的高速缓存重新分配期间,实现向虚拟机增加区间和从虚拟机除去区间。此外,过滤驱动器和库352、362确保暴露给虚拟机的原始装置被配置成高速缓存装置。说明书CN104049906A107/8页110040图4是借助平等的高速缓存分配管理策略,在一组虚拟机之间分配单个高速缓存装置的示意图。图4中图解所示的实施例是用于举例说明3个虚拟机如何平等共享基于闪存的高速缓存存储区200的高速缓存窗口222的小规模布置。0041在举例说明的实施例中,基于闪存的高速缓存存储区20。

40、0包括30个高速缓存窗口用块029表示,高速缓存窗口09与虚拟机1关联,并且对虚拟机1来说被标识成逻辑磁盘1,高速缓存窗口1019与虚拟机2关联,并且对虚拟机2来说被标识成逻辑磁盘2,高速缓存窗口2029与虚拟机3关联,并且对虚拟机3来说被标识成逻辑磁盘3。与高速缓存资源分配器322一起工作的原始磁盘访问模块328完成逻辑驱动器和高速缓存存储区200中的指定的一组连续块之间的上述关联或链接。0042图5是图解说明准备图3的动态高速缓存共享系统的方法500的流程图。方法500始于方框502,在方框502,高速缓存资源分配器标识并要求耦接到主机系统的基于闪存的高速缓存装置。在方框504,虚拟机管理。

41、器确定将由主机系统支持的虚拟机的数目。在方框506,在主计算机中运行的动态高速缓存共享系统指令高速缓存资源分配器将可用的高速缓存容量分成相等的区间或块。在方框508,进一步指令高速缓存资源分配器为将由主机系统支持的每个虚拟机创建逻辑驱动器。在方框510,指令高速缓存资源分配器按照高速缓存分配策略,创建区间映射。在方框512,资源管理器将逻辑驱动器作为相应的原始装置映射到每个虚拟机,还指令虚拟机依据区间映射,将高速缓存装置加入高速缓存群中。之后,如在方框514中所示,根据使用频度算法,缓存主机系统上的I/O操作。0043图6是在引入新的虚拟机之后的区间映射的示意图。图6中图解说明的实施例是举例说。

42、明当采用平等共享基于闪存的高速缓存存储区200的高速缓存窗口222的分配策略时,如何实现第4个虚拟机的增加的小规模布置。0044在举例说明的实施例中,基于闪存的高速缓存存储区200包括30个高速缓存窗口用块029表示,高速缓存窗口39与虚拟机1关联,并且对虚拟机1来说被标识成逻辑磁盘1,高速缓存窗口1319与虚拟机2关联,并且对虚拟机2来说被标识成逻辑磁盘2,高速缓存窗口2329与虚拟机3关联,并且对虚拟机3来说被标识成逻辑磁盘3。用带标记的块02、1012、2022表示的释放的高速缓存窗口作为逻辑磁盘4被重新分配给虚拟机4。在重新分配之后,虚拟机13分别被分配总共30个高速缓存窗口中的7个高。

43、速缓存窗口,而虚拟机4被分配剩余的9个高速缓存窗口。与高速缓存资源分配器322一起工作的原始磁盘访问模块328完成逻辑驱动器和高速缓存存储区200中的指定的各组块之间的上述关联或链接。0045图7是图解说明利用图3的动态高速缓存共享系统300,处理I/O操作的方法700的流程图。如图所示,方法700始于方框702,在方框702,动态高速缓存共享系统驱动器按照映射到高速缓存装置的区间,发出对于高速缓存装置的命中或高速缓存填充I/O操作。在方框704,资源分配器接收与映射到特定虚拟机的暴露的逻辑驱动器标识符相关的I/O操作。在方框706,资源分配器确认该I/O操作在区间映射中,被标识成属于指定虚拟。

44、机的区间的范围内。在方框708,高速缓存资源管理器通过适当的SCSI驱动器,将I/O重定向到物理装置。0046图8A和8B包括图解说明动态管理高速缓存存储区的方法800的流程图。方法800始于方框802,在方框802,动态高速缓存共享系统关于将在主机系统上支持的虚拟机的数说明书CN104049906A118/8页12目的变化,来监视虚拟化服务API。如在判定框804中所示,判定是在向主机支持的虚拟机的集合中添加虚拟机,还是在从所述集合中除去虚拟机。当在增加虚拟机时如用退出判定框804的标记“是”的流程控制箭头所示,处理继续进行方框806,在方框806,高速缓存资源分配器根据分配策略,确定待分配。

45、给新的虚拟机的高速缓存的量。否则,处理转到方框812,如用连接符B所示。在方框808,高速缓存资源管理器与每个现有的虚拟机通信,以释放适当量的高速缓存存储容量,以便重新分配给新的虚拟机。另外,更新区间映射,并传送给高速缓存资源分配器。在方框810,指令高速缓存资源分配器创建新的逻辑驱动器,并使之与最近释放的区间或高速缓存窗口相联系。另外,指令高速缓存资源分配器向该虚拟机暴露新生成的逻辑驱动器。之后,处理继续进行方框802的功能。0047当虚拟机被迁离主机系统时,处理继续进行方框812,在方框812,高速缓存资源分配器确定在从离开主机系统的虚拟机释放之后,变得可供重新分配给剩余虚拟机的高速缓存容。

46、量的量。在方框814,按照分配策略,资源管理器确定应使之可供剩余的虚拟机使用的释放的存储容量的量。应注意当分配策略如此规定时,重新分配给每个虚拟机的存储容量的量可能不必相等。在方框816,指令高速缓存资源分配器除去与旧的虚拟机相联系的逻辑驱动器,和更新修正的区间映射,并利用可用的高速缓存容量的相应部分重新配置剩余的虚拟机。0048应理解,图5、7、8A和8B的流程图只是用来例证或说明成为所述方法的基础的逻辑。本领域的技术人员会理解,在各个实施例中,可以按照任意各种方式设计或配置包括动态高速缓存处理系统或高速缓存控制器的数据处理系统,以实现所述方法。上面说明的步骤或动作可按任何适当的顺序或序列发。

47、生,包括并行或者彼此同步地发生。在一些实施例中,上面关于图5、7、8A和8B说明的步骤或动作可以与其它步骤或动作结合,或者被省略。尽管为了清楚起见,以图5、7、8A和8B中的流程图的形式进行了说明,不过基础的逻辑可被模块化,或者以任何适当的方式布置。本领域的技术人员能够容易地编程或配置适当的软件或适当的逻辑,比如以专用集成电路ASIC或者类似装置或者装置的组合的形式,以实现上面说明的方法。另外,应理解软件指令或类似逻辑与其中保存或包含这样的软件指令或类似逻辑,以便由处理器112执行的局部存储器120或其它存储器的组合包括“计算机可读介质”或“计算机程序产品”,如在专利词典中使用该术语一样。00。

48、49应注意为了说明本发明的原理和概念,参考一个或多个例证实施例,说明了本发明。本发明并不局限于这些实施例。鉴于这里提供的说明,本领域的技术人员会明白,可对这里说明的实施例作出许多变化,所有这样的变化都在权利要求书中限定的本发明的范围之内。说明书CN104049906A121/9页13图1说明书附图CN104049906A132/9页14图2说明书附图CN104049906A143/9页15图3说明书附图CN104049906A154/9页16图4说明书附图CN104049906A165/9页17图5说明书附图CN104049906A176/9页18图6说明书附图CN104049906A187/9页19图7说明书附图CN104049906A198/9页20图8A说明书附图CN104049906A209/9页21图8B说明书附图CN104049906A21。

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

当前位置:首页 > 物理 > 计算;推算;计数


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