CN102782661B - 数据存储的系统和方法 - Google Patents

数据存储的系统和方法 Download PDF

Info

Publication number
CN102782661B
CN102782661B CN201280000605.XA CN201280000605A CN102782661B CN 102782661 B CN102782661 B CN 102782661B CN 201280000605 A CN201280000605 A CN 201280000605A CN 102782661 B CN102782661 B CN 102782661B
Authority
CN
China
Prior art keywords
module
data
cache
cache module
target data
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
CN201280000605.XA
Other languages
English (en)
Other versions
CN102782661A (zh
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.)
XFusion Digital Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN102782661A publication Critical patent/CN102782661A/zh
Application granted granted Critical
Publication of CN102782661B publication Critical patent/CN102782661B/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
    • 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/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例提供一种数据存储系统和方法,该系统包括:至少一个交换模块、至少两个控制模块和至少一个缓存模块,该至少两个控制模块中的每个控制模块经由该至少一个交换模块中的每个交换模块与该至少一个缓存模块中的每个缓存模块连接;该控制模块,用于接收外部设备发送的数据写请求和目标数据,根据该数据写请求向该交换模块发送数据写指令,以及接收该交换模块转发的该缓存模块的数据读指令,根据该数据读指令向该交换模块发送该目标数据;该交换模块,用于接收该控制模块发送的该数据写指令和该目标数据转发给该缓存模块,以及接收该缓存模块发送的该数据读指令转发给该控制模块;该缓存模块,用于接收该交换模块转发的该数据写指令,根据该数据写指令发送该数据读指令给该交换模块,以及接收该交换模块转发的该目标数据并保存。通过交换模块把至少两个控制模块和至少一个缓存模块全部连接,使多个控制模块经由交换模块访问同一缓存模块,减少了各控制模块之间的缓存数据同步的时间,提高IOPS性能。

Description

