驱动器至驱动器存储系统、存储驱动器和存储数据的方法与流程

文档序号:18940026发布日期:2019-10-23 01:04阅读:241来源:国知局
驱动器至驱动器存储系统、存储驱动器和存储数据的方法与流程

本发明涉及用于形成阵列的固态驱动器,更具体来说,涉及用于自主管理阵列中的固态驱动器的机制。



背景技术:

现代企业数据存储系统存储大量重要数据。这种数据需要保护措施来防止因存储设备故障而导致数据丢失。通常,一个或多个控制实体实行多种保护方法来实现此目标。这些实体常常是存储服务器单元中央处理器(centralprocessingunit,cpu)。

从存储装置的角度来看,存储服务器cpu以监督方式实行存储及保护方法,且存储装置作为严格的从属装置参与进行。通过构造,控制实体通常使用基于策略的准则来确定将哪些数据存储在受所述控制实体控制的哪些从属存储装置上。

cpu与存储装置之间的传输活动至少涉及沿数据传输路径的本地cpu高速缓存及动态随机存取存储器(dynamicrandomaccessmemory,dram)以及对网络资源的使用。因此,实行这种受cpu控制的数据保护方法通常会消耗大量的存储服务器资源。cpu参与数据传输可能会导致因cpu高速缓存污染、显著的dram使用、同步软件工作负荷及另外的处理而引起延迟。

同时,存储装置常常具有可用的、未使用的资源及能力。举例来说,固态驱动器(solid-statedrive,ssd)(尤其是非易失性存储快速(non-volatilememoryexpress,nvme)ssd)具有相对大量的用于不同功能的dram。举例来说,nvmessd的dram用于主机读取/写入缓冲器、用于内部ssd元数据存储以及用于托管控制存储器缓冲器(controlmemorybuffer)。控制存储器缓冲器是由ssd暴露给主机的ssd的dram的部分,其用于输入/输出(input/output,i/o)存储器队列、数据缓冲器等。

需要一种改善的存储装置以及驱动器至驱动器存储方法,所述存储装置及驱动器至驱动器存储方法可实行自主数据存储及数据保护服务而不涉及cpu或其他控制实体。另外,需要一种改善的存储装置以及驱动器至驱动器存储方法,所述存储装置及驱动器至驱动器存储方法可利用存储装置的未使用的资源及能力。这种改善的存储装置及方法可减少数据保护及备份所需的主机资源量。

在此背景部分中公开的上述信息仅用于增强对本公开背景的理解且因此可包含不构成现有技术的信息。



技术实现要素:

[技术问题]

本发明的目的在于提供一种改善的存储装置及驱动器至驱动器存储方法,所述存储装置及驱动器至驱动器存储方法可实行自主数据存储及数据保护服务而不涉及cpu或其他控制实体。本发明的另一目的在于提供一种改善的存储装置以及驱动器至驱动器存储方法,所述存储装置及驱动器至驱动器存储方法可利用存储装置的未使用的资源及能力。

[问题的解决方案]

本发明的实施例包括一种驱动器至驱动器存储系统,所述驱动器至驱动器存储系统包括:主机服务器,具有主机cpu及主机存储驱动器;一个或多个远程存储驱动器;以及对等链路,将所述主机存储驱动器连接到所述一个或多个远程存储驱动器。所述主机存储驱动器包括处理器及存储器,其中所述存储器上存储有指令,所述指令在由所述处理器执行时使所述处理器在所述主机中央处理器发出写入命令时将数据从所述主机存储驱动器经由所述对等链路传送到所述一个或多个远程存储驱动器。

再一些实施例包括一种主机存储驱动器,所述主机存储驱动器包括:对等链路,将所述主机存储驱动器连接到一个或多个远程存储驱动器;以及处理器及存储器,其中所述存储器上存储有指令,所述指令在由所述处理器执行时使所述处理器将数据从所述主机存储驱动器经由所述对等链路传送到所述一个或多个远程存储驱动器。

