当前位置: 首页 > 专利查询>英特尔公司专利>正文

用于在存储服务器之间复制数据的技术制造技术

技术编号:10905832 阅读:170 留言:0更新日期:2015-01-14 14:53
本发明专利技术描述了用于在存储服务器之间复制数据的技术。公开了用于在存储服务器之间复制数据的示例。在某些示例中,耦合到客户端设备或存储服务器的网络输入/输出(I/O)设备可以交换从客户端设备接收到的与复制数据相关联的远程直接存储器访问(RDMA)命令或RDMA完成命令。数据可以被复制到通过相应的网络通信链路彼此互连和/或互连到客户端设备的多个存储服务器。描述并要求保护其他示例。

【技术实现步骤摘要】
用于在存储服务器之间复制数据的技术
此处所描述的示例一般涉及将数据从客户端设备复制到多个存储服务器。
技术介绍
对数据可靠性和可恢复性的典型解决方案可以是使用冗余独立磁盘阵列(redundantarrayofindependentdisk:RAID)。RAID的实现可以在从简单镜像到冗余奇偶校验块之间变动。与存储容量相关联的成本持续下降。网络访问时间或网络带宽能力改善,以使得可以在与本地可访问存储的时间相当的时间下使用网络可访问存储。由于较低的成本和较大的网络带宽能力,诸如因特网公用数据中心(IPDC)之类的许多数据中心使用多个网络节点或存储服务器来管理数据可靠性并且改善数据访问可缩放性。附图说明图1示出了第一示例系统。图2示出了示例完成队列元素。图3示出了第二示例系统。图4示出了第三示例系统。图5示出了第四示例系统。图6示出了第五示例系统。图7示出了第六示例系统。图8示出了第七示例系统。图9示出了第一设备的示例框图。图10示出第一逻辑流程的示例。图11示出第一存储介质的示例。图12示出了第一网络输入/输出设备的示例。图13示出了第二设备的示例框图。图14示出第二逻辑流程的示例。图15示出了第二存储介质的示例。图16示出了第二网络输入/输出设备的示例。具体实施方式如在本专利技术中设想的,数据中心可以使用多个网络节点或存储服务器来管理数据可靠性,改善数据访问可缩放性。复制数据的多个存储服务器可能部分地由于硬盘驱动器或固态驱动器(SSD)的存储容量扩展,以使得各种RAID方案用来保护数据变得困难或不切实际。例如,使用带有分布式奇偶校验块(parityblock)的块条带(blockstripping)的RAID5方案可能具有长得不能接受的重建时间,并且在从以前的错误恢复时遇到不可恢复的错误的概率可能不再是可忽略的。另一种RAID方案,RAID6尝试通过添加冗余奇偶校验块来解决RAID5的这些问题。然而,添加冗余奇偶校验块可能会显著增大数据保护开销。在某些示例中,使用多个存储服务器的方案可以使用每一存储服务器作为类似于RAID方案中的硬盘或硬盘驱动的冗余单元。对于这些多个存储服务器方案,从客户端设备进行数据复制可能是级联的。换言之,客户端设备可以向存储服务器发出存储器请求,然后,存储服务器将数据复制到其他存储服务器(包括提供合适的纠错码/校验和)。在一些解决方案中,服务器在实际执行复制之前确认数据的写入/复制的完成。这可以避免来自多个事务的等待时间/开销。然而,客户端设备可能没有数据成功地被复制到其他存储服务器的确认。最近,存储服务器开始包括具有试图最小化操作系统和主机处理器参与的增强能力的存储控制器和网络(NW)输入/输出(I/O)设备。例如,诸如命令提交和命令完成队列之类的硬件元件可以被存储服务器的NWI/O设备和存储控制器用来允许客户端或主机设备远程通过被称为远程直接存储器访问(RDMA)的过程来访问存储器。在这些远程可访问存储服务器上维护的存储控制器还被设计成可以遵循可与RDMA一起良好工作的相对新的互连通信协议来操作。进一步地,这些存储控制器可以控制对硬盘驱动器(HDD)或固态驱动器(SSD)的访问。SSD可以包括,但不仅限于,各种类型的非易失性存储器,诸如3维交叉点存储器、闪存、铁电存储器、硅氧化物氮化物氧化物硅(SONOS)存储器、聚合物存储器、纳米线、铁电晶体管随机存取存储器(FeTRAM或FeRAM)、纳米线或电可擦可编程只读存储器(EEPROM)。在某些示例中,对HDD或SSD的访问可以包括使用行业标准或规范(包括后代或变体)(诸如2010年11月发布的外围组件互连(PCI)Express(快速)基本规范(“PCIExpress”或“PCIe”))中所描述的互连通信协议,和/或使用各种基于PCIe的SSD的控制器接口(诸如2012年10月发布的非易失性存储器Express(nvme)规范修订版1.1)。遵循NVMe规范操作的存储控制器(“NVMe控制器”)在允许远程客户端或主机设备访问诸如SSD之类的存储设备时可以能够最小化操作系统和主机处理器参与,并使用这些存储设备来支持可靠性、可用性和可维修性(RAS)解决方案。这些类型的远程可访问NVMe受控存储器设备,在与高速网络连接(例如,10千兆每秒钟(Gbps)或更高)耦合时,可以被高效地用于支持包括多个存储服务器的RAS解决方案。然而,如上文所提及的,仅仅级联客户端设备和存储服务器之间的数据复制可能会导致没有数据在存储服务器之间被成功地复制的明显指示。正是针对这些和其它挑战才需要此处所描述的示例。在某些示例中,可以实现在存储服务器之间复制数据的技术。对于这些示例,技术可以包括在耦合到客户端设备的NWI/O设备处发送将用于复制的数据存储到多个存储服务器的RDMA命令消息。可以通过一个或多个存储服务器和客户端设备之间的至少一个网络连接,将RDMA命令消息发送到多个存储服务器之中的一个或多个存储服务器。此外,对于这些示例,还可以从所述一个或多个存储服务器中接收一个或多个RDMA命令完成消息,所述完成消息用于指示所述数据在所述多个存储服务器之中的至少第一存储服务器和第二存储服务器之间的复制。根据某些其他示例,技术可以包括在耦合到第一存储服务器的NWI/O设备中,通过第一网络连接,从远程客户端接收第一RDMA命令消息。对于这些其他示例,第一RDMA命令消息可以与在由第一存储服务器中维护的第一NVMe控制器控制的第一存储设备处存储数据相关联。然后,可以将所述第一RDMA命令消息转发到所述第一NVMe控制器以导致第一NVMe控制器响应于RDMA命令消息而从远程客户端获取数据并将所述数据存储到第一存储设备中。然后,可以将RDMA命令完成消息从所述第一NVMe控制器转发到所述远程客户端以指示数据的存储。这些其他示例也可以包括通过第二网络连接,从第二存储服务器接收第二RDMA命令消息。第二RDMA命令消息可以与复制存储到第一存储设备的数据相关联。然后,可以将第二RDMA命令消息转发到第一NVMe控制器。然后,第一NVMe控制器可以导致存储在第一存储设备上的数据可被第二存储服务器读取,以使第二存储服务器能够通过将数据存储到由在第二存储服务器中维护的第二NVMe控制器控制的第二存储设备来复制数据。图1示出了第一示例系统。如图1所示,第一示例系统包括具有通过网络50通信地耦合到服务器20的客户端10的系统100。根据某些示例,术语“主机计算机”、“主机设备”、“主机”、“客户端设备”、“客户端”和“客户端节点”可以可互换地使用,并可以表示,例如但不限于:一个或多个终端站、移动因特网设备、智能电话、媒体设备、输入/输出(I/O)设备、平板电脑、电器、中间站、网络接口、客户端、和/或其一些部分。此外,在某些示例中,术语“服务器”、“存储服务器”、“服务器节点”、“复制服务器”、“存储节点”,或“远程存储服务器”可以可互换地使用,并可以表示,例如但不限于客户端设备远程可访问的(例如,通过网络连接)的服务器。虽然客户端10、服务器20以及网络50将以单数引用的,但是应该理解,每一这样的相应的组件都可以包括多个这样的相应的组件,而不会偏离这些示例。根据某些示例本文档来自技高网...
用于在存储服务器之间复制数据的技术

