CN1902601A - 数据存储系统 - Google Patents

数据存储系统 Download PDF

Info

Publication number
CN1902601A
CN1902601A CNA2004800380397A CN200480038039A CN1902601A CN 1902601 A CN1902601 A CN 1902601A CN A2004800380397 A CNA2004800380397 A CN A2004800380397A CN 200480038039 A CN200480038039 A CN 200480038039A CN 1902601 A CN1902601 A CN 1902601A
Authority
CN
China
Prior art keywords
controller
data
plate
bank
disk
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.)
Granted
Application number
CNA2004800380397A
Other languages
English (en)
Other versions
CN100435117C (zh
Inventor
威廉姆·F·巴克斯特三世
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
Publication of CN1902601A publication Critical patent/CN1902601A/zh
Application granted granted Critical
Publication of CN100435117C publication Critical patent/CN100435117C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/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/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • 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/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • 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/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/283Plural cache memories
    • G06F2212/284Plural cache memories being distributed

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

数据存储系统,其中:多个第一控制器/存储器板中的每一个均具有(i)连到主计算机/服务器的控制器;及(ii)与该板上的控制器通信的本地高速缓存区;多个第二控制器/存储器板中的每一个均具有(i)连到磁盘驱动器存储体的控制器;及(ii)与该板上的控制器通信的本地高速缓存区。由主计算机/服务器提供用于保存在磁盘驱动器存储体中的写数据被传给第二多个控制器/存储器板之一的本地高速缓存区。由磁盘驱动器存储体提供以为主计算机/服务器使用的读数据被传给第一多个控制器/存储器板之一的本地高速缓存区。

Description

数据存储系统
相关申请
本申请是2003年9月30日申请的未决专利申请10/675,038的后续申请。
通过引用并入本发明中
本专利申请通过引用将2003年9月30日申请的未决专利申请10/675,038的全部主题并入本申请中,所述未决申请题为“具有包交换网络的数据存储系统”,发明人为John K.Walton、William F.Baxter III、A.Chilton、Daniel Castel、Michael Bermingham和James M.Guyer,且该申请已转让给本发明的受让人。
技术领域
本发明总体上涉及数据存储系统,特别涉及具有冗余装置的数据存储系统,以在存储系统的部件或子组件出现故障时保护系统免于彻底失效。
背景技术
如本领域中所公知的,大型主计算机和服务器(在此统称为“主计算机/服务器”)要求大容量的数据存储系统。这些大型计算机/服务器通常包括数据处理器,其通过包括数据存储系统的外围设备对引入主计算机/服务器的数据执行许多运算。这些运算的结果输出到外围设备,包括存储系统。
一种类型的数据存储系统是磁盘存储系统。在此,磁盘驱动器存储体和主计算机/服务器可通过接口连在一起。接口包括“前端”或主计算机/服务器控制器(或控制器(director))及“后端”或磁盘控制器。接口以使控制器对主计算机/服务器透明的方式运行控制器(或控制器)。即,数据被保存在磁盘驱动器存储体中并从其取回,使得主计算机/服务器仅认为其只与其自身的本地磁盘驱动器一起运行。一种这样的系统在1993年4月27日授予Moshe Yanai、NatanVishlitzky、Bruno Alterescu和Daniel Castel的、题为“磁盘映射和数据检索系统和方法”的美国专利5,206,939中描述,该专利也已转让给本发明的受让人。
如该美国专利中所述,除主计算机/服务器控制器(或控制器)及磁盘控制器(控制器)以外,接口还可包括可寻址高速缓冲存储器。高速缓冲存储器是半导体存储器,其被提供来在保存在磁盘驱动器中之前快速保存来自主计算机/服务器的数据;另一方面,在发送给主计算机/服务器之前保存来自磁盘驱动器的数据。与磁盘驱动器中的磁存储器相比,作为半导体存储器的高速缓冲存储器在读和写数据方面比磁盘驱动器更快。
主计算机/服务器控制器、磁盘控制器和高速缓冲存储器通过底板印刷电路板互连。更具体地,磁盘控制器安装在磁盘控制器印刷电路板上。主计算机/服务器控制器安装在主计算机/服务器控制器印刷电路板上。高速缓冲存储器安装在高速缓冲存储器印刷电路板上。磁盘控制器、主计算机/服务器控制器及高速缓冲存储器印刷电路板插入底板印刷电路板中。为在控制器故障时提供数据完整性,底板印刷电路板具有一对总线。一组磁盘控制器被连接到一总线,另一组磁盘控制器被连接到另一总线。类似的,一组主计算机/服务器控制器连接到一总线,而另一组主计算机/服务器控制器连接到另一总线。高速缓冲存储器连接到两总线。每一总线均提供数据、地址和控制信息。
该装置在图1中示意性地示出。
因此,使用两总线B1、B2提供了冗余度,以在连接到一总线的控制器或磁盘驱动器发生故障时保护系统免于彻底失效。此外,相比具有单一总线的系统,使用两总线增加了系统的数据传送带宽。因而,在运行时,当主计算机/服务器12希望保存数据时,主计算机12向前端控制器14(即主计算机/服务器控制器)之一发出写请求以执行写指令。前端控制器14之一回答该请求并向主计算机12请求数据。在该写请求已传到前端控制器14中的请求控制器之后,该控制器14确定数据大小并在高速缓冲存储器18中预备空间以保存该请求。之后,前端控制器14在连接到该前端控制器14的地址存储器总线B1、B2之一上产生控制信号,以使能够传送到高速缓冲存储器18。其后,主计算机/服务器12将数据传送给该前端控制器14。前端控制器14接着通知主计算机/服务器12传送结束。前端控制器14在保存在高速缓冲存储器18中的表中查寻以确定后端控制器20(即磁盘控制器)中的哪一个将要处理该请求。表将主计算机/服务器12的地址映射到磁盘驱动器存储体14中的地址。之后,前端控制器14在“信箱区”(未示出并保存在高速缓冲存储器18中)中放进一用于后端控制器20的通知,该后端控制器将处理请求、数据量及数据的磁盘地址。当其它后端控制器20有空检查它们的“信箱区”时,其轮询高速缓冲存储器18。如果被轮询的“信箱区”表明传送将进行,则该后端控制器20处理该请求、寻址存储体22中的磁盘驱动器、从高速缓冲存储器18读数据、并将数据写到存储体22中的磁盘驱动器的地址。
当要从存储体22中的磁盘驱动器读数据到主计算机/服务器12时,系统以逆反的方式运行。更具体地,在读操作期间,由主计算机/服务器12建立读取指定存储器位置的数据(即所请求的数据块)的读请求。前端控制器之一14接收读请求并检查高速缓冲存储器18以确定所请求的数据块是否保存在高速缓冲存储器18中。如果所请求的数据块在高速缓冲存储器18中,从高速缓冲存储器18读取所请求的数据块并发送给主计算机/服务器12。如果前端控制器14确定所请求的数据块不在高速缓冲存储器18中(即所谓的“高速缓存缺失”),控制器14在高速缓冲存储器18中(即“信箱区”)写附注表明该高速缓冲存储器需要接收所请求的数据块。后端控制器20轮询高速缓冲存储器18以确定是否采取行动(即读所请求的数据块的操作)。轮询高速缓冲存储器18信箱区并检测读操作的后端控制器20读所请求的数据块并开始将该所请求的数据块保存在高速缓冲存储器18中。当被完全写到高速缓冲存储器18中后,读结束指示被放在高速缓冲存储器18的“信箱区”中。应注意,前端控制器14正为读结束指示而轮询高速缓冲存储器18。当正轮询的前端控制器之一14检测到读结束指示时,该前端控制器14将现在保存在高速缓冲存储器18中的所请求的数据块传送给主计算机/服务器12。
使用信箱区和轮询需要时间在主计算机/服务器12和磁盘驱动器存储体22之间传送数据,从而减少了接口的工作带宽。
现在参考图2,示出了数据存储系统100,其通过系统接口161在主计算机/服务器120和磁盘驱动器存储体140之间传送数据。数据存储系统100在2000年3月31日申请的未决美国专利申请US 2000054828中描述,其整个主题均通过引用并入本发明中。且还引用2002年3月6日公开的相应英国专利GB 2366425。
系统接口161包括:经端口12332连到主计算机/服务器120的多个(在此是32个)前端控制器1801-18032;经端口12333-12364连到磁盘驱动器存储体140的多个后端控制器2001-20032;数据传送区240,具有全局高速缓冲存储器220,其连到多个前端控制器1801-18016和后端控制器2001-20016;及消息接发网络260,仅用于数据传送区240,如图所示,其连接到多个前端控制器1801-18032和后端控制器2001-20032。前端和后端控制器1801-18032、2001-20032在功能上类似并包括微处理器(μP)299(即中央处理单元(CPU)和RAM)、消息引擎/CPU控制器314及在未决专利申请中详细描述的数据管道316。然而,足以在此说前端和后端控制器1801-18032、2001-20032响应于通过消息接发网络260在控制器1801-18032、2001-20032之间传递的消息而控制主计算机/服务器120和磁盘驱动器存储体140之间的数据传送。由于数据经数据传送区240通过全局高速缓冲存储器220,消息有助于在主计算机/服务器120和磁盘驱动器存储体140之间传送这样的数据。更具体地,在前端控制器1801-18032的情况下,数据通过前端控制器1801-18032中的数据管道221在主计算机和全局高速缓冲存储器220之间传递,且消息经过这些前端控制器1801-18032中的消息引擎/CPU控制器223。在后端控制器2001-20032的情况下,数据通过后端控制器2001-20032中的数据管道221在后端控制器2001-20032和磁盘驱动器存储体140和全局高速缓冲存储器220之间传递,且消息再次经过这些后端控制器2001-20032中的消息引擎/CPU控制器223。
由于这样的安排,数据传送区240中的高速缓冲存储器220不承担传送控制器消息接发的任务。而是消息接发网络260单独作用于数据传送区240,从而增加了系统接口161的工作带宽。
在运行中,首先考虑主计算机/服务器120的读请求(即主计算机/服务器120从磁盘驱动器存储体140请求数据),请求从主计算机120中的多个(在此为32个)主计算机处理器1211-12132传递给连到这些主计算机处理器1211-12132的前端控制器1801-18032对中的一对或多对。(应注意,在主计算机120中,主计算机处理器1211-12132中的每一个在此均连接到一对(但不限于一对)前端控制器1801-18032以在连到那里的前端控制器1801-18032之一出现故障时提供冗余。类似地,磁盘驱动器存储体140具有多个(在此为32个)磁盘驱动器1401-14032,每一磁盘驱动器1401-14032在此均被连接到一对(但不限于一对)后端控制器2001-20032以在连到那里的后端控制器2001-20032之一出现故障时提供冗余)。每一前端控制器1801-18032包括微处理器(μP)225(即中央处理单元(CPU)和RAM),并在上面引用的未决专利中有详细描述。然而,在此足以说微处理器225从全局高速缓冲存储器220请求数据。全局高速缓冲存储器220具有驻留高速缓存管理表(未示出)。每一控制器1801-18032、2001-20032有权访问驻留的高速缓存管理表,且每次前端控制器1801-18032请求数据传送时,前端控制器1801-18032必须询问全局高速缓冲存储器220以确定所请求的数据是否在该全局高速缓冲存储器220中。如果所请求的数据在该全局高速缓冲存储器220中(即读“命中”),前端控制器1801-18032,更具体地其中的微处理器225,协调对全局高速缓冲存储器220的DMA(直接存储器存取)操作,且所请求的数据被传送给发出请求的主计算机处理器1211-12132
另一方面,作为询问全局高速缓冲存储器220中的高速缓存管理表的结果,如果接收数据请求的前端控制器1801-18032确定所请求的数据不在全局高速缓冲存储器220中(即“缺失”),则这些前端控制器1801-18032推定所请求的数据在磁盘驱动器存储体140中。因此,接收数据请求的前端控制器1801-18032必须从后端控制器2001-20032之一请求数据,以使该后端控制器2001-20032从磁盘驱动器存储体140请求数据。哪一后端控制器2001-20032控制磁盘驱动器存储体140中的哪一磁盘驱动器的映射在加电初始化阶段确定。该映射保存在全局高速缓冲存储器220中。因此,当前端控制器1801-18032从全局高速缓冲存储器220请求数据并确定所请求的数据不在全局高速缓冲存储器220中时(即“缺失”),由全局高速缓冲存储器220中的映射通知前端控制器1801-18032哪一后端控制器2001-20032负责磁盘驱动器存储体140中的所请求数据。之后,发出请求的前端控制器1801-18032必须从映射指出的后端控制器2001-20032请求磁盘驱动器存储体140中的数据。在前端控制器1801-18032和后端控制器2001-20032中的适当之一(由保存在全局高速缓冲存储器220中的映射确定)之间的该请求是通过消息,该消息通过消息网络260从前端控制器1801-18032传给适当的后端控制器2001-20032。应注意,消息不经过全局高速缓冲存储器220(即不经过数据传送区240),但经过分开的、独立的消息网络260。因此,控制器1801-18032、2001-20032之间的通信通过消息网络260,但不通过全局高速缓冲存储器220。高速缓冲存储器220的有价值的带宽并没有用于控制器1801-18032、2001-20032之间的消息接发。
因此,当高速缓冲存储器220“读缺失”时,前端控制器1801-18032通过消息网络260向适当的后端控制器2001-20032发送消息以指示该后端控制器2001-20032将所请求的数据从磁盘驱动器存储体140传送到全局高速缓冲存储器220。当完成后,后端控制器2001-20032通过消息通知发出请求的前端控制器1801-18032:传送已完成,消息通过消息网络260从后端控制器2001-20032传给前端控制器1801-18032。响应于该确认信号,前端控制器1801-18032因而被通知:当高速缓存“读命中”时,该前端控制器1801-18032可将数据从全局高速缓冲存储器220传送给发出请求的主计算机处理器1211-12132
应注意,可有一个或多个后端控制器2001-20032负责所请求的数据。因此,如果只有一个后端控制器2001-20032负责所请求的数据,则发出请求的前端控制器1801-18032经消息网络260仅向该特别的一个后端控制器2001-20032发送单播消息。另一方面,如果一个以上后端控制器2001-20032负责所请求的数据,由发出请求的前端控制器1801-18032向负责所请求数据的所有后端控制器2001-20032发送多播消息(在此实施为一连串单播消息)。在任何情况下,对于单播或多播消息,该消息均通过消息网络260传送,而不通过数据传送区240(即不通过全局高速缓冲存储器220)。
同样,应注意,在主计算机处理器1211-12132之一可请求数据时,确认信号可通过消息网络260经多播(即单播序列)消息发送给发出请求的主计算机处理器1211或一个或多个其它主计算机处理器1211-12132以完成数据读操作。
考虑写操作,主计算机120希望将数据写入存储器中(即写入磁盘驱动器存储体140内)。前端控制器1801-18032之一从主计算机120接收数据并将其写入全局高速缓冲存储器220。之后,在一段时间之后,当后端控制器2001-20032确定该数据可从该高速缓冲存储器220中移除并保存在磁盘驱动器存储体140中时,前端控制器1801-18032请求传送该数据。在传送给磁盘驱动器存储体140之前,高速缓冲存储器220中的数据用位标记为“新数据”(即尚未传送给磁盘驱动器存储体140的数据,其是“写未决”的数据)。因此,如果在传送给磁盘驱动器存储体140之前对全局高速缓冲存储器220的同一存储位置(如特定银行账户)有多个写请求,则用最近的数据盖写高速缓冲存储器220中的数据。每次传送数据给全局高速缓冲存储器220时,控制传送的前端控制器1801-18032还通知主计算机120:传送结束,从而释放主计算机120用于其它数据传送。
当是将全局高速缓冲存储器220中的数据传送给磁盘驱动器存储体140的适当时间时,其由后端控制器2001-20032确定,后端控制器2001-20032将数据从全局高速缓冲存储器220传送给磁盘驱动器存储体140并复位与全局高速缓冲存储器220中的数据相关联的标记(即解除标记数据)以表明全局高速缓冲存储器220中的数据已被传送给磁盘驱动器存储体140。应注意,全局高速缓冲存储器220中解除标记的数据保留直到用新数据盖写为止。
因此,应注意,对于上面结合图1和图2描述的两个系统,使用了单一单片高速缓冲存储器,且所有控制器均管理该高速缓冲存储器的争用。还应注意,高速缓冲存储器均一律远离(或靠近)所有控制器。
发明内容
根据本发明,数据存储系统被配置为多个独立维护的高速缓冲存储器结构。更具体地,每一控制器控制相关的高速缓冲存储器。高速缓冲存储器数据相干性在控制器中的软件中进行管理,其还得到控制器硬件的帮助。
在一实施例中,数据存储系统用于通过系统接口在主计算机/服务器和磁盘驱动器存储体之间传送数据。系统接口包括多个第一控制器/存储器板,其中每一个均具有:(i)连到主计算机/服务器的控制器;及(ii)与该板上的控制器通信的本地高速缓存区。接口包括多个第二控制器/存储器,其中每一个均具有:(i)连到磁盘驱动器存储体的控制器;及(ii)与该板上的控制器通信的本地高速缓存区。写由主计算机/服务器提供给接口以保存在磁盘驱动器存储体中的数据,该数据被传给第二多个控制器/存储器板之一的本地高速缓存区,且其中第二多个控制器/存储器板的该控制器/存储器板上的控制器控制数据从这样的存储区之一传送到磁盘驱动器存储体。读由磁盘驱动器存储体提供给接口以为主计算机/服务器使用的数据,该数据被传给第一多个控制器/存储器板之一的本地高速缓存区,且其中第一多个控制器/存储器板的该板上的控制器控制数据从这样的存储区之一传送给主计算机/服务器。
在一实施例中,本地高速缓存区由具有控制器和高速缓存区的板之一上的控制器控制。
在一实施例中,多个第一控制器/存储器板和多个第二控制器/存储器板的本地高速缓存区提供数据传送区,用于在主计算机/服务器和磁盘驱动器存储体之间传送数据。
在一实施例中,网络被连接到多个第一控制器和多个第二控制器。
在一实施例中,响应于通过网络在第一控制器和第二控制器之间传递的消息,第一和第二控制器控制主计算机和磁盘驱动器存储体之间的数据传送,以用这样的通过数据传送区的数据传递控制主计算机/服务器和磁盘驱动器存储体之间的数据传送。
在一实施例中,网络为包交换网。
在一实施例中,消息包括信息包,每一消息均具有目的地字段。
本发明的一个或多个实施例的细节将在下面结合附图提出。本发明的其它特征、目标和优点很容易从本说明书和附图及权利要求书得出。
附图说明
图1为根据现有技术的数据存储系统的结构图。
图2为根据现有技术的数据存储系统的结构图。
图3为根据本发明的数据存储系统的结构图。
图4为在图3的数据存储系统中使用的多个控制器/存储器板之一的结构图。
图4A为在图2的数据存储系统中使用的信息包的简图。
图5为用于理解图3的系统的读和写操作的简图。
图6A和6B连在一起是图3的数据存储系统执行的读操作的流程图。
图7为图3的数据存储系统执行的写操作的流程图。
在不同的图中同一附图标记表示同一元件。
具体实施方式
现在参考图3,数据存储系统300被配置为多个独立保持的高速缓冲存储器结构。更具体地,每一控制器350、352控制相关的本地高速缓存区355。高速缓冲存储器数据相干性在控制器硬件的帮助下在控制器中的软件中进行管理。如下面将详述的,写由主计算机/服务器120提供的数据由后端(BE)控制器352之一控制(即“拥有”),从磁盘驱动器存储体140中的磁盘驱动器读数据由前端(FE)控制器350之一控制(即“拥有”)。
更具体地,数据系统300被示出用于通过系统接口316在主计算机/服务器120和磁盘驱动器存储体114之间传送数据。系统接口316包括:连到主计算机/服务器312的多个(在此例如4个)前端控制器/存储器印刷电路板3181-3184;连到磁盘驱动器存储体314的多个(在此例如4个)后端控制器/存储器印刷电路板3201-3204。前端控制器/存储器板3181-3184和后端控制器/存储器板3201-3204通过包交换网络354连在一起,即相互通信,包交换网络在此为交换结构,如图所示。
前端和后端控制器/存储器板3181-3184、3201-3204在功能上相似且分别包括控制器即FE控制器350或BE控制器352,视具体情况而定,还可包括本地高速缓冲存储器354。因此,前端控制器/存储器板3181-3184包括前端(FE)控制器350,后端控制器/存储器板3201-3204包括后端(BE)控制器352。应注意,FE350连接到主计算机/服务器120,BE352连接到磁盘驱动器存储体140。
更具体地,每一控制器350、352,无论是BE还是FE均包括微处理器(μP)329(即中央处理单元(CPU)和RAM)、具有消息引擎和存储器控制器的消息引擎/CPU控制器337、及数据管道338,其按如图所示进行安排并在2000年3月31日申请的美国未决专利申请09/540,828中详细描述,该申请的发明人是Yuval等人且该申请已转让给本发明的受让人,其整个主题通过引用并入本发明中。然而,足以在此说,响应于通过包交换网络354在控制器350、352之间传递的消息,前端和后端控制器350、352控制主计算机/服务器120和磁盘驱动器存储体140之间的数据传送。
由微处理器329在软件控制下创建的每一消息被保存在RAM的发送队列中,未示出。当从RAM的发送队列读该消息并经DMA操作通过消息网络包交换网络354传送给一个或多个其它控制器时,该消息在打包器中打包入信息包中。对于控制器,每一信息包包括下述字段:指令、源ID(即传送控制器);目的地ID(即接收控制器)地址、有效负载、及具有4字节循环冗余码检验(CRC)的结尾,如图4A中所示。
示例性的前端控制器/存储器板和后端控制器/存储器板如图4中所示。如上面所指出的,视具体情况,每一板可包括本地存储区354。控制器包括微处理器329、消息引擎/CPU控制器331和数据管道338。如图所示,数据管道338和消息引擎/CPU控制器331中的每一个包括连到交叉开关332的打包器和解包器。存储区335包括通过打包器和解包器连到交叉开关332的本地高速缓冲存储器357。如图3中所示,交叉开关连到包交换网络354。
应注意,由于在此正使用包交换,存储区包括打包器和解包器以使普通的包交换协议能用于数据管道、消息引擎/CPU控制器和存储区。数据包传递给存储区或从存储区传送给其它地方。
对于高速缓冲存储器中的数据,每一信息包包括下述字段:指令(如读、写)、源ID(即传送来源)和目的地ID(即具有数据控制的控制器板ID)。
还应注意,控制器/存储器板上的存储区能够经该板上的交叉开关与同一板上的数据管道通信。因此,如上所述,交叉开关是整个包交换网络部分354的一部分。因此,前端和后端控制器350、352及高速缓存部分355通过包交换网络相互通信,所述网络包括交叉开关332和包交换部分354。
每一信息包均被发送给交叉开关332。信息包的目的地部分用于指明消息的目的地并被开关332解码以确定消息通过包交换网络部分354的路由选择。解码过程使用包交换网络部分354中的路由表(未示出),该路由表由控制器在加电期间通过初始化而被初始化,解码过程还使用诊断处理器(控制器)(未示出)。路由表提供信息包的目的地地址部分与消息将被引向的控制器350、352之一之间的联系,所述目的地地址部分指明消息的路由选择。
在此再次参考图4,信息包使用包交换网络354中的解码器表(未示出),该路由表由控制器在加电期间通过初始化而被初始化,信息包还使用诊断处理器(控制器)(未示出)。路由表提供信息包的目的地地址部分与高速缓冲存储器中写或读数据的位置之间的联系,所述目的地地址部分指明数据的路由选择。
再次参考图3,关于用户数据(即将传送给主计算机/服务器120或从主计算机/服务器120传送的数据),包交换网络354用于使控制器350、352互连,且数据通过网络354以标准“原子”知识块或信息包进行传送。写数据(即主计算机/服务器120中将被写入磁盘驱动器存储体140的数据)被发送给连到磁盘驱动器存储体140的适当后端控制器(在此有时称为BE)并将数据写入该存储体以降级(即从BE传送给磁盘驱动器)。读数据(即磁盘驱动器存储体140上将要写入主计算机/服务器120的数据)被发送给连到请求该数据的主计算机/服务器120的处理器的适当前端控制器(在此有时称为FE)。写数据总是发送给BE,即使其在FE控制的高速缓冲存储器(即FE本地高速缓存区355)中“命中”也是如此。
前端控制器(FE)将不同的协议变换为一般数据请求(即系统的协议)。FE是基本变换器和路由器并被要求理解怎样发送请求(即哪一BE将接收请求),但不控制高速缓冲存储器相干性。关于读命中性能,FE控制它们的本地高速缓冲存储器355。FE有效“拥有”(即保持独立控制)其自己的本地高速缓冲存储器355结构,并依赖BE提供数据相干性管理、服务一般数据请求和提供适当的确认。
后端控制器(BE)在其主连接(即它们所连接的磁盘驱动器存储体对140中的主要磁盘驱动器)上“拥有”驱动器。BE还“拥有”系统相干性以将它们的驱动器数据缓存在它们的本地高速缓冲存储器355中。全体BE“拥有”和管理系统存储映射,其提供控制器之间的联系,且提供哪一或哪些控制器在其本地高速缓冲存储器355中具有所请求的数据。
包交换网络354支持消息接发通信和用户数据移动。网络可以是“只进栈”模型或“进栈-出栈”模型。
因此,前端控制器350和后端控制器352均单独工作,且不受限于共享一个全局高速缓冲存储器结构。
下述是高速缓冲存储器工作的例子。
在描述读和写操作的例子之前,参考图5。在此,前端控制器板连在主计算机/服务器120和包交换网络354之间,后端控制器/存储器板连在包交换网络354和磁盘驱动器存储体140之间。应注意,在每一控制器即(例如)前端控制器3184或后端控制器3204上,该板上的本地高速缓存区355和控制器通过该板上的交叉开关332(图3和图4)相互通信。
现在参考图6A和6B,将对读操作进行描述。
在步骤602,响应于来自主计算机120的读请求开始读请求执行。接着,在步骤604,从主计算机120接收读请求的前端(FE)控制器350分析该请求。之后,在步骤606,前端FE控制器350检查标记(即请求的地址)以确定将要读取的所请求数据是否在接收该读请求的前端控制器的本地高速缓冲存储器355中。注意,来自主计算机/服务器120的请求传给FE以将主计算机/服务器地址变换为系统地址。
在步骤608中,如果接收该读请求的前端控制器确定将要读的数据在其本地高速缓冲存储器355中,则在步骤610,读该本地高速缓冲存储器中的数据。之后,在步骤612,所读的数据由接收请求的前端控制器返回给请求这些数据的主计算机120。在步骤614,读结束。
另一方面,如果在步骤608确定将要读的数据不在其本地高速缓冲存储器355中,接收读请求的前端控制器从其系统映射(图5)确定哪一后端控制器362控制(即“拥有”)所请求的数据。应注意,系统映射指向一个且唯一一个BE,其控制系统内数据的状态。
在步骤616,接收读请求的前端控制器还为所读的数据在其本地高速缓冲存储器355中分配空间(即存储槽)。
在步骤618,接收读请求的前端控制器经包交换网络354发送消息给确定“拥有”所请求数据的后端控制器362之一。
在步骤620,“拥有”所请求数据的后端控制器检查其磁道表查寻,以验证所请求的数据在当前未被某些其它控制器活动地写,并确定本地高速缓存内的指针以存取标记。
之后,后端控制器检查标记的内容以确定所请求读的数据是否存在于某些其它控制器的本地高速缓存中的该后端控制器的本地高速缓冲存储器355中、或存在于连到该后端控制器的磁盘驱动器中。如果所请求读的数据不在某些其它控制器中,则后端控制器更新其标记以显示共享的拷贝将驻留在请求者的本地高速缓存中,并转发消息给数据的当前持有者以代表其行动以将数据提供给请求者并发送消息给FE:数据可在FE高速缓冲存储器中获得。在步骤626,如果被确定为当前持有所请求数据的控制器返回其不再有数据的消息(先前已使其高速缓冲存储器线无效),则后端控制器将准备从磁盘存取数据。
如果所请求的数据存在于该后端控制器中(即在该后端控制器的本地高速缓冲存储器355中或在连到该后端控制器的磁盘驱动器中),在步骤622,在该后端控制器中的标记处理用于确定所请求的数据是否在该控制器的本地高速缓冲存储器355中,步骤624。步骤626,如果数据不在该控制器本地高速缓冲存储器355中,则该后端控制器在其本地高速缓冲存储器355中创建高速缓冲存储器线。应注意,作为选择,后端不需要创建并保存整个高速缓冲存储器线数据,其仅需要创建标记,在标记内容中指明数据拷贝将驻留在发出请求的前端控制器的本地高速缓冲存储器355中。在步骤628,后端控制器从磁盘驱动器读数据并将其发送给请求数据的前端控制器的本地高速缓冲存储器。在步骤630,现在在其本地高速缓冲存储器355中具有数据的前端控制器350将其本地高速缓冲存储器记录标记为有效、保存所读的数据、并将所读的数据转发给主计算机120。读过程在步骤632结束。
另一方面,如果在步骤624确定数据在那个控制器的本地高速缓冲存储器355中,则在步骤634,后端控制器352将拷贝发送给请求数据的前端控制器350的本地高速缓冲存储器。在步骤636,该后端控制器352还将其标记更新为:具有所读数据的共享拷贝。在步骤638,后端控制器352还向请求所读数据的前端控制器发送消息:数据可用于保存在该前端控制器的本地高速缓冲存储器355中。
请求所读数据的前端控制器将其本地高速缓冲存储器中的本地高速缓存区355标记为有效。在步骤642,请求所读数据的前端控制器将其本地高速缓存区355中的数据转发给主计算机/服务器120。读请求在步骤644结束。
如果在步骤622确定本地高速缓存标记存在且数据不在本地高速缓存区355中,步骤624,且标记表明数据存在于某些其它控制器中,则在步骤646,后端控制器确定其它控制器中的哪一个具有数据。在步骤648,后端控制器将更新其标记以表明发出请求的前端控制器将有数据的拷贝。接着在步骤650,后端控制器将向所确定的其它控制器发送请求以将其将被读的数据拷贝发送给发出请求的控制器。在步骤652,该确定的其它控制器将代表后端控制器行动以把将被读的数据发送给发出请求的控制器的本地高速缓存区355,并将通知发出请求的控制器:数据可用。之后,前端控制器将以上述方式把数据发送给主计算机/服务器120,步骤640-644。
现在参考图7,将描述写操作。
在步骤702,响应于从主计算机120到前端控制器350的写请求开始写请求执行。接着,在步骤704,从主计算机120接收写请求的前端(FE)控制器350分析请求并在其本地高速缓冲存储器355中为所写的数据分配存储槽。
在步骤704,接收写请求的前端控制器从其系统映射(图5)确定那一后端控制器控制磁盘。应注意,来自主计算机/服务器120的请求传给接收请求的前端控制器以进行地址变换,即从主计算机/服务器地址变换为系统地址。
在步骤706,接收请求的前端控制器将请求发送给被确定控制磁盘驱动器的后端控制器,来自主计算机的数据将被写入该磁盘驱动器中。
“拥有”所请求数据的后端控制器在其磁道表中检查以验证所请求的数据当前未被其它控制器活动地写,并确定本地高速缓存内的指针以存取标记。其还从标记确定在其它控制器的本地高速缓存中是否有共享的读拷贝,如果是,则向那些控制器发出高速缓冲存储器线无效请求。
在步骤708,被确定控制来自主计算机的数据将被写入到其的那一磁盘驱动器的后端控制器在其本地高速缓冲存储器355中为所写的数据分配存储槽(如果尚未存在的话),并将存储槽地址发送给从主计算机接收请求的前端控制器以写数据。
在步骤710,前端控制器350将来自主计算机120的数据在所分配的存储槽写入其本地高速缓冲存储器355中,并将同样的数据发送给被确定控制来自主计算机的数据将被写入到其的那一磁盘驱动器的后端控制器。
在步骤712,被确定控制来自主计算机的数据将被写入到其的那一磁盘驱动器的后端控制器352将其从前端控制器接收的数据在所分配的存储槽写入该后端控制器本地高速缓冲存储器355。因此,有两个数据拷贝将被写入磁盘驱动器:一个在接收写请求的前端控制器的本地高速缓存中,另一在连到这样的数据将被写入到其的那一磁盘驱动器的后端控制器中。
在步骤714,接收写请求的前端控制器向主计算机120发送确认:所写的数据已被传送。
在步骤716,连到这样的数据将被写入到其的那一磁盘驱动器的后端控制器将其本地高速缓冲存储器355的所分配存储槽中的数据降级到磁盘驱动器,并向从主计算机接收请求的前端控制器发送写完成通知。
在步骤718,前端和后端控制器350、352使它们分配的高速缓冲存储器线无效以释放先前分配的高速缓冲存储器线。
在步骤720,写操作结束。
本发明的多个实施例已进行描述。但是,应该理解,在不背离本发明精神和范围的情况下可进行多种修改。因此,其它实施例也在本
发明的范围之内。

Claims (19)

1、数据存储系统,包括:
第一控制器/存储器板,其具有(i)连到主计算机/服务器的控制器;及(ii)与该板上的控制器通信的本地高速缓存区;
第二控制器/存储器板,其具有(i)连到磁盘驱动器存储体的控制器;及(ii)与该板上的控制器通信的本地高速缓存区;
其中由主计算机/服务器提供用于保存在磁盘驱动器存储体中的写数据被传给第二多个控制器/存储器板之一的本地高速缓存区;
其中第二多个控制器/存储器板的前述板上的控制器控制从前述存储区到磁盘驱动器存储体的数据传送;
其中由磁盘驱动器存储体提供以为主计算机/服务器使用的读数据被传给第一多个控制器/存储器板之一的本地高速缓存区;及
其中第一多个控制器/存储器板的前述板上的控制器控制从前述存储区到主计算机/服务器的数据传送。
2、根据权利要求1的数据存储系统,其中本地高速缓存区由板之一上的控制器控制,所述板既具有这样的控制器又具有高速缓存区。
3、根据权利要求2的数据存储系统,其中多个第一控制器/存储器板和多个第二控制器/存储器板的本地高速缓存区为在主计算机/服务器和磁盘驱动器存储体之间传送的数据提供数据传送区。
4、根据权利要求3的数据存储系统,包括连接到多个第一控制器和多个第二控制器的网络。
5、根据权利要求4的数据存储系统,其中响应于通过网络在第一控制器和第二控制器之间传递的消息,第一和第二控制器控制主计算机和磁盘驱动器存储体之间的数据传送以用这样的通过数据传送区传递的数据控制主计算机/服务器和磁盘驱动器存储体之间的数据传送。
6、根据权利要求5的数据存储系统,其中网络是包交换网络。
7、根据权利要求6的数据存储系统,其中消息包括信息包,每一信息包具有目的地字段。
8、用于通过系统接口在主计算机/存储体和磁盘驱动器存储体之间传送数据的数据存储系统,所述系统接口包括:
(A)多个第一控制器/存储器板,每一第一控制器/存储器板具有:
(i)连到主计算机/服务器的控制器;及
(ii)与该板上的控制器通信的本地高速缓存区;
(B)多个第二控制器/存储器板,每一第二控制器/存储器板具有:
(i)连到磁盘驱动器存储体的控制器;及
(ii)与该板上的控制器通信的本地高速缓存区;
(C)其中:
(i)由主计算机/服务器提供给接口用于保存在磁盘驱动器存储体中的写数据被传给第二多个控制器/存储器板之一的本地高速缓存区;且其中第二多个控制器/存储器板的前述板上的控制器控制从前述存储区到磁盘驱动器存储体的数据传送;及
(ii)由磁盘驱动器存储体提供给接口以为主计算机/服务器使用的读数据被传给第一多个控制器/存储器板之一的本地高速缓存区;且其中第一多个控制器/存储器板的前述板上的控制器控制从前述存储区到主计算机/服务器的数据传送。
9、根据权利要求8的数据存储系统,其中本地高速缓存区由板之一上的控制器控制,所述板既具有这样的控制器又具有高速缓存区。
10、根据权利要求9的数据存储系统,其中多个第一控制器/存储器板和多个第二控制器/存储器板的本地高速缓存区为在主计算机/服务器和磁盘驱动器存储体之间传送的数据提供数据传送区。
11、根据权利要求10的数据存储系统,包括连接到多个第一控制器和多个第二控制器的网络。
12、根据权利要求11的数据存储系统,其中响应于通过网络在第一控制器和第二控制器之间传递的消息,第一和第二控制器控制主计算机和磁盘驱动器存储体之间的数据传送以用这样的通过数据传送区传递的数据控制主计算机/服务器和磁盘驱动器存储体之间的数据传送。
13、根据权利要求12的数据存储系统,其中网络是包交换网络。
14、根据权利要求13的数据存储系统,其中消息包括信息包,每一信息包具有目的地字段。
15、通过系统接口在主计算机/服务器和磁盘驱动器存储体之间传送数据的方法,所述系统接口具有:(A)多个第一控制器/存储器板,其中每一个均具有(i)连到主计算机/服务器的控制器;及(ii)与该板上的控制器通信的本地高速缓存区;(B)多个第二控制器/存储器板,其中每一个均具有(i)连到磁盘驱动器存储体的控制器;及(ii)与该板上的控制器通信的本地高速缓存区;该方法包括:
(a)将由主计算机/服务器提供给接口用于保存在磁盘驱动器存储体中的写数据传给第二多个控制器/存储器板之一的本地高速缓存区;
(b)使第二多个控制器/存储器板的前述板上的控制器控制从前述存储区到磁盘驱动器存储体的数据传送;
(c)将由磁盘驱动器存储体提供给接口以为主计算机/服务器使用的读数据传给第一多个控制器/存储器板之一的本地高速缓存区;及
(d)使第一多个控制器/存储器板的前述板上的控制器控制从前述存储区到主计算机/服务器的数据传送。
16、根据权利要求15的方法,其中包括使本地高速缓存区由板之一上的控制器控制,所述板既具有这样的控制器又具有高速缓存区。
17、通过系统接口在主计算机/服务器和磁盘驱动器存储体之间传送数据的方法,所述系统接口具有:(A)多个第一控制器/存储器板,其中每一个均具有(i)连到主计算机/服务器的控制器;及(ii)与该板上的控制器通信的本地高速缓存区;(B)多个第二控制器/存储器板,其中每一个均具有(i)连到磁盘驱动器存储体的控制器;及(ii)与该板上的控制器通信的本地高速缓存区;(C)其中多个第一控制器/存储器板和多个第二控制器/存储器板的本地高速缓存区为在主计算机/服务器和磁盘驱动器存储体之间传送的数据提供数据传送区;(D)连接到多个第一控制器和多个第二控制器的网络;(E)其中第一和第二控制器响应于通过网络在第一控制器和第二控制器之间传递的消息控制主计算机和磁盘驱动器存储体之间的数据传送,以用这样的通过数据传送区传递的数据控制主计算机/服务器和磁盘驱动器存储体之间的数据传送;该方法包括:
(a)将由主计算机/服务器提供给接口用于保存在磁盘驱动器存储体中的写数据传给第二多个控制器/存储器板之一的本地高速缓存区;
(b)使第二多个控制器/存储器板的前述板上的控制器控制从前述存储区到磁盘驱动器存储体的数据传送;
(c)将由磁盘驱动器存储体提供给接口以为主计算机/服务器使用的读数据传给第一多个控制器/存储器板之一的本地高速缓存区;及
(d)使第一多个控制器/存储器板的前述板上的控制器控制从前述存储区到主计算机/服务器的数据传送。
18、根据权利要求17的方法,其中包括使本地高速缓存区由板之一上的控制器控制,所述板既具有这样的控制器又具有高速缓存区。
19、根据权利要求18的方法,其中网络是包交换网络,且其中消息包括信息包,每一信息包具有目的地字段。
CNB2004800380397A 2003-12-18 2004-11-12 传送数据的方法 Active CN100435117C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/740,219 2003-12-18
US10/740,219 US7231492B2 (en) 2003-09-30 2003-12-18 Data transfer method wherein a sequence of messages update tag structures during a read data transfer

Publications (2)

Publication Number Publication Date
CN1902601A true CN1902601A (zh) 2007-01-24
CN100435117C CN100435117C (zh) 2008-11-19

Family

ID=34749191

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2004800380397A Active CN100435117C (zh) 2003-12-18 2004-11-12 传送数据的方法

Country Status (5)

Country Link
US (1) US7231492B2 (zh)
EP (1) EP1695221B1 (zh)
JP (1) JP2007519991A (zh)
CN (1) CN100435117C (zh)
WO (1) WO2005066788A2 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101539874B (zh) * 2009-05-04 2012-02-29 成都市华为赛门铁克科技有限公司 一种实现数据镜像的系统、方法及网络装置
CN114096962A (zh) * 2019-05-14 2022-02-25 普勒纳瑞亚公司 区块链高速缓存系统

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7136959B1 (en) * 2003-09-30 2006-11-14 Emc Corporation Data storage system having crossbar packet switching network
US7467238B2 (en) 2004-02-10 2008-12-16 Hitachi, Ltd. Disk controller and storage system
JP4441286B2 (ja) * 2004-02-10 2010-03-31 株式会社日立製作所 ストレージシステム
JP4405277B2 (ja) 2004-02-16 2010-01-27 株式会社日立製作所 ディスク制御装置
US7729239B1 (en) * 2004-12-27 2010-06-01 Emc Corporation Packet switching network end point controller
JP2008071047A (ja) * 2006-09-13 2008-03-27 Kwok-Yan Leung ディスクインターフェースカード
US8762636B2 (en) * 2006-12-14 2014-06-24 Emc Corporation Data storage system having a global cache memory distributed among non-volatile memories within system disk drives
US7979588B1 (en) 2007-06-28 2011-07-12 Emc Corporation Data storage system having acceleration path for congested packet switching network
US7979572B1 (en) 2007-06-28 2011-07-12 Emc Corporation Data storage system having operation code in address portion for atomic operations
US8645623B1 (en) * 2007-06-28 2014-02-04 Emc Corporation Method for performing a raid operation in a data storage system
US8090789B1 (en) * 2007-06-28 2012-01-03 Emc Corporation Method of operating a data storage system having plural data pipes
US7987229B1 (en) * 2007-06-28 2011-07-26 Emc Corporation Data storage system having plural data pipes
US7769928B1 (en) * 2007-06-28 2010-08-03 Emc Corporation Data storage system having CPUs adapted to perform a second atomic operation request prior to completion of a first atomic operation request
US7707367B1 (en) * 2007-06-28 2010-04-27 Emc Corporation Data storage system having separate atomic operation/non-atomic operation paths
US7631128B1 (en) * 2007-06-28 2009-12-08 Emc Corporation Protocol controller for a data storage system
US8156220B1 (en) * 2007-09-28 2012-04-10 Emc Corporation Data storage system
US8799396B2 (en) * 2008-02-04 2014-08-05 Cisco Technology, Inc. Method and system for an efficient distributed cache with a shared cache repository
US9524220B1 (en) * 2011-12-30 2016-12-20 EMC IP Holding Company, LLC Memory optimization for configuration elasticity in cloud environments
US11500549B2 (en) 2019-04-19 2022-11-15 EMC IP Holding Company LLC Secure host access to storage system resources via storage system interface and internal switching fabric
US10698844B1 (en) 2019-04-19 2020-06-30 EMC IP Holding Company LLC Intelligent external storage system interface
US11151063B2 (en) 2019-04-19 2021-10-19 EMC IP Holding Company LLC Host system directly connected to internal switching fabric of storage system
US10698613B1 (en) * 2019-04-19 2020-06-30 EMC IP Holding Company LLC Host processing of I/O operations
US10740259B1 (en) 2019-04-19 2020-08-11 EMC IP Holding Company LLC Host mapping logical storage devices to physical storage devices

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5420983A (en) 1992-08-12 1995-05-30 Digital Equipment Corporation Method for merging memory blocks, fetching associated disk chunk, merging memory blocks with the disk chunk, and writing the merged data
US6351795B1 (en) * 1997-09-05 2002-02-26 Sun Microsystems, Inc. Selective address translation in coherent memory replication
KR100263299B1 (ko) 1997-12-22 2000-08-01 정선종 패리티 엔진을 이용한 고속 디스테이징 방법
US6341331B1 (en) * 1999-10-01 2002-01-22 International Business Machines Corporation Method and system for managing a raid storage system with cache
US7010575B1 (en) 2000-03-31 2006-03-07 Emc Corporation Data storage system having separate data transfer section and message network having bus arbitration
US6751703B2 (en) * 2000-12-27 2004-06-15 Emc Corporation Data storage systems and methods which utilize an on-board cache
EP1533704A3 (en) * 2003-11-21 2007-03-07 Hitachi, Ltd. Read/write protocol for cache control units at switch fabric, managing caches for cluster-type storage

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101539874B (zh) * 2009-05-04 2012-02-29 成都市华为赛门铁克科技有限公司 一种实现数据镜像的系统、方法及网络装置
CN114096962A (zh) * 2019-05-14 2022-02-25 普勒纳瑞亚公司 区块链高速缓存系统

Also Published As

Publication number Publication date
JP2007519991A (ja) 2007-07-19
WO2005066788A2 (en) 2005-07-21
EP1695221B1 (en) 2012-09-19
EP1695221A2 (en) 2006-08-30
US7231492B2 (en) 2007-06-12
CN100435117C (zh) 2008-11-19
WO2005066788A3 (en) 2005-09-29
US20050071424A1 (en) 2005-03-31

Similar Documents

Publication Publication Date Title
CN1902601A (zh) 数据存储系统
CN102209103B (zh) 向多个存储控制器多播写请求
JP5373199B2 (ja) キャッシング記憶制御装置間でストレージコマンドのキャッシュアウェア・マルチパス分散を用いたデータ処理システム
CN1708742A (zh) 在存储区域网中实现存储虚拟化的方法与装置
US20180157445A1 (en) Method, device, and system for controlling data read/write command in nvme over fabric architecture
JP4219602B2 (ja) 記憶制御装置および記憶制御装置の制御方法
US7555599B2 (en) System and method of mirrored RAID array write management
JP4235712B2 (ja) ストレージシステムにおけるデータ転送方法
US20050144223A1 (en) Bottom-up cache structure for storage servers
JP2007079958A (ja) 記憶制御装置、データ処理方法、及びコンピュータプログラム
JP2008506195A (ja) 分散キャッシュ・コヒーレンスを提供するシステムおよび方法
CN1267023A (zh) 多处理机数据处理系统中同级到同级的超高速缓存移动
JPH0981527A (ja) 複数のホスト・コンピュータ・システムにより複数の記憶装置アレイを共有するシステム及び方法
GB2366048A (en) Selecting a preferred path to a storage device
CN1804810A (zh) 用于存储器访问请求的重定向的方法和系统
US7472231B1 (en) Storage area network data cache
JP4338075B2 (ja) 記憶装置システム
CN1222986A (zh) 执行并飞"异"运算的方法和系统
JP2005149082A (ja) ストレージ制御装置、及びストレージ制御装置の制御方法
US7774514B2 (en) Method of transmitting data between storage virtualization controllers and storage virtualization controller designed to implement the method
US20220222016A1 (en) Method for accessing solid state disk and storage device
US8799549B2 (en) Method for transmitting data between two computer systems
CN1508714A (zh) 确定高可用性集群之活跃度的方法和系统
CN1658176A (zh) 数据通信的方法及设备
US20170139607A1 (en) Method and system for shared direct access storage

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