用于数据储存系统的端点高速缓存

用于数据储存系统的端点高速缓存


2024年5月4日发(作者:powerpoint免费版)

(19)中华人民共和国国家知识产权局

(12)发明专利说明书

(21)申请号 CN2.3

(22)申请日 2011.11.15

(71)申请人 英特尔公司

地址 美国加利福尼亚

(72)发明人 R·萨卡里亚森 S·兰姆 L-J·费尔南德斯

(74)专利代理机构 永新专利商标代理有限公司

代理人 张晰

(51)

G06F12/00

G06F17/30

(10)申请公布号 CN 103282889 A

(43)申请公布日 2013.09.04

权利要求说明书 说明书 幅图

(54)发明名称

用于数据储存系统的端点高速缓存

(57)摘要

一种数据储存系统,包括:中央储

存系统,通过网络基础设施与所述中央储

存系统进行网络通信的至少一个端点计算

机系统,以及与所述计算机系统的CPU进

行通信的储存加速器;其中所述储存加速

器提供所述至少一个端点计算机能访问的

所述中央储存系统上的数据的端点高速缓

存。优选地,储存加速器位于从CPU到存

储加速器的数据吞吐量大于通过从CPU到

中央储存系统的连接的数据吞吐量的位

置。

法律状态

法律状态公告日

2022-11-01

法律状态信息

未缴年费专利权终止IPC(主分

类):G06F12/00专利

号:ZL2申请

日:20111115授权公告

日:20170222

法律状态

专利权的终止

权 利 要 求 说 明 书

1.一种数据储存系统,包括:中央储存系统,通过网络基础设施与所

述中央储存系统进行网络通信的至少一个端点计算机系统,以及与所述计

算机系统的CPU进行通信的储存加速器;其中所述储存加速器提供

少一个端点计算机能访问的所述中央储存系统上的数据

所述至

的端点高速缓存。

2.根据权利要求1所述的数据储存系统,其中所述储存加速器包括在

3.根据权利要求1或2中任一项所述的数据储存系统,其中所述储存

4.根据权利要求1-3中任一项所述的数据储存系统,其中所述中央储

存系统包括具有层1至N(N>=1)的分层数据结构,并且其中所述储存

速器包括用于所述中央储存器的高速缓存,层0。

加速器位于从所述CPU到所述存储加速器的数据吞吐量大于通过从所述

CPU到所述中央储存系统的连接的数据吞吐量的位置。

所述CPU上运行的至少一个软件模块,用于控制附在所述计算机系统的总

线或其它高速网络上的物理储存单元。

5.根据权利要求2所述的数据储存系统,其中所述物理储存单元包括

6.根据权利要求4所述的数据储存系统,其中所述储存加速器包括数

7.根据权利要求2-6中任一项所述的数据储存系统,还包括与所述储

8.根据权利要求7所述的数据储存系统,其中所述软件模块设置在所

述过滤器驱动器上,并且所述过滤器驱动器包括用于确定被读取或写入的

文件是否已被标记为用于端点高速缓存的

存加速器进行通信的过滤器驱动器。

据高速缓存结构。

固态存储器设备。

指令。

9.根据权利要求8所述的数据储存系统,其中用于确定被读取或写入

10.根据权利要求7所述的数据储存系统,其中所述过滤器驱动器还

的文件是否已被标记为用于端点高速缓存的所述指令包括用于访问文件元

数据的指令。

包括以下指令:用于确定所述计算机系统是否请求数据读取操作,如果是,

则确定被读取的数据是否存在于所述储存加速器上,以及(a)

履行从所述储存加速器的所述数据读取操作;(b)如

储存系统请求所述数据,并将所述数据的

如果是,则

果否,则向所述中央

副本提供给所述储存加速器。

11.根据权利要求7所述的数据储存系统,其中所述过滤器驱动器还

12.根据权利要求11所述的数据储存系统,其中所述过滤器驱动器还

13.根据权利要求11所述的数据储存系统,其中所述过滤器驱动器还

14.根据权利要求11或12中任一项所述的数据储存系统,其中所述

过滤器驱动器还包括用于维持所述中央储存系统和所述储存加速器之间的

数据一致性的指令。

包括用于使所述数据排队以写入到所述中央储存系统的指令。

包括用于将所述数据写入所述中央储存系统的指令。

包括以下指令:用于确定所述计算机系统是否请求数据写入操作,如果是,

则将所述数据写入所述储存加速器。

15.根据权利要求1-14中任一项所述的数据储存系统,其中所述计算

16.一种数据储存方法,包括:提供中央储存系统,提供通过网络基

机系统包括移动设备。

础设施与所述中央储存系统进行网络通信的至少一个端

及提供与所述计算机系统的CPU进行通信的储

速器提供所述至少一个端点计算机

端点高速缓存。

点计算机系统,以

存加速器;其中所述储存加

能访问的所述中央储存系统上的数据的

17.根据权利要求16所述的数据储存方法,其中所述储存加速器包括

18.根据权利要求16或17中任一项所述的数据储存方法,其中所述

储存加速器位于从所述CPU到所述存储加速器的数据吞吐量大于通过从所

述CPU到所述中央储存系统的连接的数据吞吐量的位置。