另一些实施例包括一种使用驱动器至驱动器存储系统来存储数据的方法,其中所述驱动器至驱动器存储系统包括主机服务器、一个或多个远程存储驱动器、及对等链路,所述主机服务器具有主机cpu及主机存储驱动器,所述主机存储驱动器具有处理器及存储器,所述对等链路将所述主机存储驱动器连接到所述一个或多个远程存储驱动器。所述方法包括:发起要向所述主机存储驱动器写入数据的写入命令;利用直接存储器存取将所述数据发送到所述主机存储驱动器的所述存储器;以及将所述数据从所述主机存储驱动器的所述存储器经由所述对等链路传送到所述一个或多个远程存储驱动器。

[本发明的有利效果]

根据本发明,提供改善的存储装置及方法,所述存储装置及方法可减少数据保护及备份所需的主机资源量。

附图说明

通过参照结合图式论述的以下详细说明,其他特征及方面将变得显而易见且将得到最好的理解:在图式中:

图1是用于数据保护的受cpu控制的系统的示意图。

图2是根据本发明实施例的驱动器至驱动器存储系统的示意图。

图3是图2所示实施例的示意图,其中存储系统中的存储驱动器经由专用端口或经重新编程的交换机端口进行连接。

图4是根据本发明实施例的主机存储驱动器的示意图。

图5是绘示使用图2或图3所示驱动器至驱动器存储系统来存储数据的方法的流程图。

[符号的说明]

10、20、30:节点;

11、21、31:cpu;

12、32:存储驱动器/本地驱动器;

13、23、33、330:dram;

22:存储驱动器/远程驱动器/本地驱动器/驱动器;

100、200、300:节点/存储服务器/存储服务器节点;

110、210、310:cpu/主机cpu/存储服务器cpu;

120:存储驱动器/主机存储驱动器/驱动器/主机驱动器;

121:控制存储器缓冲器/dram;

122:控制存储器缓冲器;

130:dram/本地dram;

140:根复合体装置;

150、250、350:交换机;

220、320:存储驱动器/远程驱动器/驱动器/从属存储驱动器/终端存储装置/远程存储驱动器;

221、321:存储器;

230:dram;

s1、s2、s3、s4、s5、s6、s7、s8:操作。

具体实施方式

在下文中,将参照附图更详细地阐述示例性实施例,其中在所有附图中相同的参考编号指代相同的元件。然而,本发明可被实施为各种不同形式,而不应被视为仅限于本文所示出的实施例。确切来说,提供这些实施例作为实例是为了使本公开将透彻及完整,并将向所属领域中的技术人员充分传达本发明的各个方面及特征。因此,可不再阐述对于所属领域中的一般技术人员完整理解本发明的各个方面及特征而言并非必需的工艺、元件及技术。除非另有注明,否则在所有附图及书面说明通篇中相同的参考编号表示相同的元件,且因此,将不再对其予以重复说明。在图式中,为清晰起见,可夸大各个元件、各个层及各个区的相对大小。

应理解,当称一元件或层位于另一元件或层“上(on)”、“连接到(connectedto)”或“耦合到(coupledto)”另一元件或层时,所述元件或层可直接位于所述另一元件或层上、直接连接到或直接耦合到所述另一元件或层,抑或可存在一个或多个中间元件或层。另外,还应理解,当称一元件或层“位于”两个元件或层“之间(between)”时,所述元件或层可为所述两个元件或层之间的唯一元件或层,抑或也可存在一个或多个中间元件或层。

本文所用术语仅是出于阐述特定实施例的目的而并非旨在限制本发明。除非上下文清楚地另外指明,否则本文所用单数形式“一(a及an)”旨在也包括复数形式。还应理解,当在本说明书中使用用语“包括(comprises、comprising、includes及including)”时,是指明所陈述特征、整数、步骤、操作、元件和/或组件的存在,但不排除一个或多个其他特征、整数、步骤、操作、元件、组件和/或其群组的存在或添加。本文所用用语“和/或”包括相关列出项中的一个或多个项的任意及所有组合。当例如“...中的至少一者”等表达位于一系列元件之后时,所述表达是修饰整个系列的元件而非修饰所述列表中的各别元件。

在阐述本发明的实施例时使用“可(may)”是指“本发明的一个或多个实施例”。本文所用用语“使用(use)”、“正使用(using)”及“被使用(used)”可被视为分别与用语“利用(utilize)”、“正利用(utilizing)”及“被利用(utilized)”同义。另外,用语“示例性(exemplary)”旨在指实例或例示。

