CN110727617A - 同时通过PCIe EP和网络接口访问双线SSD装置的方法和系统 - Google Patents

同时通过PCIe EP和网络接口访问双线SSD装置的方法和系统 Download PDF

Info

Publication number
CN110727617A
CN110727617A CN201910160194.4A CN201910160194A CN110727617A CN 110727617 A CN110727617 A CN 110727617A CN 201910160194 A CN201910160194 A CN 201910160194A CN 110727617 A CN110727617 A CN 110727617A
Authority
CN
China
Prior art keywords
solid state
state drive
drive device
network interface
wire
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
CN201910160194.4A
Other languages
English (en)
Other versions
CN110727617B (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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics 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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN110727617A publication Critical patent/CN110727617A/zh
Application granted granted Critical
Publication of CN110727617B publication Critical patent/CN110727617B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • 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
    • G06F3/0613Improving I/O performance in relation to throughput
    • 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/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express

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)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

本文描述了一种通过网络接口和PCIe EP中的至少一个访问双线固态驱动器(SSD)装置的方法。所述方法包括:双线SSD装置通过网络接口建立与远程服务器的连接,远程服务器建立与双线SSD装置的管理队列,所述远程服务器通过经由网络接口发布所述管理队列中的命令来建立与所述双线SSD装置的输入/输出队列,以启动数据传输,双线SSD装置经由PCIe EP建立与本地服务器的连接,本地服务器经由PCIe EP建立管理队列,并且本地服务器通过经由PCIe EP发布管理队列中的命令来建立输入/输出队列以启动数据传输。

Description