在所述CPU上运行的至少一个软件模块,用于控制附在所述计算机系统的

总线上的物理储存单元。

19.根据权利要求16-18中任一项所述的数据储存方法,其中所述中央

20.根据权利要求17所述的数据储存方法,其中所述物理储存单元包

21.根据权利要求19所述的数据储存方法,其中所述储存加速器包括

22.根据权利要求21所述的数据储存方法,其中所述端点计算机系统

23.根据权利要求22所述的数据储存方法,还包括通过访问文件元数

数据高速缓存结构。

括固态存储器设备。

储存系统包括具有层1至N(N>=1)的分层数据结构,并且其中所述储

加速器包括用于所述中央储存器的高速缓存,层0。

适用于执行数据读取或数据写入操作,并且所述方法还包括确定被读取或

写入的文件是否已被标记为用于端点高速缓存的步骤。

据信息来确定被读取或写入的文件是否已被标记为用于端点高速缓存。

24.根据权利要求22所述的数据储存方法,还包括确定所述计算机系

统是否请求数据读取操作,如果是,则确定被读取的数据是否存在于所述

储存加速器上,以及(a)如果是,则履行从所述储存加速器的所述

取操作;(b)如果否,则向所述中央储存系统请求所

据的副本提供给所述储存加速器。

数据读

述数据,并将所述数

25.根据权利要求22所述的数据储存方法,还包括确定所述计算机系

26.根据权利要求25所述的数据储存方法,还包括将所述数据写入所

27.根据权利要求25所述的数据储存方法,还包括使所述数据排队以

28.根据权利要求25或26中任一项所述的数据储存方法,还包括维

持所述中央储存系统和所述储存加速器之间的数据一致性。

写入到所述中央储存系统。

述中央储存系统。

统是否请求数据写入操作,如果是,则将所述数据写入所述储存加速器。

29.根据权利要求19所述的数据储存方法,还包括独立于或结合读取

30.一种数据储存方法,包括:确定从中央储存系统读取或写入所述

中央储存系统的文件是否已经被标记为用于端点计算机系统处储存加速器

处的高速缓存;确定是否请求数据读取操作,如果是,则确定被读取

据是否存在于所述储存加速器上,以及(a)如果是,则履行

速器的所述数据读取操作;(b)如果否,则向

数据,并将所述数据的副本提供给

系统是否请求数据写入操作,

器。

和写入I/O操作而按照应用所请求地透明地改变数据的有效缓冲策略的步

骤。

的数

从所述储存加

所述中央储存系统请求所述

所述储存加速器;以及确定所述计算机

如果是,则将所述数据写入到所述储存加速

31.根据权利要求30所述的数据储存方法,还包括通过访问文件元数

32.根据权利要求30或31中任一项所述的数据储存方法,还包括维

持所述中央储存系统和所述储存加速器之间的数据一致性。

据信息来确定被读取或写入的文件是否已被标记为用于端点高速缓存。

33.根据权利要求30或31中任一项所述的数据储存方法,还包括独

34.一种其上具有计算机可执行指令的计算机可读介质,所述指令用

35.一种数据储存方法,包括以下步骤:通过主动提供数据到操作系

统缓冲区或者从操作系统缓冲区移除数据,透明地修改应用所请求的用于

读取和/或写入I/O操作的数据的有效操作系统缓冲策略;其中提供

操作系统缓冲区高速缓存的所述步骤包括安排应用使用

缓存的所述数据。

于执行如权利要求31-34中任一项所述的方法。

立于或结合读取和写入I/O操作而按照应用所请求地透明地改变数据的有

效缓冲策略的步骤。

数据到

由操作系统所高速

36.根据权利要求35所述的数据储存方法,还包括以下步骤:将应用

所请求的用于读取和/或写入操作的数据高速缓存到高速缓存位置;按照所

述应用所请求用于读取和写入I/O操作而透明地修改数据的有效缓冲

其中改变有效缓冲策略的所述步骤包括在所述高速缓存

所请求的所述数据的至少一部分。

策略;

位置缓冲所述应用

37.根据权利要求36所述的数据储存方法,其中所述高速缓存位置包

括储存加速器,并且所述方法还包括:确定所述数据是否包括已经被标记

为用于在所述储存加速器处高速缓存的被读取或写入的文件;确定是

求数据读取操作,如果是,则确定被读取的数据是否存在于所

器处,以及(a)如果是,

(b)如果否,

提供给

否请

述储存加速

则履行从所述储存加速器的所述数据读取操作;

则向所述中央储存系统请求所述数据,并将所述数据的副本

所述储存加速器;以及确定所述计算机系统是否请求数据写入操作,

38.一种数据储存方法,包括以下步骤:通过按照需要为应用所请求

如果是,则将所述数据写入到所述储存加速器;其中所述读取和写入操作

的一个或两个包括在所述储存加速器上缓冲所述文件的操作。

的用于读取和/或写入I/O操作启用或禁用操作系统缓冲区高速缓存,透明

地修改所述应用所请求的用于读取和/或写入I/O操作的数据的有效

统缓冲策略;其中提供数据到操作系统缓冲区高速缓存

排应用使用由操作系统所高速缓存的所述数据。

操作系

的所述步骤包括安

39.根据权利要求38所述的数据储存方法,还包括以下步骤:将应用