数据存储的系统和方法
技术领域
本发明涉及计算机领域,并且更具体地,涉及数据存储的系统和方法。
背景技术
在存储系统(包括主机端和存储端)中,每秒进行读写操作的次数(IOPS,Input/Output Operations Per Second),是衡量随机访问性能的主要指标,多用于对数据库等的操作场景中。存储端的IOPS性能和主机端的读写操作(IO,Input/Output)是两个不同概念,IOPS性能用来衡量存储端每秒可接受多少次主机端发出的访问,主机端的一次IO需要对存储端进行多次访问才可以完成。例如,主机端向存储端写入一个最小的数据块,也要经过发送写入请求、写入数据、收到写入确认等三个步骤,也就是需要进行三次存储端访问。存储系统的IOPS性能主要取决于缓存(Cache)命中率和缓存访问时延。
目前,采用双控技术的存储系统,两个存储控制器工作在主备或者负荷分担模式下,两个存储控制器需要通过镜像通道对缓存数据进行备份。该存储系统的数据写过程如下:①存储控制器A(主要单元为中央处理器CPU,Central Processing Unit)的处理器(CPUA)从主机接口接收报文写请求,处理后将数据存入该CPUA的缓存单元CFSA(CFS,Cache for Storage),并通知另一个存储控制器B的处理器CPUB更新该CPUB的CFSB中的数据;②CPUB更新CFSB中的数据,并返回确认信息给CPUA;③CPUA返回存储确认信息给请求者,同时,刷新数据到磁盘单元。其中,存储系统的时延,除了链路传输时延外,还取决于CFS读/写数据时延、CPUA和CPUB之间传输数据时延以及CPUB返回确认信息的时延。CPUA和CPUB之间的传输由于需要软件参与,一般时延在1~10ms级别左右,如果CPUB系统繁忙,可能会更长。CFS的访问时延一般都在us级别,因此存储的时延主要取决于CPUA和CPUB通信的时延。
在现有技术中,由于双控制器之间的CFS数据同步时间过长,导致存储的IOPS性能很难提升。
发明内容
本发明实施例提供一种数据存储的系统和方法,能够减少双控制器之间数据同步的时间,提高存储端的IOPS性能。
一方面,提供了一种数据存储系统,该系统包括:至少一个交换模块、至少两个控制模块和至少一个缓存模块,该至少两个控制模块中的每个控制模块经由该至少一个交换模块中的每个交换模块与该至少一个缓存模块中的每个缓存模块连接;该控制模块,用于接收外部设备发送的数据写请求和目标数据,根据该数据写请求向该交换模块发送数据写指令,以及接收该交换模块转发的该缓存模块的数据读指令,根据该数据读指令向该交换模块发送该目标数据;该交换模块,用于接收该控制模块发送的该数据写指令和该目标数据转发给该缓存模块,以及接收该缓存模块发送的该数据读指令转发给该控制模块;该缓存模块,用于接收该交换模块转发的该数据写指令,根据该数据写指令发送该数据读指令给该交换模块,以及接收该交换模块转发的该目标数据并保存。
另一方面,提供了一种数据存储方法,该方法在包括至少一个交换模块、至少两个控制模块和至少一个缓存模块的数据存储系统执行,该数据存储系统中的该至少两个控制模块中的每个控制模块经由该至少一个交换模块中的每个交换模块与该至少一个缓存模块中的每个缓存模块连接,该方法包括:该控制模块接收外部设备发送的数据读写请求;该控制模块根据该数据写请求,向该交换模块发送数据写指令;该交换模块转发该数据写指令给该缓存模块;该缓存模块根据该数据写指令,发送数据读指令给该交换模块;该交换模块转发该数据读指令给该控制模块;该控制模块根据该数据读指令,向该交换模块发送该目标数据;该交换模块转发该目标数据给该缓存模块;该缓存模块保存该目标数据。
本发明实施例中的数据存储系统和方法,通过交换模块把至少两个控制模块和至少一个缓存模块全部连接,使同一缓存模块可以被各个控制模块通过该交换模块所访问,各控制模块无需对缓存数据进行同步,减少了控制模块间的通信时延,从而能够缩短缓存访问延迟,提高存储端的IOPS性能。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例的数据存储系统的结构图。
图2是本发明一实施例的缓存模块的结构图。
图3a是本发明一实施例的数据存储系统的另一结构图,图3b是本发明一实施例的数据存储系统的再一结构图。
图4a是本发明一实施例的数据存储系统的结构图,图4b是本发明另一实施例的数据存储系统的结构图。
图5是本发明再一实施例的数据存储系统的结构图。
图6是本发明一实施例的数据存储方法的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的数据存储系统可用于计算机系统,具体用于进行数据存储操作(数据读写等)。
图1示出了根据本发明一实施例的数据存储系统100的结构图。如图1所示,该系统100包括:至少一个交换模块110、至少两个控制模块120、120’和至少一个缓存模块140,该至少两个控制模块中的每个控制模块经由该至少一个交换模块中的每个交换模块而与该至少一个缓存模块中的每个缓存模块连接;
该控制模块120、120’,用于接收外部设备发送的数据写请求和目标数据,根据该数据写请求向该交换模块110发送数据写指令,以及接收该交换模块110转发的该缓存模块140的数据读指令,根据该数据读指令向该交换模块110发送该目标数据;
该交换模块110,用于接收该控制模块120、120’发送的该数据写指令和该目标数据转发给该缓存模块140,以及接收该缓存模块140发送的该数据读指令转发给该控制模块120、120’;
该缓存模块140,用于接收该交换模块110转发的该数据写指令,根据该数据写指令发送该数据读指令给该交换模块110,以及接收该交换模块110转发的该目标数据并保存。
在本发明实施例中,交换模块110可以分别与控制模块120、120’及缓存模块140相连接,为各控制模块120、120’与缓存模块140之间的通信提供通道,使控制模块120、120’均可以经由交换模块110访问缓存模块,控制模块120、120’进行数据存储时无需对缓存数据进行同步,减少了控制模块间的通信时延,从而缩短缓存访问延迟,提高存储端的IOPS性能。
优选的,本发明实施例中,交换模块110可以基于PCIE总线进行该目标数据和该指令的传递。PCI-Express(简称PCIE)是目前较新的总线和接口标准,其数据传输速率高,时延低,并且PCIE交换接口可以提供DMA(直接存储,Direct Memory Access)方式进行数据的搬移,无需控制模块参与相关目标数据的传递,提升控制模块处理能力,从而进一步提升存储端的存储效率,提升IOPS性能。
并且,可选地,在本发明实施例中,可以配置两个交换模块,以支持1+1主备或负荷分担模式的工作,同样,也可以配置两个以上控制模块,以支持N+1主备或负荷分担模式的工作,从而能够提高数据存取效率,防止单点故障的发生。当然,在本发明实施例中,未对多个控制模块和交换模块进行区分说明,具体描述时实施例中的控制模块和交换模块是指当前的主用模块或正在进行数据或信令收发的模块。
服务器刀片(SRB,Server Blade)是指在标准高度的机架式机箱内可插装多个卡式的服务器单元,服务器刀片就像“刀片”一样,每一块“刀片”实际上就是一块系统主板。在本发明实施例中,作为示例性说明而非限定,以SRB为例对控制模块进行说明,其作用与以上描述的现有技术中的CPU相似。
缓存刀片(CAB,Cache Blade)可以被视为一个缓存模块,通过背板总线向服务器刀片提供缓存功能。在本发明实施例中,作为示例性说明而非限定,以CAB为例对缓存模块进行说明。
基于PCIE交换的刀片(PSB,PICE Switch Blade)是基于PCIE为与其相连接的各模块提供通信通道的模块,PSB可以提供CAB与SRB之间通信的通道。在本发明实施例中,作为示例性说明而非限定,以PSB为例对交换模块进行说明。
在本发明实施例中,缓存模块140可以用于接收交换模块110转发的数据写指令,根据该数据写指令发送数据读指令给交换模块110,以及接收交换模块110转发的该目标数据并保存。参考图2,对该作为该缓存模块的CAB200的结构进行详细说明。
图2示出了根据本发明实施例的缓存模块(CAB)的结构图,如图2所示,该CAB可以包括:缓存控制单元(CFSC,CFS Controller)和至少一个缓存单元(CFS),该CFSC与各CFS直接连接。CFSC可以对外提供包括一个或两个PCIE链路的接口,并通过该接口与PSB连接,从而可以与SRB进行通信。并且,在本发明实施例中,在CFSC内部,可以集成有多通道直接存储控制器(DMAC,Direct Memory Access Controller),以在配置有多个CAB和DIB时,通过该DMAC的控制,实现各CAB之间以及CAB与DIB之间的DMA(直接存储,Direct Memory Access),进行数据搬移。作为示例性说明而非限定,CFS可以为双列直插式存储模块(DIMM,Dual-Inline-Memory-Modules)、双倍速率同步动态随机存储器(DDR,DoubleData Rate)颗粒。
缓存模块的CFSC可以通过一个或两个PSB接收至少一个SRB发送的数据读写指令。读数据时,CFSC可以根据数据读指令,从CFS中查找与该数据读指令相对应的数据;写数据时,CFSC可以根据数据写指令,接收SRB经由PSB发送的目标数据并将该目标数据存储在CFS中。
在本发明实施例中,由于缓存模块(CAB)与控制模块(SRB)非直接连接,缓存模块(CAB)的CFS的大小不受SRB(主要是CPU管理能力、连接能力等)的限制,从而可以很方便地以较小成本增大缓存模块(CAB)的容量,提高了缓存命中率,也能够提高存储端的IOPS性能。
下面,具体说明本发明实施例的数据存储系统一次写数据操作的过程如下:①SRB接收外部设备发送的数据写请求及目标数据,并根据该数据写请求,向PSB发送数据写指令;②PSB转发该数据写指令给CAB;③CAB根据该数据写指令,发送数据读指令给PSB;④PSB转发该数据读指令给SRB;⑤SRB根据该数据读指令,向PSB发送该目标数据;⑥PSB转发该目标数据给CAB;⑦CAB保存该目标数据。
另一方面,本发明实施例中的数据存储系统也可以处理外部设备的读数据请求,可以为:
该控制模块120、120’,用于接收外部设备发送的数据读请求,根据该数据读请求向该交换模块110发送数据读指令,以及接收该交换模块110转发的该缓存模块140的数据写指令和第二目标数据,向该外部设备发送该第二目标数据;
该交换模块110,用于接收该控制模块120、120’发送的该数据读指令,转发给该缓存模块140,以及接收该缓存模块140发送的写指令和该第二目标数据并转发给该控制模块120、120’;
该缓存模块140具体用于接收该交换模块110发送的该数据读指令,根据该数据读指令发送该数据写指令给该交换模块110,以及读取该第二目标数据,向该交换模块110发送该第二目标数据。
下面具体说明一次读数据操作的过程:①SRB接收外部设备发送的数据读请求,根据该数据读请求向PSB发送数据读指令;②PSB转发该数据读指令给CAB;③CAB根据该数据读指令查找其保存的数据,在与该数据读指令相对应的目标数据保存在CAB中(Cache命中)的情况下,向PSB发送数据写指令;④PSB向SRB转发该数据写指令;⑤CAB向PSB发送该目标数据;⑥PSB转发该目标数据给SRB;⑦SRB向外部设备发送数据读响应及该目标数据。在本发明实施例中,控制模块(SRB)120、120’通过基于PCIE交换的交换模块(PSB)110与缓存模块(CAB)140相连接,每个控制模块(SRB)、每个交换模块(PSB)和每个缓存模块(CAB)之间都是相连的,使在外部设备进行写操作时,控制模块(SRB)120、120’经由交换模块(PSB)110访问缓存数据所对应的缓存模块,完成写操作,而无需对控制模块(SRB)120、120’的各自缓存数据进行同步,减少了控制模块间的通信时延,从而缩短缓存访问延迟,提高存储端的IOPS性能。
图3a、图3b示出了根据本发明实施例的数据存储系统100的另一结构图。在本发明实施例中,该系统100还包括至少一个磁盘模块150,如图3a所示,该至少一个磁盘模块中的每个磁盘模块经由该至少一个交换模块中的每个交换模块而与该至少一个缓存模块中的每个缓存模块连接;或图3b所示,该至少一个磁盘模块中的每个磁盘模块与该至少一个缓存模块中的每个缓存模块直接连接;
则该缓存模块140,还用于根据该数据写指令,向该磁盘模块150发送数据同步指令以及所述目标数据;
该磁盘模块150用于根据该数据同步指令,接收并保存所述目标数据。在本发明实施例中,磁盘刀片(DIB,Disk Blade)可以被视为一个硬盘模块,通过背板总线向服务器刀片提供存储功能,可以支持串行连接小型计算机系统接口(SAS,Serial Attached Small Computer System Interface)和串行高级技术附件(SATA,Serial Advanced Technology Attachment)等接口技术,可选地,该DIB还可以包括存储接口扩展模块,可以连接至少一个固态硬盘(SSD,Solid State Disk)和/或混合硬盘(HHD,Hybrid Hard Disk),从而可以根据需要扩大DIB的容量。在本发明实施例中,作为示例性说明而非限定,以DIB为例对磁盘模块进行说明。如图3a所示,该磁盘模块(DIB)可以通过交换模块(PSB)而与缓存模块(CAB)间接连接,如图3b所示该磁盘模块(DIB)也可以与缓存模块(CAB)直接连接,该磁盘模块(DIB)用于存储数据,当缓存模块(CAB)接收到控制模块发送的数据读写指令(包括数据读指令和数据写指令)时,可以通过CFSC向磁盘模块(DIB)发送数据同步指令,从而实现对磁盘模块中目标数据的读取操作。
具体地说,一次写数据操作(访问缓存的一例)的过程如下,①控制模块接收外部设备发送的数据写请求及目标数据,向交换模块发送数据写指令;②交换模块转发该数据写指令给缓存模块;③缓存模块根据该数据写指令,发送数据读指令给交换模块;④交换模块转发该数据读指令给控制模块;⑤控制模块根据该数据读指令,向交换模块发送目标数据;⑥交换模块转发该目标数据给缓存模块;⑦缓存模块保存该目标数据;⑧缓存模块向磁盘模块发送第一数据同步指令及该目标数据;⑨磁盘模块可以根据该第一数据同步指令,接收并保存该目标数据;⑩缓存模块通过交换模块向控制模块发送数据写确认消息,控制模块根据数据写确认消息,向外部设备发送数据写响应。当然,在本发明实施例中,缓存模块向磁盘模块同步目标数据的过程(上面的步骤⑧、⑨)可以是在按照前面所述在接收到目标数据后立即进行,也可以按规定的周期,一次性同步在该周期内接收的所有目标数据,此时上述过程中的⑩在步骤⑦之后执行。
另一方面,同样的,此时本发明实施例中的数据存储系统也可以处理外部设备的读数据请求,可以为:
则该缓存模块140,还用于根据该数据读指令,向该磁盘模块150发送数据同步指令;
该磁盘模块150用于根据该数据同步指令,读取该目标数据,并发送该目标数据给该缓存模块。
下面具体说明一次读数据操作的过程:①SRB接收外部设备发送的数据读请求,根据该数据读请求向PSB发送数据读指令;②PSB转发该数据读指令给CAB;③CAB根据该数据读指令查找其保存的数据,在与该数据读指令相对应的目标数据未保存在CAB中(Cache未命中)的情况下,向DIB发送数据同步指令;④DIB根据该数据同步指令读取该目标数据,并发送该目标数据给CAB;⑤CAB向PSB发送数据写指令;⑥PSB向SRB转发该数据写指令;⑦CAB向PSB发送该目标数据;⑧PSB转发该目标数据给SRB;⑨SRB向外部设备发送数据读响应及该目标数据。如果与该数据读指令相对应的目标数据保存在CAB中(Cache命中),则上面第③步,CAB直接读取该目标数据,然后直接执行第⑤步;当系统中CAB与DIB之间为通过PSB进行连接,第③步的CAB向DIB发送数据同步指令,还要经由PSB转发。
在本发明实施例中,由于缓存模块与磁盘模块之间的数据同步操作不经由控制单元,而是直接由缓存模块控制实现,可以经过高速的PCIE交换模块或直接相连的数据交互,因此减少了数据交互时延,从而能够提高存储端的IOPS性能。
并且,在本发明实施例中,为了防止缓存模块单点故障的发生,缓存模块(主要是CFSC)还可以对目标数据进行备份操作。可以通过结构与上述缓存模块相同的另一缓存模块来保存(备份)目标数据,也可以通过独立的备份模块保存(备份)目标数据。
当通过结构与上述缓存模块相同的另一缓存模块来保存(备份)目标数据时,可选地,在本发明实施例中,该系统包括至少两个缓存模块,该至少两个缓存模块中的第一缓存模块和第二缓存模块经由该至少一个交换模块中的每个交换模块而互相连接;
该第一缓存模块具体用于向该交换模块发送第一数据备份指令及第三目标数据,该第三目标数据是该第一缓存模块根据该数据写指令保存的目标数据;
该交换模块还用于接收该第一缓存模块发送的该第一数据备份指令及该第三目标数据,并发送给该第二缓存模块,该第一数据备份指令及第三目标数据的传递基于PCIE总线进行;
该第二缓存模块具体用于接收该交换模块发送的该第一数据备份指令及该第三目标数据,并保存该第三目标数据。
具体地说,起到备份作用的第二缓存模块可以经由交换模块而与第一缓存模块连接。并且,在此情况下,第一缓存模块与第二缓存模块可以在主备模式下工作,也可以在负荷分担且互相备份的模式下工作。
当第一缓存模块与第二缓存模块在主备模式下工作时,该第二缓存模块对数据进行备份的流程如下。即,第二缓存模块的CFSC可以通过PSB接收第一缓存模块发送的数据备份指令和目标数据,并将该目标数据存储在CFS中。
当第一缓存模块与第二缓存模块在负荷分担且互相备份的模式下工作时,各缓存模块之间可以互相备份,因此,
可选地,在本发明实施例中,该缓存模块包括缓存区域和备份区域,
该第一缓存模块具体用于将该第三目标数据保存在该第一缓存模块的缓存区域中;以及
该第二缓存模块具体用于将该第三目标数据保存在该第二缓存模块的备份区域中。
具体地说,如图4a、4b所示,本发明实施例的数据存储系统400还可以包括两个以上SRB和与各SRB一一对应的CAB。
下面,对各CAB缓存及备份目标数据的流程进行说明。
可选地,如图4a所示,当数据存储系统300包括两个SRB(SRBa和SRBb)和与各SRB相对应的两个CAB(CABa和CABb)时,SRBa可以向PSB发送第一数据读写指令(当为数据读操作时,为读指令,当为数据写操作时,为写指令),通过PSB向CABa转发该第一数据读写指令,CABa根据该数据读写指令获取目标数据(从SRBa或DIB,当为读指令时,从SRBa,当为写指令时,从DIB),并将该目标数据保存在CABa的与SRBa对应的缓存区域SRBa(A),并通过PSB向CABb发送第一数据备份指令及该目标数据,CABb根据该第一数据备份指令,将该目标数据保存在CABb的与CABa相对应的备份区域SRBa(S)。
同理,SRBb可以向PSB发送第二数据读写指令(当为数据读操作时,为读指令,当为数据写操作时,为写指令),通过PSB向CABb转发该第二数据读写指令,CABb根据该第二数据读写指令获取目标数据(从SRBb或DIB,当为读指令时,从SRBb,当为写指令时,从DIB),并将该目标数据保存在CABb的与SRBb对应的缓存区域SRBb(A),并通过PSB向CABa发送第二数据备份指令及该目标数据,CABa根据该第二数据备份指令,将该目标数据保存在CABa的与CABb相对应的备份区域SRBb(S)。
可选地,如图4b所示,当数据存储系统300包括三个SRB(SRBa、SRBb和SRBc)和与各SRB相对应的三个CAB(CABa、CABb和CABc)时,SRBa可以通过PSB向CABa发送第三数据读写指令(当为数据读操作时,为读指令,当为数据写操作时,为写指令),CABa根据该第三数据读写指令获取目标数据(从SRBa或DIB,当为读指令时,从SRBa,当为写指令时,从DIB),并将该目标数据保存在CABa的与SRBa对应的缓存区域SRBa(A),并通过PSB向CABc发送第三数据备份指令及该目标数据,CABc根据该第三数据备份指令,将该目标数据保存在CABc的与CABa相对应的备份区域SRBa(S)。
同理,SRBb可以通过PSB向CABb发送第四数据读写指令(当为数据读操作时,为读指令,当为数据写操作时,为写指令),CABb根据该第四数据读写指令获取目标数据(从SRBb或DIB,当为读指令时,从SRBb,当为写指令时,从DIB),并将该目标数据保存在CABb的与SRBb对应的缓存区域SRBb(A),并通过PSB向CABa发送第四数据备份指令及该目标数据,CABa根据该第四数据备份指令,将该目标数据保存在CABa的与CABb相对应的备份区域SRBb(S)。
同理,SRBc可以通过PSB向CABc发送第五数据读写指令(当为数据读操作时,为读指令,当为数据写操作时,为写指令),CABc根据该第五数据读写指令获取目标数据(从SRBc或DIB,当为读指令时,从SRBc,当为写指令时,从DIB),并将该目标数据保存在CABc的与SRBc对应的缓存区域SRBc(A),并通过PSB向CABb发送第五数据备份指令及该目标数据,CABb根据该第五数据备份指令,将该目标数据保存在CABb的与CABc相对应的备份区域SRBc(S)。
在本发明实施例中,作为示例性说明而非限定,各CAB的主/备区域的空间利用率可以各占一半。
根据本发明实施例,可以适用于使用两个以上的控制模块(即,两个以上CPU)的情况,因此,能够进一步提高数据存储的效率,有利于计算机的性能升级。
在本发明实施例中,由于第一缓存模块与第二缓存模块之间的备份操作不经由控制单元,而是在CFSC的控制下通过交换模块实现数据交互,因此减少了数据交互时延,从而能够提高存储端的IOPS性能,同时由于第一缓存模块与第二缓存模块之间互为备份,降低了缓存模块单点故障的风险。
当通过独立的备份模块保存(备份)目标数据时,可选地,在本发明实施例中,该系统还包括:至少一个备份模块,该至少一个备份模块中的每个备份模块分别与该至少一个缓存模块中一个对应的缓存模块连接;
该缓存模块具体用于向该备份模块发送第二数据备份指令及第四目标数据;
该备份模块用于根据该第二数据备份指令接收并保存该第四目标数据。
具体地说,如图5所示,在本发明实施例的数据存储系统400中,可以为每个缓存模块CAB单独配置一个备份模块,并且该备份模块可以包括备电单元和闪存单元,并且该备电单元和闪存单元可以电连接,该备电单元可以为闪存单元供电,其中,该备电单元可以与缓存模块(例如,缓存模块的CFSC)电连接,从而当计算机系统掉电时,可以通过该备电单元对缓存模块(CFSC)供电,并且,该闪存单元可以与缓存模块(例如,缓存模块的CFSC)直接连接,当计算机系统掉电时,缓存模块(CFSC)可以将保存在CFS中的数据保存到闪存单元中,具体可以为,当计算机系统掉电时,缓存模块(CFSC)由该备电单元进行供电,并向该备份模块发送第二数据备份指令及第四目标数据,备份模块的闪存单元根据该第二数据备份指令从缓存模块接收并保存该第四目标数据,以防止CFS的数据丢弃,当系统重新上电后,CFSC从闪存单元把数据恢复到CFS。
在本发明实施例中,与以CAB作为备份模块的情况相比,减少了CAB之间的备份过程,从而进一步缩短了数据访问延迟。
根据本发明实施例数据存储系统,通过使至少两个控制模块经由交换模块访问缓存模块,完成读写操作,各控制模块无需对缓存数据进行同步,从而能够缩短缓存访问延迟,提高存储端的IOPS性能。并且由于控制模块经由交换模块与缓存模块连接,控制模块重启后无需恢复缓存数据,从而能够大幅减少系统启动时间。
上文中,结合图1至图5,详细描述了根据本发明实施例的数据存储系统,下面,将结合图6,详细描述根据本发明实施例的数据存储方法。
图6示出了根据本发明一实施例的数据存储方法500的示意性流程图。该方法在包括至少一个交换模块、至少两个控制模块和至少一个缓存模块的数据存储系统执行,该数据存储系统中至少两个控制模块中的每个控制模块经由该至少一个交换模块中的每个交换模块与该至少一个缓存模块中的每个缓存模块连接。
如图6所示,该方法500包括:
S210,控制模块接收外部设备发送的数据写请求以及目标数据;
S220,该控制模块根据该数据写请求,向该交换模块发送数据写指令;
S230,该交换模块转发该数据写指令给该缓存模块;
S240,该缓存模块根据该数据写指令,发送数据读指令给该交换模块;
S250,该交换模块转发该数据读指令给该控制模块;
S260,该控制模块根据该数据读指令,向该交换模块发送该目标数据;
S270,该交换模块转发该目标数据给该缓存模块;
S280,该缓存模块保存该目标数据。
在本发明实施例中,控制模块通过交换模块与缓存模块相连接,使在外部设备进行写操作时,控制模块通过交换模块访问缓存模块,而无需对控制模块的各自缓存数据进行同步,减少了控制模块间的通信时延,从而缩短缓存访问延迟,提高存储端的IOPS性能。
优选的,本发明实施例中,交换模块可以基于PCIE总线进行该目标数据和该指令的传递。利用PCIE总线数据传输速率高,时延低,以及可以提供DMA方式进行数据的搬移的优点,进一步提升存储端的存储效率,提升IOPS性能。
进一步的,在本发明实施例中,该数据存储系统还可以包括至少一个磁盘模块,该至少一个磁盘模块中的每个磁盘模块经由该至少一个交换模块中的每个交换模块而与该至少一个缓存模块中的每个缓存模块连接;或
该至少一个磁盘模块中的每个磁盘模块与该至少一个缓存模块中的每个缓存模块直接连接;则该方法还包括:
该缓存模块根据该接收的数据写指令,向该磁盘模块发送数据同步指令以及该目标数据;
该磁盘模块根据该数据同步指令,保存该目标数据。
具体地说,一次写数据操作的方法过程如下,①控制模块接收外部设备发送的数据写请求及目标数据,向交换模块发送数据写指令;②交换模块转发该数据写指令给缓存模块;③缓存模块根据该数据写指令,发送数据读指令给交换模块;④交换模块转发该数据读指令给控制模块;⑤控制模块根据该数据读指令,向交换模块发送目标数据;⑥交换模块转发该目标数据给缓存模块;⑦缓存模块保存该目标数据;⑧缓存模块向磁盘模块发送第一数据同步指令及该目标数据;⑨磁盘模块可以根据该第一数据同步指令,接收并保存该目标数据;⑩缓存模块通过交换模块向控制模块发送数据写确认消息,控制模块根据数据写确认消息,向外部设备发送数据写响应。当然,在本发明实施例中,缓存模块向磁盘模块同步目标数据的过程(上面的步骤⑧、⑨)可以是在按照前面所述在接收到目标数据后立即进行,也可以按规定的周期,一次性同步在该周期内接收的所有目标数据,此时上述过程中的⑩在步骤⑦之后执行。
在本发明实施例中,由于缓存模块与磁盘模块之间的数据同步操作不通过控制单元控制实施,而是直接由缓存模块向磁盘模块发送数据同步指令控制实现,因此减少了数据交互时延,从而能够提高存储端的IOPS性能。
进一步的,在本发明实施例中,为了防止单点故障的发生,缓存模块还可以对目标数据进行备份操作。可以通过结构与上述缓存模块相同的另一缓存模块来保存(备份)目标数据,也可以通过独立的备份模块保存(备份)目标数据。
因此,可选地,当通过结构与上述缓存模块相同的另一缓存模块来保存(备份)目标数据时,该系统包括至少两个缓存模块,该至少两个缓存模块中的第一缓存模块和第二缓存模块经由该至少一个交换模块中的每个交换模块而互相连接;则该方法还包括:
该第一缓存模块向该交换模块发送第一数据备份指令及第三目标数据,该第三目标数据是该第一缓存模块根据该数据写指令保存的目标数据;
该交换模块接收该第一数据备份指令及所述第三目标数据,并发送给该第二缓存模块;
该第二缓存模块根据该第一数据备份指令保存该第三目标数据。
具体地说,起到备份作用的第二缓存模块可以通过交换模块而与第一缓存模块连接。并且,在此情况下,第一缓存模块与第二缓存模块可以在主备模式下工作,也可以在负荷分担而互相备份的模式下工作。
当第一缓存模块与第二缓存模块在主备模式下工作时,该第二缓存模块对数据进行备份的流程如下。即,第二缓存模块可以通过交换模块接收第一缓存模块发送的数据备份指令和目标数据,并将该目标数据存储在第二缓存模块的CFS中。
当第一缓存模块与第二缓存模块在负荷分担而互相备份的模式下工作时,各缓存模块之间可以互相备份,因此,该缓存模块包括缓存区域和备份区域;此时,该第一缓存模块根据第一数据读写指令,将该第三目标数据保存在该第一缓存模块的缓存区域中;该第二缓存模块根据该第一数据备份指令,通过该交换模块接收该第三目标数据,并保存在该第二缓存模块的备份区域中。在本发明实施例中,作为示例性说明而非限定,各缓存模块的主/备区域的空间利用率可以各占一半。
根据本发明实施例,可以适用于使用两个以上的控制模块(即,两个以上CPU)的情况,因此,能够进一步提高数据存储的效率,有利于计算机的性能升级。
在本发明实施例中,由于第一缓存模块与第二缓存模块之间的备份操作不经由控制单元,而是在第一缓存模块的控制下通过交换模块实现的数据交互,因此减少了数据交互时延,能够提高存储端的IOPS性能。
当通过独立的备份模块保存(备份)目标数据时,该系统还包括:至少一个备份模块,该至少一个备份模块中的每个备份模块分别与该至少一个缓存模块中一个对应的缓存模块连接;则该方法还包括:
该对应的缓存模块向该备份模块发送第二数据备份指令及第四目标数据;
该备份模块根据该第二数据备份指令接收并保存该第四目标数据。
具体地说,当计算机系统掉电时,缓存模块由其所连接的该备电单元进行供电,并向该备份模块发送第二数据备份指令及第四目标数据,备份模块根据该第二数据备份指令从缓存模块接收并保存该第四目标数据,以防止CFS的数据丢弃。当系统重新上电后,CFSC从闪存单元把数据恢复到CFS。
在本发明实施例中,与以缓存模块作为备份模块的情况相比,减少了CAB之间的备份过程,从而进一步缩短了数据访问延迟。
根据本发明实施例数据存储方法,通过使控制模块通过交换模块访问缓存模块,同一缓存模块可以被各个控制模块所访问,各控制模块无需对缓存数据进行同步,减少了控制模块间的通信时延,从而能够缩短缓存访问延迟,并且由于控制模块经由交换模块与缓存模块连接,控制模块重启后无需恢复缓存数据,从而能够大幅减少系统启动时间。
根据本发明实施例的数据存储方法500的执行主体可对应于本发明实施例的数据存储系统100,并且,该数据存储方法500中的各流程和上述其他操作的动作主体分别对应图1至图4中的系统100的各模块和单元为了简洁,在此不再赘述。
应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、系统和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接连接或通信连接可以是通过一些接口,系统或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (6)