同时通过PCIe EP和网络接口访问双线SSD装置的方法和系统
相关申请的交叉引用
本申请要求于2018年7月16日提交的印度专利申请No.201841026535的优先权及从中产生的所有利益,该申请的内容以引用方式全文并入本文中。
技术领域
本发明总体涉及非易失性存储器装置,具体地,涉及通过使用固态驱动器(SSD)装置的双线接口同时访问远程服务器和本地服务器的固态驱动器(SSD)装置。
背景技术
通常,中央处理单元(CPU)可以使用网络协议通过网络访问远程存储装置或I/O装置。访问远程存储装置或I/O装置的一种传统方法是通过互联网小型计算机系统接口(iSCSI)存储。该方法使用CPU的大量处理周期,这增加了总访问延迟。经由iSCSI存储访问远程存储装置或I/O装置的延迟通常比直接访问本地存储装置或I/O装置的时间长几倍。对于需要通过网络访问远程存储装置或I/O装置的系统,这会导致显著的性能和吞吐量降低。
处理本地非易失性存储器访问的相对新的接口标准是NVM Express(NVMe),有时称为非易失性存储器主机控制器接口规范。NVMe是允许主机软件与非易失性存储器子系统通信的寄存器级接口。此接口针对企业和客户端固态驱动器(SSD)进行了优化,该接口通常附接到快速外围组件互连(PCIe)接口。NVMe提供了对本地非易失性存储器的直接I/O访问。使用NVMe,与通过传统I/O接口(例如,串行小型计算机系统接口(SCSI)或串行ATA(SATA))相比,减少了读取操作和写入操作的延迟。
但是,NVMe具有与通过以太网交换机或其他类型网络传输数据有关的限制。通常,NVMe被设计为访问本地SSD,而不是被定义为通过网络访问远程存储。当今定义的诸如NVMeover Fabrics(NVMeoF)的新标准提供了由多个服务器CPU通过网络访问多个远程SSD的解决方案。但是,传统的SSD(NVMe或NVMeoF SSD)具有以下缺点:
1.NVMe SSD数据保护:当PCIe端点(EP)出现故障时,NVMe SSD中的数据无法访问。
2.NVMeoF SSD数据保护:当以太网出现故障时,NVMeoF SSD中的数据无法访问。
3.本地连接时NVMe SSD未充分利用。
4.传统的NVMeoF SSD仅作为存储目标操作,它不会同时作为网络目标和网络发起者操作而同时提供存储以及RNIC类型的功能。
图1是示出根据相关技术的当PCIe EP 106出现故障时传统的基于PCIe的SSD装置104中的数据不可访问的示意图。根据该相关技术,传统的基于PCIe的SSD装置104包括PCIeEP 106、NVMe控制器108、闪存转换层(FTL)110和闪存112。通过PCIe EP 106来建立传统的基于PCIe的SSD装置104和本地服务器102之间的连接。图1示出了如下情况:PCIe EP 106出现故障或失灵,使得传统的基于PCIe的SSD装置104与本地服务器102之间的连接被切断,并且传统的基于PCIe的SSD装置104中的数据不可访问。因此,仍然需要网络接口来建立通过网络与传统的基于PCIe的SSD装置104的连接,以实现数据的访问和传输。
图2是示出根据相关技术的当网络接口206出现故障时传统的基于NVMe overfabrics(NVMeoF)的以太网SSD装置204中的数据不可访问的示意图。根据该相关技术,传统的基于NVMeoF的以太网SSD装置204包括网络接口206、NVMeoF控制器208、闪存转换层(FTL)210和闪存212。网络接口206适于实现与远程服务器202的连接以用于传输数据。图2示出了如下情况:网络接口206出现故障或失灵,使得传统的基于NVMeoF的以太网SSD装置204与远程服务器202之间的连接被切断,并且传统的基于NVMeoF的以太网SSD装置204中的数据不可访问。因此,在传统的基于NVMeoF的以太网SSD装置204内仍然需要PCIe EP来实现通过PCIe EP访问数据传输。
鉴于前述内容,需要一种SSD,其可以通过网络接口(例如,以太网网络)同时充当发起者和目标,以有效地提供对远程服务器的访问。
图3是示出根据现有技术的传统的基于PCIe的SSD装置未充分利用的示意图。根据该相关技术,传统的基于PCIe的SSD装置304包括PCIe EP 306、非易失性存储器主机控制器接口规范(NVMe)控制器308、FTL 310和闪存312。通过PCIe EP 306来建立传统的基于PCIe的SSD装置304和本地服务器102之间的连接。图3示出了如下情况:本地服务器302在装置的存储容量和带宽方面没有利用传统的基于PCIe的SSD装置304。因此,仍然需要一种有效利用传统的基于PCIe的SSD装置的存储容量和带宽的系统和方法。
本文解决了上述不足、缺点和问题,并且通过阅读和研究以下说明书将理解本文。
发明内容
本发明的各种实施例公开了一种通过网络接口和快速外围组件互连端点(PCIeEP)中的至少一个访问双线固态驱动器(SSD)装置的方法。根据本实施例,该方法包括以下步骤:远程服务器通过创建多个网络传输队列对、经由网络接口建立与双线SSD装置的第一连接;远程服务器通过多个网络传输队列对、使用结构上快速非易失性存储器(NVMe overfabrics,NVMeoF)建立与双线SSD装置的管理队列;远程服务器通过多个网络传输队列对、经由网络接口发布管理队列中的命令来建立与双线SSD装置的输入/输出队列;本地服务器经由PCIe EP建立与双线SSD装置的第二连接;本地服务器使用管理队列的属性通过PCIeEP建立管理队列;本地服务器通过经由PCIe EP发布管理队列的命令来建立输入/输出队列;当在本地服务器和双线SSD装置之间建立第二连接时,NVMe控制器在本地服务器和双线SSD装置之间传输数据;以及当在远程服务器和双线SSD装置之间建立第一连接时,NVMeoF目标控制器在远程服务器和双线SSD装置之间传输数据。
根据一个实施例,多个网络传输队列对包括多个目标网络传输队列对和多个发起者网络传输队列对。
根据另一实施例,所述方法还包括:将所述双线SSD装置实现为经由网络接口的存储装置、将所述双线SSD装置实现为经由PCIe EP的存储装置、将所述双线SSD装置实现为远程网络接口控制器(RNIC),以经由网络接口与远程服务器通信、以及将所述双线SSD装置同时实现为:(a)经由网络接口的存储装置(b)经由PCIe EP的存储装置以及(c)经由网络接口的远程网络接口控制器(RNIC)。
根据另一实施例,双线SSD装置适于:当双线SSD装置通过本地服务器实现为经由网络接口的RNIC时,用作发起者;当双线SSD装置通过远程服务器实现为经由网络接口的存储装置时,用作目标;以及同时用作经由网络接口的发起者和存储装置目标。
在一方面,本文描述了一种当快速外围组件互连端点(PCIe EP)故障时实现从双线SSD装置的数据传输的方法,所述方法包括:服务器通过创建多个网络传输队列对建立经由网络接口与双线SSD装置的连接;服务器经由网络接口向双线SSD装置触发命令,以启动数据的传输(其中,在PCIe EP连接失败之前,服务器经由PCIe EP存储数据),并且在双线SSD装置和服务器之间经由网络接口传输数据。
在另一方面,提供了在双线SSD装置上实现精简配置的方法,该方法包括:本地服务器通过PCIe EP访问双线SSD装置的本地存储;远程服务器通过发现日志提取关于本地存储利用率的信息,以访问双线SSD装置的数据;以及当双线SSD装置未被本地服务器充分利用时,远程服务器通过网络接口访问来自双线SSD装置的数据。
根据一个实施例,所述方法包括:通过双线SSD装置向远程服务器发送供应商命令,以将为远程服务器分配的存储空间回收回本地服务器。
在另一方面,本文描述了一种当网络接口故障时实现从双线SSD装置的数据传输的方法,所述方法包括:服务器通过创建I/O队列对和管理队列属性经由PCIe EP建立所述服务器与双线SSD装置的连接;服务器经由PCIe EP向双线SSD装置触发命令,以启动数据的传输(其中,在网络接口连接失败之前,服务器经由网络接口存储数据),并且在双线SSD装置和服务器之间经由PCIe EP传输数据。
在一个方面,本文描述了一种通过网络接口和快速外围组件互连端点(PCIe EP)中的至少一个访问双线固态驱动器(SSD)装置的系统。该系统包括双线SSD装置。双线SSD装置包括网络接口、PCIe EP、非易失性存储器主机控制器接口规范(NVMe)控制器和结构上快速非易失性存储器(NVMeoF)目标控制器。远程服务器利用网络接口以通过创建多个网络传输队列对来建立与双线SSD装置的第一连接。本地服务器利用PCIe EP来建立与双线SSD装置的第二连接。当在本地服务器与双线SSD装置之间建立第二连接时,NVMe控制器适于在本地服务器与双线SSD装置之间建立数据传输。当在远程服务器与双线SSD装置之间建立第一连接时,NVMeoF目标控制器适于在远程服务器与双线SSD装置之间建立数据传输。
根据一个实施例,双线SSD装置还包括应用程序控制器。应用程序控制器适于当被NVMe控制器触发时通过创建多个网络传输队列对通过NVMeoF发起者控制器创建与远程服务器的第一连接。
根据另一实施例,系统适于执行以下操作中的至少一个:(i)当(a)PCIe EP发生故障和(b)PCIe EP的连接失败中的一个发生时,通过网络接口实现从双线SSD装置的数据传输;(ii)当(a)网络接口发生故障和(b)网络接口连接失败中的一个发生时,通过PCIe EP实现从双线SSD装置的数据传输;(iii)同时通过PCIe EP和网络接口实现从双线SSD装置的数据传输以及(iv)当本地服务器未充分利用双线SSD装置时,通过实现远程服务器的访问来实现双线SSD装置的精简配置。
前面已经总体概述了本发明的各个方面,并且用于帮助更好地理解随后的更完整的详细描述。参考这些,应清楚地理解本发明不限于本文描述和示出的方法或应用。根据本文包含的详细描述或示出而变得明显或显而易见的本发明的任何其他优点和目的都旨在本发明的范围内。
附图说明
根据以下优选实施例的描述和附图,本领域技术人员将想到其他目的、特征和优点,在附图中:
图1是示出根据现有技术的当PCIe EP出现故障时传统的基于PCIe的SSD装置中的数据不可访问的示意图。
图2是示出根据现有技术的当网络接口出现故障时传统的基于NVMeoF的以太网SSD装置中的数据不可访问的示意图。
图3是示出根据现有技术的传统的基于PCIe的SSD装置未充分利用的示意图。
图4示出了根据本发明实施例的用于在快速外围组件互连端点(PCIe EP)发生故障时双线SSD装置和服务器之间实现数据传输的方法。
图5示出了根据本发明实施例的用于在网络接口发生故障时双线SSD装置和服务器之间实现数据传输的方法。
图6示出了根据本发明实施例的当本地服务器通过PCIe EP未充分利用双线SSD装置时,实现由远程服务器对双线SSD装置的访问的方法。
图7示出了根据本发明实施例的用于同时通过网络接口和快速外围组件互连端点(PCIe EP)访问双线固态驱动器(SSD)装置的方法。
尽管在一些附图中示出了本发明的具体特征而在其他附图中没有示出,但这仅仅是为了方便,因为每个特征可以与根据本发明的任何或所有其他特征组合。
具体实施方式
本发明提供了一种用于通过快速外围组件互连端点(PCIe EP)和网络接口访问双线SSD装置以用于数据传输和数据保护的方法。在本发明实施例的以下详细描述中,参照形成其一部分的附图,在附图中通过图示的方式示出了可以实践本发明的特定实施例。足够详细地描述了这些实施例以使本领域技术人员能够实践本发明,并且应该理解,可以利用其他实施例,并且可以在不脱离本发明的范围的情况下进行改变。因此,以下详细描述不应被视为具有限制意义,并且本发明的范围仅由所附权利要求限定。
说明书可以在若干位置参照“一”、“一个”或“一些”实施例。这并不一定意味着每个这样的参照是针对相同的实施例,或者该特征仅应用于单个实施例。还可以组合不同实施例中的单个的各个特征以提供其他实施例。
如本文所用,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非另有明确说明。还应该理解,术语“包括”、“包含”、“包括……的”和/或“包含……的”当用于本说明书中时,指明存在所列特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其它特征、整体、步骤、操作、元件、组件和/或它们的组。如本文所用,术语“和/或”包括相关所列项中的一个或多个的任何或所有组合以及排列。
除非另外限定,否则本文中使用的所有术语(包括技术术语和科学术语)具有与本公开有关的领域的技术人员通常理解的含义相同的含义。应该理解,诸如在通用词典中定义的那些术语应该被解释为具有与相关领域的上下文中一致的含义,而不应该理想化或过于形式化地进行解释,除非本文中明确这样定义。
参照在附图中示出并在以下描述中详述的非限制性实施例,更全面地解释本文的实施例及其各种特征和优点。省略对众所周知的组件和处理技术的描述,以避免不必要地模糊本文的实施例。本文使用的示例仅旨在方便理解本文中的实施例可以实践的方式,并且旨在进一步使本领域技术人员能够实践本文的实施例。因此,各个示例不应当构成为限制本文实施例的范围。
图4示出了根据本发明实施例的用于在快速外围组件互连端点(PCIe EP)406发生故障时双线SSD装置404和远程服务器408之间实现数据传输的方法。根据该实施例,远程服务器408通过创建多个网络传输队列对来建立通过网络接口412与双线SSD装置404的连接。随后,远程服务器408通过网络接口412向双线SSD装置404触发命令以启动数据传输,其中在PCIe EP 406的连接失败发生之前本地服务器402通过PCIe EP 406存储数据。PCIe EP406的连接失败包括(a)PCIe EP 406与本地服务器402之间的连接失败、(b)PCIe EP 406与应用程序控制器420之间的连接失败以及(c)PCIe EP 406与NVMe控制器418之间的连接失败(如图4所示)。当PCIe EP 406出现故障或未能访问双线SSD装置404时,在双线SSD装置404和远程服务器408之间通过网络接口412实现数据传输(如图4中的实线路径所示)。
图5示出了根据本发明实施例的用于在网络接口412发生故障时双线SSD装置404和本地服务器402之间实现数据传输的方法。根据该实施例,本地服务器402通过PCIe EP406建立与双线SSD装置404的连接。随后,本地服务器402通过PCIe EP 406向双线SSD装置404触发命令以启动数据传输,其中在网络接口412的连接失败发生之前远程服务器402通过网络接口412存储数据。网络接口412的连接失败包括(a)网络接口412和远程服务器408之间的连接失败、(b)网络接口412和RoCE/iWARP 414之间的连接失败、(c)RoCE/iWARP 414和NVMeoF目标控制器416之间的连接失败以及(d)NVMeoF目标控制器416和NVMe控制器418之间的连接失败(如图5所示)。当网络接口412发生故障或无法访问双线SSD装置404时,通过PCIe EP 406在双线SSD装置404和本地服务器402之间实现数据传输(如图5中的实线路径所示)。
图6示出了根据本发明实施例的当本地服务器402通过PCIe EP 406未充分利用双线SSD装置时,实现由远程服务器408访问双线SSD装置404的方法。根据该实施例,本地服务器402通过PCIe EP 406建立与双线SSD装置404的连接(路径1)。当本地服务器402未充分利用双线SSD装置404时,远程服务器408通过网络接口412访问双线SSD装置404(路径2-如图6中实线所绘)。
图7示出了根据本发明实施例的用于同时通过网络接口412和快速外围组件互连端点(PCIe EP)406访问双线固态驱动器(SSD)装置404的方法。根据该实施例,双线SSD装置404分别通过PCIe EP 406和网络接口412来建立与本地服务器402和远程服务器408的连接。本地服务器402和双线SSD装置404之间的连接是通过PCIe EP 406将多个非易失性存储器快速队列从本地服务器402发送到双线SSD装置404来建立的。本地服务器402使用管理队列的属性和NVMeoF协议通过RDMA建立与双线SSD装置404的管理队列。本地服务器402还通过将管理队列中的命令发布到NVM express(NVMe)控制器418来建立输入/输出队列。图7中的路径1示出了本地服务器402和双线SSD装置404的闪存426之间通过闪存转换层(FTL)424的数据传输。
通过创建多个网络传输队列对来通过网络接口412建立远程服务器408和双线SSD装置404之间的连接。远程服务器408通过多个网络传输队列对、使用结构上快速非易失性存储器(NVMeoF)来建立与双线SSD装置404的管理队列。远程服务器408通过多个网络传输队列对、通过将管理队列中的命令发布到NVMeoF目标控制器416来建立与双线SSD装置404的输入/输出队列。图7中的路径2示出了远程服务器408和双线SSD装置404的闪存426之间通过闪存转换层(FTL)424的数据传输。
本地服务器402通过双线SSD装置404和网络中的任何远程网络节点之间的连接在图7中示为路径3。在该路径3中,双线SSD装置404用作通过网络接口412的发起者。当路径3和路径2并行操作时,双线SSD装置404同时作为目标和发起者来操作。图7中的路径3实现了双线SSD装置404的针对本地服务器402的RNIC功能。
此外,当NVMe控制器418触发应用程序控制器420以用作启动远程服务器408和双线SSD装置404之间的数据传输的发起者时,双线SSD装置404用作网络发起者(如路径4所示)。
本地服务器402通过PCIe EP 406、闪存转换层(FTL)424和闪存426访问双线SSD装置404的本地存储而将双线SSD装置404用作本地存储。本地服务器402还与远程服务器408通信以通过PCIe EP 406、应用程序控制器420、NVMeoF发起者控制器422、融合以太网上的远程直接内存访问/互联网广域RDMA协议(RoCE/iWARP)414和网络接口412来通过网络将双线SSD装置404实现为远程网络接口控制器(RNIC)。在实施例中,网络包括有线网络和无线网络中的至少一个。
在一个实施例中,当在远程服务器408和双线SSD装置404之间建立连接时,双线SSD装置404实现为通过网络接口412的存储装置。在另一个实施例中,当在本地服务器402和双线SSD装置404之间建立连接时,双线SSD装置404实现为通过PCIe EP 406的存储装置。在又一实施例中,双线SSD装置404实现为远程网络接口控制器(RNIC),以通过网络接口412从本地服务器402与远程服务器408通信。在又一实施例中,双线SSD装置404由本地服务器402通过PCIe EP 406同时实现为(a)通过PCIe EP 406和网络接口412的存储装置以及(b)通过网络接口412的远程网络接口控制器(RNIC)。
当双线SSD装置404被本地服务器402实现为通过网络接口412的RNIC时,双线SSD装置404用作发起者。当双线SSD装置404被远程服务器408实现为通过网络接口412的存储装置时,双线SSD装置404还用作目标。双线SSD装置404还通过网络接口412同时用作RNIC发起者和存储装置目标。
在另一实施例中,该方法允许在双线SSD装置404上实现精简配置。根据该实施例,本地服务器402通过PCIe EP 406访问双线SSD装置404的本地存储。通过PCIe EP 406访问双线SSD装置404导致双线SSD装置404的未充分利用。由远程服务器408通过网络接口412访问来自本地存储的数据来实现双线SSD装置404上的精简配置。远程服务器408通过发现日志提取关于本地存储利用率的信息来从本地存储访问数据,以在未充分利用的双线SSD装置404上实现精简配置。未充分利用的双线SSD装置404将供应商命令发送到远程服务器408,以将用于远程服务器408的分配的存储空间回收回本地服务器402。
在另一实施例中,该方法允许在网络接口412发生故障时实现双线SSD装置404和本地服务器402之间的数据传输。根据该实施例,本地服务器402通过创建I/O队列对和管理队列属性来建立通过PCIe EP 406与双线SSD装置404的连接。然后,本地服务器402向双线SSD装置404触发命令,以启动从双线SSD装置404传输数据,其中在发生网络接口412连接失败之前,本地服务器402通过网络接口412存储数据。通过PCIe EP 406在双线SSD装置404和本地服务器402之间实现数据传输。
在另一实施例中,该方法允许本地服务器402从双线SSD装置404读取数据。根据该实施例,本地服务器402通过PCIe EP 406将读取命令发送至双线SSD装置404。一旦从本地服务器402接收到读取命令,NVMe控制器418就将读取命令发布到FTL 424或者触发应用程序控制器420(通过路径4)通过创建多个网络传输队列对来创建与远程服务器408的连接。当读取命令命中本地存储目标时,NVMe控制器418完成通过FTL 424的数据传输。当读取命令错过本地存储目标时,NVMe控制器418对向预期的远程目标触发读取命令。
在另一实施例中,该方法允许本地服务器402将数据写至双线SSD装置404。根据该实施例,本地服务器402通过PCIe EP 406将写入命令发送至双线SSD装置404。一旦从本地服务器402接收到写入命令,NVMe控制器418就将写入命令发布到FTL 424或者触发应用程序控制器420(通过路径4)通过基于缓存写入计划创建多个网络传输队列对来创建与远程服务器408的连接。当基于缓存写入计划在本地存储和远程存储中完成写入命令时,NVMe控制器418完成数据传输。
尽管已经关于本发明的特定实施例详细描述了本说明书,但是应当理解,本领域技术人员在理解了前述内容后,可以容易地想到对这些实施例以及等同物的改变、变化。在不脱离本发明的范围的情况下,本领域普通技术人员可以实施对本发明的这些和其他修改和变化。此外,本领域普通技术人员将理解,前面的描述仅是示例性的,并不旨在限制本发明。因此,本主题旨在涵盖这些修改和变化。