所请求的用于读取和/或写入操作的数据高速缓存到高速缓存位置;按照所

述应用所请求用于读取和写入I/O操作而透明地修改数据的有效缓冲

其中改变有效缓冲策略的所述步骤包括在所述高速缓存

所请求的所述数据的至少一部分。

策略;

位置缓冲所述应用

40.根据权利要求39所述的数据储存方法,其中所述高速缓存位置包

括储存加速器,并且所述方法还包括:确定所述数据是否包括已经被标记

为用于在所述储存加速器处高速缓存的被读取或写入的文件;确定是

求数据读取操作,如果是,则确定被读取的数据是否存在于所

器处,以及(a)如果是,则履行从所述储存加速器的

(b)如果否,则向所述中央储存系统请

提供给所述储存加速器;以

如果是,则将

的一个

否请

述储存加速

所述数据读取操作;

求所述数据,并将所述数据的副本

及确定所述计算机系统是否请求数据写入操作,

所述数据写入到所述储存加速器;其中所述读取和写入操作

或两个包括在所述储存加速器上缓冲所述文件的操作。

说 明 书

本申请要求享有于2010年11月16日递交的、美国临时专利申请No.

技术领域

本申请涉及数据储存系统和方法的领域,更具体地,涉及提供用于数

背景技术

数据储存领域的一个重要问题是如何使得数据储存性能赶上计算机的

现有技术中关于如何改善数据储存性能的方案是使得储存器以及计算

机和储存器之间的连接更快。这些的例子包括各种方式:例如RAID分段

的聚合储存器,改善储存控制器的原始性能,如大部分RAID控制器一样

在储存控制器中、在储存装置中或在储存器前的网络服务器上添加高速缓

存,以及将储存活动分布到多个储存节点上。

处理性能以实现高效的系统。在计算机系统的数据储存领域的高效系统通

常指的是那些在正常工作量下以成比例的方式使用所有的主要部件的系

统。也就是说,计算机系统及其相关联的数据储存设备优选地均以其峰值

能力操作。本发明以及在此所描述的相关背景一般涉及例如各种类型的盘

的永久储存器,而不是嵌入到计算机内的短期储存器(通常称作随机存取

存储器)。当前,限制因素是储存性能,因为计算机系统及其相关联的中央

处理单元已经远远超过了这些数据储存系统的速度和效率能力。

据储存系统的高速缓存的系统和方法以改善数据输入和输出操作的效率和

速度。

61/414,191的优先权,该专利申请的内容以引用方式全部并入本文。

还存在一种强烈的趋势,即集中储存器以便于管理,这在用于组织和

在这种模型中,显然的是,为了储存系统性能与计算机的潜在性能匹

问题在于,即使很少的计算机所提供的潜在负载也比实际上经济网络

某些现有技术方案包括使用附加到储存设备上的储存加速器,例如那

些形成高速缓存或分层功能以使得中央存储器处的网络性能符合储存器自

身性能。其它试图解决该问题的方案已经结合Linux内核功能、基于若干块

的实施(例如bcache、fastcache、dmcache)、以及打算用于修改的文件系

的特定实施(已知为FS-cache)做出实验。还存在具有相关功能的称

BranchCache的WindowsTM设备,其被设计用于在广域

速缓存。

或中央储存系统所服务的要大得多。计算机的内部网络(即其总线)以比

外部网络计算机通常支持的速度和能力快或高一个或两个量级地操作。

配,计算机与储存系统之间的单个网络性能(更高的带宽和更低的延时)

必须增加,以使得储存系统性能和计算机性能之间能够平衡。

聚合存储器的SAN(储存区域网)和NAS(网络附属储存)系统的出现中

最佳例示出。涉及这些方案的基础设施模型(更快且更集中的储存器)可

被描述为在由网络连接到储存系统的计算机上运行的大量应用的流程图。

网链路上进行只读高

因此,本发明的目的是提供用于改善数据储存系统的效率的新颖系统

发明内容

和方法。

根据本发明的一个实施例,提供了一种数据储存系统,包括:中央储

根据该实施例的一个方案,所述储存加速器包括在所述CPU上运行的

根据该实施例的另一方案,所述储存加速器位于从所述CPU到所述存

根据该实施例的另一方案,所述中央储存系统包括具有层1至N

根据该实施例的另一方案,所述物理储存单元包括固态存储器设备。

根据该实施例的另一方案,所述储存加速器包括数据高速缓存结构。

根据该实施例的另一方案,设置与所述储存加速器进行通信的过滤器

根据该实施例的另一方案,所述软件模块设置在所述过滤器驱动器上,

并且所述过滤器驱动器包括用于确定被读取或写入的文件是否已被标记为

用于端点高速缓存的指令。

驱动器。

(N>=1)的分层数据结构,并且其中所述储存加速器包括用于所述中央

存器的高速缓存,层0。

储加速器的数据吞吐量大于通过从所述CPU所述中央储存系统的连接的数

据吞吐量的位置。

至少一个软件模块,用于控制附在所述计算机系统的总线上的物理储存单

元。

存系统,通过网络基础设施与中央储存系统进行网络通信的至少一个端点

计算机系统,以及与计算机系统的CPU进行通信的储存加速器;其中储存