1.一种数据存储系统,其特征在于,所述系统包括:至少一个交换模块、至少两个控制模块和至少一个缓存模块,所述至少两个控制模块中的每个控制模块经由所述至少一个交换模块中的每个交换模块与所述至少一个缓存模块中的每个缓存模块连接;
所述控制模块,用于接收外部设备发送的数据写请求和目标数据,根据所述数据写请求向所述交换模块发送数据写指令,以及接收所述交换模块转发的所述缓存模块的数据读指令,根据所述数据读指令向所述交换模块发送所述目标数据;
所述交换模块,用于接收所述控制模块发送的所述数据写指令和所述目标数据转发给所述缓存模块,以及接收所述缓存模块发送的所述数据读指令转发给所述控制模块;
所述缓存模块,用于接收所述交换模块转发的所述数据写指令,根据所述数据写指令发送所述数据读指令给所述交换模块,以及接收所述交换模块转发的所述目标数据并保存;
其中,所述系统包括至少两个缓存模块,所述至少两个缓存模块中的第一缓存模块和第二缓存模块经由所述至少一个交换模块中的每个交换模块而互相连接;则,
所述第一缓存模块具体用于向所述交换模块发送第一数据备份指令及第三目标数据,所述第三目标数据是所述第一缓存模块根据所述数据写指令保存的所述目标数据;
所述交换模块还用于接收所述第一缓存模块发送的所述第一数据备份指令及所述第三目标数据,并发送给所述第二缓存模块;
所述第二缓存模块用于接收所述交换模块发送的所述第一数据备份指令及所述第三目标数据,并保存所述第三目标数据;
所述至少两个缓存模块中的每个缓存模块包括缓存区域和备份区域,则
所述第一缓存模块具体用于将所述第三目标数据保存在所述第一缓存模块的缓存区域中;以及
所述第二缓存模块具体用于将所述第三目标数据保存在所述第二缓存模块的备份区域中。
2.根据权利要求1所述的数据存储系统,其特征在于,
所述交换模块基于PCIE总线进行所述目标数据和所述指令的传递。
3.根据权利要求1或2所述的数据存储系统,其特征在于,所述系统还包括:至少一个磁盘模块,所述至少一个磁盘模块中的每个磁盘模块经由所述至少一个交换模块中的每个交换模块而与所述至少一个缓存模块中的每个缓存模块连接,或所述至少一个磁盘模块中的每个磁盘模块与所述至少一个缓存模块中的每个缓存模块直接连接;
所述缓存模块还用于根据所述数据写指令,向所述磁盘模块发送数据同步指令以及所述目标数据;
所述磁盘模块根据所述数据同步指令,接收并保存所述目标数据。
4.一种数据存储方法,其特征在于,所述方法在包括至少一个交换模块、至少两个控制模块和至少一个缓存模块的数据存储系统执行,所述数据存储系统中的所述至少两个控制模块中的每个控制模块经由所述至少一个交换模块中的每个交换模块与所述至少一个缓存模块中的每个缓存模块连接,所述方法包括:
所述控制模块接收外部设备发送的数据写请求以及目标数据;
所述控制模块根据所述数据写请求,向所述交换模块发送数据写指令;
所述交换模块转发所述数据写指令给所述缓存模块;
所述缓存模块根据所述数据写指令,发送数据读指令给所述交换模块;
所述交换模块转发所述数据读指令给所述控制模块;
所述控制模块根据所述数据读指令,向所述交换模块发送所述目标数据;
所述交换模块转发所述目标数据给所述缓存模块;
所述缓存模块保存所述目标数据;
其中,所述数据存储系统包括至少两个缓存模块,所述至少两个缓存模块中的第一缓存模块和第二缓存模块经由所述至少一个交换模块中的每个交换模块而互相连接;则所述方法还包括:
所述第一缓存模块向所述交换模块发送第一数据备份指令及第三目标数据,所述第三目标数据是所述第一缓存模块根据所述数据写指令保存的所述目标数据;
所述交换模块接收所述第一数据备份指令及所述第三目标数据,并发送给所述第二缓存模块;
所述第二缓存模块根据所述第一数据备份指令保存所述第三目标数据;
并且,所述至少两个缓存模块中的每个缓存模块包括缓存区域和备份区域,所述方法还包括:
所述第一缓存模块将所述第三目标数据保存在所述第一缓存模块的缓存区域中;
所述第二缓存模块将所述第三目标数据保存在所述第二缓存模块的备份区域中。
5.根据权利要求4所述的方法,其特征在于,所述交换模块基于PCIE总线进行所述目标数据和所述指令的传递。
6.根据权利要求4或5所述的方法,其特征在于,所述数据存储系统还包括至少一个磁盘模块,所述至少一个磁盘模块中的每个磁盘模块经由所述至少一个交换模块中的每个交换模块而与所述至少一个缓存模块中的每个缓存模块连接;或
所述至少一个磁盘模块中的每个磁盘模块与所述至少一个缓存模块中的每个缓存模块直接连接;
则所述方法还包括:
所述缓存模块根据所述数据写指令,向所述磁盘模块发送数据同步指令以及所述目标数据;
所述磁盘模块根据所述数据同步指令,保存所述目标数据。
CN201280000605.XA 2012-05-18 2012-05-18 数据存储的系统和方法 Active CN102782661B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2012/075735 WO2012126425A2 (zh) 2012-05-18 2012-05-18 数据存储的系统和方法