Claims (11)

1.一种通过网络接口和PCIe EP中的至少一个访问双线固态驱动器装置的方法,所述方法包括以下步骤:
远程服务器通过创建多个网络传输队列对、经由所述网络接口来建立与所述双线固态驱动器装置的第一连接;
所述远程服务器通过所述多个网络传输队列对、使用NVMe overfabrics来建立与所述双线固态驱动器装置的管理队列;
所述远程服务器通过所述多个网络传输队列对、经由所述网络接口发布所述管理队列中的命令来建立与所述双线固态驱动器装置的输入或输出队列;
本地服务器经由所述PCIe EP来建立与所述双线固态驱动器装置的第二连接;
所述本地服务器通过远程直接存储器访问利用NVMe overfabrics协议来经由所述PCIe EP建立所述管理队列;
所述本地服务器通过经由所述PCIe EP发布所述管理队列中的命令来建立所述输入或输出队列;
当在所述本地服务器与所述双线固态驱动器装置之间建立所述第二连接时,NVMe控制器在所述本地服务器与所述双线固态驱动器装置之间传输数据;以及
当在所述远程服务器与所述双线固态驱动器装置之间建立所述第一连接时,NVMeover fabrics目标控制器在所述远程服务器与所述双线固态驱动器装置之间传输数据。
2.根据权利要求1所述的方法,其中所述多个网络传输队列对包括多个目标网络传输队列对和多个发起者网络传输队列对。
3.根据权利要求1所述的方法,其中所述方法还包括:
将所述双线固态驱动器装置实现为经由所述网络接口的存储装置;
将所述双线固态驱动器装置实现为经由所述PCIe EP的存储装置;
将所述双线固态驱动器装置实现为远程网络接口控制器,以经由所述网络接口与所述远程服务器通信;以及
将所述双线固态驱动器装置同时实现为(a)经由所述网络接口的存储装置、(b)经由所述PCIe EP的存储装置和(c)经由所述网络接口的远程网络接口控制器。
4.根据权利要求3所述的方法,其中所述双线固态驱动器装置适于:
当所述双线固态驱动器装置通过所述本地服务器实现为经由所述网络接口的所述远程网络接口控制器时,用作发起装置;
当所述双线固态驱动器装置通过所述远程服务器实现为经由所述网络接口的所述存储装置时,用作目标装置;以及
同时用作经由所述网络接口的远程网络接口控制器发起装置和存储目标装置。
5.一种当PCIe EP发生故障时实现从双线固态驱动器装置的数据传输的方法,所述方法包括:
服务器通过创建多个网络传输队列对经由网络接口来建立与所述双线固态驱动器装置的连接;
所述服务器经由所述网络接口向所述双线固态驱动器装置触发命令以启动数据的传输,其中在PCIe EP连接失败之前所述服务器经由所述PCIe EP存储所述数据;以及
经由所述网络接口在所述双线固态驱动器装置和所述服务器之间传输所述数据。
6.一种实现双线固态驱动器装置上的精简配置的方法,所述方法包括:
本地服务器通过PCIe EP来访问所述双线固态驱动器装置的本地存储;
远程服务器通过发现日志来提取关于本地存储利用率的信息,以访问来自所述双线固态驱动器装置的数据;以及
当所述双线固态驱动器装置未被所述本地服务器充分利用时,所述远程服务器通过网络接口访问来自所述双线固态驱动器装置的数据。
7.根据权利要求6所述的方法,其中所述方法还包括:
通过所述双线固态驱动器装置向所述远程服务器发送供应商命令,以将为所述远程服务器分配的存储空间回收回所述本地服务器。
8.一种当网络接口发生故障时实现从双线固态驱动器装置的数据传输的方法,所述方法包括:
服务器通过创建输入或输出队列对和管理队列属性经由PCIeEP来建立所述服务器和所述双线固态驱动器装置之间的连接;
所述服务器经由所述PCIe EP向所述双线固态驱动器装置触发命令以启动数据的传输,其中在网络接口连接失败之前所述服务器经由所述网络接口存储所述数据;以及
经由所述PCIe EP在所述双线固态驱动器装置和所述服务器之间传输所述数据。
9.一种通过网络接口和PCIe EP中的至少一个访问双线固态驱动器装置的系统,
其中,所述双线固态驱动器装置包括:
所述网络接口,其被远程服务器用于通过创建多个网络传输队列对来建立与所述双线固态驱动器装置的第一连接;
所述PCIe EP,其被本地服务器用于建立与所述双线固态驱动器装置的第二连接;
NVMe控制器,其适于当在所述本地服务器与所述双线固态驱动器装置之间建立所述第二连接时,在所述本地服务器与所述双线固态驱动器装置之间建立数据传输;以及
NVMe over fabrics目标控制器,其适于当在所述远程服务器与所述双线固态驱动器装置之间建立所述第一连接时,在所述远程服务器与所述双线固态驱动器装置之间建立数据传输。
10.根据权利要求9所述的系统,其中所述双线固态驱动器装置还包括:
应用程序控制器,其适于当被NVMe控制器触发时通过创建所述多个网络传输队列对通过NVMe over fabrics发起者控制器创建与所述远程服务器的第一连接。
11.根据权利要求9所述的系统,其中,所述系统适于执行以下操作中的至少一个:
当(a)所述PCIe EP发生故障和(b)所述PCIe EP连接失败中的一个发生时,通过所述网络接口实现从所述双线固态驱动器装置的数据传输;
当(a)所述网络接口发生故障和(b)所述网络接口连接失败中的一个发生时,通过所述PCIe EP实现从所述双线固态驱动器装置的数据传输;
同时通过所述PCIe EP和所述网络接口实现从所述双线固态驱动器装置的数据传输;以及
当所述本地服务器未充分利用所述双线固态驱动器装置时,通过实现所述远程服务器的访问来实现所述双线固态驱动器装置的精简配置。
CN201910160194.4A 2018-07-16 2019-03-04 同时通过PCIe EP和网络接口访问双线SSD装置的方法和系统 Active CN110727617B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
IN201841026535 2018-07-16
IN201841026535 2018-07-16