加速器提供至少一个端点计算机能访问的中央储存系统上的数据的端点高

速缓存。

根据该实施例的另一方案,用于确定被读取或写入的文件是否已被标

根据该实施例的另一方案,所述过滤器驱动器还包括用于确定所述计

根据该实施例的另一方案,所述过滤器驱动器还包括以下指令:用于

根据该实施例的另一方案,所述过滤器驱动器还包括用于将所述数据

根据该实施例的另一方案,所述过滤器驱动器还包括用于使所述数据

根据该实施例的另一方案,所述过滤器驱动器还包括用于维持所述中

根据该实施例的另一方案,所述计算机系统包括移动设备。

根据本发明的另一实施例,公开了一种数据储存方法,包括以下步骤:

提供中央储存系统,提供通过网络基础设施与所述中央储存系统进行网络

通信的至少一个端点计算机系统,以及提供与所述计算机系统的CPU进行

央储存系统和所述储存加速器之间的数据一致性的指令。

排队以写入到所述中央储存系统的指令。

写入所述中央储存系统的指令。

确定所述计算机系统是否请求数据写入操作,如果是,则将所述数据写入

所述储存加速器。

算机系统是否请求数据读取操作的指令,如果是,则确定被读取的数据是

否存在于所述储存加速器上,以及(a)如果是,则履行从所述储存加速器

的所述数据读取操作;(b)如果否,则向所述中央储存系统请求所述数据,

并将所述数据的副本提供给所述储存加速器。

记为用于端点高速缓存的所述指令包括用于访问文件元数据的指令。

通信的储存加速器;其中所述储存加速器提供所述至少一个端点计算机能

访问的所述中央储存系统上的数据的端点高速缓存。

根据该实施例的一个方案,所述储存加速器包括在所述CPU上运行的

根据该实施例的另一方案,所述储存加速器位于从所述CPU到所述存

根据该实施例的另一方案,所述中央储存系统包括具有层1至N

根据该实施例的另一方案,所述物理储存单元包括固态存储器设备。

根据该实施例的另一方案,所述储存加速器包括数据高速缓存结构。

根据该实施例的另一方案,所述端点计算机系统适用于执行数据读取

根据该实施例的另一方案,所述方法还包括通过访问文件元数据信息

根据该实施例的另一方案,所述方法还包括确定所述计算机系统是否

请求数据读取操作,如果是,则确定被读取的数据是否存在于所述储存加

来确定被读取或写入的文件是否已被标记为用于端点高速缓存。

或数据写入操作,并且所述方法还包括确定被读取或写入的文件是否已被

标记为用于端点高速缓存的步骤。

(N>=1)的分层数据结构,并且其中所述储存加速器包括用于所述中央

存器的高速缓存,层0。

储加速器的数据吞吐量大于通过从所述CPU到所述中央储存系统的连接的

数据吞吐量的位置。

至少一个软件模块,用于控制附在所述计算机系统的总线上的物理储存单

元。

速器上,以及(a)如果是,则履行从所述储存加速器的所述数据读取操作;

(b)如果否,则向所述中央储存系统请求所述数据,并将所述数据

提供给所述储存加速器。 的副本

根据该实施例的另一方案,所述方法还包括确定所述计算机系统是否

根据该实施例的另一方案,所述方法还包括将所述数据写入所述中央

根据该实施例的另一方案,所述方法还包括使所述数据排队以写入到

根据该实施例的另一方案,所述方法还包括维持所述中央储存系统和

根据该实施例的另一方案,所述写入步骤包括写入未缓存的数据。

根据该实施例的另一方案,所述数据读取操作是未缓存的。

根据本发明的又一实施例,公开一种数据储存方法,包括以下步骤:

根据本发明的另一实施例,提供了一种数据储存方法,其包括以下步

通过主动提供数据到操作系统缓冲区或者从操作系统缓冲区移除数据,透

明地修改应用所请求的用于读取和/或写入I/O操作的数据的有效操作系统

缓冲策略;按照需要为所述I/O操作启用或禁用操作系统缓冲区高速缓存;

其中提供数据到操作系统缓冲区高速缓存的步骤包括安排应用使用由操作

系统所高速缓存的所述数据。

所述储存加速器之间的数据一致性。

所述中央储存系统。

储存系统。

请求数据写入操作,如果是,则将所述数据写入所述储存加速器。

骤:将应用所请求的用于读取和/或写入操作的数据高速缓存到高速缓存位

置;按照所述应用所请求用于读取和写入I/O操作透明地修改数据的有效缓

冲策略;其中改变有效缓冲策略的所述步骤包括在所述高速缓存位置缓冲

所述应用所请求的所述数据的至少一部分。

根据该实施例的一个方案,上述高速缓存位置是如本文所描述的端点

高速缓存。

附图说明

现在将参照附图,仅通过例子的方式描述实施例,其中:

图1示出了访问网络上的中央储存器的计算机系统的一般现有技术的

图2示意性示出了图1的系统的数据传输率。

图3示出了应用到图1的系统上的现有技术的储存加速器的布置。

图4示意性示出根据本发明的系统的一个实施例。

图5示出了图3的系统的网络所承载的负载。

图6示出了图4的系统的网络所承载的负载。

