CN103282889B - 用于数据储存系统的端点高速缓存 - Google Patents

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

Info

Publication number
CN103282889B
CN103282889B CN201180055207.3A CN201180055207A CN103282889B CN 103282889 B CN103282889 B CN 103282889B CN 201180055207 A CN201180055207 A CN 201180055207A CN 103282889 B CN103282889 B CN 103282889B
Authority
CN
China
Prior art keywords
data
end points
accelerator
data storage
central repository
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201180055207.3A
Other languages
English (en)
Other versions
CN103282889A (zh
Inventor
R·萨卡里亚森
S·兰姆
L-J·费尔南德斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN103282889A publication Critical patent/CN103282889A/zh
Application granted granted Critical
Publication of CN103282889B publication Critical patent/CN103282889B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/172Caching, prefetching or hoarding of files

Abstract

一种数据储存系统,包括:中央储存系统,通过网络基础设施与所述中央储存系统进行网络通信的至少一个端点计算机系统,以及与所述计算机系统的CPU进行通信的储存加速器;其中所述储存加速器提供所述至少一个端点计算机能访问的所述中央储存系统上的数据的端点高速缓存。优选地,储存加速器位于从CPU到存储加速器的数据吞吐量大于通过从CPU到中央储存系统的连接的数据吞吐量的位置。

Description

用于数据储存系统的端点高速缓存
本申请要求享有于2010年11月16日递交的、美国临时专利申请No.61/414,191的优先权,该专利申请的内容以引用方式全部并入本文。
技术领域
本申请涉及数据储存系统和方法的领域,更具体地,涉及提供用于数据储存系统的高速缓存的系统和方法以改善数据输入和输出操作的效率和速度。
背景技术
数据储存领域的一个重要问题是如何使得数据储存性能赶上计算机的处理性能以实现高效的系统。在计算机系统的数据储存领域的高效系统通常指的是那些在正常工作量下以成比例的方式使用所有的主要部件的系统。也就是说,计算机系统及其相关联的数据储存设备优选地均以其峰值能力操作。本发明以及在此所描述的相关背景一般涉及例如各种类型的盘的永久储存器,而不是嵌入到计算机内的短期储存器(通常称作随机存取存储器)。当前,限制因素是储存性能,因为计算机系统及其相关联的中央处理单元已经远远超过了这些数据储存系统的速度和效率能力。
现有技术中关于如何改善数据储存性能的方案是使得储存器以及计算机和储存器之间的连接更快。这些的例子包括各种方式:例如RAID分段的聚合储存器,改善储存控制器的原始性能,如大部分RAID控制器一样在储存控制器中、在储存装置中或在储存器前的网络服务器上添加高速缓存,以及将储存活动分布到多个储存节点上。
还存在一种强烈的趋势,即集中储存器以便于管理,这在用于组织和聚合存储器的SAN(储存区域网)和NAS(网络附属储存)系统的出现中最佳例示出。涉及这些方案的基础设施模型(更快且更集中的储存器)可被描述为在由网络连接到储存系统的计算机上运行的大量应用的流程图。
在这种模型中,显然的是,为了储存系统性能与计算机的潜在性能匹配,计算机与储存系统之间的单个网络性能(更高的带宽和更低的延时)必须增加,以使得储存系统性能和计算机性能之间能够平衡。
问题在于,即使很少的计算机所提供的潜在负载也比实际上经济网络或中央储存系统所服务的要大得多。计算机的内部网络(即其总线)以比外部网络计算机通常支持的速度和能力快或高一个或两个量级地操作。
某些现有技术方案包括使用附加到储存设备上的储存加速器,例如那些形成高速缓存或分层功能以使得中央存储器处的网络性能符合储存器自身性能。其它试图解决该问题的方案已经结合Linux内核功能、基于若干块的实施(例如bcache、fastcache、dmcache)、以及打算用于修改的文件系统的特定实施(已知为FS-cache)做出实验。还存在具有相关功能的称为BranchCache的WindowsTM设备,其被设计用于在广域网链路上进行只读高速缓存。
因此,本发明的目的是提供用于改善数据储存系统的效率的新颖系统和方法。
发明内容
根据本发明的一个实施例,提供了一种数据储存系统,包括:中央储存系统,通过网络基础设施与中央储存系统进行网络通信的至少一个端点计算机系统,以及与计算机系统的CPU进行通信的储存加速器;其中储存加速器提供至少一个端点计算机能访问的中央储存系统上的数据的端点高速缓存。
根据该实施例的一个方案,所述储存加速器包括在所述CPU上运行的至少一个软件模块,用于控制附在所述计算机系统的总线上的物理储存单元。
根据该实施例的另一方案,所述储存加速器位于从所述CPU到所述存储加速器的数据吞吐量大于通过从所述CPU所述中央储存系统的连接的数据吞吐量的位置。
根据该实施例的另一方案,所述中央储存系统包括具有层1至N(N>=1)的分层数据结构,并且其中所述储存加速器包括用于所述中央储存器的高速缓存,层0。
根据该实施例的另一方案,所述物理储存单元包括固态存储器设备。
根据该实施例的另一方案,所述储存加速器包括数据高速缓存结构。
根据该实施例的另一方案,设置与所述储存加速器进行通信的过滤器驱动器。
根据该实施例的另一方案,所述软件模块设置在所述过滤器驱动器上,并且所述过滤器驱动器包括用于确定被读取或写入的文件是否已被标记为用于端点高速缓存的指令。
根据该实施例的另一方案,用于确定被读取或写入的文件是否已被标记为用于端点高速缓存的所述指令包括用于访问文件元数据的指令。
根据该实施例的另一方案,所述过滤器驱动器还包括用于确定所述计算机系统是否请求数据读取操作的指令,如果是,则确定被读取的数据是否存在于所述储存加速器上,以及(a)如果是,则履行从所述储存加速器的所述数据读取操作;(b)如果否,则向所述中央储存系统请求所述数据,并将所述数据的副本提供给所述储存加速器。
根据该实施例的另一方案,所述过滤器驱动器还包括以下指令:用于确定所述计算机系统是否请求数据写入操作,如果是,则将所述数据写入所述储存加速器。
根据该实施例的另一方案,所述过滤器驱动器还包括用于将所述数据写入所述中央储存系统的指令。
根据该实施例的另一方案,所述过滤器驱动器还包括用于使所述数据排队以写入到所述中央储存系统的指令。
根据该实施例的另一方案,所述过滤器驱动器还包括用于维持所述中央储存系统和所述储存加速器之间的数据一致性的指令。
根据该实施例的另一方案,所述计算机系统包括移动设备。
根据本发明的另一实施例,公开了一种数据储存方法,包括以下步骤:提供中央储存系统,提供通过网络基础设施与所述中央储存系统进行网络通信的至少一个端点计算机系统,以及提供与所述计算机系统的CPU进行通信的储存加速器;其中所述储存加速器提供所述至少一个端点计算机能访问的所述中央储存系统上的数据的端点高速缓存。
根据该实施例的一个方案,所述储存加速器包括在所述CPU上运行的至少一个软件模块,用于控制附在所述计算机系统的总线上的物理储存单元。
根据该实施例的另一方案,所述储存加速器位于从所述CPU到所述存储加速器的数据吞吐量大于通过从所述CPU到所述中央储存系统的连接的数据吞吐量的位置。
根据该实施例的另一方案,所述中央储存系统包括具有层1至N(N>=1)的分层数据结构,并且其中所述储存加速器包括用于所述中央储存器的高速缓存,层0。
根据该实施例的另一方案,所述物理储存单元包括固态存储器设备。
根据该实施例的另一方案,所述储存加速器包括数据高速缓存结构。
根据该实施例的另一方案,所述端点计算机系统适用于执行数据读取或数据写入操作,并且所述方法还包括确定被读取或写入的文件是否已被标记为用于端点高速缓存的步骤。
根据该实施例的另一方案,所述方法还包括通过访问文件元数据信息来确定被读取或写入的文件是否已被标记为用于端点高速缓存。
根据该实施例的另一方案,所述方法还包括确定所述计算机系统是否请求数据读取操作,如果是,则确定被读取的数据是否存在于所述储存加速器上,以及(a)如果是,则履行从所述储存加速器的所述数据读取操作;(b)如果否,则向所述中央储存系统请求所述数据,并将所述数据的副本提供给所述储存加速器。
根据该实施例的另一方案,所述方法还包括确定所述计算机系统是否请求数据写入操作,如果是,则将所述数据写入所述储存加速器。
根据该实施例的另一方案,所述方法还包括将所述数据写入所述中央储存系统。
根据该实施例的另一方案,所述方法还包括使所述数据排队以写入到所述中央储存系统。
根据该实施例的另一方案,所述方法还包括维持所述中央储存系统和所述储存加速器之间的数据一致性。
根据该实施例的另一方案,所述写入步骤包括写入未缓存的数据。
根据该实施例的另一方案,所述数据读取操作是未缓存的。
根据本发明的又一实施例,公开一种数据储存方法,包括以下步骤:通过主动提供数据到操作系统缓冲区或者从操作系统缓冲区移除数据,透明地修改应用所请求的用于读取和/或写入I/O操作的数据的有效操作系统缓冲策略;按照需要为所述I/O操作启用或禁用操作系统缓冲区高速缓存;其中提供数据到操作系统缓冲区高速缓存的步骤包括安排应用使用由操作系统所高速缓存的所述数据。
根据本发明的另一实施例,提供了一种数据储存方法,其包括以下步骤:将应用所请求的用于读取和/或写入操作的数据高速缓存到高速缓存位置;按照所述应用所请求用于读取和写入I/O操作透明地修改数据的有效缓冲策略;其中改变有效缓冲策略的所述步骤包括在所述高速缓存位置缓冲所述应用所请求的所述数据的至少一部分。
根据该实施例的一个方案,上述高速缓存位置是如本文所描述的端点高速缓存。
附图说明
现在将参照附图,仅通过例子的方式描述实施例,其中:
图1示出了访问网络上的中央储存器的计算机系统的一般现有技术的布置。
图2示意性示出了图1的系统的数据传输率。
图3示出了应用到图1的系统上的现有技术的储存加速器的布置。
图4示意性示出根据本发明的系统的一个实施例。
图5示出了图3的系统的网络所承载的负载。
图6示出了图4的系统的网络所承载的负载。
图7示意性示出了根据本发明的一般端点计算机系统。
图8为示出了根据本发明的方法的一个实施例的流程图。
具体实施方式
如图1所示,本发明提供了改善的通用计算基础设施由通过网络链路102将(一个或多个)计算机101连接到中央或公用储存器103而组成。计算机101优选为图7所示的通用计算机系统20。计算机系统20具有多个物理和逻辑部件,包括中央处理单元(“CPU”)24、随机存取存储器(“RAM”)28、输入/输出(“I/O”)接口32、网络接口36、非易失性储存器40,以及使得CPU24与其它部件通信的局部总线44。CPU24执行操作系统和多个软件系统。RAM28为CPU24提供相对响应的易失性储存器。I/O接口32允许从一个或多个设备(例如,键盘、鼠标等)接收输入,并向例如显示器和/或扬声器的输出设备输出信息。网络接口36允许与其它系统(包括图1的储存设备103)进行通信。非易失性储存器40储存操作系统和程序。在计算机系统20的操作期间,程序和数据可以从非易失性储存器40处取回并置于RAM28中以便于执行。
现在参照图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、CPU213、磁盘接口215和磁盘217。网络209存在于计算机系统201和中央储存器210之间。当前,网络通信由于物理和软件的约束而限制在每秒0.1至10千兆比特。明显的是,在计算机系统201和储存系统210中,存在性能能力的分级,靠近CPU处开始为非常高的性能,随着进一步远离CPU而性能相对较低。然而,通常最低连接是在计算机和储存系统之间的网络连接。
在多计算机网络中,由于在不同的计算机和中央储存器之间共享支持多数据流的基础设施,因而也存在性能分级。在该环境下,且出于应用的目的,将“端点”定义为作为来自中央储存器的数据的最终接受者的每个计算机系统。在从中央储存器传输数据到端点计算机系统中给定网络基础设施的内在限制,本发明涉及改善到这些端点的数据传输。
图3示出了一个现有技术的方案,通过在数据进入网络302以传输到计算机系统301之前,在网络302和储存器304之间放置加速器303以及布置储存器304处的网络性能以匹配储存器304的性能,所述方案试图改善数据传输的效率。当加速器303是高速缓存或分层模块的类型时,其可以被称作层0储存层,其中储存系统自身包括已有的储存层,层1、层2…层n。
如图4所示,根据本发明,加速器402上的层0储存层从相对于计算机系统401的网络的远端移动到计算机系统401本地,其中计算机系统401的CPU和加速器402上的层0储存器之间的性能远高于图3的现有技术的方案。因此,由于层0处于储存流的端点处而不是在计算机和实际保存数据的层1(或者层N)之间的中间,所以使用术语“端点高速缓存”。此外,在本公开中,因为高速缓存是分层的具体子集,在分层中将数据移动到下一层的决策是“尽可能快”而不是例如“如果需要”的其它分层策略,并且特定层N可以被认为是在所述层的数据将另外(或者额外地,取决于分层的类型)存在于某一层M(M>N)的高速缓存,所以通常可互换地使用术语“高速缓存”和“分层”。
通过查看以下描述将变得清晰,在本文描述的本发明不同于现有技术的方案,因为:(a)本发明基于文件存取,并且因为可以存取上下文,因而支持细粒度匹配策略以允许端点高速缓存选择性地高速缓存数据,并因此比较少区别的其它方案更高效;(b)本发明基于文件存取,因此能够选择是否在所有都相同的数据块中操作(如基于块的系统那样),或者根据文件内容变化(上下文有关),或者根据应用请求变化,或者以依赖上下文的多于一种方式工作;(c)本发明对用于现有文件系统的终端用户是完全透明的;以及(d)本发明是不可知的并且不需要对文件系统实施进行修改以便操作。
具体地,根据本发明的端点高速缓存不同于已知的大部分计算机系统保持在RAM内的“缓冲区高速缓存”,因为(a)独立于CPU且与缓冲区高速缓存的易失性特征相反,本发明的端点高速缓存中的数据被保持在局域层0级别,直到高速缓存维护过程清理(清除新写入到层1的数据)且移除所述数据;以及(b)与当前缓冲区高速缓存采用的基于统计地预测方法(例如,预读取或者分支预测)相反地,端点高速缓存可以使用先见(抢占式高速缓存或基于预取的内部或外部知识)。
根据本发明的端点高速缓存不同于现有技术的高速缓存网络文件系统,因为(a)本发明对于远程储存系统是不可知的(例如,不是这样的Sun MicrosystemsTM CacheFS);(b)本发明对于远程储存系统所使用的协议是不可知的(例如,不是这样的已知为Coda和Intermezzo的方案);以及(c)本发明对于计算机通常是如何使用储存器是透明的(例如TsumuFS或xCachefs的许多系统独立于远程储存系统的类型,但是因为它们需要以专有方式安装远程储存器而不是透明的)。
现在将描述实施本发明的各种非限制性的例子。虽然以下的描述是关于与网络通信的单个计算机上的单个端点高速缓存提供的,但是本发明同样可应用到访问网络的任意数量的计算机。此外,可以预期的是,多于一个的计算机系统可以形成单个端点,因此,可以为布置为整个系统中的端点的一个或多个计算机提供一个端点高速缓存。
为了实现端点高速缓存,将端点处的计算机系统编程为透明地访问局域层0,而远程储存器不知道任何改变。由于层0是高速缓存,其本质是计算机和远程储存器(朝向层1)之间的网络的性能需求降低,因为优先地从局域层0服务时间相关且预取的I/O,且因此与计算机直接访问远程层0或层1相比,对于层0高速缓存更新层1储存层所需的网络流量(以及随后的网络性能,对于每个端点是单独的而对于网络基础设施是聚合的)更少。也就是,通过端点加速器实施的层0高速缓存承担一些量的网络负载,并能够与端点计算机系统的CPU进行通信。该区别示出在图5和图6中。图5示出了现有技术的系统,其中计算机系统501具有提供的负载L,其总体上由网络502承载并如负载L一样在中央储存器503处被服务。图6示出了本发明的实施例,其中计算机系统601具有提供的负载L。在加速器602上实施的层0高速缓存承担一部分负载HR,其中HR大于0且小于1。因此,网络603具有L(1-HR)的负载,其也是中央储存器604服务的负载。类似地,中央储存器604上的层1储存层的性能要求降低,因为其现在必须服务通过高速缓存呈现的平均负载要求,而不是在缺少任何层0储存层的情况下由计算机生成的直接峰值负载要求。
因此,本发明提供导致计算基础设施的经济效益的技术方案。
在WindowTM操作系统上实现本发明时,结合图8,本发明的一个实施包括创建过滤器驱动器并将该过滤器驱动器放置于过滤器堆栈中,其中过滤器驱动器处于所有的文件系统输入/输出操作的通信路径中。对过滤器驱动器进行编程,否则将其适用于执行根据本发明的该实施的方法,所述方法包括确定是否将文件标记用于端点高速缓存的步骤805。这可以通过使得文件的上下文与配置的上下文模式和策略匹配以确定文件是否包含指示其标记为用于端点高速缓存的报头或其它描述符信息来完成。这优选在每个文件均被打开时执行。在步骤810,如果文件描述符指示该文件被标记用于端点高速缓存,且过滤器驱动器看到读取操作,则检查被请求的数据以查看其是否已经存在于加速器上的层0高速缓存中,如果是,则从层0高速缓存履行读取。如果在层0高速缓存没有发现被请求的数据,则从源位置(即,中央储存器)取得数据来履行读取。层0高速缓存还接收并存储数据的副本。可替换地,如果过滤器驱动器看到写入操作,则在步骤815处,用待写入的新数据更新层0高速缓存,并且所述数据还立即被写入中央储存器的源位置处。可替换地,延迟写入操作也是可以的,其中层0高速缓存被立即写入新数据,且动作排队以将数据写入中央储存器。这允许对网络上的负载进行监视和控制,使得在网络上传输数据时能对较高优先级的数据给予优先级。
在步骤820处,根据需要拦截其它操作,以维持数据的一致性。例如,改变源文件系统应该映射到层0高速缓存中的相应改变上,或者如果高速缓存以文件名为关键字,则在该步骤可以进行适当的重命名操作。其它例子包括在该步骤拦截和处理的文件删除操作、文件属性改变等。
在步骤830处,提供高速缓存维持函数或者模块以在层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与和提供本发明的满的层0和储存器加速功能的每个应用相关联的部分合作。这对于应用而言仍是透明的,因为能够以透明的方式提供用于在用户级别拦截I/O操作的方法。一个这种方法涉及将每个应用所使用的动态加载系统调用库重定向(通过附加的内核帮助)到实施本发明所需要的拦截、策略和合作功能的版本。构思为使用存储器映射接口包围内核的实施将避免在上下文切换、内核IO管理、文件系统处理、过滤器和用于每个I/O操作的设备驱动器堆栈所涉及的所有资源和时间,由此减轻延时的影响。
还构思有可以修改操作系统缓冲区高速缓存机制,以使用除了可以提供层0高速缓存的可用RAM外的局域快速储存器。
在一个变型中,可以对远程储存驱动器(例如NFS或CIFS)或者远程块设备驱动器进行修改,以应用如上所述将数据路由通过层0高速缓存的策略。通过查看本文的描述,这种修改对于本领域技术人员而言是显而易见的。
还可以对逻辑卷驱动器进行创建或修改,以根据真实块设备创建虚拟块设备来提供本文所描述的层0高速缓存。已经建成为文件系统的设施可以用于通过在计算机系统本地高速缓存文件而进行补充。还可以使用文件系统或过滤器驱动器,其与块储存器驱动器合作以向基于块的高速缓存系统提供上下文信息。
可替换地,如果储存协议允许这种引用,则远程中央储存系统还可以维持控制或关于局域层0高速缓存储存器的信息。在该实施例中,可以同中央储存器一起持有层0高速缓存的一些控制,但是,优选地在端点CPU处维持如上所述的用于维持策略或上下文规则的责任。
申请人不知道任何现有技术对现有文件透明地提供了端点高速缓存功能。例如NFS或CIFS的普通远程文件系统不使用中央储存器的局域永久性高速缓存,也不包括实施本文描述的本发明的能力或建议。一些文件系统使用永久局域高速缓存(例如,DropboxTM)接口到云储存服务(或对象存储),然而,与对现有文件透明地工作相反,它们呈现为独立的文件系统或者特殊同步目录。通过具有远程储存器层1至N(N>=1)的远程中央储存器的层0高速缓存,在距远程储存器自身的网络的下游且与端点CPU进行通信,排他地提供对现有文件透明地工作的能力。
虽然优选的实施例是在Windows操作系统的特定环境中,但是相同的通用方法还可以应用到包括例如Linux、其它Unices的其它操作系统环境的其它环境中,自然也可以应用到可能使传统文件系统暴露给终端用户的移动系统的环境中。
在本发明的一些变型中,可以共享远程储存系统,如可以是利用远程文件系统协议但是典型地不具有块设备。在该变型中,端点高速缓存功能适用于确保多个独立客户端之间的高速缓存的一致性。远程文件系统协议一般提供用于需要确保其客户端之间的一致性的情形。情况是这样的:远程中央储存器是由多个远程储存设备组成的;或者可替换地,多个端点计算机系统向远程储存器写入数据,其中该数据本身在两个或更多个端点计算机系统之间共享。通常使用在数据上的租赁的概念或可撤销的锁来确保这种一致性,并且端点高速缓存加速器或者层0必须与协议消息合作,所述协议消息通过适当地清除(即,完全清除或写入)数据来撤销对数据的排斥访问以维持高速缓存语义。在优选的实施例中,安排告知提供对源文件的访问的过程这种撤销,从而可以采取合适的动作。
当远程储存系统不可用或者与网络断开连接时,产生本发明的一个额外的优点。在这种情况下,可以实施可配置的策略控制以控制端点高速缓存的行为。例如,默认行为可以是如果可能则从层0高速缓存履行读取操作,否则失败;同时在层0高速缓存上进行写入操作并且排队等待稍后写入到中央储存器。在从另一系统的同时冲突写入的情况下可能要求随后的冲突解决方案。
在本发明的一个变型中,应用所使用的有效I/O缓冲策略可以透明地改变。现代操作系统上的应用一般能在缓冲的I/O和非缓冲的I/O之间进行选择。缓冲的I/O表示应用所请求的I/O操作经过操作系统内核中的高速缓存管理器,该管理器对于读取将查询内核缓冲区高速缓存内被请求的数据,而对于写入将把提供的数据写入到内核缓冲区高速缓存,并且所述内核负责更新I/O的真实目标(主储存器上的某处)。非缓冲的I/O表示应用所请求的I/O操作没有如上所述经过高速缓存管理器,而是实时地从主储存器上的I/O目标读取数据或者向所述目标分别写入数据。对此存在多种变型以确保在成功报告返回应用之前数据实际被写入到表示数据的物理位置,而不是仅排队等待写入到物理位置。在该变型中,本发明包括:通过主动提供数据到操作系统缓冲区或者从缓冲区移除数据,修改应用所请求的用于读取和/或写入I/O操作的数据的有效操作系统缓冲策略;按照需要为所述I/O操作启用或禁用操作系统缓冲区高速缓存;其中所述提供数据到操作系统缓冲区高速缓存的步骤包括安排应用使用由操作系统所高速缓存的所述数据。
通过独立控制每个I/O类型的缓冲,可以将本发明应用于该场景。例如,对读取进行缓冲而对写入不进行缓冲。作为一个例子,以非缓冲的I/O操作正常操作的数据库事实上可以执行缓冲的读取和非缓冲的写入,且对操作语义没有改变。为了控制请求I/O的应用外部的且对该应用透明的I/O操作的缓冲,一个简单的方法是控制层0高速缓存储存器中数据的缓冲,该层0高速缓存储存器完全处于本发明的储存加速器功能的控制下。这可以通过拦截由外部策略设置的如此表现的高速缓存模块来完成,如Zachariassen等人于2011年8月24日提交的共同未决的申请号为PCT/CA2011/050514的PCT国际申请所述,该申请的内容通过引用合并于此。上述PCT申请的拦截高速缓存模块因而能够以如下三种方式控制应用高速缓存:通过从请求且适当改变特定种类的缓冲的应用拦截文件打开参数;和/或通过改变保持在层0高速缓存上的数据的缓冲;和/或通过拦截用于操作系统高速缓存管理器的查询和请求。这样,端点高速缓存能在端点计算机系统中提供用于I/O的多级别高速缓存,在没有本发明的情况下将遍历网络到远程储存器。
上述实施例意为本发明的例子,并且可通过本领域技术人员从中产生变型和修改,而不背离由所附权利要求限定的本发明的范围。

Claims (34)

1.一种数据储存系统,包括:中央储存系统,通过网络基础设施与所述中央储存系统进行网络通信的至少一个端点计算机系统,所述至少一个端点计算机系统具有与所述端点计算机系统的CPU进行本地通信的端点加速器,所述CPU被编程来访问所述端点加速器以服务于储存请求而不影响所述中央储存系统;其中所述端点加速器提供所述端点计算机系统上的数据的端点高速缓存;并且其中所述端点加速器包括其上具有计算机可读指令的计算机可读介质,所述CPU执行所述指令以用于控制附在所述端点计算机系统的总线或其它高速网络上的物理储存单元。
2.根据权利要求1所述的数据储存系统,其中所述中央储存系统包括具有层1至N的分层数据结构,其中N大于等于1,并且其中所述端点加速器包括用于所述中央储存系统的远程层0高速缓存。
3.根据权利要求2所述的数据储存系统,其中所述物理储存单元包括固态存储器设备。
4.根据权利要求3所述的数据储存系统,其中所述端点加速器包括在所述端点计算机系统上的数据高速缓存结构。
5.根据权利要求1-4中任一项所述的数据储存系统,还包括与所述端点加速器进行通信的过滤器驱动器。
6.根据权利要求5所述的数据储存系统,其中软件模块设置在所述过滤器驱动器上,并且所述过滤器驱动器包括用于确定被读取或写入的文件是否已被标记为用于端点高速缓存的指令。
7.根据权利要求6所述的数据储存系统,其中用于确定被读取或写入的文件是否已被标记为用于端点高速缓存的所述指令包括用于访问文件元数据的指令。
8.根据权利要求7所述的数据储存系统,其中所述过滤器驱动器还包括以下指令:用于确定所述端点计算机系统是否请求数据读取操作,如果是,则确定被读取的数据是否存在于所述端点加速器上,以及(a)如果是,则履行从所述端点加速器的所述数据读取操作;(b)如果否,则向所述中央储存系统请求所述数据,并将所述数据的副本提供给所述端点加速器。
9.根据权利要求7所述的数据储存系统,其中所述过滤器驱动器还包括以下指令:用于确定所述端点计算机系统是否请求数据写入操作,如果是,则将所述数据写入所述端点加速器。
10.根据权利要求9所述的数据储存系统,其中所述过滤器驱动器还包括用于将所述数据写入所述中央储存系统的指令。
11.根据权利要求9所述的数据储存系统,其中所述过滤器驱动器还包括用于使所述数据排队以写入到所述中央储存系统的指令。
12.根据权利要求10或11中任一项所述的数据储存系统,其中所述过滤器驱动器还包括用于维持所述中央储存系统和所述端点加速器之间的数据一致性的指令。
13.根据权利要求1-4中任一项所述的数据储存系统,其中所述端点计算机系统包括移动设备。
14.一种数据储存方法,包括:提供中央储存系统,提供通过网络基础设施与所述中央储存系统进行网络通信的至少一个端点计算机系统,所述至少一个端点计算机系统具有与所述端点计算机系统的CPU进行本地通信的端点加速器,所述CPU被编程来访问所述端点加速器以服务于储存请求而不影响所述中央储存系统;其中所述端点加速器提供所述端点计算机系统上的数据的端点高速缓存,并且其中所述端点加速器包括其上具有计算机可读指令的计算机可读介质,由所述CPU执行所述指令以用于控制附在所述端点计算机系统的总线或其它高速网络上的物理储存单元。
15.根据权利要求14所述的数据储存方法,其中所述端点加速器位于从所述CPU到所述端点加速器的数据吞吐量大于通过从所述CPU到所述中央储存系统的连接的数据吞吐量的位置。
16.根据权利要求14-15中任一项所述的数据储存方法,其中所述中央储存系统包括具有层1至N的分层数据结构,其中N大于等于1,并且其中所述端点加速器包括用于所述中央储存系统的远程层0高速缓存。
17.根据权利要求14所述的数据储存方法,其中所述物理储存单元包括固态存储器设备。
18.根据权利要求17所述的数据储存方法,其中所述端点加速器包括在所述端点计算机系统上的数据高速缓存结构。
19.根据权利要求18所述的数据储存方法,其中所述端点计算机系统适用于执行数据读取或数据写入操作,并且所述方法还包括确定被读取或写入的文件是否已被标记为用于端点高速缓存的步骤。
20.根据权利要求19所述的数据储存方法,还包括通过访问文件元数据信息来确定被读取或写入的文件是否已被标记为用于端点高速缓存。
21.根据权利要求20所述的数据储存方法,还包括确定所述端点计算机系统是否请求数据读取操作,如果是,则确定被读取的数据是否存在于所述端点加速器上,以及(a)如果是,则履行从所述端点加速器的所述数据读取操作;(b)如果否,则向所述中央储存系统请求所述数据,并将所述数据的副本提供给所述端点加速器。
22.根据权利要求21所述的数据储存方法,还包括确定所述端点计算机系统是否请求数据写入操作,如果是,则将所述数据写入所述端点加速器。
23.根据权利要求22所述的数据储存方法,还包括将所述数据写入所述中央储存系统。
24.根据权利要求22所述的数据储存方法,还包括使所述数据排队以写入到所述中央储存系统。
25.根据权利要求22或23中任一项所述的数据储存方法,还包括维持所述中央储存系统和所述端点加速器之间的数据一致性。
26.根据权利要求16所述的数据储存方法,还包括独立于或结合读取和写入I/O操作而按照应用所请求地透明地改变数据的有效缓冲策略的步骤。
27.一种数据储存方法,包括:确定从中央储存系统读取或写入所述中央储存系统的文件是否已经被标记为用于端点计算机系统处的端点加速器处的高速缓存,所述端点计算机系统具有与所述端点计算机系统的CPU进行本地通信的所述端点加速器,所述CPU被编程来访问所述端点加速器以服务于储存请求而不影响所述中央储存系统;确定是否请求数据读取操作,如果是,则确定被读取的数据是否存在于所述端点加速器上,以及(a)如果是,则履行从所述端点加速器的所述数据读取操作;(b)如果否,则向所述中央储存系统请求所述数据,并将所述数据的副本提供给所述端点加速器;以及确定所述端点计算机系统是否请求数据写入操作,如果是,则将所述数据写入到所述端点加速器。
28.根据权利要求27所述的数据储存方法,还包括通过访问文件元数据信息来确定被读取或写入的文件是否已被标记为用于端点高速缓存。
29.根据权利要求27或28中任一项所述的数据储存方法,还包括维持所述中央储存系统和所述端点加速器之间的数据一致性。
30.根据权利要求27或28中任一项所述的数据储存方法,还包括独立于或结合读取和写入I/O操作而按照应用所请求地透明地改变数据的有效缓冲策略的步骤。
31.一种用于数据储存的装置,所述装置包括:用于确定从中央储存系统读取或写入所述中央储存系统的文件是否已经被标记为用于端点计算机系统处的端点加速器处的高速缓存的单元,所述端点计算机系统具有与所述端点计算机系统的CPU进行本地通信的所述端点加速器,所述CPU被编程来访问所述端点加速器以服务于储存请求而不影响所述中央储存系统;用于确定是否请求数据读取操作,如果是,则确定被读取的数据是否存在于所述端点加速器上,以及(a)如果是,则履行从所述端点加速器的所述数据读取操作;(b)如果否,则向所述中央储存系统请求所述数据,并将所述数据的副本提供给所述端点加速器的单元;以及用于确定所述端点计算机系统是否请求数据写入操作,如果是,则将所述数据写入到所述端点加速器的单元。
32.根据权利要求31所述的装置,还包括用于通过访问文件元数据信息来确定被读取或写入的文件是否已被标记为用于端点高速缓存的单元。
33.根据权利要求31或32中任一项所述的装置,还包括用于维持所述中央储存系统和所述端点加速器之间的数据一致性的单元。
34.根据权利要求31或32中任一项所述的装置,还包括用于独立于或结合读取和写入I/O操作而按照应用所请求地透明地改变数据的有效缓冲策略的单元。
CN201180055207.3A 2010-11-16 2011-11-15 用于数据储存系统的端点高速缓存 Expired - Fee Related CN103282889B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US41419110P 2010-11-16 2010-11-16
US61/414,191 2010-11-16
PCT/CA2011/050708 WO2012065265A1 (en) 2010-11-16 2011-11-15 Endpoint caching for data storage systems

Publications (2)

Publication Number Publication Date
CN103282889A CN103282889A (zh) 2013-09-04
CN103282889B true CN103282889B (zh) 2017-02-22

Family

ID=46083458

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180055207.3A Expired - Fee Related CN103282889B (zh) 2010-11-16 2011-11-15 用于数据储存系统的端点高速缓存

Country Status (5)

Country Link
US (1) US9692825B2 (zh)
JP (1) JP5717864B2 (zh)
KR (2) KR101578642B1 (zh)
CN (1) CN103282889B (zh)
WO (1) WO2012065265A1 (zh)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10552385B2 (en) * 2012-05-20 2020-02-04 Microsoft Technology Licensing, Llc System and methods for implementing a server-based hierarchical mass storage system
US20140059293A1 (en) * 2012-08-27 2014-02-27 Samsung Electronics Co., Ltd. Method for protecting a gpt cached disks data integrity in an external operating system environment
US9183271B2 (en) * 2012-12-04 2015-11-10 Pivotal Software, Inc. Big-fast data connector between in-memory database system and data warehouse system
WO2015017147A1 (en) * 2013-07-29 2015-02-05 Silicon Graphics International Corp. I/o acceleration in hybrid storage
US20150254196A1 (en) * 2014-03-10 2015-09-10 Riverscale Ltd Software Enabled Network Storage Accelerator (SENSA) - network - disk DMA (NDDMA)
WO2016105399A1 (en) * 2014-12-23 2016-06-30 Hewlett Packard Enterprise Development Lp Prevention of a predetermined action regarding data
JP2016167215A (ja) * 2015-03-10 2016-09-15 株式会社東芝 メモリ装置
US10235176B2 (en) * 2015-12-17 2019-03-19 The Charles Stark Draper Laboratory, Inc. Techniques for metadata processing
TW201935306A (zh) 2018-02-02 2019-09-01 美商多佛微系統公司 用於安全初始化的策略連結及/或載入之系統和方法
US11797398B2 (en) 2018-04-30 2023-10-24 Dover Microsystems, Inc. Systems and methods for checking safety properties
US10824598B2 (en) * 2018-08-07 2020-11-03 Dell Products L.P. Handling file commit and commit-delete operations in an overlay optimizer
US11216314B2 (en) * 2018-11-02 2022-01-04 EMC IP Holding Company LLC Dynamic reallocation of resources in accelerator-as-a-service computing environment
TW202022679A (zh) 2018-11-06 2020-06-16 美商多佛微系統公司 用於停滯主處理器的系統和方法
US10862781B2 (en) * 2018-11-07 2020-12-08 Saudi Arabian Oil Company Identifying network issues using an agentless probe and end-point network locations
US10924328B2 (en) 2018-11-16 2021-02-16 Saudi Arabian Oil Company Root cause analysis for unified communications performance issues
US10944622B2 (en) 2018-11-16 2021-03-09 Saudi Arabian Oil Company Root cause analysis for unified communications performance issues
US11112972B2 (en) 2018-12-05 2021-09-07 Samsung Electronics Co., Ltd. System and method for accelerated data processing in SSDs
US11841956B2 (en) 2018-12-18 2023-12-12 Dover Microsystems, Inc. Systems and methods for data lifecycle protection
CN111787062B (zh) * 2020-05-28 2021-11-26 北京航空航天大学 面向广域网络文件系统的自适应快速增量预读方法
CN114489506B (zh) * 2022-01-21 2024-02-27 杭州海康存储科技有限公司 存储访问控制装置、方法及存储设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101228523A (zh) * 2005-04-25 2008-07-23 网络装置公司 用于高速缓存网络文件系统的系统和方法

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0726074A (ja) 1993-07-06 1995-01-27 Toyobo Co Ltd ポリオレフィン樹脂フイルム
US6119151A (en) * 1994-03-07 2000-09-12 International Business Machines Corp. System and method for efficient cache management in a distributed file system
US6792507B2 (en) * 2000-12-14 2004-09-14 Maxxan Systems, Inc. Caching system and method for a network storage system
US6721847B2 (en) * 2001-02-20 2004-04-13 Networks Associates Technology, Inc. Cache hints for computer file access
US7552223B1 (en) * 2002-09-16 2009-06-23 Netapp, Inc. Apparatus and method for data consistency in a proxy cache
US7155571B2 (en) 2002-09-30 2006-12-26 International Business Machines Corporation N-source in-kernel cache for high performance in computer operating systems
KR20050114028A (ko) 2004-05-31 2005-12-05 정보통신연구진흥원 San 파일시스템을 위한 협력 캐시 장치 및 방법
US8037240B2 (en) * 2007-10-24 2011-10-11 International Business Machines Corporation System and method for using reversed backup operation for minimizing the disk spinning time and the number of spin-up operations
US8862689B2 (en) * 2007-10-24 2014-10-14 International Business Machines Corporation Local flash memory and remote server hybrid continuous data protection
GB0811422D0 (en) * 2008-06-20 2008-07-30 Symbian Software Ltd Efficient caching
US8762642B2 (en) 2009-01-30 2014-06-24 Twinstrata Inc System and method for secure and reliable multi-cloud data replication
GB201004449D0 (en) * 2010-02-22 2010-05-05 Corbett Sean Data accelerator
US8898324B2 (en) * 2010-06-24 2014-11-25 International Business Machines Corporation Data access management in a hybrid memory server
US9032017B1 (en) * 2010-08-10 2015-05-12 Scalarc Inc Method and system for transparent read-write query routing when load balancing databases
US8543554B1 (en) * 2010-08-10 2013-09-24 ScalArc Inc. Method and system for transparent database query caching
US8484242B1 (en) * 2010-08-24 2013-07-09 ScalArc, Inc. Method and system for transparent database connection pooling and query queuing
US20140052848A1 (en) * 2012-08-16 2014-02-20 Data Accelerator Ltd. Latency virtualization
US9043923B2 (en) * 2012-12-27 2015-05-26 Empire Technology Development Llc Virtual machine monitor (VMM) extension for time shared accelerator management and side-channel vulnerability prevention

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101228523A (zh) * 2005-04-25 2008-07-23 网络装置公司 用于高速缓存网络文件系统的系统和方法

Also Published As

Publication number Publication date
CN103282889A (zh) 2013-09-04
JP5717864B2 (ja) 2015-05-13
KR101578642B1 (ko) 2015-12-17
KR101530463B1 (ko) 2015-06-29
WO2012065265A1 (en) 2012-05-24
US20130304842A1 (en) 2013-11-14
JP2013541788A (ja) 2013-11-14
KR20130086373A (ko) 2013-08-01
KR20150038362A (ko) 2015-04-08
US9692825B2 (en) 2017-06-27

Similar Documents

Publication Publication Date Title
CN103282889B (zh) 用于数据储存系统的端点高速缓存
US11307765B2 (en) System and methods for storage data deduplication
CN104969170B (zh) 层次化存储系统、存储控制器以及代替层次间的数据移动的方法
US20190075163A1 (en) Apparatus including an i/o interface and a network interface and related method of use
US7529867B2 (en) Adaptive, scalable I/O request handling architecture in virtualized computer systems and networks
US20170185645A1 (en) Database caching in a database system
EP3191932A1 (en) Rate matching technique for balancing segment cleaning and i/o workload
US11561930B2 (en) Independent evictions from datastore accelerator fleet nodes
US20080177975A1 (en) Database management system for controlling setting of cache partition area in storage system
US20080104589A1 (en) Adaptive, Scalable I/O Request Handling Architecture in Virtualized Computer Systems and Networks
JP2013531296A (ja) ハイブリッド・メモリ・サーバにおけるデータ・アクセス管理
CN107179878A (zh) 基于应用优化的数据存储的方法和装置
CN109710175A (zh) 用于数据存储管理的设备和方法
CN106453360A (zh) 基于iSCSI协议的分布式块存储数据访问方法及系统
CN106528451B (zh) 针对小文件的二级缓存预取的云存储框架及构建方法
Xu et al. Rethink the storage of virtual machine images in clouds
CN109582600A (zh) 一种数据处理方法及装置
CN112162826A (zh) 一种面向边缘计算的低功耗轻量级虚拟化方法
JP3034873B2 (ja) 情報処理装置
US9934147B1 (en) Content-aware storage tiering techniques within a job scheduling system
US11513849B2 (en) Weighted resource cost matrix scheduler
CN107577733A (zh) 一种数据复制的加速方法及系统
US11625273B1 (en) Changing throughput capacity to sustain throughput for accessing individual items in a database
CN106407409A (zh) 基于das架构存储服务器的虚拟文件系统及其文件管理方法
TWI824392B (zh) 適用於分散式深度學習計算的隨需即組共用資料快取方法、電腦程式、電腦可讀取媒體

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170222

Termination date: 20211115