CN103154909B - 分布式高速缓冲存储器一致性协议 - Google Patents

分布式高速缓冲存储器一致性协议 Download PDF

Info

Publication number
CN103154909B
CN103154909B CN201180048074.7A CN201180048074A CN103154909B CN 103154909 B CN103154909 B CN 103154909B CN 201180048074 A CN201180048074 A CN 201180048074A CN 103154909 B CN103154909 B CN 103154909B
Authority
CN
China
Prior art keywords
block
cache
memory
logic
speed cache
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.)
Active
Application number
CN201180048074.7A
Other languages
English (en)
Other versions
CN103154909A (zh
Inventor
A·普鲁希
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.)
Kioxia Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Publication of CN103154909A publication Critical patent/CN103154909A/zh
Application granted granted Critical
Publication of CN103154909B publication Critical patent/CN103154909B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • 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/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
    • 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/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/0842Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

描述了与分布式高速缓冲存储器一致性协议关联的系统、方法和其他实施例。根据一个实施例,一种方法包括:接收来自请求者的、对访问在由至少两个物理计算机器共享的块存储设备中的一个或多个存储器块的请求,以及确定对一个或多个存储器块中的任何存储器块的高速缓存权是否已经被授予了不同的请求者。如果高速缓存权尚未被授予不同的请求者,则向请求者授予对一个或多个存储器块的访问权。

Description