Publications (2)

Publication Number Publication Date
CN110727617A true CN110727617A (zh) 2020-01-24
CN110727617B CN110727617B (zh) 2024-05-07

Family

ID=69138206

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910160194.4A Active CN110727617B (zh) 2018-07-16 2019-03-04 同时通过PCIe EP和网络接口访问双线SSD装置的方法和系统

Country Status (3)

Country Link
US (1) US11194743B2 (zh)
KR (1) KR102683711B1 (zh)
CN (1) CN110727617B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10893105B1 (en) * 2019-08-07 2021-01-12 EMC IP Holding Company LLC Utilization of networking protocol for seamless integration of compute nodes with software-defined storage nodes
WO2022115364A1 (en) * 2020-11-25 2022-06-02 Intel Corporation Remote direct memory access (rdma) in next generation cellular networks
US20230030168A1 (en) * 2021-07-27 2023-02-02 Dell Products L.P. Protection of i/o paths against network partitioning and component failures in nvme-of environments
US11733912B2 (en) 2022-01-19 2023-08-22 Dell Products L.P. Intelligent target routing in a distributed storage system
US11829602B2 (en) 2022-03-16 2023-11-28 Dell Products L.P. Intelligent path selection in a distributed storage system
US11907537B2 (en) 2022-04-06 2024-02-20 Dell Products L.P. Storage system with multiple target controllers supporting different service level objectives
US11762595B1 (en) 2022-04-08 2023-09-19 Dell Products L.P. Host-based locality determination for logical volumes stored across multiple nodes of a distributed storage system
US12032830B2 (en) 2022-04-27 2024-07-09 Dell Products L.P. Host path selection utilizing address range distribution obtained from storage nodes for distributed logical volume
US11995356B2 (en) 2022-10-12 2024-05-28 Dell Products L.P. Host-based locality determination using locality log pages

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104246742A (zh) * 2012-01-17 2014-12-24 英特尔公司 用于远程客户端访问存储设备的命令验证的技术
US20150019798A1 (en) * 2013-07-15 2015-01-15 CNEXLABS, Inc. Method and Apparatus for Providing Dual Memory Access to Non-Volatile Memory
US20150261720A1 (en) * 2014-03-17 2015-09-17 Mellanox Technologies Ltd. Accessing remote storage devices using a local bus protocol
CN104951252A (zh) * 2015-06-12 2015-09-30 联想(北京)有限公司 一种数据访问方法及PCIe存储设备
CN105556930A (zh) * 2013-06-26 2016-05-04 科内克斯实验室公司 针对远程存储器访问的nvm express控制器
CN107430585A (zh) * 2016-01-29 2017-12-01 慧与发展有限责任合伙企业 远程直接存储器访问
US20180032469A1 (en) * 2016-07-26 2018-02-01 Samsung Electronics Co., Ltd. Multi-mode nmve over fabrics devices

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102430187B1 (ko) * 2015-07-08 2022-08-05 삼성전자주식회사 RDMA NVMe 디바이스의 구현 방법
US10860511B1 (en) * 2015-12-28 2020-12-08 Western Digital Technologies, Inc. Integrated network-attachable controller that interconnects a solid-state drive with a remote server computer
CN107430494B (zh) * 2016-01-29 2020-09-15 慧与发展有限责任合伙企业 用于远程直接存储器访问的系统、方法和介质
US10007443B1 (en) * 2016-03-31 2018-06-26 EMC IP Holding Company LLC Host to device I/O flow
US10331600B1 (en) * 2016-03-31 2019-06-25 EMC IP Holding Company LLC Virtual I/O queuing
KR20170127691A (ko) * 2016-05-12 2017-11-22 한국전자통신연구원 스토리지 장치 및 이의 동작방법
US20170357610A1 (en) * 2016-06-14 2017-12-14 Kazan Networks Corporation Split nvme ssd implementation using nvme over fabrics protocol
US10210123B2 (en) * 2016-07-26 2019-02-19 Samsung Electronics Co., Ltd. System and method for supporting multi-path and/or multi-mode NMVe over fabrics devices
US10735513B2 (en) * 2016-09-08 2020-08-04 Toshiba Memory Corporation Remote NVMe activation
US20180131633A1 (en) * 2016-11-08 2018-05-10 Alibaba Group Holding Limited Capacity management of cabinet-scale resource pools
KR102669909B1 (ko) * 2016-12-20 2024-05-29 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
KR102429904B1 (ko) * 2017-09-08 2022-08-05 삼성전자주식회사 PCIe P2P 접속의 밴드위스를 최대화할 수 있는 방법 및 시스템
US10764180B1 (en) * 2018-02-20 2020-09-01 Toshiba Memory Corporation System and method for storing data using software defined networks
US10635598B2 (en) * 2018-03-30 2020-04-28 Intel Corporation Memory-addressed maps for persistent storage device

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104246742A (zh) * 2012-01-17 2014-12-24 英特尔公司 用于远程客户端访问存储设备的命令验证的技术
CN105556930A (zh) * 2013-06-26 2016-05-04 科内克斯实验室公司 针对远程存储器访问的nvm express控制器
US20150019798A1 (en) * 2013-07-15 2015-01-15 CNEXLABS, Inc. Method and Apparatus for Providing Dual Memory Access to Non-Volatile Memory
US20150261720A1 (en) * 2014-03-17 2015-09-17 Mellanox Technologies Ltd. Accessing remote storage devices using a local bus protocol
CN104951252A (zh) * 2015-06-12 2015-09-30 联想(北京)有限公司 一种数据访问方法及PCIe存储设备
CN107430585A (zh) * 2016-01-29 2017-12-01 慧与发展有限责任合伙企业 远程直接存储器访问
US20180032469A1 (en) * 2016-07-26 2018-02-01 Samsung Electronics Co., Ltd. Multi-mode nmve over fabrics devices

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
刘劲松, 张江陵, 王芳: "异构双通道网络磁盘阵列系统的设计", 计算机工程与科学, no. 01, pages 7 - 10 *

