CN106155575A - 用于扩展存储系统的高速缓存的方法和装置 - Google Patents

用于扩展存储系统的高速缓存的方法和装置 Download PDF

Info

Publication number
CN106155575A
CN106155575A CN201510184385.6A CN201510184385A CN106155575A CN 106155575 A CN106155575 A CN 106155575A CN 201510184385 A CN201510184385 A CN 201510184385A CN 106155575 A CN106155575 A CN 106155575A
Authority
CN
China
Prior art keywords
data
client
storage system
information
storage
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.)
Pending
Application number
CN201510184385.6A
Other languages
English (en)
Inventor
姜磊
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.)
EMC Corp
Original Assignee
EMC 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 EMC Corp filed Critical EMC Corp
Priority to CN201510184385.6A priority Critical patent/CN106155575A/zh
Priority to US15/096,728 priority patent/US10635604B2/en
Publication of CN106155575A publication Critical patent/CN106155575A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/128Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0871Allocation or management of cache space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/122Replacement control using replacement algorithms of the least frequently used [LFU] type, e.g. with individual count value
    • 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/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements
    • G06F2212/621Coherency control relating to peripheral accessing, e.g. from DMA or I/O device

Abstract

本发明的实施方式提供了一种用于扩展存储系统的高速缓存的方法和装置。该方法包括:获取存储系统中的、被存储系统的多个客户端分别频繁访问的数据的信息;基于信息来确定与能够被高速缓存的数据在存储系统中的存储有关的存储信息,能够被高速缓存的数据包括被多个客户端分别频繁访问的数据的合集;以及将存储信息同步到多个客户端,以使得多个客户端中的相应客户端在本地基于存储信息来对相应客户端所频繁访问的数据进行高速缓存。利用本发明所提出的方案,通过存储系统的统一调度和协调,存储系统的客户端能够对相应客户端所频繁访问的数据在本地进行高速缓存,从而实现了对存储系统本地的高速缓存的扩展。

Description