分布式高速缓冲存储器一致性协议
相关申请的交叉引用
本公开要求于2010年10月6日递交的第61/390,588号美国临时申请的权益,其通过引用的方式全部并入于此。
技术领域
本公开涉及存储技术,且具体地涉及分布式高速缓冲存储器一致性装置和用于实现分布式高速缓冲存储器一致性协议的方法。
背景技术
在此提供的背景技术描述用于大体呈现本公开的上下文的目的。当前发明人的工作(到在此背景技术部分描述的工作的程度)以及在提交时可能无法以其他方式作为现有技术衡量的本描述的诸多方面,既不被明确地也不被暗含地承认为本公开内容的现有技术。
存储区域网络(SAN)提供了可以由许多计算机器共享的大量存储容量。通过互联网(iSCSI)或光纤通道连接的方式,机器通常使用SCSI协议与SAN通信。往往,机器会包括SCSI接口卡或者控制器,其控制在机器与SAN之间的数据流。对于机器而言,SAN会显示得如同SAN本地连接到操作系统。因为所有机器都可以访问SAN中的共享存储器,所以通常禁用个体机器上的高速缓存以避免在多个机器上的高速缓冲存储器当中难于保持一致性的问题。
发明内容
在一个实施例中,一种装置包括:非瞬态存储介质,其配置作为与物理计算机器关联的高速缓冲存储器,所述物理计算机器与至少一个其他物理计算机器共享对块存储设备的访问。该装置也包括与物理计算机器关联的高速缓存逻辑。该高速缓存逻辑配置成在高速缓冲存储器中高速缓存数据。高速缓存逻辑高速缓存在指定范围内的存储器块中存储的数据而不高速缓存在指定范围之外的存储器块中存储的数据。该装置也包括块指定逻辑,其配置成将对块存储设备中的指定范围的存储器块的高速缓存权分配给高速缓存逻辑。高速缓存权是向高速缓存逻辑授予的独占权。
在另一种实施例中,一种方法包括:接收来自请求者的、对访问在由至少两个物理计算机器共享的块存储设备中的一个或多个存储器块的请求,以及确定对一个或多个存储器块中的任何存储器块的高速缓存权是否已经被授予给不同的请求者。如果高速缓存权尚未被授予不同的请求者,则向请求者授予对一个或多个存储器块的访问权。
在又一种实施例中,提供了配置用于耦合到物理计算机器的块存储器接口。该块存储器接口还配置成:从物理机器接收对访问在至少一个其他物理计算机器可访问的块存储设备中存储的数据的请求;确定对包括所请求的一个或多个存储器块的一个范围的存储器块的高速缓存权是否已经被分配给块存储器接口;如果高速缓存权已经被分配给块存储器接口,则提供在高速缓冲存储器中的数据的访问。高速缓存权是物理计算机器对高速缓存在块存储设备中的一个范围的存储器块的独占权。
附图说明
附图(并入说明书并且成为其一部分)示出了本发明的多个系统、多种方法,以及其他实施例。要理解的是附图示出的元件的界限(例如,框形、框组形或其他形状)代表界限的一个示例。本领域普通技术人员会理解:在一些示例中,可以将元件设计为多个元件或者可以将多个元件设计为一个元件。在一些示例中,显示为另一元件的内部元件的元件可以实现为其外部元件,反之亦然。此外,元件可能未按比例绘制。
图1示出了与分布式高速缓冲存储器一致性协议装置关联的系统的一个实施例。
图2示出了与分布式高速缓冲存储器一致性协议关联的方法的一个实施例。
图3示出了与分布式高速缓冲存储器一致性协议关联的方法的一个实施例。
图4示出了与分布式高速缓冲存储器一致性协议关联的方法的一个实施例。
图5示出了与分布式高速缓冲存储器一致性协议关联的方法的一个实施例。
图6示出了与分布式高速缓冲存储器一致性协议关联的方法的一个实施例。
图7示出了与分布式高速缓冲存储器一致性协议设备关联的系统的一个实施例。
具体实施方式
随着CPU性能增强,虚拟机器的应用变得广泛。诸如Vmware和WindowsHyper-V的操作系统允许单一物理机器运行操作系统的多个实例,每个表现如同完全独立的机器。虚拟机器的操作系统实例访问虚拟“磁盘”的形式为通常存储于SAN中的文件。在SAN上存储虚拟机器的虚拟磁盘文件允许虚拟机器在物理机器间无缝转移。只要SAN可被两个或更多个物理机器访问,虚拟机器就可以在机器间移动。
访问SAN通常牵涉到高延迟,使在主物理机器上对虚拟机器的虚拟磁盘文件进行本地高速缓存的选项很吸引人。然而,如在背景技术中所讨论的,当有多个物理机器访问同一SAN时,高速缓冲存储器的一致性成为一个问题。如果虚拟机器从一个物理机器(A)移动到另一个物理机器(B),则在机器B能够开始从移动后的虚拟机器高速缓存数据之前,需要使在机器A上用于虚拟机器的高速缓冲存储器失效。当虚拟机器使用的存储的形式为基于块设备(SAN)的文件,例如vmfs上的vmdk文件时,情况更加复杂。(在此情况中,块设备通常用诸如vmfs的群集可感知(cluster-aware)文件系统来格式化)。物理机器的高速缓冲存储器,其通常在块层之上操作,无法识别哪些块与任何给定虚拟机器的文件关联,并且同样不能够识别应该使哪些块失效。
在此描述的为与分布式高速缓冲存储器一致性协议关联的示例系统、方法和其他实施例。使用一致性协议,共享对块存储设备的访问权的计算机器能够在执行本地高速缓存的同时,动态地解决高速缓冲存储器一致性问题。一致性协议允许块存储设备与各个计算机器协作以促进计算机器当中的高速缓冲存储器一致性。
使用分布式高速缓冲存储器一致性协议,对块存储设备中的一个范围的存储器块的独占高速缓存权被指定给访问存储器块的计算机器。除非关于那些存储器块的高速缓存权已经被授予机器,否则计算机器不高速缓存存储器块。以此方式,集中式块指定逻辑确定:块存储设备中的哪些存储器块应该被给定计算机器所高速缓存,并且向上述块授予高速缓存权。块指定逻辑也控制给定计算机器对被另一计算机器所高速缓存的存储器块的访问。
因为虚拟机器趋向于访问专属存储块,该专属存储块充当作为用于虚拟机器的虚拟磁盘,虚拟机器通常不访问已经分配给其他虚拟机器的存储块。这使得在此描述的分布式高速缓冲存储器一致性协议很适合在虚拟机器环境中使用,因为其在促进在主机器上高速缓存虚拟机器的虚拟磁盘文件的同时允许虚拟机器无缝转移到另一主机器。
参考图1,示出了与分布式高速缓冲存储器一致性协议关联的系统100的一个实施例。系统100包括两个计算机器100、130,其共享对块存储设备160的访问权。计算机器110、130至少包括处理器(未示出),以及本地存储器,其被配置用作高速缓冲存储器115、135。高速缓冲存储器115、135存储来自块存储设备160的所选数据用于由计算机器110、130直接访问(例如,而不是请求在块存储设备中的数据或在块存储设备中存储数据)。访问在高速缓冲存储器110、135中的数据,而不是来自块存储设备160的数据,使计算机器I/O操作的速度加快。虽然图1仅示出了两个计算机器,但是可以用任何数量的计算机器来使用在此描述的分布式高速缓冲存储器一致性协议。为了促进在机器当中高速缓冲存储器一致性,在控制用于计算机器110、130的本地高速缓存的高速缓存逻辑120、140与控制对块存储设备160的访问权的块指定逻辑150之间建立了分布式高速缓冲存储器一致性协议。
分布式高速缓冲存储器一致性协议通过指定工作。指定是独占高速缓存权,其由块指定逻辑150分配给各个高速缓存逻辑120、140。针对一个范围的存储器块来授予高速缓存权。
在一些实施例中,高速缓存逻辑120、140实施在在计算机器中安装的SCSI接口卡上。该高速缓存逻辑可以实施为微软(Microsoft)操作系统中的“启动器”。块指定逻辑150可以实施为用于块存储设备160的控制器的一部分。在一些实施例中,高速缓存权可以关于在存储区域网(SAN)上创建的逻辑单元号(LUN)磁盘的一个范围的逻辑块地址(LBA)(一个特别实施例见图6)。指定因此能够表示为D(LUNID、LBA、长度、高速缓存逻辑ID),其中LBA为指定范围的起始地址并且长度为该范围的长度。块指定逻辑150保留指定的日志,使得在计算机器110、130重启前后指定能够持续。
出于下面的描述的目的,将描述仅一个计算机器110、关联的高速缓冲存储器115,以及高速缓存逻辑120的操作。计算机器130、关联的高速缓冲存储器135,以及高速缓存逻辑140以相应方式操作。根据分布式高速缓冲存储器一致性协议的一个实施例,高速缓存逻辑120仅高速缓存或者服务来自高速缓冲存储器115的、块指定逻辑150已经指定了高速缓存权对应的一个范围的存储器块内的数据。当计算机器110请求或者输出在高速缓冲存储器115中尚未存储的数据时,高速缓冲存储器115通常将会从块存储设备160取回数据并且将其存储在高速缓冲存储器115中以备计算机器110将来访问。使用分布式高速缓冲存储器一致性协议,在将来自块存储设备160的数据存储在高速缓冲存储器115中或者向计算机器110提供来自高速缓冲存储器的数据之前,高速缓冲存储器115将确定其是否拥有对该数据的高速缓存权。如果高速缓冲存储器115不拥有对该数据的高速缓存权,则不将该数据存储在高速缓冲存储器115中。如果该数据已经存在于高速缓冲存储器115中,高速缓冲存储器115将不向计算机器110提供该数据,因为另一高速缓冲存储器可能拥有高速缓存权,允许在高速缓冲存储器之间存在冲突的数据。
高速缓存逻辑120从块存储设备160满足计算机器110的I/O请求,该请求在高速缓存逻辑的指定高速缓存权之外。块指定逻辑150监测:块存储设备160中的哪些存储器块正在被计算机器110访问并且可以对于已访问的块,将高速缓存权分配给高速缓存逻辑120,如将在下面更详细地描述的那样。计算机器110、130使用在高速缓冲存储器115、135中的数据以执行操作,而不必须从块存储设备160提取数据。
块指定逻辑150控制对块存储设备160的访问权,使得仅允许拥有指定的高速缓存逻辑来向指定中范围的存储器块发出写入I/O。可以允许高速缓存逻辑来向不拥有对其指定的范围的存储器块发出读取I/O。如果高速缓存逻辑向一个或多个存储器块发出写入I/O,而对该一个或多个存储器块的高速缓存权已经被授予另一高速缓存逻辑,则块指定逻辑150将或者以有错误而拒绝写入的I/O,或者在完成写入I/O之前首先撤销冲突指定。
根据分布式高速缓冲存储器一致性协议的一个实施例,块指定逻辑150负责管理指定。基于高速缓存逻辑的数据访问图案,块指定逻辑150将指定分配给各个高速缓存逻辑。块指定逻辑150也有撤销指定或者修改指定的范围的能力。
一旦高速缓存逻辑120被授予对一个范围的存储器块的高速缓存权,高速缓存逻辑120就开始向高速缓冲存储器115中高速缓存该存储器块。在块指定逻辑150撤销指定之后,高速缓存逻辑120停止依靠在高速缓冲存储器115中针对在撤销的指定中的范围的存储器块的数据。高速缓存逻辑120将使高速缓冲存储器115中的数据失效,使得不再从高速缓冲存储器提供撤销的指定中的数据。如果高速缓存逻辑120接收来自块指定逻辑150的消息以修改指定中的存储器块的范围,高速缓存逻辑120更新高速缓冲存储器115的结构以反映修改的指定并且可以使不再属于已缩小的指定范围的数据失效。
图2示出了根据高速缓冲存储器一致性协议的高速缓存逻辑和块指定逻辑的操作200的序列的一个实施例。在高速缓存逻辑执行任何高速缓存或提供来自其高速缓冲存储器的数据之前,高速缓存逻辑执行210处所示的操作。高速缓存逻辑创建到在块存储设备上的明确限定的端口的TCP连接用于带外协议。在建立连接之后,高速缓存逻辑进行握手协议以确定公共协议的最新版本。高速缓存逻辑向块指定逻辑通告其能力。接着,高速缓存逻辑查询块指定逻辑,以发现已被分配给高速缓存逻辑的现有指定。其记录这些指定并且立刻开始高速缓存由指定所规定的范围的存储器块。高速缓冲存储器可以已经包含一些数据。高速缓存逻辑使高速缓冲存储器中的数据与从块指定逻辑接收的指定相一致。
在220处,高速缓存逻辑接收对在指定之外的数据的I/O请求。在230处,高速缓存逻辑将I/O请求发送给块存储设备。在240处,块指定逻辑确定对请求的数据的高速缓存权的指定是否已被授予。在250处,如果尚未授予指定,块指定逻辑将指定分配给请求访问的高速缓存逻辑。在接收指定之后,高速缓存逻辑可以开始高速缓存分配的范围的存储器块的数据。
如果已经授予包含所请求数据的任何存储器块的指定,并且如果在260处确定I/O请求为读取请求,则在270处,块存储设备将满足读取请求,而不向高速缓存逻辑分配新的指定。如果I/O请求为写入请求,在280处,块存储设备在撤销现有指定之前将不会满足请求。在这种情况下,有两种可能的结果。在一种结果中,由块指定逻辑控制的块存储设备以有错误而拒绝I/O。在另一结果中,块指定逻辑撤销现有指定并且满足写入请求。块指定逻辑继而可以选择将新的指定分配给刚执行写入操作的高速缓存逻辑。
图3示出了在分布式高速缓冲存储器一致性协议的实践中执行的高速缓存权指定方法300的一个实施例。在一些实施例中,方法300由块指定逻辑150来执行。在310处,接收对访问(读取或写入访问)在共享的块存储设备中的一个或多个存储器块的请求。在320处,确定对一个或多个存储器块中的任何存储器块的高速缓存权是否已被授予不同的请求者。在330处,如果高速缓存权尚未被授予不同的请求者,则批准访问存储器块的请求。
图4示出了在分布式高速缓冲存储器一致性协议的实践中执行的高速缓存权指定方法400的一个实施例。方法400示出了以下情况的一个可能的结果,其中在块存储设备中的存储器块受到计算机器和拥有对该存储器块的高速缓存权的另一计算机器的请求。在一些实施例中,方法400由块指定逻辑150实施。在410处,接收对访问(读取或写入访问)在共享的块存储设备中的一个或多个存储器块的请求。在420处,确定对一个或多个存储器块中的任何存储器块的高速缓存权是否已被授予不同的请求者。如果高速缓存权尚未被授予不同的请求者,则在440处批准访问存储器块的请求。如果高速缓存权已被授予不同的请求者,则在430处撤销高速缓存权并且在440处批准访问存储器块的请求。
图5示出了在分布式高速缓冲存储器一致性协议的实践中执行的高速缓存权指定方法500的一个实施例。方法500示出了以下情况的一个可能的结果,其中在块存储设备中的存储器块受到计算机器以及拥有对该存储器块的高速缓存权的另一计算机器的请求。在一些实施例中,方法500由块指定逻辑150实施。在510处,接收对访问(读取或写入访问)在共享的块存储设备中的一个或多个存储器块的请求。在520处,确定对一个或多个存储器块中的任何存储器块的高速缓存权是否已被授予不同的请求者。如果高速缓存权已被授予不同的请求者,则在530处拒绝对存储器块的访问权。如果高速缓存权尚未被授予不同的请求者,则在540处批准访问存储器块的请求。
图6示出了在分布式高速缓冲存储器一致性协议的实践中执行的高速缓存权指定方法600的一个实施例。方法600由高速缓存逻辑来执行,与方法300、400、500由块指定逻辑150来执行相反。在一些实施例中,方法600通过高速缓存逻辑120、140(图1)或块存储器接口设备720、740(图7)来执行。在610处,接收对访问(读取或写入访问)在共享的块存储设备中的一个或多个存储器块的请求。在620处,确定对存储器块的高速缓存权是否已被请求的接收者所持有。如果高速缓存权已被请求的接收者所持有,则在630处从高速缓冲存储器提供数据。如果高速缓存权尚未被请求的接收者所持有,则在640处从块存储设备服务请求。高速缓存一致性得以维持,因为根据方法600,高速缓存逻辑将仅在持有对数据的高速缓存权的高速缓冲存储器中存储数据或者从此类高速缓冲存储器中提供数据。因此仅一个高速缓冲存储器可以高速缓存任何给定的数据块,而另一高速缓冲存储器不能够修改该数据。
在一种实施例中,通过在高速缓存逻辑(120,图1)与块指定逻辑(150,图2)之间的带外(在数据路径之外的)通信的方式来建立该协议。该协议在TCP/IP上执行。块指定逻辑监听在块存储设备(160,图1)上预先限定的、公知的端口。高速缓存逻辑负责建立与块指定逻辑的连接并且除非该协议已经建立,否则高速缓存逻辑不应该执行任何高速缓存。在连接建立之后,高速缓存逻辑执行与块指定逻辑的协议握手,以建立高速缓存逻辑和块指定逻辑两者都支持的共用协议的最新版本。
块指定逻辑支持查询接口,借助该查询接口,高速缓存逻辑可以针对已分配到高速缓存逻辑的所有现有指定而查询块指定逻辑。例如,在计算机器重启之后使用此接口,因为指定为持续的。块指定逻辑也可以支持一种接口,借助该接口高速缓存逻辑可以公告其能力。例如,高速缓存逻辑可以传达支持的高速缓存类型(例如,读缓存(READ-CACHE)、通写(WRITE-THRU)、回写(WRITE-BACK))、可用的高速缓冲存储器的尺寸,或者每个块存储设备或作为整体能够处理的指定的最大数量。块指定逻辑也可以支持启动/停止高速缓存接口,其由高速缓存逻辑用于通知块指定逻辑其已经启动或停止,使得如果高速缓存逻辑未在执行高速缓存,块指定逻辑将不发送指定。
高速缓存逻辑提供一种接口,通过该接口块指定逻辑可以分配指定、撤销指定、修改现有指定,以及使在高速缓冲存储器中的一个范围的存储器块失效。高速缓存逻辑也提供了一种信息/调试接口。
在一些情况中,高速缓存逻辑可以向块存储设备发出SCSI永久保留(PERSISTENTRESERVATION)请求。如将在下文更详细描述的,此请求执行为允许更新当虚拟机器被创建或者在物理机器之间移动时所必需的元数据。跟随该请求,高速缓存逻辑通常将执行若干写入I/O请求,其可以由块指定逻辑按照至少两种不同的方式来处理。块指定逻辑可以撤销除发出永久保留的高速缓存逻辑之外所有高速缓存逻辑的所有现有指定。在此情况中,所有高速缓存逻辑可以使其高速缓冲存储器中的数据失效。替代地,块指定逻辑可以将失效请求发送给拥有对正在永久保留期间写入的存储器块的指定的高速缓存逻辑。此方案将永久保留的影响保持得相对较低。一旦永久保留的发出者进行去保留操作,高速缓存就可以从其之前中断处继续。
可以增强分布式高速缓冲存储器一致性协议以支持回写样式的高速缓存,其中各个本地高速缓冲存储器可以保持尚未与块存储设备同步的脏数据。这能够通过添加另一类型的、称之为互斥指定的指定来达成。此种类型的指定将仅允许任何给定的存储器块的单一读取器或写入器。因此,只有具有对存储器块的指定的高速缓存逻辑可以读取或写入块存储设备中的存储器块。用此类型的指定,如果块指定逻辑接收来自不拥有对请求的块的高速缓存权的指定的高速缓存逻辑的I/O请求,则块指定逻辑将确定另一高速缓存逻辑是否拥有该指定。如果无其他高速缓存逻辑拥有改指定,则块指定逻辑将该指定分配给发起请求的高速缓存逻辑,之后满足I/O请求。如果另一高速缓存逻辑拥有该指定,则块指定逻辑或者返回I/O错误,或者撤销或修改对该另一高速缓存逻辑的指定并且将该指定分配给发起请求的高速缓存逻辑,之后满足I/O请求。
图7示出了与分布式高速缓冲存储器一致性协议关联的群集式虚拟环境700的一个实施例。在虚拟环境700中,有两个物理计算机器710、730。物理计算机器710充当虚拟机器1和2的主机。而物理计算机器730充当虚拟机器3和4的主机。共享的LUN760暴露给机器710、730两者。计算机器710充当在此虚拟环境中的元数据管理器。元数据管理器用群集文件系统来格式化LUN760。元数据管理器负责对群集文件系统的元数据修改。
每个虚拟机器创建其自己的虚拟磁盘,该磁盘为LUN760上的文件。每个机器的虚拟磁盘文件用在LUN760中的相应号码来标记(“md”指的是元数据,而“u”指的是未分配的块)。在元数据管理器已创建虚拟磁盘文件之后,各个虚拟机器保留对这些文件的完全所有权。然而,任何涉及群集文件系统的数据的改变(例如虚拟磁盘的增加/删除/扩展)由元数据管理器(即机器710)来处理。每个计算机器710、730包括块存储器接口720、740所控制的高速缓冲存储器715、735。块存储器接口720、740与块指定逻辑750协调高速缓冲存储器操作。块存储器接口是执行类似于上面所描述的与高速缓存逻辑有关的、在上文结合图1和图6描述的以及如下描述的操作的设备。
在稳态读/写的场景中,每个虚拟机器访问在LUN760中的其相应的存储器块。在在此所描述的分布式高速缓冲存储器一致性协议下,块指定逻辑750将识别每个块存储器接口720、740所访问的块的范围并且会将对受访问的块的适当的指定分配给块存储器接口。
如果虚拟机器1从计算机器710移动到计算机器730,则元数据管理器(计算机器710)将发出永久保留以保留LUN760,从而可以使元数据更新。当永久保留在生效时,针对由元数据管理器写入的块,块指定逻辑750会将指定撤销发送给计算机器730。正在写入的块应该大多为元数据,造成计算机器730在其需要时重读来自LUN的上传的元数据。一旦虚拟机器1可以从计算机器730操作,块存储器接口740将访问用于虚拟机器1的虚拟磁盘文件。回顾到对这些块的高速缓存权仍由块存储器接口720持有。块指定逻辑750将撤销或修改分配给块存储器接口720的高速缓存权并且将新的高速缓存权分配给块存储器接口740。因为仅单一块存储器接口被允许拥有对在LUN760中的特定存储器块的高速缓存权,计算机器730将不向在计算机器710上运行的应用提供不正确的数据。
如果计算机器710创建新的虚拟机器,其将发出永久保留请求以保留LUN760,从而可以使元数据更新,以创建新的虚拟磁盘文件,并且从未分配的块中向其分配块范围。当永久保留生效时,块指定逻辑750将针对由元数据管理器写入的块,向计算机器730发送指定撤销。正在写入的块应该大多为元数据,造成计算机器730在其需要时重读来自LUN的上传的元数据。一旦计算机器710完成更新元数据和移除保留,虚拟机器可以开始向LUN760上的其虚拟磁盘文件写入和进行读取。块指定逻辑750会将新的高速缓存权指定分配给驻留有新的虚拟机器的计算机器710上的块存储器接口720。
以下包括在此采用的所选术语的限定。该限定包括各种组件的示例和/或形式,其属于术语的范围并且可以用于实施。示例不旨在是限定性的。术语的单数和复数形式都可以符合该限定。
提及“一个实施例”、“实施例”、“一个示例”、“示例”以及其他,表明此类描述的(一个)实施例或(一个)示例可以包括特定的特征、结构、特性、性质、要素或限制、但并不是每个实施例或示例都有必要包括所述特定的特征、结构、特性、性质、要素或限制。此外,重复使用短语“在一个实施例中”不必要指的是同一实施例,尽管其可以如此。
如在次使用的,“逻辑”包括但不限于硬件、固件、存储在非瞬态介质中的或在机器上执行中的指令,和/或其中每个的结合,以执行(一种)功能或(一种)动作,和/或其引起来自另外逻辑、方法,和/或系统的功能或动作。逻辑可以包括软件控制微处理器、分立逻辑(例如ASIC),模拟电路、数字电路、可编程逻辑设备、以及包含指令的存储器设备等。逻辑可以包括一个或多个门、门的结合,或其他电路部件。在描述多个逻辑处,有可能将多个逻辑并入一个物理逻辑。类似地,在描述单个逻辑处,有可能将单一逻辑在多个物理逻辑之间分布。在此描述的一个或多个部件和功能可以通过使用一个或多个逻辑元件来实现。
虽然出于简洁说明的目的,所描述的方法示出并且描述为一系列的框。但是该方法不限于框的顺序,因为一些框可以以不同的顺序发生并且/或者与所示出和描述的其他框同时发生。此外,可以使用少于所有示出的框来实现示例方法。框可以结合或分开成多个组件。除此之外,附加的和/或替代方法可以采用额外的、未示出的框。
术语“包含”或“包含有”在具体实施方式和权利要求书中采用的程度,旨在与术语“包括”当在权利要求中作为过渡词采用时所解释的方式类似。
尽管通过描述示例的方式示出了示例系统,方法等,并且尽管已经相当详细地描述了示例,但是本申请的意图不在于将所附权利要求的范围约束或以任何方式限制于此类细节。当然,不可能出于描述系统,方法以及在此描述的其他描述的目的,描述部件或方法的每个可想到的组合。因此,本公开不限于特定细节、代表性的装置,以及示出的和描述的说明性示例。因此,此应用旨在包括在所附权利要求书的范围内的替换、修改,以及变体。