根据本文所述本发明实施例的电子装置或电装置和/或任何其他相关装置或组件可利用任何适合的硬件、固件(例如,应用专用集成电路(application-specificintegratedcircuit))、软件、或软件、固件、及硬件的组合来实施。举例来说,可将这些装置的各种组件形成在一个集成电路(integratedcircuit,ic)芯片上或形成在单独的集成电路芯片上。此外,可将这些装置的各种组件实施在柔性印刷电路膜(flexibleprintedcircuitfilm)、载带封装(tapecarrierpackage,tcp)、印刷电路板(printedcircuitboard,pcb)上、或形成在一个衬底上。此外,这些装置的各种组件可为在一个或多个计算装置中由一个或多个处理器运行的、执行计算机程序指令并与用于实行本文所述各种功能性的其他系统组件进行交互的过程或线程(thread)。计算机程序指令存储在存储器中,所述存储器可使用例如(举例来说)随机存取存储器(randomaccessmemory,ram)等标准存储器装置在计算装置中实施。计算机程序指令也可存储在例如(举例来说)压缩盘只读存储器(compactdiscreadonlymemory,cd-rom)、闪存驱动器(flashdrive)或类似元件等其他非暂时性计算机可读介质中。另外,所属领域中的技术人员应知,可将各种计算装置的功能性组合或集成到单一的计算装置中,或者可使一特定计算装置的功能性分布在一个或多个其他计算装置中,此并不背离本发明示例性实施例的精神及范围。

除非另外定义,否则本文所用所有用语(包括技术及科学用语)的含义均与本发明所属领域中的一般技术人员所通常理解的含义相同。还应理解,用语(例如在常用词典中所定义的用语)应被解释为具有与其在相关技术的上下文和/或本说明书中的含义一致的含义,且除非在本文中明确定义,否则不应将其解释为具有理想化或过于正式的意义。

本发明的实施例包括一种存储装置(例如,主机存储装置),所述存储装置知晓其作为存储装置与主机cpu之间的连接性且知晓其与一个或多个存储装置之间的连接性。主机存储装置的实施例可对一个或多个远程存储装置发起数据的直接对等传输以提供基于策略的自主数据传输服务。这将主机cpu从实行另外的输入/输出来向主机存储存储装置提供复制以及其他数据保护服务有效地卸载,从而降低了主机cpu的计算要求以及减小了由于存储服务器cpu对数据传输的参与减少而引起的存储系统延迟。一些实施例将特定存储协议从对于存储装置的cpu至ssd方法(cpu-to-ssdmethod)卸载到ssd至ssd方法(ssd-to-ssdmethod)。再一些实施例提供机会来将本机存储装置定义成存储装置厂商定义的(专有)方法。另外,再一些实施例包括一种存储装置,所述存储装置能够使推送或拉取模型对存储装置之间的写入流量进行同步以实现数据保护目的。

图1是数据保护系统,其中存储服务器的cpu控制数据的存储。在图1中,节点10、20及30是存储服务器。每一个节点10、20、30包括cpu11、cpu21、cpu31、dram13、dram23、dram33及一个或多个存储驱动器12、22、32。如果存储驱动器12、22、32是双端口存储装置(例如,外围组件互连快速(peripheralcomponentinterconnectexpress,pcie)交换机结构、网络结构或其他适合的连接结构(connector)),则所述一个或多个存储驱动器12、22、32可经由副端口连接到各自相应的cpu11、21、31。

为存储数据,节点10的cpu11向节点10的本地驱动器12发出写入命令。要存储的数据在被存储在本地驱动器12上之前首先被高速缓存在节点10的本地dram13中。

与在本地驱动器12上进行存储同时地,节点10的cpu11以相同的数据发起对节点20的远程驱动器22的写入来满足基于策略的重复要求。节点10的cpu11启用节点20的cpu21来存储数据。cpu21通过cpu21向驱动器22发出写入命令。数据在被存储在本地驱动器22上之前首先被高速缓存在节点20的本地dram23中。在其他实施例中,可使用双端口驱动器来配置第二写入,其中不涉及节点20的cpu21。

另外,节点10的cpu11可将数据提交给节点30上的附加驱动器。cpu11可启用节点30的cpu31,节点30的cpu31接着根据与节点20相同的过程将数据写入到节点30的本地驱动器32。