用于扩展存储系统的高速缓存的方法和装置
技术领域
本发明的各实施方式涉及存储技术,更具体地,涉及用于扩展存储系统的高速缓存的方法和装置。
背景技术
随着计算机硬件和软件技术的发展,人们对存储系统的要求也不断增加,这使得存储系统面临越来越多的挑战。例如,在多个服务器耦合到存储系统的情况下,多个服务器可能需要共享存储系统中的同一批数量庞大的数据。然而,在一段时间内,多个服务器可能会分别频繁访问所共享的数据的不同子集。因而,为了实现对被频繁访问的数据的快速访问,每个服务器都期望存储系统能够将其所频繁访问的数据存储在存储系统本地的高速缓存中。但是,存储系统本地的高速缓存的容量往往较小。当被频繁访问的数据的总量较大时,存储系统本地的高速缓存则无法完全容纳它们。因此,如何扩展存储系统的高速缓存成为一个关注热点。
发明内容
为了解决上述问题,本发明提出了一种通过存储系统的统一调度来扩展存储系统的高速缓存的技术方案。
在本发明的第一方面,提供了一种在存储系统处的、用于扩展存储系统的高速缓存的方法。该方法包括:获取所述存储系统中的、被所述存储系统的多个客户端分别频繁访问的数据的信息;基于所述信息来确定与能够被高速缓存的数据在所述存储系统中的存储有关的存储信息,所述能够被高速缓存的数据包括被所述多个客户端分别频繁访问的所述数据的合集;以及将所述存储信息同步到所述多个客户端,以使得所述多个客户端中的相应客户端在本地基于所述存储信息来对所述相应客户端所频繁访问的数据进行高速缓存。
在一个实施方式中,所述存储信息至少包括:所述存储系统中用于存储所述数据的逻辑单元的标识,以及所述逻辑单元中用于存储所述数据的地址范围。
在一个实施方式中,从用于监控所述多个客户端对所述存储系统中的数据的访问的实体获取被所述多个客户端分别频繁访问的数据的所述信息。
在一个实施方式中,所述方法进一步包括:从所述实体接收更改通知消息,所述更改通知消息指示所述能够被高速缓存的数据的子集已被更改;识别所述多个客户端中的共享所述数据的所述子集的客户端;以及向所识别的客户端转发所述更改通知消息。
在一个实施方式中,所述方法进一步包括:从所述实体获取所述存储系统中的、被所述多个客户端之一频繁访问的新数据的信息;以及利用所述新数据的所述信息来更新所述存储信息。
在本发明的第二方面,提供了一种在存储系统的客户端处的、用于扩展存储系统的高速缓存的方法。该方法包括:从所述存储系统获取与能够被高速缓存的数据在所述存储系统中的存储有关的存储信息,所述能够被高速缓存的数据包括所述存储系统中的、被所述存储系统的多个客户端分别频繁访问的数据的合集;以及在所述多个客户端中的相应客户端处,基于所述存储信息来对所述相应客户端所频繁访问的数据进行高速缓存。
在一个实施方式中,对所述相应客户端所频繁访问的数据进行高速缓存包括:在所述相应客户端的本地存储设备中对所述数据进行高速缓存;以及建立从所述存储系统的存储空间到所述本地存储设备的存储空间的地址映射。
在一个实施方式中,所述能够被高速缓存的数据的子集至少由所述相应客户端和所述多个客户端中的另一客户端共享,该方法进一步包括:在所述相应客户端处,从所述存储系统接收更改通知消息,所述更改通知消息指示所述数据的所述子集已被所述另一客户端所更改;以及从所述相应客户端所高速缓存的数据中移除所述数据的所述子集。
在本发明的第三方面,提供了一种用于扩展存储系统的高速缓存的方法。该方法包括:监控所述存储系统的多个客户端对所述存储系统中的数据的访问;以及向所述存储系统提供被所述多个客户端分别频繁访问的数据的信息,以使得所述存储系统基于所述信息来确定与能够被高速缓存的数据在所述存储系统中的存储有关的存储信息,所述能够被高速缓存的数据包括被所述多个客户端分别频繁访问的所述数据的合集。
在一个实施方式中,所述能够被高速缓存的数据的子集由所述多个客户端中的至少两个客户端共享。该方法进一步包括:响应于所述至少两个客户端之一对所述数据的所述子集的更改,向所述存储系统发送更改通知消息,所述更改通知消息指示对所述数据的所述子集的更改。
在本发明的第四方面,提供了一种在存储系统处的、用于扩展存储系统的高速缓存的装置。该装置包括:获取单元,被配置为获取所述存储系统中的、被所述存储系统的多个客户端分别频繁访问的数据的信息;确定单元,被配置为基于所述信息来确定与能够被高速缓存的数据在所述存储系统中的存储有关的存储信息,所述能够被高速缓存的数据包括被所述多个客户端分别频繁访问的所述数据的合集;以及同步单元,被配置为将所述存储信息同步到所述多个客户端,以使得所述多个客户端中的相应客户端在本地基于所述存储信息来对所述相应客户端所频繁访问的数据进行高速缓存。
在一个实施方式中,所述存储信息至少包括:所述存储系统中用于存储所述数据的逻辑单元的标识,以及所述逻辑单元中用于存储所述数据的地址范围。
在一个实施方式中,所述获取单元被进一步配置为从用于监控所述多个客户端对所述存储系统中的数据的访问的实体获取被所述多个客户端分别频繁访问的数据的所述信息。
在一个实施方式中,该装置进一步包括:接收单元,被配置为从所述实体接收更改通知消息,所述更改通知消息指示所述能够被高速缓存的数据的子集已被更改;识别单元,被配置为识别所述多个客户端中的共享所述数据的所述子集的客户端;以及转发单元,被配置为向所识别的客户端转发所述更改通知消息。
在一个实施方式中,所述获取单元被进一步配置为从所述实体获取所述存储系统中的、被所述多个客户端之一频繁访问的新数据的信息;并且所述确定单元被进一步配置为利用所述新数据的所述信息来更新所述存储信息。
在本发明的第五方面,提供了一种在存储系统的客户端处的、用于扩展存储系统的高速缓存的装置。该装置包括:存储信息获取单元,被配置为从所述存储系统获取与能够被高速缓存的数据在所述存储系统中的存储有关的存储信息,所述能够被高速缓存的数据包括所述存储系统中的、被所述存储系统的多个客户端分别频繁访问的数据的合集;以及高速缓存单元,被配置为在所述多个客户端中的相应客户端处,基于所述存储信息来对所述相应客户端所频繁访问的数据进行高速缓存。
在一个实施方式中,所述高速缓存单元被进一步配置为在所述相应客户端的本地存储设备中对所述数据进行高速缓存;并且所述存储信息获取单元被进一步配置为建立从所述存储系统的存储空间到所述本地存储设备的存储空间的地址映射。
在一个实施方式中,所述能够被高速缓存的数据的子集至少由所述相应客户端和所述多个客户端中的另一客户端共享;其中所述存储信息获取单元被进一步配置为在所述相应客户端处,从所述存储系统接收更改通知消息,所述更改通知消息指示所述数据的所述子集已被所述另一客户端所更改;并且其中所述高速缓存单元被进一步配置为从所述相应客户端所高速缓存的数据中移除所述数据的所述子集。
在本发明的第六方面,提供了一种用于扩展存储系统的高速缓存的装置。该装置包括:监控单元,被配置为监控所述存储系统的多个客户端对所述存储系统中的数据的访问;以及信息提供单元,被配置为向所述存储系统提供被所述多个客户端分别频繁访问的数据的信息,以使得所述存储系统基于所述信息来确定与能够被高速缓存的数据在所述存储系统中的存储有关的存储信息,所述能够被高速缓存的数据包括被所述多个客户端分别频繁访问的所述数据的合集。
在一个实施方式中,所述能够被高速缓存的数据的子集由所述多个客户端中的至少两个客户端共享。该装置进一步包括:通知单元,被配置为响应于所述至少两个客户端之一对所述数据的所述子集的更改,向所述存储系统发送更改通知消息,所述更改通知消息指示对所述数据的所述子集的更改。
利用本发明所提出的方案,通过存储系统的统一调度和协调,存储系统的客户端(即服务器)能够对相应客户端所频繁访问的数据在本地进行高速缓存,从而实现了对存储系统本地的高速缓存的扩展。由此,存储系统本地的有限的高速缓存可以支持更多的虚拟机和/或应用在相同客户端上运行。而且,通过从客户端本地读取频繁访问的数据,存储系统的处理器的工作负荷得以减轻。另外,可以利用存储系统厂商所提供的现有客户端侧软件、例如PowerPath实现客户端侧的操作,从而不会增加客户端侧软件管理负荷。
附图说明
结合附图并参考以下详细说明,本发明各实施方式的特征、优点及其他方面将变得更加明显,在此以示例性而非限制性的方式示出了本发明的若干实施方式。在附图中:
图1示出了常规的存储区域网络的示意性架构;
图2示出了根据本发明一个实施方式的存储区域网络的示意性架构;
图3示出了根据本发明一个实施方式的、在存储系统处执行的用于扩展存储系统的高速缓存的方法的流程图;
图4示出了根据本发明一个实施方式的、在服务器处执行的用于扩展存储系统的高速缓存的方法的流程图;
图5示例性示出了以表格形式提供的频繁访问的数据的信息;
图6示例性地示出了在存储系统处以表格形式维护的存储信息;
图7示例性地示出了从存储系统的存储空间到客户端本地存储设备的存储空间的地址映射;
图8示出了根据本发明另一个实施方式的用于扩展存储系统的高速缓存的方法的流程图;
图9示出了根据本发明一个实施方式的用于扩展存储系统的高速缓存的装置的框图;
图10示出了根据本发明另一个实施方式的用于扩展存储系统的高速缓存的装置的框图;
图11示出了根据本发明再一个实施方式的用于扩展存储系统的高速缓存的装置的框图;以及
图12示出了适于用来实践本发明实施方式的服务器/计算设备的示意性框图。
具体实施方式
下面将参考附图中示出的若干示例实施例来描述本发明的原理。应当理解,描述这些实施例仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。
图1示出了常规的存储区域网络10的示意性架构。如图1所示,存储区域网络10包括服务器1001、…、100n(统称为服务器100)、存储系统110以及虚拟机/应用程序管理模块122。服务器100可以通过通信介质耦合至存储系统110。例如,通信介质可以是因特网、内联网或者任何其他有线或无线连接。服务器100可以借助于该通信介质访问存储系统110并与之通信,例如用于执行数据读取或写入请求或者其他I/O(输入/输出)操作。由此,在本申请的上下文中,服务器100充当数据的请求方,而存储系统110充当数据的提供方。因而,在本文中,服务器也被称作“存储系统的客户端”,二者可以互换地使用。
存储系统110包括用于存储数据的磁盘阵列111。磁盘阵列111包括物理磁盘1121、…、112n(统称为磁盘112)。
存储系统110还包括通过对物理磁盘1121、…、112n进行虚拟化而得到的逻辑单元1151、…、115n。LUN(logical unit number)是分配给每个逻辑单元的编号。LUN可用于支持读/写操作的任何设备,诸如磁带机、磁盘、固态盘(SSD)等,但是最常见的是用于指代在存储区域网络中创建的逻辑盘。尽管LUN是一个或多个物理存储设备(例如磁盘)上的一组存储位置的实际逻辑标识符,但是术语LUN常常用于指代逻辑盘本身,并且在本文中也将使用此惯例。由此,在本文中,逻辑单元1151、…、115n也被称作LUN 1151、…、115n(统称为LUN 115)。
为了实现对频繁访问的数据的快速访问,存储系统110还包括高速缓存114。高速缓存114通常可以实现为存储系统110的存储器(未示出)的一部分。
虚拟机/应用程序管理模块122可以与服务器1001、…、100n以及存储系统110通信,以实现对各个服务器100和存储系统110的统一管理。虚拟机/应用程序管理模块122可以实现为独立于各个服务器100以及存储系统110的模块。例如,虚拟机/应用程序管理模块122可以在独立于各个服务器100以及存储系统110的服务器上实现。可替换地,虚拟机/应用程序管理模块122也可以在服务器1001、…、100n之一上实现。本发明的范围在此方面不受限制。此外,为了清晰起见,在图1中仅示出了一个虚拟机/应用程序管理模块122。然而,根据具体的应用场景,在存储区域网络中可以设置多个虚拟机/应用程序管理模块122。
每个服务器100包括硬件平台101。关于硬件平台101的细节将在后文进行详述。
每个服务器100上可以安装有管理器(hypervisor)102,其向服务器100上的每个虚拟机103动态地并且透明地分配服务器100的硬件资源。管理器102可以是诸如vSphereTM、MicrosoftHyper-V之类的商业上可获得的虚拟化软件。
服务器1001、…、100n中的多个服务器可以共享一个或多个LUN115上的存储空间,因而可能共享一个或多个LUN 115上的数据。例如,服务器1001、…、100n中的多个服务器共享LUN 1151上的数据121。数据121可以是被所述多个服务器分别频繁访问的数据。在本文中,“频繁访问的数据”指代在特定时间段内访问频率超过预定阈值的数据。例如,在一周内,如果对某项数据的访问次数超过了4次(预定阈值),则可认为该项数据是“频繁访问的数据”。“频繁访问的数据”例如包括、但不限于:WSRM(频繁读取、但是很少更改的)数据、WORM(Write Once Read Many,一次写入多次读取的)数据。在一个示例中,“频繁访问的数据”包括操作系统的系统文件,例如,VDI(Virtual Desktop Infrastructure,虚拟桌面基础架构)主镜像(master image)。
在一段时间内,所述多个服务器可能会分别频繁访问所共享的数据121的不同子集。为了实现对频繁访问的数据的快速访问,所述多个服务器中的每一个都期望存储系统110能够将其所频繁访问的数据121的子集存储在存储系统110本地的高速缓存114中。但是,高速缓存114的容量往往较小。当数据121的量较大时,高速缓存114则无法完全容纳它。因此,存储系统110的处理器(未示出)会按照预定义的规则来更新高速缓存114中的数据,例如,可以按照最近最少使用(Least Recently Used,LRU)算法等来更新数据。由此,当共享数据121的服务器的数量较大时,存储系统110的处理器会针对高速缓存114频繁地执行数据的调入和调出操作,从而消耗该处理器的大量计算资源。
另一方面,虚拟机1031、…、103n(统称为虚拟机103)可以在单个服务器100上运行,并且共享服务器100上的资源。例如,虚拟机1031、…、103n中的多个虚拟机可以在单个服务器100上共享相同的操作系统镜像。因而,当多个虚拟机中的每一个虚拟机启动或者其用户登录时,每个虚拟机都需要通过用于将服务器100耦合到存储系统110的网络而从存储系统110访问相同的系统文件,从而增大了该网络的工作负荷。
因此,期望能够在存储系统110的客户端(即服务器100)处对相应客户端所频繁访问的数据进行高速缓存,以实现对存储系统110本地的高速缓存的扩展。此外,还期望由存储系统110来调度/协调哪些数据能够在客户端处进行高速缓存,而且期望由存储系统110将与能够被高速缓存的数据有关的存储信息同步到各个客户端。进一步,还期望不增加存储系统110的客户端侧软件管理量。
为此,本发明提出了一种通过存储系统110的统一调度来扩展存储系统110的高速缓存的技术方案。图2示出了根据本发明一个实施方式的存储区域网络20的示意性架构。通过比较图2与图1可以看出,图2所示的存储区域网络20的架构与图1所示的存储区域网络10的架构的区别在于以下三个方面:(1)存储系统110进一步包括了高速缓存调度器115,(2)服务器1001、…、100n各自进一步包括了高速缓存模块1061、…、106n(统称为高速缓存模块106),并且(3)虚拟机/应用程序管理模块122进一步包括感知插件125。可以理解,高速缓存调度器115、高速缓存模块106以及感知插件125中的一个或多个被配置为实现根据本发明的扩展存储系统的高速缓存的方案。以下将参照图3至8对高速缓存调度器115、高速缓存模块106以及感知插件125所执行的操作进行描述。
图3示出了根据本发明一个实施方式的、在存储系统处执行的用于扩展存储系统的高速缓存的方法300的流程图。在一个实施方式中,方法300由图2所示的存储系统110中的高速缓存调度器115执行。然而,应当理解,方法300也可以由存储系统110中的其他适当的模块来执行。本发明的范围在此方面不受限制。
图4示出了根据本发明一个实施方式的、在服务器100处执行的用于扩展存储系统的高速缓存的方法400的流程图。在一个实施方式中,方法400由图2所示的服务器100中的高速缓存模块106执行。然而,应当理解,方法400也可以由服务器100中的其他适当的模块来执行。本发明的范围在此方面不受限制。
首先参照图3,在步骤S301,存储系统110获取存储系统110中的、被多个服务器分别频繁访问的数据的信息,该信息指示被多个服务器分别频繁访问的数据在存储系统110中的存储位置。由于存储系统110并不具有被多个服务器分别频繁访问的数据的信息,因此根据本发明的一个实施方式,存储系统110从用于监控多个服务器对存储系统110中的数据的访问的实体获取该信息。该实体可以在独立于各个服务器100以及存储系统110的服务器上实现。可替换地,该实体也可以在服务器1001、…、100n之一上实现。本发明的范围在此方面不受限制。关于该实体的细节将在后文参照图8进行详述。
在将存储系统110的物理磁盘1121、…、112n虚拟化为相应的逻辑单元1151、…、115n的情况下,被多个服务器分别频繁访问的数据的信息可以包括服务器的标识(服务器ID)、用于存储被多个服务器分别频繁访问的数据的逻辑单元的地址。该逻辑单元的地址例如包括:LUN的标识(LUN ID)、该LUN上用于存储该数据的起始地址、以及相对于该起始地址的偏移。
存储系统110可以从上述用于监控的实体获取以任何适当形式提供的被多个服务器分别频繁访问的数据的信息。图5中的表500示例性示出了以表格形式提供的上述信息。表500包括如下记录项目:服务器的标识(服务器ID)、LUN的标识(LUN ID)、起始地址以及偏移。
从表500中可见,服务器1001所频繁访问的数据存储于LUN A上的、从地址002到010的地址范围内。服务器1002所频繁访问的数据存储于LUN A上的、从401到800的地址范围内。服务器1003所频繁访问的数据存储于LUN C上的、从100到400的地址范围内。与服务器1001相同,服务器1004所频繁访问的数据也存储于LUN A上的、从002到010的地址范围内。换言之,服务器1004与服务器1001共享LUN A上的、从000到400的地址范围内的数据。
然而,应当理解,在未对存储系统110的物理磁盘1121、…、112n进行虚拟化的情况下,上述信息可以包括用于存储被多个服务器分别频繁访问的数据的物理设备(例如物理磁盘)的地址。
继续参照图3,在步骤S302,存储系统110基于被多个服务器100分别频繁访问的数据的信息来确定与能够被高速缓存的数据在存储系统110中的存储有关的存储信息,所述能够被高速缓存的数据包括被多个服务器100分别频繁访问的数据的合集。
在一个实施方式中,所述存储信息至少包括:存储系统110中用于存储数据的逻辑单元的标识、以及逻辑单元中用于存储数据的地址范围。逻辑单元的地址例如包括:LUN的标识(LUN ID)、该LUN上用于存储该数据的起始地址、以及相对于该起始地址的偏移。
在确定与能够被高速缓存的数据在存储系统110中的存储有关的存储信息时,存储系统110可以对被多个服务器分别频繁访问的数据的信息进行合并。
例如,如前所述,服务器1001、…、100n中的多个服务器可能共享一个或多个LUN上的数据,而该数据可能是被多个服务器中的一个或多个所频繁访问的数据。例如,如以上参照图5所描述的,服务器1004与服务器1001共享LUN A上的、从000到400的地址范围内的数据。因此,在确定能够被高速缓存的数据时,存储系统110仅考虑服务器1004和服务器1001之一所频繁访问的数据即可。进而,在确定与能够被高速缓存的数据在存储系统110中的存储有关的存储信息时,存储系统110也仅考虑与服务器1004和服务器1001之一所频繁访问的数据有关的存储信息。
再例如,仍然考虑图5的示例,服务器1001所频繁访问的数据存储于LUN A上、从地址002到010的地址范围内,而服务器1002所频繁访问的数据存储于LUN A上的、从401到800的地址范围内。因此,在确定上述存储信息时,存储系统110对相同LUN上的地址范围进行合并,从而将LUN A上的、从100到800的地址范围确定为上述存储信息之一。
此外,存储系统110可以以任何适当的形式对所确定的存储信息进行维护。图6中的表600示例性地示出了在存储系统110处以表格600的形式对存储信息进行维护。如图所示,表600包括如下记录项目:LUN的标识(LUN ID)、起始地址以及偏移。如表600所示,能够被服务器100在本地高速缓存的数据例如包括:存储于LUN A上的、从000到10的地址范围内的数据。应当理解,表600没有对与能够被高速缓存的数据有关的存储信息进行穷举,而只是示出了其中的一部分。可替换地,存储系统110可以基于所确定的存储信息来创建位图(bitmap),从而以位图的形式对所确定的存储信息进行维护。基于所确定的存储信息来创建位图能够按照本领域技术人员已知的方式进行,因而在此不再赘述。
回到图3,在步骤S303,存储系统110将所确定的存储信息同步到多个服务器100,以使得多个服务器100中的相应服务器在本地基于该存储信息来对相应服务器所频繁访问的数据进行高速缓存。应当理解,在此所述的同步是指存储系统110中所存储的该存储信息与服务器100中所存储的该存储信息在任何时间都是一致的。
在一个实施方式中,存储系统110将所确定的存储信息以表格(例如表600)的形式同步到多个服务器100。在另一实施方式中,存储系统110将所确定的存储信息以相应位图的形式同步到多个服务器100。
现在转向图4,与图3中的步骤S303对应地,在步骤S401,服务器100从存储系统110获取与能够被高速缓存的数据在存储系统中的存储有关的存储信息。如上所述,能够被高速缓存的数据包括存储系统110中的、被多个服务器100分别频繁访问的数据的合集。
在一个实施方式中,服务器100从存储系统110获取以表格(例如表600)的形式被提供的存储信息,并且在本地存储该表格,如图7所示。在另一实施方式中,服务器100从存储系统110获取以位图的形式被提供的存储信息。
接下来,在步骤S402,在多个服务器100中的相应服务器处,基于所获取的存储信息来对相应服务器所频繁访问的数据进行高速缓存。
在一个实施方式中,对相应服务器所频繁访问的数据进行高速缓存包括在相应服务器的本地存储设备中对数据进行高速缓存。所述本地存储设备例如包括、但不限于:存储器、固态盘(SSD、闪存器件等。
在一个实施方式中,对相应服务器所频繁访问的数据进行高速缓存还包括建立从存储系统的存储空间到本地存储设备的存储空间的地址映射。
服务器100可以以任何适当的形式建立从存储系统的存储空间到本地存储设备的存储空间的地址映射。图7示例性地示出了在服务器100处以表格700的形式所建立的地址映射的一个示例。如表700所示,表700包括多个记录,每个记录包括如下记录项目:LUN的标识(LUN ID)、起始地址、偏移以及地址指针。地址指针这一记录项目用于指示被高速缓存的数据在服务器100的存储器中的存储地址。从表700能够清晰地看出存储系统110中的哪些数据已被高速缓存在服务器100本地的存储器中、以及被高速缓存的数据在存储器中的存储地址。
应当理解,在初始状态下,表700中不包含任何数据。当服务器100上的虚拟机和/或应用程序启动时,响应于对数据的访问请求,虚拟机和/或应用程序查询表700,以确定所需的数据是否已在本地被高速缓存。如果是,则虚拟机和/或应用程序从表700中所指示的存储位置获取所需的数据;如果否,则进一步查询表600,以确定所需的数据是否属于能够被高速缓存的数据。如果所需的数据属于能够被高速缓存的数据,则虚拟机和/或应用程序从存储系统110获取所需的数据,将所需的数据高速缓存于服务器100本地的存储器中,并且针对所需的数据建立从存储系统110的存储空间到本地存储器的存储空间的地址映射,例如创建表700第一行中所示的记录。
图8示出了根据本发明一个实施方式的、在图2中的虚拟机/应用程序管理模块122处执行的用于扩展存储系统的高速缓存的方法800的流程图。在一个实施方式中,方法800由图2所示的虚拟机/应用程序管理模块122中的感知插件125执行。然而,应当理解,方法800也可以由虚拟机/应用程序管理模块122中的其他适当的模块来执行。本发明的范围在此方面不受限制。
如图8所示,在步骤S801,感知插件125监控多个服务器100对存储系统110中的数据的访问。监控对数据的访问例如包括监控访问的类型。访问的类型可以是读取访问、写入访问、同步、删除、复制等。感知插件125通过监控对数据的访问可以获知与访问关联的数据的特性以及数据的用途。数据的特性可以包括数据的类型以及数据的内容。
在步骤S802,感知插件125向存储系统110提供被多个服务器100分别频繁访问的数据的信息,以使得存储系统110基于该信息来确定与能够被高速缓存的数据在存储系统110中的存储有关的存储信息,该能够被高速缓存的数据包括被多个服务器100分别频繁访问的数据的合集。
以上参照图3-7对被多个服务器100分别频繁访问的数据的信息、以及能够被高速缓存的数据的描述同样适用于图8所示的实施方式,因而在此不再赘述。
如前所述,能够被高速缓存的数据的子集可以由多个服务器100中的至少两个服务器共享。例如,如参照图5所描述的,服务器1004与服务器1001共享LUN A上的、从000到400的地址范围内的数据。就此而言,在一个实施方式中,感知插件125响应于至少两个服务器之一对数据的子集的更改,向存储系统110发送更改通知消息,该更改通知消息指示对该数据的子集的更改。例如,操作系统的系统文件会被定期或不定期地更新。在能够被高速缓存的数据包括操作系统的系统文件的情况下,当该系统文件被更新时,感知插件125会响应于该更新而向存储系统110发送更改通知消息。
相应地,存储系统110从感知插件125接收该更改通知消息。接下来,存储系统110识别多个服务器中与该至少两个服务器之一共享该数据的子集的服务器。随后,存储系统110向所识别的服务器转发更改通知消息。相应地,所识别的服务器响应于接收到该更改通知消息,从在本地高速缓存的数据中移除该数据的子集。
在一个实施方式中,当感知插件125识别出被多个服务器100之一频繁访问的新数据时,感知插件125将该新数据的信息发送至存储系统110。存储系统110响应于接收到该新数据的信息,而利用该新数据的信息来更新本地存储的与能够被高速缓存的数据有关的存储信息,例如更新表600。此外,存储系统110还将更新后的存储信息同步到各个服务器100。
本发明的实施方式还提供了一种在存储系统处实施的、用于扩展存储系统的高速缓存的装置。图9示出了根据本发明一个实施方式的用于扩展存储系统的高速缓存的装置900的框图。在一个实施方式中,装置900在图2所示的存储系统110处实施。
如图所示,装置900包括:获取单元910,被配置为获取所述存储系统中的、被所述存储系统的多个客户端分别频繁访问的数据的信息;确定单元920,被配置为基于所述信息来确定与能够被高速缓存的数据在所述存储系统中的存储有关的存储信息,所述能够被高速缓存的数据包括被所述多个客户端分别频繁访问的所述数据的合集;以及同步单元930,被配置为将所述存储信息同步到所述多个客户端,以使得所述多个客户端中的相应客户端在本地基于所述存储信息来对所述相应客户端所频繁访问的数据进行高速缓存。
在一个实施方式中,所述存储信息至少包括:所述存储系统中用于存储所述数据的逻辑单元的标识,以及所述逻辑单元中用于存储所述数据的地址范围。
在一个实施方式中,获取单元910被进一步配置为从用于监控所述多个客户端对所述存储系统中的数据的访问的实体获取被所述多个客户端分别频繁访问的数据的所述信息。
在一个实施方式中,装置900进一步包括:接收单元,被配置为从所述实体接收更改通知消息,所述更改通知消息指示所述能够被高速缓存的数据的子集已被更改;识别单元,被配置为识别所述多个客户端中的共享所述数据的所述子集的客户端;以及转发单元,被配置为向所识别的客户端转发所述更改通知消息。
在一个实施方式中,获取单元910被进一步配置为从所述实体获取所述存储系统中的、被所述多个客户端之一频繁访问的新数据的信息;并且确定单元920被进一步配置为利用所述新数据的所述信息来更新所述存储信息。
本发明的实施方式还提供了一种在存储系统的客户端处实施的、用于扩展存储系统的高速缓存的装置。图10示出了根据本发明一个实施方式的用于扩展存储系统的高速缓存的装置1000的框图。在一个实施方式中,装置1000在图2所示的服务器100处实施。
如图所示,装置1000包括:存储信息获取单元1010,被配置为从所述存储系统获取与能够被高速缓存的数据在所述存储系统中的存储有关的存储信息,所述能够被高速缓存的数据包括所述存储系统中的、被所述存储系统的多个客户端分别频繁访问的数据的合集;以及高速缓存单元1020,被配置为在所述多个客户端中的相应客户端处,基于所述存储信息来对所述相应客户端所频繁访问的数据进行高速缓存。
在一个实施方式中,高速缓存单元1020被进一步配置为在所述相应客户端的本地存储设备中对所述数据进行高速缓存,并且存储信息获取单元1010被进一步配置为建立从所述存储系统的存储空间到所述本地存储设备的存储空间的地址映射。
在一个实施方式中,所述能够被高速缓存的数据的子集至少由所述相应客户端和所述多个客户端中的另一客户端共享。存储信息获取单元1010被进一步配置为在所述相应客户端处,从所述存储系统接收更改通知消息,所述更改通知消息指示所述数据的所述子集已被所述另一客户端所更改。高速缓存单元1020被进一步配置为从所述相应客户端所高速缓存的数据中移除所述数据的所述子集。
本发明的实施方式还提供了一种在用于监控对存储系统中的数据的访问的实体处实施的、用于扩展存储系统的高速缓存的装置。图11示出了根据本发明一个实施方式的用于扩展存储系统的高速缓存的装置1100的框图。在一个实施方式中,装置1100在图2所示的虚拟机/应用程序管理模块122处实施。
如图所示,装置1100包括:监控单元1110,被配置为监控所述存储系统的多个客户端对所述存储系统中的数据的访问;以及信息提供单元1120,被配置为向所述存储系统提供被所述多个客户端分别频繁访问的数据的信息,以使得所述存储系统基于所述信息来确定与能够被高速缓存的数据在所述存储系统中的存储有关的存储信息,所述能够被高速缓存的数据包括被所述多个客户端分别频繁访问的所述数据的合集。
在一个实施方式中,所述能够被高速缓存的数据的子集由所述多个客户端中的至少两个客户端共享。装置1100进一步包括:通知单元,被配置为响应于所述至少两个客户端之一对所述数据的所述子集的更改,向所述存储系统发送更改通知消息,所述更改通知消息指示对所述数据的所述子集的更改。
图12示出了适于用来实践本发明实施方式的服务器/计算设备1200的示意性框图。例如,图12所示的服务器/计算设备1200可以用于实现如参照图10所描述的用于扩展存储系统的高速缓存的装置1000。
如图12所示,服务器/计算设备1200包括虚拟机和应用程序容器1230、SCSI层1220、设备驱动层1210以及硬件平台1201。
虚拟机和应用程序容器1230包括虚拟机12031、12032、…、1203n(统称为虚拟机1203).在虚拟机1203上安装有文件系统1232。此外,在虚拟机1203上还运行有操作系统1231和应用程序1233。
SCSI层1220包括边缘高速缓存模块1221。设备驱动层1210包括HBA驱动器1211和高速缓存设备驱动器1212。
硬件平台包括CPU 1201、存储器1202、本地存储单元1203、HBA1204以及高速缓存设备1205。本地存储单元1203包括、但是不限于:SSD、闪存器件等。尽管在图12中将高速缓存设备1205以及存储器1202和本地存储单元1203示出为独立的模块,但是高速缓存设备1205可以实现为存储器1202或本地存储单元1203的一部分。
在一个实施方式中,边缘高速缓存模块1221、高速缓存设备驱动器1212以及高速缓存设备1205在图2所示的高速缓存模块106中实施。
在一个实施方式中,边缘高速缓存模块1221从存储系统110获取与能够被高速缓存的数据在存储系统中的存储有关的存储信息,该能够被高速缓存的数据包括被多个服务器分别频繁访问的数据的合集。在一个实施方式中,边缘高速缓存模块1221将所获取的存储信息以表600的形式进行维护。
在一个实施方式中,边缘高速缓存模块1221基于该存储信息来将服务器1200所频繁访问的数据高速缓存于高速缓存设备1205中。
在一个实施方式中,边缘高速缓存模块1221建立从存储系统110的存储空间到高速缓存设备1205的存储空间的地址映射。在一个实施方式中,在一个实施方式中,边缘高速缓存模块1221以表700的形式建立该地址映射。
在一个实施方式中,能够被高速缓存的数据的子集至少由服务器1200和另一服务器共享。在一个实施方式中,边缘高速缓存模块1221从存储系统110接收更改通知消息,该更改通知消息指示该数据的子集已被该另一服务器所更改。在一个实施方式中,边缘高速缓存模块1221响应于接收到该更改通知消息从高速缓存设备1205中该数据的子集。
特别地,根据本发明的实施例,上文参考图3、4和8描述的过程可以被实现为计算机软件程序。例如,本发明的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包含用于执行方法300、400和800的程序代码。
一般而言,本发明的各种示例实施例可以在硬件或专用电路、软件、逻辑,或其任何组合中实施。某些方面可以在硬件中实施,而其他方面可以在可以由控制器、微处理器或其他计算设备执行的固件或软件中实施。当本发明的实施例的各方面被图示或描述为框图、流程图或使用某些其他图形表示时,将理解此处描述的方框、装置、系统、技术或方法可以作为非限制性的示例在硬件、软件、固件、专用电路或逻辑、通用硬件或控制器或其他计算设备,或其某些组合中实施。
而且,流程图中的各框可以被看作是方法步骤,和/或计算机程序代码的操作生成的操作,和/或理解为执行相关功能的多个耦合的逻辑电路元件。例如,本发明的实施例包括计算机程序产品,该计算机程序产品包括有形地实现在机器可读介质上的计算机程序,该计算机程序包含被配置为实现上文描述方法的程序代码。
在公开的上下文内,机器可读介质可以是包含或存储用于或有关于指令执行系统、装置或设备的程序的任何有形介质。机器可读介质可以是机器可读信号介质或机器可读存储介质。机器可读介质可以包括但不限于电子的、磁的、光学的、电磁的、红外的或半导体系统、装置或设备,或其任意合适的组合。机器可读存储介质的更详细示例包括带有一根或多根导线的电气连接、便携式计算机磁盘、硬盘、随机存储存取器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、光存储设备、磁存储设备,或其任意合适的组合。
用于实现本发明的方法的计算机程序代码可以用一种或多种编程语言编写。这些计算机程序代码可以提供给通用计算机、专用计算机或其他可编程的数据处理装置的处理器,使得程序代码在被计算机或其他可编程的数据处理装置执行的时候,引起在流程图和/或框图中规定的功能/操作被实施。程序代码可以完全在计算机上、部分在计算机上、作为独立的软件包、部分在计算机上且部分在远程计算机上或完全在远程计算机或服务器上执行。
另外,尽管操作以特定顺序被描绘,但这并不应该理解为要求此类操作以示出的特定顺序或以相继顺序完成,或者执行所有图示的操作以获取期望结果。在某些情况下,多任务或并行处理会是有益的。同样地,尽管上述讨论包含了某些特定的实施细节,但这并不应解释为限制任何发明或权利要求的范围,而应解释为对可以针对特定发明的特定实施例的描述。本说明书中在分开的实施例的上下文中描述的某些特征也可以整合实施在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以分离地在多个实施例或在任意合适的子组合中实施。
针对前述本发明的示例实施例的各种修改、改变将在连同附图查看前述描述时对相关技术领域的技术人员变得明显。任何及所有修改将仍落入非限制的和本发明的示例实施例范围。此外,前述说明书和附图存在启发的益处,涉及本发明的这些实施例的技术领域的技术人员将会想到此处阐明的本发明的其他实施例。
将会理解,本法明的实施例不限于公开的特定实施例,并且修改和其他实施例都应包含于所附的权利要求范围内。尽管此处使用了特定的术语,但是它们仅在通用和描述的意义上使用,而并不用于限制目的。

Claims (20)

1.一种用于扩展存储系统的高速缓存的方法,包括:
获取所述存储系统中的、被所述存储系统的多个客户端分别频繁访问的数据的信息;
基于所述信息来确定与能够被高速缓存的数据在所述存储系统中的存储有关的存储信息,所述能够被高速缓存的数据包括被所述多个客户端分别频繁访问的所述数据的合集;以及
将所述存储信息同步到所述多个客户端,以使得所述多个客户端中的相应客户端在本地基于所述存储信息来对所述相应客户端所频繁访问的数据进行高速缓存。
2.根据权利要求1所述的方法,其中所述存储信息至少包括:所述存储系统中用于存储所述数据的逻辑单元的标识,以及所述逻辑单元中用于存储所述数据的地址范围。
3.根据权利要求1或2所述的方法,其中从用于监控所述多个客户端对所述存储系统中的数据的访问的实体获取被所述多个客户端分别频繁访问的数据的所述信息。
4.根据权利要求3所述的方法,进一步包括:
从所述实体接收更改通知消息,所述更改通知消息指示所述能够被高速缓存的数据的子集已被更改;
识别所述多个客户端中的共享所述数据的所述子集的客户端;以及
向所识别的客户端转发所述更改通知消息。
5.根据权利要求3所述的方法,进一步包括:
从所述实体获取所述存储系统中的、被所述多个客户端之一频繁访问的新数据的信息;以及
利用所述新数据的所述信息来更新所述存储信息。
6.一种用于扩展存储系统的高速缓存的方法,包括:
从所述存储系统获取与能够被高速缓存的数据在所述存储系统中的存储有关的存储信息,所述能够被高速缓存的数据包括所述存储系统中的、被所述存储系统的多个客户端分别频繁访问的数据的合集;以及
在所述多个客户端中的相应客户端处,基于所述存储信息来对所述相应客户端所频繁访问的数据进行高速缓存。
7.根据权利要求6所述的方法,其中对所述相应客户端所频繁访问的数据进行高速缓存包括:
在所述相应客户端的本地存储设备中对所述数据进行高速缓存;以及
建立从所述存储系统的存储空间到所述本地存储设备的存储空间的地址映射。
8.根据权利要求6或7所述的方法,其中所述能够被高速缓存的数据的子集至少由所述相应客户端和所述多个客户端中的另一客户端共享,所述方法进一步包括:
在所述相应客户端处,从所述存储系统接收更改通知消息,所述更改通知消息指示所述数据的所述子集已被所述另一客户端所更改;以及
从所述相应客户端所高速缓存的数据中移除所述数据的所述子集。
9.一种用于扩展存储系统的高速缓存的方法,包括:
监控所述存储系统的多个客户端对所述存储系统中的数据的访问;以及
向所述存储系统提供被所述多个客户端分别频繁访问的数据的信息,以使得所述存储系统基于所述信息来确定与能够被高速缓存的数据在所述存储系统中的存储有关的存储信息,所述能够被高速缓存的数据包括被所述多个客户端分别频繁访问的所述数据的合集。
10.根据权利要求9所述的方法,其中所述能够被高速缓存的数据的子集由所述多个客户端中的至少两个客户端共享,所述方法进一步包括:
响应于所述至少两个客户端之一对所述数据的所述子集的更改,向所述存储系统发送更改通知消息,所述更改通知消息指示对所述数据的所述子集的更改。
11.一种用于扩展存储系统的高速缓存的装置,包括:
获取单元,被配置为获取所述存储系统中的、被所述存储系统的多个客户端分别频繁访问的数据的信息;
确定单元,被配置为基于所述信息来确定与能够被高速缓存的数据在所述存储系统中的存储有关的存储信息,所述能够被高速缓存的数据包括被所述多个客户端分别频繁访问的所述数据的合集;以及
同步单元,被配置为将所述存储信息同步到所述多个客户端,以使得所述多个客户端中的相应客户端在本地基于所述存储信息来对所述相应客户端所频繁访问的数据进行高速缓存。
12.根据权利要求11所述的装置,其中所述存储信息至少包括:所述存储系统中用于存储所述数据的逻辑单元的标识,以及所述逻辑单元中用于存储所述数据的地址范围。
13.根据权利要求11或12所述的装置,其中所述获取单元被进一步配置为从用于监控所述多个客户端对所述存储系统中的数据的访问的实体获取被所述多个客户端分别频繁访问的数据的所述信息。
14.根据权利要求13所述的装置,进一步包括:
接收单元,被配置为从所述实体接收更改通知消息,所述更改通知消息指示所述能够被高速缓存的数据的子集已被更改;
识别单元,被配置为识别所述多个客户端中的共享所述数据的所述子集的客户端;以及
转发单元,被配置为向所识别的客户端转发所述更改通知消息。
15.根据权利要求13所述的装置,其中所述获取单元被进一步配置为从所述实体获取所述存储系统中的、被所述多个客户端之一频繁访问的新数据的信息;并且
所述确定单元被进一步配置为利用所述新数据的所述信息来更新所述存储信息。
16.一种用于扩展存储系统的高速缓存的装置,包括:
存储信息获取单元,被配置为从所述存储系统获取与能够被高速缓存的数据在所述存储系统中的存储有关的存储信息,所述能够被高速缓存的数据包括所述存储系统中的、被所述存储系统的多个客户端分别频繁访问的数据的合集;以及
高速缓存单元,被配置为在所述多个客户端中的相应客户端处,基于所述存储信息来对所述相应客户端所频繁访问的数据进行高速缓存。
17.根据权利要求16所述的装置,其中所述高速缓存单元被进一步配置为在所述相应客户端的本地存储设备中对所述数据进行高速缓存;并且
所述存储信息获取单元被进一步配置为建立从所述存储系统的存储空间到所述本地存储设备的存储空间的地址映射。
18.根据权利要求16或17所述的装置,其中所述能够被高速缓存的数据的子集至少由所述相应客户端和所述多个客户端中的另一客户端共享;
其中所述存储信息获取单元被进一步配置为在所述相应客户端处,从所述存储系统接收更改通知消息,所述更改通知消息指示所述数据的所述子集已被所述另一客户端所更改;并且
其中所述高速缓存单元被进一步配置为从所述相应客户端所高速缓存的数据中移除所述数据的所述子集。
19.一种用于扩展存储系统的高速缓存的装置,包括:
监控单元,被配置为监控所述存储系统的多个客户端对所述存储系统中的数据的访问;以及
信息提供单元,被配置为向所述存储系统提供被所述多个客户端分别频繁访问的数据的信息,以使得所述存储系统基于所述信息来确定与能够被高速缓存的数据在所述存储系统中的存储有关的存储信息,所述能够被高速缓存的数据包括被所述多个客户端分别频繁访问的所述数据的合集。
20.根据权利要求19所述的装置,其中所述能够被高速缓存的数据的子集由所述多个客户端中的至少两个客户端共享,所述装置进一步包括:
通知单元,被配置为响应于所述至少两个客户端之一对所述数据的所述子集的更改,向所述存储系统发送更改通知消息,所述更改通知消息指示对所述数据的所述子集的更改。
CN201510184385.6A 2015-04-17 2015-04-17 用于扩展存储系统的高速缓存的方法和装置 Pending CN106155575A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201510184385.6A CN106155575A (zh) 2015-04-17 2015-04-17 用于扩展存储系统的高速缓存的方法和装置
US15/096,728 US10635604B2 (en) 2015-04-17 2016-04-12 Extending a cache of a storage system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510184385.6A CN106155575A (zh) 2015-04-17 2015-04-17 用于扩展存储系统的高速缓存的方法和装置

Publications (1)

Publication Number Publication Date
CN106155575A true CN106155575A (zh) 2016-11-23

Family

ID=57277162

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510184385.6A Pending CN106155575A (zh) 2015-04-17 2015-04-17 用于扩展存储系统的高速缓存的方法和装置

Country Status (2)

Country Link
US (1) US10635604B2 (zh)
CN (1) CN106155575A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109120709A (zh) * 2018-09-03 2019-01-01 杭州云创共享网络科技有限公司 一种缓存方法、装置、设备及介质
CN109117088A (zh) * 2018-07-24 2019-01-01 联想(北京)有限公司 一种数据处理方法及系统
CN109213694A (zh) * 2017-06-30 2019-01-15 伊姆西Ip控股有限责任公司 用于缓存管理的方法和设备

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9584620B1 (en) 2015-12-31 2017-02-28 International Business Machines Corporation Caching in storage clients
US10015274B2 (en) 2015-12-31 2018-07-03 International Business Machines Corporation Enhanced storage clients
US11563806B1 (en) * 2019-05-17 2023-01-24 R-Stor, Inc. Content distribution network system and method

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7349902B1 (en) * 1999-08-04 2008-03-25 Hewlett-Packard Development Company, L.P. Content consistency in a data access network system
CN101299221A (zh) * 2008-07-08 2008-11-05 杭州华三通信技术有限公司 存储系统中文件信息的管理方法和存储系统
US20130073808A1 (en) * 2010-02-05 2013-03-21 Hareesh Puthalath Method and node entity for enhancing content delivery network
CN103513935A (zh) * 2012-06-21 2014-01-15 国际商业机器公司 用于管理高速缓存存储器的方法和系统
US20140282750A1 (en) * 2013-03-15 2014-09-18 Cox Communications, Inc. Systems, methods, and apparatus for accessing recordings of content items on multiple customer devices
CN104335189A (zh) * 2012-06-28 2015-02-04 国际商业机器公司 对共享存储资源的安全访问

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4278445B2 (ja) * 2003-06-18 2009-06-17 株式会社日立製作所 ネットワークシステム及びスイッチ
CN1981501A (zh) * 2004-03-12 2007-06-13 汤姆森许可公司 调度内容文件的分发的方法和缓存服务器网络
US20070088702A1 (en) * 2005-10-03 2007-04-19 Fridella Stephen A Intelligent network client for multi-protocol namespace redirection
BRPI0621480A2 (pt) * 2006-03-28 2011-12-13 Thomson Licensing programação centralizada para rede de fornecimento de conteúdo
US20110131341A1 (en) * 2009-11-30 2011-06-02 Microsoft Corporation Selective content pre-caching
US20110191446A1 (en) * 2010-01-29 2011-08-04 Clarendon Foundation, Inc. Storing and streaming media content
US9176759B1 (en) * 2011-03-16 2015-11-03 Google Inc. Monitoring and automatically managing applications
US20130219021A1 (en) * 2012-02-16 2013-08-22 International Business Machines Corporation Predictive caching for telecommunication towers using propagation of identification of items of high demand data at a geographic level
US9747227B1 (en) * 2013-05-24 2017-08-29 Qlogic, Corporation Method and system for transmitting information from a network device
US9639437B2 (en) * 2013-12-13 2017-05-02 Netapp, Inc. Techniques to manage non-disruptive SAN availability in a partitioned cluster
US9509747B2 (en) * 2014-01-23 2016-11-29 Dropbox, Inc. Content item synchronization by block
US20160342542A1 (en) * 2014-02-28 2016-11-24 Hewlett Packard Enterprise Development Lp Delay destage of data based on sync command
US20150370490A1 (en) * 2014-06-24 2015-12-24 Nec Europe Ltd. Optimizing ssd-based content caches in content delivery networks
US9461901B2 (en) * 2014-10-09 2016-10-04 Dell Products L.P. System and method for detection of elephant flows
US9753833B2 (en) * 2014-11-26 2017-09-05 Vmware, Inc. Workload selection and cache capacity planning for a virtual storage area network

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7349902B1 (en) * 1999-08-04 2008-03-25 Hewlett-Packard Development Company, L.P. Content consistency in a data access network system
CN101299221A (zh) * 2008-07-08 2008-11-05 杭州华三通信技术有限公司 存储系统中文件信息的管理方法和存储系统
US20130073808A1 (en) * 2010-02-05 2013-03-21 Hareesh Puthalath Method and node entity for enhancing content delivery network
CN103513935A (zh) * 2012-06-21 2014-01-15 国际商业机器公司 用于管理高速缓存存储器的方法和系统
CN104335189A (zh) * 2012-06-28 2015-02-04 国际商业机器公司 对共享存储资源的安全访问
US20140282750A1 (en) * 2013-03-15 2014-09-18 Cox Communications, Inc. Systems, methods, and apparatus for accessing recordings of content items on multiple customer devices

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109213694A (zh) * 2017-06-30 2019-01-15 伊姆西Ip控股有限责任公司 用于缓存管理的方法和设备
CN109117088A (zh) * 2018-07-24 2019-01-01 联想(北京)有限公司 一种数据处理方法及系统
CN109117088B (zh) * 2018-07-24 2021-02-19 联想(北京)有限公司 一种数据处理方法及系统
CN109120709A (zh) * 2018-09-03 2019-01-01 杭州云创共享网络科技有限公司 一种缓存方法、装置、设备及介质

Also Published As

Publication number Publication date
US20160335199A1 (en) 2016-11-17
US10635604B2 (en) 2020-04-28

Similar Documents

Publication Publication Date Title
CN106155575A (zh) 用于扩展存储系统的高速缓存的方法和装置
EP3039575B1 (en) Scalable distributed storage architecture
EP3039524B1 (en) Virtual disk blueprints for a virtualized storage area network
US9489231B2 (en) Selecting provisioning targets for new virtual machine instances
JP2019212336A (ja) 分散キャッシュクラスタ管理
US10157214B1 (en) Process for data migration between document stores
US20160371020A1 (en) Virtual machine data placement in a virtualized computing environment
US11411921B2 (en) Enabling access across private networks for a managed blockchain service
US10600144B2 (en) Disaggregated graphics asset management for virtualized graphics
US20150006787A1 (en) Techniques for dynamically relocating virtual disk file blocks between flash storage and hdd-based storage
US9203700B2 (en) Monitoring client information in a shared environment
US9852071B2 (en) Granting exclusive cache access using locality cache coherency state
US10387321B2 (en) Securing exclusive access to a copy of a metadata track via a process while the metadata track is held in a shared mode by another process
US10411977B2 (en) Visualization of workload distribution on server resources
US20150331761A1 (en) Host swap hypervisor that provides high availability for a host of virtual machines
US10237346B2 (en) Maintaining partition-tolerant distributed metadata
US10609139B2 (en) Coordinator ownership authentication in a distributed system with multiple storage object coordinators
CN117321581A (zh) 用于加速sql查询的确定性分布式高速缓存的技术
US9164909B1 (en) Method for the use of process identifiers to invalidate cached data in environments that allow processes to migrate between physical machines
US20150163223A1 (en) Managing Resources In A Distributed Computing Environment
US9229659B2 (en) Identifying and accessing reference data in an in-memory data grid
US20130318102A1 (en) Data Handling in a Cloud Computing Environment
US10936427B2 (en) Disaster recovery data fetching control
US20230229498A1 (en) Systems and methods with integrated memory pooling and direct swap caching
WO2023140911A1 (en) Systems and methods with integrated memory pooling and direct swap caching

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20200414

Address after: Massachusetts, USA

Applicant after: EMC IP Holding Company LLC

Address before: Ma Sazhusaizhou

Applicant before: EMC Corp.

RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20161123