图7示意性示出了根据本发明的一般端点计算机系统。

图8为示出了根据本发明的方法的一个实施例的流程图。

布置。

具体实施方式

如图1所示,本发明提供了改善的通用计算基础设施由通过网络链路

102将(一个或多个)计算机101连接到中央或公用储存器

算机101优选为图7所示的通用计算机系统20。计算

理和逻辑部件,包括中央处理单元(“CPU”)24、

28、输入/输出(“I/O”)接口32、网络接

使得CPU24与其它部件通信的局部总线

软件系统。RAM28为CPU24提供相对响

允许从一个或多个设备(例如,键盘、鼠

器和/或扬声器的输出设备输出信息。网

1的储存设备103)进行通信。非

在计算机系统20的操作期间,程

回并置于RAM28中以便于执行。

103而组成。计

机系统20具有多个物

随机存取存储器(“RAM”)

口36、非易失性储存器40,以及

44。CPU24执行操作系统和多个

应的易失性储存器。I/O接口32

标等)接收输入,并向例如显示

络接口36允许与其它系统(包括图

易失性储存器40储存操作系统和程序。

序和数据可以从非易失性储存器40处取

现在参照图2,示出了网络209中计算机系统201与中央储存器210

示意图。本文的计算机系统包括网络接口202,其经由通信链路203

CPU204进行通信联系,而CPU204经由通信链路205与磁盘接口进行

通信的

通信联系,该磁盘接口经由链路208与局域计算机储存磁盘进行通信。所

述通信链路203、205和207在本领域中通常已知为计算机系统203的各个

元件之间的通信器件。如图所示,各个元件之间的数据传输率可以变化,

例如在网络接口202和CPU204之间为每秒32至128千兆比特,在CPU204

和磁盘接口206之间为每秒32至128千兆比特,以及在磁盘接口206和磁

盘208之间为每秒3至6千兆比特。储存设备210自身可以是计算机系统,

包括分别经由通信链路212、214、216连接的相应的操作网络接口211、

213、磁盘接口215和磁盘217。网络209存在于计算机系统201和

存器210之间。当前,网络通信由于物理和软件的约束而限制

CPU

中央储

在每秒0.1至

中,存在性能

10千兆比特。明显的是,在计算机系统201和储存系统210

能力的分级,靠近CPU处开始为非常高的性能,随着

能相对较低。然而,通常最低连接是在计算机和

进一步远离CPU而性

储存系统之间的网络连接。

在多计算机网络中,由于在不同的计算机和中央储存器之间共享支持

多数据流的基础设施,因而也存在性能分级。在该环境下,且出于应用的

目的,将“端点”定义为作为来自中央储存器的数据的最终接受者的每个

计算机系统。在从中央储存器传输数据到端点计算机系统中给定网络基础

设施的内在限制,本发明涉及改善到这些端点的

数据传输。

图3示出了一个现有技术的方案,通过在数据进入网络302以传输到

系统301之前,在网络302和储存器304之间放置加速器303以及

存器304处的网络性能以匹配储存器304的性能,所述方案试图改

传输的效率。当加速器303是高速缓存或分层模块的类型时,其可

作层0储存层,其中储存系统自身包括已有的储存层,层1、层2…

如图4所示,根据本发明,加速器402上的层0储存层从相对于计算

401的网络的远端移动到计算机系统401本地,其中计算机系统401

CPU和加速器402上的层0储存器之间的性能远高于图3的现有技术的

计算机

布置储

善数据

以被称

层n。

机系统

方案。因此,由于层0处于储存流的端点处而不是在计算机和实际保存数

据的层1(或者层N)之间的中间,所以使用术语“端点高速缓存”。此外,

在本公开中,因为高速缓存是分层的具体子集,在分层中将数据移动到下

一层的决策是“尽可能快”而不是例如“如果需要”的其它分层策略,并

且特定层N可以被认为是在所述层的数据将另外(或者额外地,取决于分

层的类型)存在于某一层M(M>N)的高速缓存,所以通常可互换地使

术语“高速缓存”和“分层”。

通过查看以下描述将变得清晰,在本文描述的本发明不同于现有技术

的方案,因为:(a)本发明基于文件存取,并且因为可以存取上下文,因

而支持细粒度匹配策略以允许端点高速缓存选择性地高速缓存数据,并因

此比较少区别的其它方案更高效;(b)本发明基于文件存取,因此能够选

择是否在所有都相同的数据块中操作(如基于块的系统那样),或者根据文

件内容变化(上下文有关),或者根据应用请求变化,或者以依赖上

多于一种方式工作;(c)本发明对用于现有文件系统的终端

明的;以及(d)本发明是不可知的并且不需要对文件

便操作。

下文的

用户是完全透

系统实施进行修改以

具体地,根据本发明的端点高速缓存不同于已知的大部分计算机系统

保持在RAM内的“缓冲区高速缓存”,因为(a)独立于CPU且与缓冲区

高速缓存的易失性特征相反,本发明的端点高速缓存中的数据被保持在局

域层0级别,直到高速缓存维护过程清理(清除新写入到层1的数据)且

移除所述数据;以及(b)与当前缓冲区高速缓

法(例如,预读取或者分支预测)相反地,

占式高速缓存或基于预取的内部或外部知

存采用的基于统计地预测方

端点高速缓存可以使用先见(抢

识)。

根据本发明的端点高速缓存不同于现有技术的高速缓存网络文件系

为(a)本发明对于远程储存系统是不可知的(例如,不是这样的Sun

统,因

MicrosystemsTM CacheFS);(b)本发明对于远程储存系统所

不可知的(例如,不是这样的已知为Coda和

本发明对于计算机通常是如何使用储存器

xCachefs的许多系统独立于远程储存系统

有方式安装远程储存器而不是透明的)。

使用的协议是

Intermezzo的方案);以及(c)