Publications (2)

Publication Number Publication Date
CN102782661A CN102782661A (zh) 2012-11-14
CN102782661B true CN102782661B (zh) 2015-06-17

Family

ID=46879801

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280000605.XA Active CN102782661B (zh) 2012-05-18 2012-05-18 数据存储的系统和方法

Country Status (2)

Country Link
CN (1) CN102782661B (zh)
WO (1) WO2012126425A2 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104991745B (zh) * 2015-07-21 2018-06-01 浪潮(北京)电子信息产业有限公司 一种存储系统数据写入方法和系统
CN109783401B (zh) * 2015-08-07 2023-11-10 华为技术有限公司 数据存储方法以及存储系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1558332A (zh) * 2004-01-18 2004-12-29 中兴通讯股份有限公司 一种实现自动读写内部集成电路设备的装置和方法
CN1783033A (zh) * 2004-11-19 2006-06-07 英特尔公司 共享公共高速缓存的异构处理器
CN101118478A (zh) * 2007-09-10 2008-02-06 杭州华三通信技术有限公司 缓存管理系统
CN101430664A (zh) * 2008-09-12 2009-05-13 中国科学院计算技术研究所 一种多处理器系统及Cache一致性消息传输方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7596662B2 (en) * 2006-08-31 2009-09-29 Intel Corporation Selective storage of data in levels of a cache memory

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1558332A (zh) * 2004-01-18 2004-12-29 中兴通讯股份有限公司 一种实现自动读写内部集成电路设备的装置和方法
CN1783033A (zh) * 2004-11-19 2006-06-07 英特尔公司 共享公共高速缓存的异构处理器
CN101118478A (zh) * 2007-09-10 2008-02-06 杭州华三通信技术有限公司 缓存管理系统
CN101430664A (zh) * 2008-09-12 2009-05-13 中国科学院计算技术研究所 一种多处理器系统及Cache一致性消息传输方法

Also Published As

Publication number Publication date
CN102782661A (zh) 2012-11-14
WO2012126425A2 (zh) 2012-09-27
WO2012126425A3 (zh) 2013-04-18

Similar Documents

Publication Publication Date Title
CN107301455B (zh) 用于卷积神经网络的混合立方体存储系统及加速计算方法
US20200371692A1 (en) Memory disaggregation for compute nodes
CN103049220B (zh) 存储控制方法、存储控制装置和固态存储系统
CN102567227B (zh) 共享缓存设备的双控制器存储系统和方法
CN105573857A (zh) 一种多控磁盘阵列缓存镜像方法及系统
CN101548271B (zh) 多个存储装置中的数据冗余
CN104407933A (zh) 一种数据的备份方法及装置
CN102378971B (zh) 数据读取的方法和存储器控制器
US20180276161A1 (en) PCIe VIRTUAL SWITCHES AND AN OPERATING METHOD THEREOF
CN103078747A (zh) PCIe交换机及其工作方法
CN110399034B (zh) 一种SoC系统的功耗优化方法及终端
CN103336745A (zh) 一种基于ssd缓存的fc hba及其设计方法
CN103534688A (zh) 数据恢复方法、存储设备和存储系统
US20150012714A1 (en) Method and System for Multiple Processors to Share Memory
KR20130036727A (ko) 반도체 저장 장치 기반 시스템에서 메인 메모리가 없는 직접 메모리 엑세스 시스템
US11093419B2 (en) System and method for cost and power optimized heterogeneous dual-channel DDR DIMMs
CN103403667A (zh) 数据处理方法和设备
CN103002046A (zh) 多系统数据拷贝的rdma架构
CN105045688A (zh) 一种带管理功能的双活双控存储系统
WO2013025221A1 (en) Connecting expansion slots
CN104199521A (zh) 一种刀片节点及其扩展方法
CN102782661B (zh) 数据存储的系统和方法
CN102279825B (zh) 一种固态硬盘控制器的智能dma控制器
CN109684257B (zh) 一种远程内存扩展管理系统
CN104252416A (zh) 一种加速器以及数据处理方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20211222

Address after: 450046 Floor 9, building 1, Zhengshang Boya Plaza, Longzihu wisdom Island, Zhengdong New Area, Zhengzhou City, Henan Province

Patentee after: xFusion Digital Technologies Co., Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.