Claims (20)

1.一种分布式高速缓冲存储器一致性装置,包括:
非瞬态存储介质,其配置作为与物理计算机器关联的高速缓冲存储器,所述物理计算机器与至少一个其他物理计算机器共享对块存储设备的访问;
与所述物理计算机器关联的高速缓存逻辑,所述高速缓存逻辑配置成在所述高速缓冲存储器中高速缓存数据,其中所述高速缓存逻辑高速缓存在指定范围内的存储器块中存储的数据而不高速缓存在所述指定范围之外的存储器块中存储的数据;
块指定逻辑,其配置成:
确定虚拟机器是否已经从所述至少一个其他物理计算机器移动到所述物理计算机器;
在确定所述虚拟机器已经移动到所述物理计算机器时撤销与所述至少一个其他物理计算机器关联的高速缓存权,其中高速缓存权是向高速缓存逻辑授予的独占权;
向所述物理计算机器将对所述块存储设备中的所述指定范围的存储器块的新高速缓存权分配给所述高速缓存逻辑。
2.根据权利要求1所述的装置,其中能够访问所述块存储设备的每个物理计算机器包括与所述块存储设备关联的相应的块指定逻辑以及高速缓存逻辑。
3.根据权利要求1所述的装置,其中所述高速缓存逻辑配置成通过从所述块存储设备访问所述数据而没有高速缓存所述数据,来满足来自所述物理机器的、对在所述指定范围之外存储的数据的I/O请求。
4.根据权利要求1所述的装置,其中所述块指定逻辑配置成拒绝来自第一高速缓存逻辑的、对在所述块存储设备中的是分配给第二高速缓存逻辑的指定范围的一部分的数据块的写入访问的请求。
5.根据权利要求1所述的装置,其中所述高速缓存逻辑配置成:在从所述块指定逻辑接收所述高速缓存权的撤销之后,使在所述高速缓冲存储器中的所述数据失效。
6.根据权利要求1所述的装置,其中所述块指定逻辑配置成:如果没有其他高速缓存逻辑具有对在所请求范围的存储器块中的任何存储器块的高速缓存权,则将对所述请求范围的存储器块的所述高速缓存权分配给请求访问所述请求范围的存储器块的高速缓存逻辑。
7.根据权利要求1所述的装置,其中所述块指定逻辑配置成向没有对存储器块的高速缓存权的高速缓存逻辑拒绝对在所述块存储设备中的所述存储器块的访问权。
8.一种用于实现分布式高速缓冲存储器一致性协议的方法,包括:
接收来自请求者的、对访问在由至少两个物理计算机器共享的块存储设备中的一个或多个存储器块的请求;
确定所述请求者是否是已经在所述至少两个物理计算机器之间移动的虚拟机器;确定对所述一个或多个存储器块中的任何存储器块的高速缓存权是否已经被授予了不同的请求者;
如果所述高速缓存权尚未被授予所述不同的请求者,则向所述请求者授予对所述一个或多个存储器块的访问权,以及
如果所述高速缓存权已经被授予了不同的请求者并且如果所述请求者是已经在所述至少两个物理计算机器之间移动的虚拟机器,则撤销所述高速缓存权。
9.根据权利要求8所述的方法,还包括:如果所述高速缓存权尚未被授予所述不同的请求者,则向所述请求者授予对包括所请求的存储器块的一个范围的存储器块的所述高速缓存权。
10.根据权利要求8所述的方法,还包括:如果所述高速缓存权已经被授予所述不同的请求者,则在授予所述请求者对所述一个或多个存储器块的访问权之前撤销所述不同的请求者的所述高速缓存权。
11.根据权利要求8所述的方法,还包括:如果所述高速缓存权已经被授予所述不同的请求者,则拒绝所述请求者访问所述一个或多个存储器块。
12.根据权利要求8所述的方法,还包括:保存授予请求者的高速缓存权的记录,使得当请求者重启时,所述请求者能够被提供有所述请求者目前所拥有的所述高速缓存权的证明。
13.根据权利要求8所述的方法,还包括:从第一请求者接收对所述一个或多个存储器块的永久保留并且当所述第一请求者访问所述块存储设备时,防止不同请求者访问所述块存储设备。
14.根据权利要求13所述的方法,还包括:作为对接收所述永久保留的回应,在允许所述第一请求者访问所述块存储设备之前,撤销授予所有请求者的所有高速缓存权。
15.根据权利要求13所述的方法,还包括:对于在所述永久保留期间在给定存储器块上所述第一请求者执行的每一次写入,撤销对包括所述给定存储器块的一个范围的存储器块的高速缓存权。
16.一种配置用于耦合到物理计算机器的块存储器接口,其中所述块存储器接口还配置成:
从所述物理机器接收对访问在至少一个其他物理计算机器可访问的块存储器设备中存储的数据的请求;
确定对包括所请求的一个或多个存储器块的一个范围的存储器块的高速缓存权是否已经被分配给所述块存储器接口;
确定所述请求是否是从已经从所述至少一个其他物理计算机器移动到所述物理计算机器的虚拟机器发送的;
如果所述高速缓存权已经被分配给所述块存储器接口,则提供对在高速缓冲存储器中的所述数据的访问;
此外其中所述高速缓存权是所述物理计算机器对高速缓存在所述块存储器设备中的一个范围的存储器块的独占权,以及
如果所述高速缓存权已经被授予了不同的请求者并且如果所述请求者是已经在所述至少两个物理计算机器之间移动的虚拟机器,则撤销所述高速缓存权。
17.根据权利要求16所述的块存储器接口,其中所述块存储器接口还配置成,在执行高速缓存操作之前,执行如下操作:
建立与所述块存储器设备的带外连接;
向所述块存储器设备通告所述块存储器接口高速缓存能力;以及
在所述块存储器设备中查询已经分配给所述块存储器接口的现有高速缓存权。
18.根据权利要求17所述的块存储器接口,其中所述块存储器接口还配置成:使得所述高速缓冲存储器中存在的数据与在查询现有高速缓存权的响应中识别出的高速缓存权相一致。
19.根据权利要求16所述的块存储器接口,其中操作系统的第一实例和第二实例运行在所述物理机器上,并且其中所述操作系统的所述第一实例和第二实例分别访问第一和第二文件,每个文件对应于一组存储器块,并且其中所述块存储器接口在未确定与所述第一文件和第二文件对应的是在所述高速缓存中存储的哪些存储器块的情况下执行高速缓存操作。
20.根据权利要求16所述的块存储器接口,其中所述块存储器接口还配置成:
接收对撤销范围的存储器块的高速缓存权的撤销;以及
使在所述高速缓冲存储器中存储的与所述撤销范围的存储器块对应的数据失效。
CN201180048074.7A 2010-10-06 2011-09-23 分布式高速缓冲存储器一致性协议 Active CN103154909B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US39058810P 2010-10-06 2010-10-06
US61/390,588 2010-10-06
PCT/US2011/052961 WO2012047551A1 (en) 2010-10-06 2011-09-23 Distributed cache coherency protocol