是透明的(例如TsumuFS或

的类型,但是因为它们需要以专

现在将描述实施本发明的各种非限制性的例子。虽然以下的描述是关

为了实现端点高速缓存,将端点处的计算机系统编程为透明地访问局

域层0,而远程储存器不知道任何改变。由于层0是高速缓存,其本质是计

算机和远程储存器(朝向层1)之间的网络的性能需求降低,因为优先地从

局域层0服务时间相关且预取的I/O,且因此与计算机直接访问远程层0或

层1相比,对于层0高速缓存更新层1储存层所需的网络流量(以及随后

的网络性能,对于每个端点是单独的而对于网络基础设施是聚合的)更少。

也就是,通过端点加速器实施的层0高速缓存承担一些量的网络负载,

能够与端点计算机系统的CPU进行通信。该区别示出在图5和图6

5示出了现有技术的系统,其中计算机系统501具有提供的负

上由网络502承载并如负载L一样在中央储存器503处被服务。

了本发明的实施例,其中计算机系统601具有提供的负载L。

上实施的层0高速缓存承担一部分负载HR,其中HR大于0

此,网络603具有L(1-HR)的负载,其也是中央储存器604

类似地,中央储存器604上的层1储存层的性能要求降

须服务通过高速缓存呈现的平均负载要求,而不是在缺

的情况下由计算机生成的直

于与网络通信的单个计算机上的单个端点高速缓存提供的,但是本发明同

样可应用到访问网络的任意数量的计算机。此外,可以预期的是,多于一

个的计算机系统可以形成单个端点,因此,可以为布置为整个系统中的端

点的一个或多个计算机提供一个端点高速缓存。

中。图

载L,其总体

图6示出

在加速器602

且小于1。因

服务的负载。

低,因为其现在必

少任何层0储存层

接峰值负载要求。

因此,本发明提供导致计算基础设施的经济效益的技术方案。

在WindowTM操作系统上实现本发明时,结合图8,本发明的一个实

施 包括创建过滤器驱动器并将该过滤器驱动器放置于过滤器堆栈中,其

滤器驱动器处于所有的文件系统输入/输出操作的通信路径中。对过

动器进行编程,否则将其适用于执行根据本发明的该实施的方

法包括确定是否将文件标记用于端点高速缓存的步骤805。这

文件的上下文与配置的上下文模式和策略匹配以确定文

标记为用于端点高速缓存的报头或其它描述符信息来完

文件均被打开时执行。在步骤810,如果文件描述符指

端点高速缓存,且过滤器驱动器看到读取操作,

看其是否已经存在于加速器上的层0高速缓存中,

缓存履行读取。如果在层0高速缓存没有发现被

(即,中央储存器)取得数据来履行读取。层0

据的副本。可替换地,如果过滤器驱动器看到写

用待写入的新数据更新层0高速缓存,并且所述

存器的源位置处。可替换地,延迟写入操作也是

存被立即写入新数据,且动作排队以将数据写入

络上的负载进行监视和控制,使得在网络上传输

数据给予优先级。

中过

滤器驱

法,所述方

可以通过使得

件是否包含指示其

成。这优选在每个

示该文件被标记用于

则检查被请求的数据以查

如果是,则从层0高速

请求的数据,则从源位置

高速缓存还接收并存储数

入操作,则在步骤815处,

数据还立即被写入中央储

可以的,其中层0高速缓

中央储存器。这允许对网

数据时能对较高优先级的

在步骤820处,根据需要拦截其它操作,以维持数据的一致性。例如,

在步骤830处,提供高速缓存维持函数或者模块以在层0高速缓存填

必要时释放层0高速缓存的空间。在释放空间的过程期间从层0高

清除数据可以基于编程为高速缓存维持函数的策略。例如,可以依

发明的特定实现来确定最老的数据、最少访问的数据、最低优先级

满时在

速缓存

赖于本

的数据

改变源文件系统应该映射到层0高速缓存中的相应改变上,或者如果高速

缓存以文件名为关键字,则在该步骤可以进行适当的重命名操作。其它例

子包括在该步骤拦截和处理的文件删除操作、文件属性改变等。

(例如,用户文件和定义的系统文件)或者任何其它数据策略中的

个。

在步骤840处,利用合作过程,在操作系统内核的内部或外部,提供

访问机制以能够适当地访问源文件。对于远程源文件,在内核外部

能力。如上所述,源文件可以存在于层0高速缓存或中央储存器上,

过这个机制,CPU总是将标记为用于端点高速缓存的文件的通信过

经过层0高速缓存。

上述本发明的实施使用已知的高速缓存技术和过程,但是以新颖且非

任意一

源文件

提供该

但是通

程路由

显而易见的方式应用它们。例如,没有详细描述CPU与加速器和层0储存

器进行通信的方法和过程。此外,虽然这些实现本发明的过程和高速缓存

技术可能是已知的,但是显著减少网络上的负载、层0高速缓存对端点

和网络而言是透明的、对中央储存器和/或端点计算机系统本身是完

知的这些结果是新颖的。根据本发明的元件布置产生整体上更

机/网络/储存系统。

CPU

全不可

高效的计算

在步骤805和810处的配置的上下文模式可以是基础的,且将所有数

缓存到层0高速缓存中;或者可以是复杂且具体的,由此仅由例如

模式、活跃用户、活跃应用或其它相关策略识别出的某些类型的文

速缓存到层0高速缓存中。当本发明活跃时,这种上下文模式用于

据流,允许更好地控制以及因此更有效地使用层0高速缓存。此外,

速缓存在本领域内通常是已知的,如同图2所示的存储加速器的使

是申请人认为如在本文中描述的执行层0高速缓存的功能加速器的

新颖的、非显而易见的,并且产生如本文所表达的本领域先前未知

意料的结果。

尤其在端点高速缓存与局域(对于端点)快速储存器进行通信时,构

据高速

文件名

件被高

控制数

虽然高

用,但

使用是

的出人

思出实施本发明的其它方式或者其各种步骤。例如,文件系统扩展例如描

述在Zachariassen等人于2011年8月24日提交的共同未决的申请号为

PCT/CA2011/050514的PCT国际申请,其内容通过引用合并于此。这种文

件系统扩展机制能够将局域储存器上的文件系统扩展为能够在层0高速缓

存的储存介质上放置数据,而独立于在局域储存器上使用的特定文件系统。

因此,本发明的加速器上的层0高速缓存可能对计算机系统呈现为局

件系统的一部分,在所述计算机系统上在层0高速缓存和局域储存器

的操作和通信将是完全透明的。

域文

之间

还可以构思,可以对现有的文件系统进行修改以本质上提供层0高速

功能。这能够以类似于结合过滤器驱动器在以上描述的方式完成,

以通过扩展文件系统功能而无需过滤器驱动器实现。应该注意的是,

在延时最小化是非常重要的环境中,可以构思出的是,以最小化操作

缓存的

但是可

当文件系统功能扩展到实施本发明时,层0高速缓存明显地不同于典型的

局域计算机高速缓存而操作,其中被高速缓存的数据是在网络和中央储存

单元的远侧被扩展用于读/写操作的数据。该操作不同于局域计算机高速缓

存,其通常用于高速缓存打算由计算机系统的RAM较快速访问的数据。在

一个变型中,可以提供堆栈式文件系统,该系统使用用于在现有文件系统

的顶部对层0高速缓存功能分层的操作系统设施。还可以使用在现有文件

系统的顶部非合作堆叠的独立式文件系统。

系统内核的必需使用这样的方式实施本发明。这可以通过如下实现:以储

存器加速功能与每个应用相关联且一部分在运行应用的硬件(或虚拟硬件)

上实施的方式,提供一部分储存器加速功能。为了完成这个,由特定

执行的I/O操作必须在进入内核之前被拦截,并且当文件或I/O被标

于端点高速缓存时,将I/O操作重定向到直接通过内核或在内

模块,例如:直接块访问(通过),或者存储器映射访

问方法要求基础的储存器加速设备提供协议API

应用

记为用

核周围的软件

问(周围)。这些访

(与编程API相反),如本 文所述的,该协议API与和提供本发明

个应用相关联的部分合作。这对于应用而

的方式提供用于在用户级别拦截I/O操作

应用所使用的动态加载系统调用库

本发明所需要的拦截、策略和合作

口包围内核的实施将避免在上下文

滤器和用于每个I/O操作的设备驱

减轻延时的影响。

的满的层0和储存器加速功能的每

言仍是透明的,因为能够以透明

的方法。一个这种方法涉及将每个

重定向(通过附加的内核帮助)到实施

功能的版本。构思为使用存储器映射接

切换、内核IO管理、文件系统处理、过

动器堆栈所涉及的所有资源和时间,由此

还构思有可以修改操作系统缓冲区高速缓存机制,以使用除了可以提

在一个变型中,可以对远程储存驱动器(例如NFS或CIFS)或者远程

块设备驱动器进行修改,以应用如上所述将数据路由通过层0高速缓存的

策略。通过查看本文的描述,这种修改对于本领

见的。

供层0高速缓存的可用RAM外的局域快速储存器。

域技术人员而言是显而易

还可以对逻辑卷驱动器进行创建或修改,以根据真实块设备创建虚拟

可替换地,如果储存协议允许这种引用,则远程中央储存系统还可以

维持控制或关于局域层0高速缓存储存器的信息。在该实施例中,可以同

中央储存器一起持有层0高速缓存的一些控制,但是,优选地在端点CPU

处维持如上所述的用于维持策略或上下文规则的责任。

块设备来提供本文所描述的层0高速缓存。已经建成为文件系统的设施可

以用于通过在计算机系统本地高速缓存文件而进行补充。还可以使用文件

系统或过滤器驱动器,其与块储存器驱动器合作以向基于块的高速缓存系

统提供上下文信息。

申请人不知道任何现有技术对现有文件透明地提供了端点高速缓存功

能。例如NFS或CIFS的普通远程文件系统不使用中央储存器的局域永久

性高速缓存,也不包括实施本文描述的本发明的能力或建议。一些文件系

统使用永久局域高速缓存(例如,DropboxTM)接口到云储存

存储),然而,与对现有文件透明地工作相反,它们呈