在根据图1的过程中,服务器cpu11、21及31对数据传输进行协调。因此,传输活动涉及沿着数据传输路径的本地cpu高速缓存及dram,且需要cpu耗用功率来进行各个本地驱动器之间的存储。另外,可能需要另一软件来使各个节点之间的数据存储同步。举例来说,存储服务器软件可对复制过程的两端进行协调以提供同步功能及异步功能。

图2是根据本发明实施例的驱动器至驱动器存储系统的示意图。在图2中,节点100、200及300是存储服务器。每一个节点100、200及300包括cpu110、cpu210、cpu310、dram130、dram230、dram330及一个或多个存储驱动器120、220、320。在一些实施例中,所述一个或多个存储驱动器120、220、320可为ssd。在再一些实施例中,所述一个或多个存储驱动器120、220、320可为nvmessd。在一些实施例中,可不包括cpu210、310及dram230、330,且节点200、300可仅包括存储驱动器220、320。

如果存储驱动器120、220、320是双端口存储装置(例如,pcie交换机结构、网络结构或其他适合的连接结构),则所述一个或多个存储驱动器120、220、320可举例来说经由副端口连接到各自相应的cpu110、210、310。另外,存储驱动器120、220、320可采用pcie直接配置、交换机结构配置或其中存储驱动器120、220、320对等连接的任何其他配置连接到彼此。在一些实施例中,存储驱动器120、220、320可经由专用端口或经重新编程的交换机端口连接到彼此。存储驱动器120、220、320可使用现有的协议或厂商专用实施方式来进行通信。

作为对等配置的一部分的这些连接及通信协议可驱动直接存储存取(directmemoryaccess,dma)请求以及存储驱动器120、220、320之间的同步,如以下所述。存储驱动器120、220、320可暴露出为了实行对等连接而配置的其他配置选项。这种配置控制路径的实例是获得或设定log_page(peer_config)。此将是专门针对对等逻辑而定义的新的日志页。在一些实施例中,可使用现有的、众所周知的及标准化的日志页、smart日志页。作为对等配置的一部分的连接及通信协议可允许存储驱动器120、22、320彼此之间进行通信、以双模式进行配置、共享能够实现数据传输的硬件资源以及提供传送及信令机制(其在一些实施例中可为厂商专用的)。

图3是图2所示实施例的示意图,其中存储驱动器120、220、320经由专用端口或经重新编程的交换机端口进行连接。在此种配置中,远程驱动器220、320可附接到单独的cpu(例如,210、310);然而,如图3中所示,远程驱动器220、320不需要具有单独的cpu。(驱动器220、320被称为远程驱动器,这是因为驱动器220、320不直接连接到主机cpu,而是经由其各自相应的cpu210、310或经由另一个存储驱动器(例如,存储驱动器120)连接到主机cpu110。)在此实施例中,存储服务器100包括根复合体装置140,根复合体装置140将存储服务器100连接到交换机150,交换机150连接到主机存储驱动器120。交换机150还连接到分别连接到存储驱动器220、320的交换机250、350。交换机150、250、350可为pcie交换机或其它适合的专用端口或经重新编程的交换机端口。交换机150、250、350应支持存取控制服务(accesscontrolservices,acs)(举例来说在使用pcie交换机时)或者支持适合的通信协议以允许存储驱动器120、220、320彼此进行通信并共享用于数据传输的硬件资源。举例来说,如果交换机150、250、350是网络结构配置中的网络交换机,则驱动器120、220、320可通过网络协议而非pcie来直接网络附接到彼此。这种实施例中用于进行同步的存储器存取将被网络存储器映射。

一旦采用对等链路进行了连接,图2与图3所示存储驱动器120、220、320便可进行通信以实行基于策略的数据传输。这本质上在存储驱动器120、220、320之间创建了服务品质(qualityofservice,qos)信道,因为它们能够彼此直接传输数据。

在一个实施例中,cpu110、210、310可采用自上而下配置(top-downconfiguration)来管理存储驱动器120、220、320之间的对等连接。举例来说,相应的存储驱动器120、220、320的cpu110、210、310可管理驱动器的对等存取来进行配对。cpu110、210、310还可对存储驱动器120、220、320之间的相关联的交换机150、250、350进行编程,以允许通过所使用的通信协议(例如,在使用pcie交换机时为acs)进行对等连接。或者,如果存储驱动器120、220、320位于网络上(例如,为交换机结构配置形式),则cpu110、210、310可对网络交换机进行编程以实现对等连接。在一些实施例中,cpu110可对存储驱动器120、220、320使用设定log_page(peer_config)命令以向存储驱动器120、220、320指示它们的对等连接性及保护群组。此命令是由主机cpu110管理并在驱动器中实施,且可只在自上而下配置中需要。相应的存储驱动器120、220、320的cpu110、210、310也可管理错误路径(errorpath)。

在替代实施例中,存储驱动器120、220、320可采用自下而上配置来管理存储驱动器120、220、320之间的对等连接。存储驱动器120、220、320可推选或以其他方式向主控制器提供从属远程驱动器,以例如采用独立盘的冗余阵列(redundantarrayofindependentdisk,raid)构造形式来形成自管理集群(self-managedcluster)。在一些实施例中,存储驱动器120(在下文中称为主机驱动器120)可充当从属存储驱动器220、320的主控制器。主机驱动器120可对存储池资源进行整合,从而提供一个管理视图(managementview)且视需要提供一个地址范围。一旦主机驱动器120位于集群链上,cpu110上的软件便可对主机驱动器120进行编程。在一些实施例中,log_page命令可规定及标识哪个驱动器是主机驱动器120以及哪些驱动器是远程存储驱动器220、320。

在自下而上配置的一些实施例中,主机驱动器120可控制数据流且可在其本地路径中包括数据,或者可将数据从cpu110直接推送到终端存储装置220、320。推送模型的实施例可使用raid配置。在此种实施例中,连接到cpu110的主机驱动器120充当主控制器来提取逻辑块地址(logicalblockaddress,lba)空间及数据移动。在错误修正(errorcorrection,ec)/raid0/5的情形中,一些lba空间将位于主机驱动器120本地,而其他lba空间位于远程存储驱动器220、320上。本地的数据将被写入到主机驱动器120,而位于远程存储驱动器220、320上的lba范围中的数据将被推送到远程存储驱动器220、320。此处,主机驱动器120对数据移动进行协调。

在其他实施例中,远程驱动器220、320可将数据拉取到自己。此拉取模型的实施例可使用raid1(复制)配置,其中控制消息被推送到存储驱动器120、220、320且数据被拉取到远程存储驱动器220、320中。

推送模型与拉取模型二者均根据来自主机cpu110的数据流对写入流量进行同步。

在自下而上配置的一些实施例中,主机驱动器120可控制逻辑块地址(lba)信息以及位于主机驱动器的控制存储器缓冲器(controlmemorybuffer,cmb)121(参见图4)处的存储器缓冲器。在再一些实施例中,主机驱动器120可管理错误路径及替代路径,且cpu110可索取由主机驱动器120管理的错误流通知(errorflownotification)。在一些实施例中,主机驱动器120可仅将可见驱动器上的错误作为正常错误流暴露给主机cpu110。在其他实施例中,主机驱动器120可使那些驱动器上的错误不可见且可通过可能需要附加软件的特殊通知来通知主机cpu110。

在自下而上配置中,一旦存储驱动器120、220、320被置于基于策略的数据保护方案的对等配置中,存储驱动器120、220、320便将相对于主机cpu110独立地被自主驱动(且在一些情形中相对于主机cpu110为透明的)。在存储驱动器120、220、320相对于主机cpu110为透明的后一种情形中,需要外部机制来发现、配置及修改保护方案。此可通过例如单独的控制平面、基板管理控制器(baseboardmanagementcontroller,bmc)或交换机管理端口来实现,以上仅为几个实例。

一旦建立对等连接,则无论通过自上而下配置还是自下而上配置,主机驱动器120均包括可指示其他存储服务器200、300上的一个或多个远程存储驱动器220、320感知主机驱动器120的软件。所述软件可存储在主机存储驱动器120的dram121的控制存储器缓冲器122中,如图4所示。控制存储器缓冲器122是nvme驱动器定义,nvme驱动器定义是主机驱动器的dram121存储器的一部分,其可暴露到主机cpu110以用于本发明实施例中的数据传输机制。cmb可用于共享控制及数据净荷包(controlanddatapayloadpackets)。通知本身是针对特定传送的(transportspecific),例如,对于pcie为事务层协议(transactionlayerprotocol,tlp)。此种组织允许主机驱动器120的控制存储器缓冲器122的一部分用作复制及数据传输暂存区域(datatransferstagingarea)。主机驱动器120可使用控制存储器缓冲器122来暴露数据净荷及同步存储器指针。主机驱动器120将利用其缓冲器管理选项及控制来与所述一个或多个远程存储驱动器220、320进行协调,且所述一个或多个远程存储驱动器220、320将类似地作出响应。主机驱动器120将以这种方式暴露其缓冲器管理方案及其同步方法,从而实施有效的缓冲器管理。然而,这些机制可能不严格遵循现有协议的规范(例如,nvme),且因此可被实施成专有协议或厂商专用协议。

这种对等连接有效地卸载了主机cpu110、210、310的工作负荷,从而降低了主机cpu计算要求并且有助于减小因存储服务器cpu对数据传输的参与减少而引起的存储系统延迟。

图5是绘示使用图2或图3所示驱动器至驱动器存储系统来存储数据的方法的流程图。为在本地备份数据,节点100的cpu110以与以上参照图1所述的类似方式来将数据存储在主机驱动器120中。cpu110向主机驱动器120发出写入命令(s1)。要存储的数据在被存储在主机驱动器120中之前首先被高速缓存在节点100的本地dram130中。

为远程地存储数据(即,为将数据存储在存储驱动器220、320上),当cpu110向主机驱动器120发出写入命令(s1)时,主机驱动器120使用对于主机cpu110的直接存储器存取(directmemoryaccess,dma)请求将要写入的数据发送(s2)到其dram121,由此触发当前在主机服务器的dram130中的数据被写入到主机驱动器的dram121的控制存储器缓冲器122中。主机驱动器120还触发(s3、s4)将以下信息通知给一个或多个远程驱动器220、320:关于要写入的数据、所述数据在控制存储器缓冲器112内的位置及偏移、以及例如命名空间/逻辑单元号(logicunitnumber,lun)、逻辑块地址偏移、字节数目等附加详细情况的信息、和/或关于为了启用存储而可能需要的数据的任何其他信息。所述通知本身可为主机驱动器120与远程驱动器220、320之间的有线消息(wiremessage)。主机驱动器120还设定旗标(例如,主机驱动器120可使将由主机驱动器120根据基于策略的数据保护方案来写入数据的每一个远程驱动器220、320的引用计数递增)来指示相关联的存储块被引用且不应过早地为被解除引用以供主机驱动器120自己进行跟踪。

所述一个或多个远程驱动器220、320使用所接收的信息来以给定信息构造并从主机驱动器控制存储器缓冲器121发出(s5、s6)对于所述一个或多个远程驱动器220、320各自的存储器(221、321)的dma请求。所提供的信息(例如,命名空间/lun、lba、字节数目等)也可在数据缓冲器之前在dma请求中作为报头来提供。

一旦各个dma完成而由此完成远程存储,则相关联的一个或多个远程驱动器220、320便向主机驱动器120发出表明所述完成的信号(s7、s8),从而允许主机驱动器120将控制存储器缓冲器122中的参考计数递减。这可使用单独的调用或者通过dma操作直接以原子方式(atomically)操纵主机驱动器存储器指针来进行。

以上参照图5所述的整个过程可相对于存储服务器节点100、200、300透明地进行。

在以上实施例中,远程驱动器220、320不需要具有被使能的cmb。然而,如果远程驱动器220、320具有cmb且所述cmb被使能,则这些相应的cmb可在上述推送模型中由主机驱动器120用于复制净荷。

在其他实施例中,数据分发可采用其他方式实现,例如通过菊花链(daisy-chain)或环状(torus)方式,而非采用主机驱动器至一个或多个远程驱动器方式。菊花链及环面拓扑二者均为无交换机互连(switchlessinterconnect)。在菊花链模型中,对于系统中所包括的任何数目的存储驱动器而言,驱动器串联连接,其中主机驱动器120连接到第一远程存储驱动器(例如,远程驱动器220),第一远程存储驱动器连接到下一个远程存储驱动器(例如,远程驱动器320),以此类推。驱动器至驱动器通信是直接的且不需要遵循基于标准的协议。例如通用串行总线(universalserialbus,usb)、火线(firewire)、雷电接口(thunderbolt)及以太网等连接是菊花链中所使用的其他实例。

在环状拓扑中,每一个存储驱动器在并行系统配置中直接连接到其他存储驱动器中的多于一个存储驱动器,且在驱动器之间(1d、2d、3d、nd)不具有交换机。举例来说,在此种配置的实施例中,主机驱动器120连接到远程存储驱动器220及远程存储驱动器320二者,存储驱动器220连接到主机驱动器120及远程存储驱动器320,且远程存储驱动器320连接到主机驱动器120及远程存储驱动器220二者。由于在每一个驱动器处具有数据保护集群的足够的配置及端点信息,数据可采用更高效的方式在各驱动器之间分散。在这种拓扑中,也可因硬件要求降低而降低成本。另外,在这种配置中,驱动器密切接近,此可减小延迟并带来缩放优势(scalingbenefits)。

在再一些实施例中,驱动器120、220、320可在控制之外且甚至在存储服务器cpu110、210、310的视野之外另外构建专有网络。选择现有通信协议可能需要遵守现有协议的所有要求(包括边角案例及错误情况),这可能需要在主机驱动器中具有附加的硬件/固件资源。然而,如果主机驱动器以及所述一个或多个远程存储驱动器来自一个厂商,则可通过使用不受约束的厂商专用方法来放宽一些现有协议限制。这种专有定义的实例是公共的基于结构的nvme(nvmeoverfabrics,nvme-of)定义及nvme的厂商专用实施方式,例如基于以太网的nvme以及基于网络的nvme厂商专用实施方式。对于pcie来说,基于pci快速的管理组件传输协议(mctp)可通过移除分布式管理任务组(distributedmanagementtaskforce,dmtf)专用定义及其所要求的兼容性及时序规范而重新定义成厂商专用实施方式。这使其成为适用于本发明实施例的原始定义的精简版本。在其他实施例中,网络互连可用于使主机驱动器能够直接与对等远程驱动器对话。这种专有网络可同样利用厂商专用定义来进行简化。

因此,与当前使用的协议传输相比,以上实例中所示出的专有装置连接性可成为厂商专用的且不受公共规范的限制,从而使得厂商专用驱动器方法能够在存储装置之间更有效地传送信息,从而提供一致的性能。

另外,利用对等存储驱动器之间的厂商专用传送定义,驱动器可将其原子性(atomicity)向下暴露到ssd的闪存转换层(flashtranslationlayer,ftl)及其逻辑至物理映射(logical-to-physicalmapping,l2p)提交(commit)。在进行复制时,当样本净荷到达主机驱动器时,其可将对其映射的更新延迟,直到所有对等远程驱动器均已与此写入请求同步为止。如果所有对等方均成功提交了写入,则将有一条用于更新闪存l2p映射的附加同步相关消息返回到对等方。这之所以是可能的,是因为驱动器不会将其内部配置定义暴露给外部软件且会使所述内部配置定义在其对等方与厂商对等方之间被隐藏,其驱动器布局上的ip保持不变。“ip”是处理器的内部电路和逻辑布局的用语。它通常被处理器制造商视为机密。这是实现原子性的一种方式。此外,以上实施例在数据保护样本集(例如复制样本集)之间提供原子性。

以上实施例提供一种主机存储装置及方法来使存储装置能够在没有中间cpu的情况下直接彼此寻址,从而将通常需要服务器cpu参与的数据移动活动卸载。通过卸载存储服务器cpu,存储服务器可潜在地支持更多数目的存储装置,或者cpu的功率可降低且仍然支持相同数目的存储装置。上述实施例还简化了多个驱动器之间的主机软件协调,且一旦建立存储装置同步,则主机软件便不会影响输入/输出性能及延迟度量,这是因为存储驱动器可实行数据传输而无需进一步涉及主机系统。

本发明实施例的可能用途包括但不限于数据复制、直接数据的快照以及间接数据的键值类型用途。

尽管已阐述了本发明的示例性实施例,然而应理解,本发明并非仅限于这些示例性实施例,而是可由所属领域中的技术人员在本发明的精神及范围内作出各种改变及修改,本发明的精神及范围如上文由随附权利要求书及其等效范围所主张。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1