Also Published As

Publication number Publication date
CN110727617B (zh) 2024-05-07
KR20200008483A (ko) 2020-01-28
US11194743B2 (en) 2021-12-07
US20200019521A1 (en) 2020-01-16
KR102683711B1 (ko) 2024-07-09

Similar Documents

Publication Publication Date Title
CN110727617B (zh) 同时通过PCIe EP和网络接口访问双线SSD装置的方法和系统
US10965753B2 (en) Interconnect delivery process
US8442059B1 (en) Storage proxy with virtual ports configuration
US10540307B1 (en) Providing an active/active front end by coupled controllers in a storage system
US11775454B2 (en) Mechanism to autonomously manage SSDs in an array
US20150081836A1 (en) Profile-based lifecycle management for data storage servers
US11606429B2 (en) Direct response to IO request in storage system having an intermediary target apparatus
US20020049825A1 (en) Architecture for providing block-level storage access over a computer network
US11507285B1 (en) Systems and methods for providing high-performance access to shared computer memory via different interconnect fabrics
WO2017162175A1 (zh) 一种数据传输方法及装置
US9172586B1 (en) Method and system for writing tag and data
CN106648838B (zh) 一种资源池管理的配置方法及装置
CN115129625A (zh) 外围设备中的增强的存储协议仿真
WO2023103704A1 (zh) 数据处理方法、存储介质和处理器
JP5893028B2 (ja) キャッシングに対応したストレージ装置上における効率的なシーケンシャルロギングのためのシステム及び方法
US10873543B2 (en) Fiber channel fabric login/logout system
US10564847B1 (en) Data movement bulk copy operation
CN110471627A (zh) 一种共享存储的方法、系统及装置
US10798159B2 (en) Methods for managing workload throughput in a storage system and devices thereof
US20220174094A1 (en) Secure fibre channel/nvme fabric communication system
US11388135B2 (en) Automated management server discovery
US9336102B2 (en) Systems and methods for preventing input/output performance decrease after disk failure in a distributed file system
US9501290B1 (en) Techniques for generating unique identifiers
US9223518B1 (en) Method and system for remote cache direct data placement
US11662917B1 (en) Smart disk array enclosure race avoidance in high availability storage systems

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant