CN102209103A - 向多个存储控制器多播写请求 - Google Patents

向多个存储控制器多播写请求 Download PDF

Info

Publication number
CN102209103A
CN102209103A CN2011100863958A CN201110086395A CN102209103A CN 102209103 A CN102209103 A CN 102209103A CN 2011100863958 A CN2011100863958 A CN 2011100863958A CN 201110086395 A CN201110086395 A CN 201110086395A CN 102209103 A CN102209103 A CN 102209103A
Authority
CN
China
Prior art keywords
jar
storage
data
write
system 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.)
Granted
Application number
CN2011100863958A
Other languages
English (en)
Other versions
CN102209103B (zh
Inventor
P·库马尔
J·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.)
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 CN102209103A publication Critical patent/CN102209103A/zh
Application granted granted Critical
Publication of CN102209103B publication Critical patent/CN102209103B/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/26Using a specific storage system architecture
    • G06F2212/261Storage comprising a plurality of storage devices
    • G06F2212/262Storage comprising a plurality of storage devices configured as RAID
    • 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/285Redundant cache memory
    • G06F2212/286Mirrored cache memory

Abstract

本申请涉及向多个存储控制器多播写请求。在一个实施例中,本发明包括一种用于执行多播的方法,包括:从第一罐中的第一服务器接收包括写数据和地址的写请求;确定地址是否在第一系统存储器的多播区域之内;以及如果是的话,则将写请求直接发送给多播区域以存储写数据,并且还发送给耦合到第一罐的第二罐的镜像端口以将写数据镜像到第二罐的第二系统存储器。描述其它实施例并且要求其权益。

Description