【技术保护点】
一种用于网络输入/输出(I/O)设备的装置,包括:电路;命令模块,所述命令模块由所述电路执行以发送把用于复制的数据存储到多个存储服务器的远程直接存储器访问(RDMA)命令消息,所述RDMA命令消息通过所述一个或多个存储服务器和所述网络I/O设备之间的至少一个网络连接,被发送到所述多个存储服务器之中的一个或多个存储服务器;以及完成模块,所述完成模块由所述电路执行以从所述一个或多个存储服务器接收一个或多个RDMA命令完成消息,所述完成消息指示所述数据在所述多个存储服务器之中的至少第一存储服务器和第二存储服务器之间的复制。

【技术特征摘要】
2013.07.08 US 13/937,0141.一种用于网络输入/输出(I/O)设备的装置,包括:电路;命令模块,所述命令模块由所述电路执行以发送把用于复制的数据存储到多个存储服务器的远程直接存储器访问(RDMA)命令消息,所述RDMA命令消息通过所述多个存储服务器之中的一个或多个存储服务器和所述网络I/O设备之间的至少一个网络连接,被发送到所述一个或多个存储服务器;以及完成模块,所述完成模块由所述电路执行以从所述一个或多个存储服务器接收一个或多个RDMA命令完成消息,所述完成消息指示所述数据在所述多个存储服务器之中的至少第一存储服务器和第二存储服务器之间的复制,其中所述命令模块通过第三存储服务器和所述网络I/O设备之间的第一网络连接,向所述第三存储服务器发送所述RDMA命令消息,所述命令模块导致所述数据被推到所述第三存储服务器处的一个或多个缓冲器,并在所述RDMA命令消息中指示所述数据的位置。2.如权利要求1所述的装置,其特征在于,包括:命令模块,所述命令模块通过相应的第一和第二网络连接向所述第一存储服务器和所述第二存储服务器两者发送所述RDMA命令消息;以及完成模块,所述完成模块从所述第一和第二存储服务器接收相应的第一和第二RDMA命令完成消息,所述完成消息指示所述数据在至少所述第一和第二存储服务器之间的复制。3.如权利要求2所述的装置,其特征在于,包括所述命令模块向所述第一存储服务器发送所述RDMA命令消息包括所述命令模块向在所述第一存储服务器上维护的控制第一存储设备的第一非易失性存储器快速(NVMe)控制器发送所述RDMA命令消息并导致所述数据被推到所述第一存储设备上的一个或多个缓冲器,所述第一NVMe控制器能够基于从所述一个或多个缓冲器中读取所述数据并将所述数据存储在所述第一存储设备中,导致所述RDMA命令完成消息被发送到所述网络I/O设备;以及所述命令模块向所述第二存储服务器发送所述RDMA命令消息包括所述命令模块向在所述第二存储服务器上维护的控制第二存储设备的第二NVMe控制器发送所述RDMA命令消息并导致所述数据被推到所述第二存储设备上的一个或多个缓冲器,所述第二NVMe控制器能够基于从所述一个或多个缓冲器中读取所述数据并将所述数据存储在所述第二存储设备中,导致所述第二RDMA命令完成消息被发送到所述网络I/O设备。4.如权利要求1所述的装置,其特征在于,包括:所述RDMA命令消息发往在所述第三存储服务器中维护的控制存储设备的非易失性存储器快速(NVMe)控制器,所述NVMe控制器能够响应于所述RDMA命令消息,从客户端设备获取所述数据,将所述数据存储到所述存储设备,并导致所述RDMA命令完成消息被发送到所述完成模块以指示所述数据的存储;请求模块,所述请求模块由所述电路执行以通过所述网络I/O设备和所述第一存储服务器之间的第二网络连接,向所述第一存储服务器发送使所述第一存储服务器复制被存储到所述存储设备的所述数据的第一请求消息;以及所述请求模块通过所述网络I/O设备和所述第二存储服务器之间的第三网络连接,向所述第二存储服务器发送使所述第二存储服务器复制被存储到所述存储设备的所述数据的第二请求消息。5.如权利要求4所述的装置,其特征在于,包括:所述完成模块基于所述NVMe控制器从所述一个或多个缓冲器读取所述数据并将所述数据存储到所述存储设备中的分配部分,从所述NVMe控制器接收所述RDMA命令完成消息。6.如权利要求4所述的装置,其特征在于,包括:所述命令模块导致所述数据被推到耦合到所述所述网络I/O设备的客户端设备中的一个或多个缓冲器,并在所述RDMA命令消息中指示所述数据的位置,所述第三存储服务器中的网络I/O设备能够从所述客户端设备中的所述一个或多个缓冲器拉取所述数据,以至少临时将所述数据存储到所述第三存储服务器中的一个或多个缓冲器;以及所述完成模块基于所述NVMe控制器从所述第三存储服务器上的所述一个或多个缓冲器读取所述数据并将所述数据存储到所述存储设备中的分配部分,从所述NVMe控制器接收所述RDMA命令完成消息。7.如权利要求1所述的装置,其特征在于,包括:所述RDMA命令消息发往在所述第三存储服务器中维护的控制存储设备的非易失性存储器快速(NVMe)控制器;以及所述完成模块基于所述NVMe控制器响应于所述RDMA命令消息,从所述网络I/O设备读取所述数据并将所述数据存储到所述存储设备中的分配部分,从所述NVMe控制器接收所述RDMA命令完成消息,所述NVMe控制器还通过所述第三存储服务器和所述第一存储服务器之间的第二网络连接,向所述第一存储服务器发送使所述第一存储服务器复制被存储到所述存储设备的所述数据的第一请求消息,以及,通过所述第三存储服务器和所述第二存储服务器之间的第三网络连接,向所述第二存储服务器发送使所述第二存储服务器复制被存储到所述存储设备的所述数据的第二请求消息。8.如权利要求1所述的装置,其特征在于,包括所述RDMA命令消息和所述RDMA命令完成消息遵从包括以下各项中的一个的协议:因特网广域RDMA协议(iWARP)、Infiniband或汇聚以太网上RDMA(RoCE)中的一种的协议。9.如权利要求1所述的装置,其特征在于,包括:包括非易失性存储器或易失性存储器中的至少一个的存储器,所述存储器能够至少临时存储与把用于复制的数据存储到所述多个存储服务器相关联的信息,所述信息包括一个或多个RDMA服务标记(STag),所述一个或多个RDMA服务标记之中的至少一个RDMA服务标记被包括在所述RDMA命令消息中。10.一种在网络输入/输出(I/O)设备处实现的方法,包括:发送把用于复制的数据存储到多个存储服务器的远程直接存储器访问(RDMA)命令消息,所述RDMA命令消息通过所述多个存储服务器之中的一个或多个存储服务器和所述网络I/O设备之间的至少一个网络连接,被发送到所述一个或多个存储服务器;以及从所述一个或多个存储服务器接收一个或多个RDMA命令完成消息,所述完成消息指示所述数据在所述多个存储服务器之中的至少第一存储服务器和第二存储服务器之间的复制,其中所述RDMA命令消息通过第三存储服务器和所述网络I/O设备之间的第一网络连接向所述第三存储服务器发送,从而导致所述数据被推到所述第三存储服务器处的一个或多个缓冲器,并在所述RDMA命令消息中指示所述数据的位置。11.如权利要求10所述的方法,其特征在于,包括通过相应的第一和第二网络连接向所述第一存储服务器和所述第二存储服务器两者发送所述RDMA命令消息,以及从所述第一和第二存储服务器接收相应的第一和第二RDMA命令完成消息,所述完成消息指示所述数据在至少所述第一和第二存储服务器之间的复制。12.如权利要求11所述的方法,其特征在于,包括:向所述第一存储服务器发送所述RDMA命令消息包括向在所述第一存储服务器处维护的控制第一存储设备的第一非易失性存储器快速(NVMe)控制器发送所述RDMA命令消息以及将所述数据发送到所述第一存储服务器中的一个或多个缓冲器,所述第一NVMe控制器能够基于从所述一个或多个缓冲器中读取所述数据并将所述数据存储在所述第一存储设备,导致所述RDMA命令完成消息被发送到所述网络I/O设备;以及向所述第二存储服务器发送所述RDMA命令消息包括向在所述第二存储服务器处维护的控制第二存储设备的第二NVMe控制器发送所述RDMA命令消息以及将所述数据发送到所述第二存储服务器中的一个或多个缓冲器,所述第二NVMe控制器能够基于从所述一个或多个缓冲器中读取所述数据并将所述数据存储在所述第二存储设备中,导致所述第二RDMA命令完成消息被发送到所述网络I/O设备。13.如权利要求10所述的方法...

【专利技术属性】
技术研发人员:E·塔米尔F·L·贝瑞P·C·凯顿D·E·伍德
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1