Publications (2)

Publication Number Publication Date
CN103154909A CN103154909A (zh) 2013-06-12
CN103154909B true CN103154909B (zh) 2016-02-17

Family

ID=44736104

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180048074.7A Active CN103154909B (zh) 2010-10-06 2011-09-23 分布式高速缓冲存储器一致性协议

Country Status (4)

Country Link
US (1) US9043560B2 (zh)
KR (1) KR101845110B1 (zh)
CN (1) CN103154909B (zh)
WO (1) WO2012047551A1 (zh)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9069587B2 (en) * 2011-10-31 2015-06-30 Stec, Inc. System and method to cache hypervisor data
US9350807B2 (en) * 2012-06-15 2016-05-24 Qlogic, Corporation Intelligent adapter for providing storage area network access and access to a local storage device
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
US9454487B2 (en) 2012-08-27 2016-09-27 Vmware, Inc. Transparent host-side caching of virtual disks located on shared storage
US9164949B1 (en) * 2012-12-28 2015-10-20 Emc Corporation System and method for LUN and cache management
US8984234B2 (en) 2013-01-11 2015-03-17 Lsi Corporation Subtractive validation of cache lines for virtual machines
US9501410B2 (en) * 2013-03-15 2016-11-22 Veritas Technologies Llc Providing local cache coherency in a shared storage environment
US9378141B1 (en) * 2013-04-05 2016-06-28 Veritas Technologies Llc Local cache pre-warming
CN103281200B (zh) * 2013-05-07 2016-07-06 成都交大光芒科技股份有限公司 一种用于轨道交通综合监控系统的冗余热备实现方法
US9619248B2 (en) * 2013-08-30 2017-04-11 Bluedata Software, Inc. Configuration manager and method for configuring a host system for processing a processing job in a virtual data-processing environment
US9454305B1 (en) 2014-01-27 2016-09-27 Qlogic, Corporation Method and system for managing storage reservation
CN103902354A (zh) * 2014-04-11 2014-07-02 浪潮电子信息产业股份有限公司 一种虚拟化应用中快速初始化磁盘的方法
US9423980B1 (en) 2014-06-12 2016-08-23 Qlogic, Corporation Methods and systems for automatically adding intelligent storage adapters to a cluster
US9436654B1 (en) 2014-06-23 2016-09-06 Qlogic, Corporation Methods and systems for processing task management functions in a cluster having an intelligent storage adapter
US9477424B1 (en) 2014-07-23 2016-10-25 Qlogic, Corporation Methods and systems for using an intelligent storage adapter for replication in a clustered environment
US9477414B1 (en) * 2014-08-20 2016-10-25 Qlogic, Corporation Methods and systems for improved caching with data recovery
US9460017B1 (en) 2014-09-26 2016-10-04 Qlogic, Corporation Methods and systems for efficient cache mirroring
US9483207B1 (en) 2015-01-09 2016-11-01 Qlogic, Corporation Methods and systems for efficient caching using an intelligent storage adapter
CN105549905B (zh) * 2015-12-09 2018-06-01 上海理工大学 一种多虚拟机访问分布式对象存储系统的方法
US10362143B2 (en) * 2016-09-29 2019-07-23 International Business Machines Corporation Dynamically transitioning the file system role of compute nodes for provisioning a storlet
CN106657356A (zh) * 2016-12-29 2017-05-10 郑州云海信息技术有限公司 一种云存储系统的数据写入方法、装置及云存储系统
CN113946286A (zh) * 2021-08-17 2022-01-18 丝路信息港云计算科技有限公司 一种云节点块级缓存方法,存储装置及服务器

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7552122B1 (en) * 2004-06-01 2009-06-23 Sanbolic, Inc. Methods and apparatus facilitating access to storage among multiple computers
CN101523361A (zh) * 2006-10-17 2009-09-02 Arm有限公司 数据处理设备中对共享存储器的写访问请求的处理

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4244572B2 (ja) * 2002-07-04 2009-03-25 ソニー株式会社 キャッシュ装置、およびキャッシュデータ管理方法、並びにコンピュータ・プログラム
US8019779B2 (en) * 2004-05-04 2011-09-13 International Business Machines Corporation Efficient locking protocol for sub-document concurrency control using prefix encoded node identifiers in XML databases
US7694065B2 (en) * 2004-12-28 2010-04-06 Sap Ag Distributed cache architecture
US20110004732A1 (en) * 2007-06-06 2011-01-06 3Leaf Networks, Inc. DMA in Distributed Shared Memory System
US8307177B2 (en) * 2008-09-05 2012-11-06 Commvault Systems, Inc. Systems and methods for management of virtualization data
WO2010111312A2 (en) * 2009-03-23 2010-09-30 Riverbed Technology, Inc. Virtualized data storage system architecture

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7552122B1 (en) * 2004-06-01 2009-06-23 Sanbolic, Inc. Methods and apparatus facilitating access to storage among multiple computers
CN101523361A (zh) * 2006-10-17 2009-09-02 Arm有限公司 数据处理设备中对共享存储器的写访问请求的处理