向多个存储控制器多播写请求
技术领域
一般来说,本申请涉及存储系统,具体来说,涉及向多个存储控制器多播写请求。
背景技术
例如数据存储系统等存储系统通常包括外部存储平台,它具有常常称作罐(canister)的冗余存储控制器、冗余电源、冷却解决方案和盘阵列。该平台解决方案设计成容许单点故障,具有全冗余输入/输出(I/O)通路和冗余控制器以使数据是可访问的。机箱中的两个冗余罐通过无源底板连接,以使高速缓存镜像特征能够实现。当一个罐出故障时,另一个罐获得对与出故障罐关联的硬盘的访问权,并且继续执行对盘的I/O任务,直到维修出故障罐。
要使冗余操作能够实现,系统高速缓存镜像在罐之间对所有未完成盘受限(disk-bound)I/O事务来执行。镜像操作主要包括使罐的系统高速缓存同步。虽然单个节点故障可能丢失其本地高速缓存的内容,但第二副本仍然保留在冗余节点的高速缓存中。然而,某些复杂性存在于当前系统中,包括镜像操作所消耗的带宽的限制以及执行这类操作所需的等待时间。
发明内容
本申请提供一种设备,包括:第一罐,控制在包括多个盘的存储系统中的数据的存储,第一罐具有第一处理器、缓存待存储在存储系统中的数据的第一系统存储器以及第一镜像端口;以及第二罐,控制在存储系统中的数据的存储,并且经由点对点(PtP)互连耦合到第一罐,第二罐包括第二处理器、缓存待存储在存储系统中的数据的第二系统存储器以及第二镜像端口,其中,第一和第二系统存储器将存储在另一个系统存储器中存储的数据的镜像副本,镜像副本经由PtP互连通过双播事务来传递,其中,将至第一罐的入局数据并行地写到第一系统存储器以及通过第一和第二镜像端口传递给第二罐。
本申请还提供一种方法,包括:在存储系统的第一罐中从第一服务器接收包括写数据和地址的写请求;确定地址是否在第一罐的系统存储器的多播区域之内;如果是的话,则将写请求直接发送给第一罐的系统存储器的多播区域以将写数据存储在第一罐的系统存储器中,以及经由点对点(PtP)链路发送给耦合到第一罐的第二罐的镜像端口以将写数据镜像到第二罐的系统存储器;以及在第一罐中经由PtP链路从第二罐接收接收到写数据的确认,并且将第二确认从第一罐传递给第一服务器。
本申请又提供一种系统,包括:第一罐,包括第一处理器、缓存数据的第一系统存储器、与第一服务器进行通信的第一输入/输出(I/O)控制器、与盘存储系统进行通信的第一装置控制器以及第一镜像端口;经由点对点(PtP)互连耦合到第一罐的第二罐,第二罐包括第二处理器、缓存数据的第二系统存储器、与第二服务器进行通信的第二I/O控制器、与盘存储系统进行通信的第二装置控制器以及第二镜像端口,其中,第一和第二系统存储器将存储在另一个系统存储器中存储的数据的镜像副本,镜像副本经由PtP互连通过双播事务来传递,其中,将至第一罐的写请求的入局数据并行地写到第一系统存储器以及通过第一和第二镜像端口传递给第二罐;以及盘驱动器系统,包括多个盘驱动器。
附图说明
图1是根据本发明的一个实施例的系统的框图。
图2是示出根据本发明的另一个实施例的罐的细节的框图。
图3是根据本发明的一个实施例的操作的数据流。
图4是根据本发明的一个实施例的直接地址转换中使用的组件的框图。
具体实施方式
在各个实施例中,可向多个目的地位置多播对存储罐的入局(incoming)写操作。在一个实施例中,这些多个位置包括与存储罐关联的系统存储器以及例如与另一个存储罐对应的镜像端口。这样,能避免对于从系统存储器到镜像端口的各种读/写操作的需要。
虽然本发明的范围并不局限于这个方面,但可按照根据外围组件互连快速(PCI ExpressTM(PCIeTM)基础规范的工程变更通知书版本2.0(2007年1月17日发布)的PCIeTM双播特征来执行多播,多播可以是至两个实体的双播或者至不止两个实体的多播。这里,假定第一罐接收到例如来自主机的入站邮递型(inbound posted)写请求。根据该请求的地址,写请求分组可被引向两个目的地,即第一罐的系统存储器和镜像端口、例如经由PCIeTM非透明桥(NTB)端口耦合到第一罐的例如第二罐。在一个实施例中,入局地址可与第一罐的基址寄存器(BAR)和界限寄存器(例如,与第一罐的PCIeTMI/O端口关联)以及镜像端口(PCIeTM NTB)相比,以确保将分组路由选择到系统存储器和镜像端口。这种路由选择能够并行地执行,而不是其中数据必须首先写到系统存储器然后镜像到第二罐的串行实现。
使用本发明的实施例,廉价盘冗余阵列(RAID)系统、如RAID 5/6系统的流播镜像写数据流(streaming mirror write data flow)能够得到改进。由于这种系统中的存储工作负载可能是高度I/O密集的并且多次触及系统存储器,所以可消耗大量的系统存储器带宽,特别是在性能可能受到系统存储器限制的入门到中级范围(entry-to-mid-range)的平台中。使用根据本发明的一个实施例的存储加速技术,存储器带宽能够减小。这样,在系统中能够采用较低性能的系统存储器,从而降低系统成本。例如,仓位(bin)-1存储器组件(具有比高仓位的组件低的额定频率)或者低成本的双列直插存储器模块(DIMM)能够用于获得更高的RAID-5/6性能。
虽然实施例可使用PCIeTM双播操作来执行作为单个操作的对系统存储器和PCIeTM到PCIeTM NTB的I/O写入的入站写请求,但是其它实现能够使用类似的多播或广播操作将写操作并行地引向多个目的地。
现在参照图1,示出根据本发明的一个实施例的系统的框图。如图1所示,系统100可以是存储系统,其中多个服务器、如服务器105a和105b(一般称作服务器105)连接到可包括多个盘驱动器1950-195n(一般称作盘驱动器195)的大容量存储系统190,它可以是RAID系统并且可符合光纤通道/SAS/SATA模型。在RAID-5或RAID-6配置中,在存储平台上分别能够容许一个盘和两个盘故障。
要实现服务器105与存储系统190之间的通信,通信可流经交换机110a和110b(一般称作交换机110),它们可以是千兆位以太网(GigE)/光纤通道/SAS交换机。这些交换机又可与一对罐120a和120b(一般称作罐120)进行通信。这些罐中的每个可包括使根据本发明的一个实施例的高速缓存镜像能够实现的各种组件。
具体来说,每个罐可包括(一般称作)处理器135。为了便于说明,将论述第一罐120a,因而处理器135a可与前端控制器装置125a进行通信。处理器135a又可与外围控制器集线器(PCH)145a进行通信,PCH145a又可与外围装置进行通信。PCH 145也可与媒体访问控制器/物理装置(MAC/PHY)130a进行通信,在一个实施例中MAC/PHY 130a可以是使例如管理信息的传递能够实现的双GigE MAC/PHY装置。注意,处理器135a还可耦合到基板(baseboard)管理控制器(BMC)150a,BMC 150a又可经由系统管理(SM)总线与中间平面(mid-plane)180进行通信。
处理器135a还耦合到存储器140a,在一个实施例中存储器140a可以是实现为双列直插存储器模块(DIMM)的动态随机存取存储器(DRAM)。处理器又可耦合到后端控制器装置165a,后端控制器装置165a也通过中间平面连接器170耦合到中间平面180。
此外,要使根据本发明的一个实施例的镜像能够实现,PCIeTMNTB互连160可耦合在处理器135a与中间平面连接器170之间。正如看到的,类似的互连可直接将通信从这个链路路由选择到与第二罐120b的处理器140b耦合的类似的PCIeTM NTB互连160b。处理器之间经由NTB互连的这种互连可形成NTB地址域。注意,在一些实现中,罐可直接耦合而无需中间平面连接器。在其它实施例中,取代PCIeTM互连,例如按照快速通路互连(QPI)协议等的另一种点对点(PtP)互连可以存在。在图1中看到,要使冗余操作能够实现,中间平面180可以使从每个罐到每个对应的盘驱动器195的通信能够实现。虽然在图1的实施例中以这种具体实现示出,但是本发明的范围并不局限于这个方面。例如,可存在更多或更少的服务器和盘驱动器,并且在一些实施例中还可提供附加罐。
现在参照图2,所示的是示出根据本发明的另一个实施例的罐的细节的框图。注意,图2的罐、即第一罐210a和第二罐210b可以是系统200的一部分,其中系统200包括一个或多个服务器、例如RAID系统等存储系统以及外设和其它这类装置。但是,在至少一些实现中,能够避免对于将服务器耦合到罐的交换机的需要。尽管其它PtP连接是可能的,第一罐210a和第二罐210b经由PCIeTM NTB链路250进行耦合。经由这个链路,这两个罐之间的系统高速缓存镜像能够进行。NTB地址域255是两个罐210可访问的。在所示实现中,每个罐210可具有它自己的地址域,并且可包括系统存储器240,在一个实施例中,系统存储器240可使用低成本的DIMM来实现,使用根据本发明的一个实施例的技术可得到的存储加速使这些低成本的DIMM能够实现。
在图2中看到,每个罐可包括:I/O控制器,包括一个或多个主机I/O控制器212以使与服务器和其它主机装置的通信能够实现;以及一个或多个装置I/O控制器214,以使与盘系统的通信能够实现。正如看到的,这类I/O控制器可经由根端口222与对应的处理器220进行通信。每个处理器又还可包括NTB端口224以使经由NTB互连250的通信能够实现,NTB互连250可具有NTB地址域255。处理器220还可与PCH 225进行通信,PCH 225又可与MAC/PHY 230进行通信。注意,处理器220可包括各种内部组件,其中包括使与系统存储器的通信能够实现的集成存储器控制器以及集成直接存储器存取(DMA)引擎和RAID处理器单元以及其它这类专用组件。
使用根据本发明的一个实施例的存储加速,双播技术可用于直接向系统存储器以及向连接的装置传递写请求的写数据,连接的装置例如是如另一个罐等连接PCIeTM的装置。现在参照图3,所示的是根据本发明的一个实施例的操作的数据流。如图3所示,阐述RAID-5/6流播镜像写的数据流。一般来说,接收写请求和执行双播镜像的数据流可包括两个存储器读操作和2.25个写操作。正如看到的,来自例如服务器的入局写请求可经由第一罐210a的主机I/O控制器212a来接收。取决于写请求的地址,可发起双播操作。具体来说,下面将要论述,如果地址是在存储器的双播区域之内,则主机控制器可并行地向系统存储器240a直接写数据以及经由NTB互连将数据镜像到罐210b。第二罐的处理器又作为镜像写操作会将数据写到其系统存储器。
从这时起,写数据可存在于两个系统存储器中。然后,在一个实现中,例如处理器220a的RAID处理器单元或者罐210a的专用RAID处理器可从存储器读取数据并且执行RAID-5/6奇偶校验计算,以及例如结合写数据将奇偶校验数据写到系统存储器240a。最后,装置I/O控制器214a可从对应的系统存储器240a读取写数据和RAID奇偶校验数据,并且例如按照其中数据可条带化分布于多个盘的RAID-5/6操作将数据写到盘。
注意,各种确认可在上述处理期间进行。例如,当镜像写数据在罐210b的受保护域中成功接收以被写到系统存储器240b时,罐210b可向第一罐210a回传确认。当这个确认指示写数据这时已经被成功写到两个系统高速缓存、即这两个系统存储器时,这时第一罐210a可向请求方、如服务器回送确认,以确认写请求的成功完成。注意,由于双系统高速缓存提供的冗余,可在将写数据写到RAID系统中它的最终目的地之前发送这个确认。相应地,从系统存储器240a对盘的写入能够在后台进行。注意,通过电池备份来备份这两个罐的系统存储器。另外,在将数据写到驱动器系统时,第一罐210a可向第二罐210b传递指示成功写入的消息。这时,系统存储器240b(和系统存储器240a)中存储的写数据可被设置成脏状态,使得空间能够再用于其它数据。
因此,能够避免对于首先将入站数据从主机I/O控制器写到系统存储器然后使用(例如,处理器的)DMA引擎来在这两个罐之间镜像数据的需要。替代地,使用本发明的一个实施例,入站I/O写分组能够被并行地发送给两个目的地:系统存储器和镜像端口,从而消除存储器读/写操作,并且节省存储器带宽以提供更高性能。或者较低成本的存储器(例如,仓位频率-1)能够用于提供与常规RAID流播操作相当的性能。虽然在图3的实施例中以这种具体实现来描述,但是本发明的范围并不局限于这个方面。
要多播在根端口的上游端口始发的将以系统存储器和对等装置为目标的事务,一种机制可用于允许以系统存储器的子集为目标的事务也被透明地复制到镜像端口(例如,PCIeTM NTB端口)。为此,软件可在每个根端口中创建能够进行多播操作的多播存储器窗口。作为一个示例,可提供基址和界限寄存器,以镜像可对应于在NTB的枚举期间定义的整个BAR或者那个BAR的子集的NTB主BAR其中之一的大小。
当在根端口上看到上游写事务时,将其解码以确定其目的地。如果写入的地址命中多播存储器区域,则会未经转换地将其发送给系统存储器以及在转换之后发送给NTB的存储器窗口。在一个实施例中,转换可以是NTB的这两侧之间的直接地址转换。
在一个实施例中,直接地址转换可在适当建立可位于每个相应主机的系统存储器中的本地和远程主机地址映射(address map)之后进行。现在参照图4,所示的是根据本发明的一个实施例的直接地址转换中使用的组件的框图。如图4所示,可存在本地主机地址映射410和远程主机地址映射420。正如看到的,本地映射410可包括可对应于双播存储器区域的基址的基址位置412。另外,基址加偏移位置414可用于到达远程映射420的转换基址和偏移区域424。另外,基址转换寄存器422可存在于远程映射420中。各种其它寄存器和位置可存在于这些地址映射中。
下列步骤概述一个可能的实现。为了建立,软件读取NTB中存储的基址寄存器的值(例如,PBAR23SZ),并且将双播操作的基址(DUALCATBASE)设置成PBAR23SZ的大小的倍数。这意味着,如果PBAR23SZ为8千兆字节(GB),则DUALCATBASE被置于PBAR23SZ的大小的倍数上,例如8G、16G、24G等等。随后,可设置双播操作的界限地址。这个界限地址(DUALCASTLIMIT)可被设置成小于或等于DUALCASTBASE+PBAR23SZ(例如,如果PBAR23SZ=8G并且DUALCASTBASE=24G,则DUALCASTLIMIT能够被设为最多32G)。相应地,双播区域可被设置成表示用户想要镜像到远程存储器中的系统存储器的区域。在一个实施例中,这些操作可由操作系统(OS)来设置。
在操作期间,可在根端口检查上游事务,以确定接收的地址是否落入由OS创建的双播存储器窗口之内。这种确定可按照下列等式进行:有效双播地址=((DUALCASTLIMIT>接收的地址[63:0]>=DUALCASTBASE))。
例如,假定作为双播基址、由OS置于PBAR23SZ对齐的大小的倍数上、本例中为4GB的DUALCASTBASE的寄存器值=0000 003A0000 0000H,以及将窗口减小到3GB的DUALCASTLIMIT=00000003A C000 0000H。还假定接收的地址=0000 003A 00A0 0000H。按照上式,这对应于有效双播地址,并且因而转换可进行,下面进一步论述。
如果接收的地址在这个双播存储器窗口之外,则能够根据系统的要求来解码事务。例如,事务可被解码到系统存储器、对等解码(peer decode)、减法解码(subtractively decoded)到南桥或者主控中止(master aborted)。
如果如上所述,事务处于有效双播区域之内,则可将其转换到定义的主侧NTB存储器窗口。这种转换可如下:
转换地址
=((接收的地址[63:0]&~Sign_Extend(2^PBAR23SZ)|PBAR2XLAT[63:0]))。
例如,要将以0000 003A 0000 0000H为基址的4GB窗口要求的入局地址转换成以0000 0040 0000 0000H为基址的4GB窗口,则可进行下列计算。
接收的地址[63:0]=0000 003A 00A0 0000H
PBAR23SZ=32,在这个示例中,它设置主BAR 2/3的大小=4GB。~Sign_Extend(2^PBAR23SZ)=~Sign_Extend(0000 0001 00000000H)=~(FFFF FFFF 0000 0000H)=(0000 0000 FFFF FFFFH)PBAR2XLAT=0000 0040 0000 0000H,它是到NTB主侧存储器中的基址(对齐大小的倍数)。相应地,转换地址=0000 003A 00A0 0000H&0000 0000 FFFF FFFFH|0000 0040 0000 0000H=0000 0040 00A0 0000H。
注意,对关于入局地址的4GB窗口的基址的偏移在转换地址中保存。
使用转换地址,可执行双播操作,以将入局事务发送到系统存储器的(0000 0030 00A0 0000H)以及NTB的(0000 0040 00A0 0000H)。
处理入局多播写请求的实现可根据正使用的微体系结构以不同方式来执行。例如,一个实现可以是使请求离开接收器邮递型队列,并且将事务暂时保持在保持队列中。然后,根端口能够发送存取系统存储器和存取对等存储器的独立请求。事务会保留在保持队列中,直到副本为系统存储器和对等存储器接受,然后将它从保持队列清除。一个备选实现可等待使请求离开接收器邮递型队列,直到以系统存储器为目标的上游资源和对等资源均可用,然后同时向两个通路发送。例如,到主存储器的通路能够发送具有接收到的相同地址的请求,以及到对等NTB的通路能够在转换之后向NTB主存储器窗口之一发送请求。
实施例可通过代码来实现,并且可存储在存储介质上,存储介质上已经存储可用于对系统编程以执行指令的指令。存储介质可包括但不限于:任何类型的盘,包括软盘、光盘、光盘、固态驱动器(SSD)、压缩盘只读存储器(CD-ROM)、可重写压缩盘(CD-RW)和磁光盘;半导体器件,例如只读存储器(ROM)、例如动态随机存取存储器(DRAM)和静态随机存取存储器(SARAM)等随机存取存储器(RAM)、可擦可编程只读存储器(EPROM)、闪速存储器、电可擦可编程只读存储器(EEPROM)、磁卡或光卡;或者适合于存储电子指令的任何其它类型的媒体。
虽然针对有限数量的实施例描述了本发明,但是本领域的技术人员将会从其中知道大量的修改和变更。所附权利要求书意在涵盖落入本发明的真实精神和范围之内的所有这类修改和变更。

Claims (20)

1.一种设备,包括:
第一罐,控制在包括多个盘的存储系统中的数据的存储,所述第一罐具有第一处理器、缓存待存储在所述存储系统中的数据的第一系统存储器以及第一镜像端口;以及
第二罐,控制在所述存储系统中的数据的存储,并且经由点对点(PtP)互连耦合到所述第一罐,所述第二罐包括第二处理器、缓存待存储在所述存储系统中的数据的第二系统存储器以及第二镜像端口,其中,所述第一和第二系统存储器将存储在另一个系统存储器中存储的数据的镜像副本,所述镜像副本经由所述PtP互连通过双播事务来传递,其中,将至所述第一罐的入局数据并行地写到所述第一系统存储器以及通过所述第一和第二镜像端口传递给所述第二罐。
2.如权利要求1所述的设备,其中,所述第一罐未经交换机直接耦合到始发对所述入局数据的写请求的服务器。
3.如权利要求1所述的设备,还包括:耦合到所述第一处理器的装置控制器,其中,所述装置控制器将接收来自所述第一系统存储器的所述入局数据,并且将把所述入局数据写到所述存储系统的驱动器系统的至少一个驱动器。
4.如权利要求1所述的设备,还包括:所述第一处理器的廉价盘冗余阵列(RAID)引擎,从所述第一系统存储器读取所述入局数据并且对所述入局数据执行奇偶校验操作,以及将所述奇偶校验操作的结果存储在所述第一系统存储器中。
5.如权利要求1所述的设备,还包括:所述第一罐的根端口,其中,所述根端口将根据包括所述入局数据的写请求的地址来确定所述入局数据是否将经由双播事务来镜像。
6.如权利要求5所述的设备,其中,所述根端口将把所述写请求的所述地址转换到所述第二系统存储器的存储器窗口,并且将把所述双播事务发送给具有所述地址的所述第一系统存储器以及给具有所述转换地址的所述第二罐。
7.如权利要求2所述的设备,其中,所述第二处理器将在接收到所述入局数据的所述镜像副本时经由所述PtP互连来传送确认,以及所述第一处理器将响应所述确认而向所述服务器传送第二确认,以指示对所述入局数据的所述写请求的成功完成。
8.一种方法,包括:
在存储系统的第一罐中从第一服务器接收包括写数据和地址的写请求;
确定所述地址是否在所述第一罐的系统存储器的多播区域之内;
如果是的话,则将所述写请求直接发送给所述第一罐的所述系统存储器的所述多播区域以将所述写数据存储在所述第一罐的所述系统存储器中,以及经由点对点(PtP)链路发送给耦合到所述第一罐的第二罐的镜像端口以将所述写数据镜像到所述第二罐的系统存储器;以及
在所述第一罐中经由所述PtP链路从所述第二罐接收接收到所述写数据的确认,并且将第二确认从所述第一罐传递给所述第一服务器。
9.如权利要求8所述的方法,还包括:从所述第一罐的所述系统存储器读取所述写数据并且对所述写数据执行奇偶校验操作,以及将所述奇偶校验操作的结果存储在所述第一罐的所述系统存储器中。
10.如权利要求9所述的方法,还包括:使用所述第一罐的处理器的廉价盘冗余阵列(RAID)引擎来执行所述奇偶校验操作。
11.如权利要求10所述的方法,还包括:此后经由第二互连将所述写数据和所述奇偶校验操作结果从所述第一罐的所述系统存储器发送给所述存储系统的驱动器系统。
12.如权利要求11所述的方法,还包括:将消息从所述第一罐发送给所述第二罐,以指示所述写数据和所述奇偶校验操作结果到所述驱动器系统的成功写入。
13.如权利要求11所述的方法,还包括:将所述写数据和所述奇偶校验操作结果存储分布于所述驱动器系统的多个驱动器。
14.一种系统,包括:
第一罐,包括第一处理器、缓存数据的第一系统存储器、与第一服务器进行通信的第一输入/输出(I/O)控制器、与盘存储系统进行通信的第一装置控制器以及第一镜像端口;
经由点对点(PtP)互连耦合到所述第一罐的第二罐,所述第二罐包括第二处理器、缓存数据的第二系统存储器、与第二服务器进行通信的第二I/O控制器、与所述盘存储系统进行通信的第二装置控制器以及第二镜像端口,其中,所述第一和第二系统存储器将存储在另一个系统存储器中存储的数据的镜像副本,所述镜像副本经由所述PtP互连通过双播事务来传递,其中,将至所述第一罐的写请求的入局数据并行地写到所述第一系统存储器以及通过所述第一和第二镜像端口传递给所述第二罐;以及
所述盘驱动器系统,包括多个盘驱动器。
15.如权利要求14所述的系统,还包括:所述第一处理器的廉价盘冗余阵列(RAID)引擎,从所述第一系统存储器读取所述入局数据并且对所述入局数据执行奇偶校验操作,以及将所述奇偶校验操作的结果存储在所述第一系统存储器中。
16.如权利要求15所述的系统,其中,所述第一装置控制器将把所述入局数据和所述奇偶校验操作结果从所述第一系统存储器写到所述盘驱动器系统的至少一些所述盘驱动器。
17.如权利要求16所述的系统,其中,所述第一罐将向所述第二罐发送消息,以使所述第二罐能够释放存储所述入局数据的所述镜像副本的存储器区域。
18.如权利要求14所述的系统,还包括:所述第一罐的根端口,其中,所述根端口将根据所述写请求的地址来确定所述入局数据是否将经由双播事务来镜像。
19.如权利要求18所述的系统,其中,所述根端口将把所述写请求的所述地址转换到所述第二系统存储器的存储器窗口,并且将把所述双播事务发送给具有所述地址的所述第一系统存储器以及具有所述转换地址的所述第二罐。
20.如权利要求14所述的系统,其中,所述第二罐将在接收到所述入局数据的所述镜像副本时经由所述PtP互连来传送确认,以及所述第一罐将响应所述确认而向所述服务器传送第二确认,以指示对所述入局数据的所述写请求的成功完成。
CN201110086395.8A 2010-03-29 2011-03-29 向多个存储控制器多播写请求 Active CN102209103B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/748764 2010-03-29
US12/748,764 US20110238909A1 (en) 2010-03-29 2010-03-29 Multicasting Write Requests To Multiple Storage Controllers

Publications (2)

Publication Number Publication Date
CN102209103A true CN102209103A (zh) 2011-10-05
CN102209103B CN102209103B (zh) 2015-04-08

Family

ID=44657652

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110086395.8A Active CN102209103B (zh) 2010-03-29 2011-03-29 向多个存储控制器多播写请求

Country Status (3)

Country Link
US (1) US20110238909A1 (zh)
CN (1) CN102209103B (zh)
DE (1) DE102011014588A1 (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102629225A (zh) * 2011-12-31 2012-08-08 成都市华为赛门铁克科技有限公司 双控制器磁盘阵列、存储系统以及数据存储路径切换方法
CN103678165A (zh) * 2012-09-10 2014-03-26 金万益有限公司 经由PCIe接口连接至主机系统的存储装置和方法
CN104272257A (zh) * 2012-03-23 2015-01-07 Dssd股份有限公司 具有组播直接存储器存取和统一地址空间的存储系统
CN104881246A (zh) * 2015-03-30 2015-09-02 北京飞杰信息技术有限公司 应用于集群存储系统的输出入传递方法及系统
CN105159851A (zh) * 2015-07-02 2015-12-16 浪潮(北京)电子信息产业有限公司 多控存储系统
CN105408879A (zh) * 2013-07-22 2016-03-16 华为技术有限公司 快捷外围部件互连域的资源管理
CN114003394A (zh) * 2021-12-31 2022-02-01 深圳市华图测控系统有限公司 用于恒温机内存不足的动态内存扩展方法、装置和恒温机

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE533007C2 (sv) 2008-10-24 2010-06-08 Ilt Productions Ab Distribuerad datalagring
EP2712149B1 (en) 2010-04-23 2019-10-30 Compuverde AB Distributed data storage
WO2011141956A1 (en) * 2010-05-11 2011-11-17 Hitachi, Ltd. Storage device and method of controlling storage device
US8880768B2 (en) * 2011-05-20 2014-11-04 Promise Technology, Inc. Storage controller system with data synchronization and method of operation thereof
US9626378B2 (en) 2011-09-02 2017-04-18 Compuverde Ab Method for handling requests in a storage system and a storage node for a storage system
US8645978B2 (en) 2011-09-02 2014-02-04 Compuverde Ab Method for data maintenance
US8769138B2 (en) 2011-09-02 2014-07-01 Compuverde Ab Method for data retrieval from a distributed data storage system
CN102662803A (zh) * 2012-03-13 2012-09-12 深圳华北工控股份有限公司 一种双控双活冗余设备
JP5833756B2 (ja) * 2012-03-23 2015-12-16 株式会社日立製作所 二重化共有メモリアクセス方法と二重化共有メモリアクセス方法を用いたストレージ装置
US8392428B1 (en) * 2012-09-12 2013-03-05 DSSD, Inc. Method and system for hash fragment representation
US8938559B2 (en) * 2012-10-05 2015-01-20 National Instruments Corporation Isochronous data transfer between memory-mapped domains of a memory-mapped fabric
US9189441B2 (en) * 2012-10-19 2015-11-17 Intel Corporation Dual casting PCIE inbound writes to memory and peer devices
US9424219B2 (en) * 2013-03-12 2016-08-23 Avago Technologies General Ip (Singapore) Pte. Ltd. Direct routing between address spaces through a nontransparent peripheral component interconnect express bridge
US9405566B2 (en) 2013-05-24 2016-08-02 Dell Products L.P. Access to storage resources using a virtual storage appliance
US9910816B2 (en) * 2013-07-22 2018-03-06 Futurewei Technologies, Inc. Scalable direct inter-node communication over peripheral component interconnect-express (PCIe)
US9229654B2 (en) * 2013-08-29 2016-01-05 Avago Technologies General Ip (Singapore) Pte. Ltd. Input/output request shipping in a storage system with multiple storage controllers
CN103577284B (zh) * 2013-10-09 2016-08-17 创新科存储技术(深圳)有限公司 非透明桥芯片的异常检测与恢复方法
CN104683229A (zh) * 2015-02-04 2015-06-03 金万益有限公司 快速进行数据传输的方法
US9824042B2 (en) * 2015-03-30 2017-11-21 EMC IP Holding Company LLC Reading data from storage via a PCI express fabric having a fully-connected mesh topology
US9858228B2 (en) * 2015-08-10 2018-01-02 Futurewei Technologies, Inc. Dynamic assignment of groups of resources in a peripheral component interconnect express network
EP3211535A4 (en) * 2015-12-17 2017-11-22 Huawei Technologies Co., Ltd. Write request processing method, processor and computer
US10171257B2 (en) 2016-06-22 2019-01-01 International Business Machines Corporation Updating data objects on a system
US10372638B2 (en) * 2017-10-20 2019-08-06 Hewlett Packard Enterprise Development Lp Interconnect agent
CN109032855B (zh) * 2018-07-24 2021-12-03 郑州云海信息技术有限公司 一种双控存储设备
CN109491840A (zh) * 2018-11-19 2019-03-19 郑州云海信息技术有限公司 一种数据传输方法和装置
TWI704460B (zh) * 2019-01-19 2020-09-11 神雲科技股份有限公司 叢集式系統中維持記憶體共享方法
US11182313B2 (en) * 2019-05-29 2021-11-23 Intel Corporation System, apparatus and method for memory mirroring in a buffered memory architecture
US11194678B2 (en) * 2020-03-02 2021-12-07 Silicon Motion, Inc. Method and apparatus for performing node information exchange management of all flash array server

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030110330A1 (en) * 2001-12-12 2003-06-12 Fujie Yoshihiro H. System and method of transferring data from a secondary storage controller to a storage media after failure of a primary storage controller
US20050198411A1 (en) * 2004-03-04 2005-09-08 International Business Machines Corporation Commingled write cache in dual input/output adapter
US20060212644A1 (en) * 2005-03-21 2006-09-21 Acton John D Non-volatile backup for data cache
CN1965298A (zh) * 2003-12-29 2007-05-16 英特尔公司 用于管理奇偶raid数据重建的方法、系统和程序
US20080040629A1 (en) * 2006-08-11 2008-02-14 Via Technologies, Inc. Computer system having raid control function and raid control method
US7945722B2 (en) * 2003-11-18 2011-05-17 Internet Machines, Llc Routing data units between different address domains

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6009488A (en) * 1997-11-07 1999-12-28 Microlinc, Llc Computer having packet-based interconnect channel

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030110330A1 (en) * 2001-12-12 2003-06-12 Fujie Yoshihiro H. System and method of transferring data from a secondary storage controller to a storage media after failure of a primary storage controller
US7945722B2 (en) * 2003-11-18 2011-05-17 Internet Machines, Llc Routing data units between different address domains
CN1965298A (zh) * 2003-12-29 2007-05-16 英特尔公司 用于管理奇偶raid数据重建的方法、系统和程序
US20050198411A1 (en) * 2004-03-04 2005-09-08 International Business Machines Corporation Commingled write cache in dual input/output adapter
US20060212644A1 (en) * 2005-03-21 2006-09-21 Acton John D Non-volatile backup for data cache
US20080040629A1 (en) * 2006-08-11 2008-02-14 Via Technologies, Inc. Computer system having raid control function and raid control method

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JONES M: "PCI Express 多播功能一优化嵌入式和通信应用中的系统资源和性能", 《电子产品世界》 *

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102629225B (zh) * 2011-12-31 2014-05-07 华为技术有限公司 双控制器磁盘阵列、存储系统以及数据存储路径切换方法
US8930608B2 (en) 2011-12-31 2015-01-06 Huawei Technologies Co., Ltd. Switch disk array, storage system and data storage path switching method
CN102629225A (zh) * 2011-12-31 2012-08-08 成都市华为赛门铁克科技有限公司 双控制器磁盘阵列、存储系统以及数据存储路径切换方法
CN104272257B (zh) * 2012-03-23 2016-06-22 Dssd股份有限公司 具有组播直接存储器存取和统一地址空间的存储系统
CN104272257A (zh) * 2012-03-23 2015-01-07 Dssd股份有限公司 具有组播直接存储器存取和统一地址空间的存储系统
CN103678165A (zh) * 2012-09-10 2014-03-26 金万益有限公司 经由PCIe接口连接至主机系统的存储装置和方法
CN105408879B (zh) * 2013-07-22 2018-06-15 华为技术有限公司 快捷外围部件互连域的资源管理
CN105408879A (zh) * 2013-07-22 2016-03-16 华为技术有限公司 快捷外围部件互连域的资源管理
CN104881246B (zh) * 2015-03-30 2018-01-12 北京华胜天成软件技术有限公司 应用于集群存储系统的输出入传递方法及系统
CN104881246A (zh) * 2015-03-30 2015-09-02 北京飞杰信息技术有限公司 应用于集群存储系统的输出入传递方法及系统
CN105159851A (zh) * 2015-07-02 2015-12-16 浪潮(北京)电子信息产业有限公司 多控存储系统
CN114003394A (zh) * 2021-12-31 2022-02-01 深圳市华图测控系统有限公司 用于恒温机内存不足的动态内存扩展方法、装置和恒温机
CN114003394B (zh) * 2021-12-31 2022-03-29 深圳市华图测控系统有限公司 用于恒温机内存不足的动态内存扩展方法、装置和恒温机

Also Published As

Publication number Publication date
US20110238909A1 (en) 2011-09-29
DE102011014588A1 (de) 2011-12-08
CN102209103B (zh) 2015-04-08

Similar Documents

Publication Publication Date Title
CN102209103B (zh) 向多个存储控制器多播写请求
US9285995B2 (en) Processor agnostic data storage in a PCIE based shared storage environment
US8589723B2 (en) Method and apparatus to provide a high availability solid state drive
US8938574B2 (en) Methods and systems using solid-state drives as storage controller cache memory
US8583853B1 (en) Error-handling for write-distribute command in raid mirroring
US20170177541A1 (en) Apparatus and method for transferring data and commands in a memory management environment
US9250687B1 (en) High performance flexible storage system architecture
US10540307B1 (en) Providing an active/active front end by coupled controllers in a storage system
CN103154920B (zh) 统一i/o适配器
US20110145452A1 (en) Methods and apparatus for distribution of raid storage management over a sas domain
CN102033715A (zh) 在本地代理的存储器镜像和迁移
CN105934793A (zh) 一种存储系统数据分发的方法、分发装置与存储系统
US7774514B2 (en) Method of transmitting data between storage virtualization controllers and storage virtualization controller designed to implement the method
CN1902601A (zh) 数据存储系统
CN102843284B (zh) iSCSI存储节点、架构以及读取、写入方法
CN103403667A (zh) 数据处理方法和设备
CN110609659A (zh) 用于执行读取命令的NVMeoF RAID实现方法
US7421520B2 (en) High-speed I/O controller having separate control and data paths
CN100464290C (zh) 缓存管理系统
US8799549B2 (en) Method for transmitting data between two computer systems
US20110154165A1 (en) Storage apparatus and data transfer method
US8713257B2 (en) Method and system for shared high speed cache in SAS switches
US11275698B2 (en) Termination of non-volatile memory networking messages at the drive level
US9990284B2 (en) Storage control device
AU2014348774A1 (en) Apparatus and method for routing information in a non-volatile memory-based storage device

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