或者特殊同步目录。通过具有远程储存器层1至

存器的层0高速缓存,在距远程储存器自

行通信,排他地提供对现有文件透明地工

服务(或对象

现为独立的文件系统

N(N>=1)的远程中央储

身的网络的下游且与端点CPU进

作的能力。

虽然优选的实施例是在Windows操作系统的特定环境中,但是相同的

在本发明的一些变型中,可以共享远程储存系统,如可以是利用远程

文件系统协议但是典型地不具有块设备。在该变型中,端点高速缓存功能

适用于确保多个独立客户端之间的高速缓存的一致性。远程文件系统协议

一般提供用于需要确保其客户端之间的一致性的情形。情况是这样的:远

程中央储存器是由多个远程储存设备组成的;或者可替换地,多个端点计

算机系统向远程储存器写入数据,其中该数据本身在两个或更多个端点计

算机系统之间共享。通常使用在数据上的租赁的概念或可撤销的锁来确保

这种一致性,并且端点高速缓存加速器或者层0

述协议消息通过适当地清除(即,完全清除或写

排斥访问以维持高速缓存语义。在优选的实施例

件的访问的过程这种撤销,从而可以采取合适的

通用方法还可以应用到包括例如Linux、其它Unices的其它操作系统环境

的其它环境中,自然也可以应用到可能使传统文件系统暴露给终端用户的

移动系统的环境中。

必须与协议消息合作,所

入)数据来撤销对数据的

中,安排告知提供对源文

动作。

当远程储存系统不可用或者与网络断开连接时,产生本发明的一个额

在本发明的一个变型中,应用所使用的有效I/O缓冲策略可以透明地改

通过独立控制每个I/O类型的缓冲,可以将本发明应用于该场景。例如,

对读取进行缓冲而对写入不进行缓冲。作为一个例子,以非缓冲的I/O操作

正常操作的数据库事实上可以执行缓冲的读取和非缓冲的写入,且对操作

语义没有改变。为了控制请求I/O的应用外部的且对该应用透明的I/O操作

的缓冲,一个简单的方法是控制层0高速缓存储存器中数据的缓冲,该层0

变。现代操作系统上的应用一般能在缓冲的I/O和非缓冲的I/O之间进行选

择。缓冲的I/O表示应用所请求的I/O操作经过操作系统内核中的高速缓存

管理器,该管理器对于读取将查询内核缓冲区高速缓存内被请求的数据,

而对于写入将把提供的数据写入到内核缓冲区高速缓存,并且所述内核负

责更新I/O的真实目标(主储存器上的某处)。非缓冲的I/O表示应用所请

求的I/O操作没有如上所述经过高速缓存管理器,而是实时地从主储存器上

的I/O目标读取数据或者向所述目标分别写入数据。对此存在多种变型以确

保在成功报告返回应用之前数据实际被写入到表示数据的物理位置,而不

是仅排队等待写入到物理位置。在该变型中,本发明包括:通过主动提供

数据到操作系统缓冲区或者从缓冲区移除数据,修改应用所请求的用于读

取和/或写入I/O操作的数据的有效操作系统缓冲策略;按照需要为所述I/O

操作启用或禁用操作系统缓冲区高速缓存;其中所述提供数据到操作系统

缓冲区高速缓存的步骤包括安排应用使用由操作系统所高速缓存的所述数

据。

外的优点。在这种情况下,可以实施可配置的策略控制以控制端点高速缓

存的行为。例如,默认行为可以是如果可能则从层0高速缓存履行读取操

作,否则失败;同时在层0高速缓存上进行写入操作并且排队等待稍后写

入到中央储存器。在从另一系统的同时冲突写入的情况下可能要求随后的

冲突解决方案。

高速缓存储存器完全处于本发明的储存加速器功

拦截由外部策略设置的如此表现的高速缓存模块

人于2011年8月24日提交的共同未决的申请号

PCT国际申请所述,该申请的内容通过引用合

截高速缓存模块因而能够以如下三种方式

且适当改变特定种类的缓冲的应用拦截文

在层0高速缓存上的数据的缓冲;和/或

理器的查询和请求。这样,端点高

I/O的多级别高速缓存,在没有本

能的控制下。这可以通过

来完成,如Zachariassen等

为PCT/CA2011/050514的

并于此。上述PCT申请的拦

控制应用高速缓存:通过从请求

件打开参数;和/或通过改变保持

通过拦截用于操作系统高速缓存管

速缓存能在端点计算机系统中提供用于

发明的情况下将遍历网络到远程储存器。

上述实施例意为本发明的例子,并且可通过本领域技术人员从中产生

变型和修改,而不背离由所附权利要求限定的本发明的范围。


发布者:admin,转转请注明出处:http://www.yc00.com/xitong/1714792871a2516764.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信