Also Published As

Publication number Publication date
CN103154909A (zh) 2013-06-12
WO2012047551A1 (en) 2012-04-12
KR20130142123A (ko) 2013-12-27
KR101845110B1 (ko) 2018-04-03
US9043560B2 (en) 2015-05-26
US20120089786A1 (en) 2012-04-12

Similar Documents

Publication Publication Date Title
CN103154909B (zh) 分布式高速缓冲存储器一致性协议
US9946460B2 (en) Storage subsystem and storage system architecture performing storage virtualization and method thereof
CN101419535B (zh) 虚拟机的分布式虚拟磁盘系统
US8782323B2 (en) Data storage management using a distributed cache scheme
JP5931196B2 (ja) I/oノード及び複数の計算ノードに備えられたキャッシュメモリの制御方法
KR20170069149A (ko) 데이터 처리 시스템의 캐시 일관성을 위한 스누프 필터
US8990954B2 (en) Distributed lock manager for file system objects in a shared file system
JP2020529673A (ja) 分散ストアによる高可用性データベース
CN109154910A (zh) 用于存储器中处理的高速缓存一致性
US20140032854A1 (en) Coherence Management Using a Coherent Domain Table
US10162757B2 (en) Proactive cache coherence
US8656119B2 (en) Storage system, control program and storage system control method
US20140040563A1 (en) Shared virtual memory management apparatus for providing cache-coherence
JP2021519456A (ja) キャッシュ・メモリ動作の調整
US20170364442A1 (en) Method for accessing data visitor directory in multi-core system and device
US9223799B1 (en) Lightweight metadata sharing protocol for location transparent file access
EP3688597B1 (en) Preemptive cache writeback with transaction support
CN107832097B (zh) 数据加载方法及装置
US20140289481A1 (en) Operation processing apparatus, information processing apparatus and method of controlling information processing apparatus
JP5518143B2 (ja) 仮想マシンの移行方法、サーバ、プログラム、及び、仮想マシンシステム
US6834281B1 (en) Method and apparatus to support multi-node direct access to file system data
KR100431511B1 (ko) 클러스터 시스템에서 부하 분산이 가능한 전역버퍼 관리방법
US7702634B1 (en) Method and apparatus to support multi-node direct write access to a file managed by a single node file system
CN109791521A (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
ASS Succession or assignment of patent right

Owner name: TOSHIBA K.K.

Free format text: FORMER OWNER: MAWIER INTERNATIONAL TRADE CO., LTD.

Effective date: 20140612

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20140612

Address after: Tokyo, Japan, Japan

Applicant after: Toshiba Corp

Address before: Babado J San Mega Le

Applicant before: Mawier International Trade Co., Ltd.

C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20180504

Address after: Tokyo, Japan, Japan

Patentee after: Toshiba Storage Corporation

Address before: Tokyo, Japan, Japan

Patentee before: Toshiba Corp

TR01 Transfer of patent right