CN108874307A - 以太网固态驱动系统和提供存储卸载功能的方法 - Google Patents

以太网固态驱动系统和提供存储卸载功能的方法 Download PDF

Info

Publication number
CN108874307A
CN108874307A CN201810343949.XA CN201810343949A CN108874307A CN 108874307 A CN108874307 A CN 108874307A CN 201810343949 A CN201810343949 A CN 201810343949A CN 108874307 A CN108874307 A CN 108874307A
Authority
CN
China
Prior art keywords
soe
ssd
controller
data
writing commands
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
CN201810343949.XA
Other languages
English (en)
Other versions
CN108874307B (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 CN108874307A publication Critical patent/CN108874307A/zh
Application granted granted Critical
Publication of CN108874307B publication Critical patent/CN108874307B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/351Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches
    • 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
    • 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/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0638Organizing or formatting or addressing of data
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • 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
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/40Constructional details, e.g. power supply, mechanical construction or backplane
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9084Reactions to storage capacity overflow
    • H04L49/9089Reactions to storage capacity overflow replacing packets in a storage arrangement, e.g. pushout
    • H04L49/9094Arrangements for simultaneous transmit and receive, e.g. simultaneous reading/writing from/to the storage element
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/901Buffering arrangements using storage descriptor, e.g. read or write pointers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Programmable Controllers (AREA)
  • Information Transfer Systems (AREA)

Abstract

一种以太网固态驱动系统和提供存储卸载功能的方法。通过以太网SSD(eSSD)系统和对应的方法提供与存储功能关联的改善的延迟和吞吐量。eSSD系统包括至少一个主要SSD、至少一个次级SSD、以太网交换机和存储卸载引擎(SoE)控制器。SoE控制器可在复制模式和/或纠删编码模式下操作。在任一模式下,SoE控制器接收从远程装置发送到至少一个主要SSD的第一写入命令。在复制模式下,SoE控制器向所述至少一个次级SSD发送第二写入命令,以在所述至少一个次级SSD复制与第一写入命令关联的数据。在纠删编码模式下,SoE确定与第一写入命令关联的纠删代码并管理写入数据和关联的纠删代码的分布。

Description

以太网固态驱动系统和提供存储卸载功能的方法
本专利申请要求于2017年5月8日提交的第62/503,319号美国临时专利申请的优先权权益,所述美国专利申请的公开通过引用完整合并于此。
技术领域
这里公开的主题总体涉及存储系统,更具体地,涉及一种用于在以太网固态驱动(Ethernet solid-state drive,eSSD)系统中提供存储功能的系统和方法。
背景技术
随着计算节点正进化为包括以太网/光纤交换机,与计算节点关联的计算功能(诸如,复制的控制、纠删编码(erasure coding)、数据移动、文件克隆、输入/输出(IO)决定论等)趋于向主机/启动器或者向目标存储装置转移。如果增加的功能转移到远程主机或管理器,则增加的功能负载可导致远程主机和/或管理器的进一步的功能负担,和/或可向目标存储装置添加计算复杂度,从而增加成本。此外,目标存储装置通常为从属型(slave-type)装置,并且存储请求(诸如,读取/写入/管理请求)通常不由从属型装置发起。因此,目标存储装置会需要变成主要型(master-type)装置(类似于主机),以便充当用于各种卸载功能的启动器。
此外,现有的非易失性存储器标准(non-volatile memory express)/通过光纤的非易失性存储器标准(non-volatile memory express over fabric)(NVMe/NVMe-oF)和/或其他存储协议无法本来地和/或利落地支持充当主要启动器的目标存储装置的构思,这限制了由SSD提供的存储卸载或存储加速功能的直接实现。此外,如果远程主机启动器为与第一目标SSD通信的第一启动器,则另一远程主机启动器(或支持存储卸载功能的另一第二SSD)不能够向第一目标SSD发起传送类型的操作或任何其他通信,直至第一目标SSD关闭传输功能和连接为止。
更进一步地,因为远程主机控制和数据流量与需要在最低级别共享的存储卸载功能控制和数据流量干扰,所以用于提供增加的存储功能的以驱动为中心的解决方案可增加流量并减小带宽。
发明内容
示例实施例提供一种eSSD系统,所述eSSD系统可包括至少一个主要SSD、至少一个次级SSD、以太网交换机和存储卸载引擎(SoE)控制器。以太网交换机可结合到所述至少一个主要SSD和所述至少一个次级SSD。SoE控制器可结合到以太网交换机。SoE控制器可接收从远程装置发送到所述至少一个主要SSD的第一写入命令。SoE控制器可向所述至少一个次级SSD发送第二写入命令以在所述至少一个次级SSD复制与第一写入命令关联的数据,其中,第二写入命令为第一写入命令的复制品或修改版本。在纠删编码模式下,SoE控制器可响应于第一写入命令而向所述至少一个主要SSD和所述至少一个主要SSD的纠删编码组对等设备发送第一读取命令。SoE控制器可基于对第一读取命令的响应确定新的条带数据和新的纠删编码数据,并向所述至少一个主要SSD和所述至少一个主要SSD的纠删编码对等设备发送与新的纠删编码关联的第二写入命令。SoE控制器可从远程装置接收发送到所述至少一个主要SSD的数据克隆命令,并且SoE控制器可控制至少在所述至少一个主要SSD中的与数据克隆命令关联的数据的克隆。
示例实施例提供一种eSSD系统,所述eSSD系统可包括至少一个主要SSD、至少一个次级SSD、以太网交换机和SoE控制器。以太网交换机可结合到所述至少一个主要SSD和所述至少一个次级SSD。SoE控制器可结合到以太网交换机、所述至少一个主要SSD和所述至少一个次级SSD。SoE控制器可在复制模式下、在纠删编码模式下、或者在它们的组合下操作。SoE控制器可接收从远程装置发送到所述至少一个主要SSD的第一写入命令。如果SoE控制器在复制模式下或在复制模式和纠删编码模式的组合下操作,则SoE控制器可响应于第一写入命令而至少:向所述至少一个次级SSD发送第二写入命令以在所述至少一个次级SSD中复制与第一写入命令关联的数据,其中,第二写入命令为第一写入命令的复制品或修改版本。如果SoE控制器在纠删编码模式下或在复制模式和纠删编码模式的组合下操作,则SoE控制器可响应于第一写入命令而至少:向所述至少一个主要SSD和所述至少一个主要SSD的纠删编码对等设备发送第一读取命令,响应于第一读取命令而接收存储的数据并基于第一写入命令确定新的纠删编码。SoE控制器可向所述至少一个主要SSD和所述至少一个主要SSD的纠删编码对等设备发送与新的纠删编码关联的第三写入命令。
示例实施例提供一种用于在以太网固态驱动(eSSD)系统中提供存储卸载功能的方法,其中,所述方法可包括:在eSSD系统的存储卸载引擎(SoE)控制器接收从远程装置发送到eSSD系统的至少一个主要SSD的第一写入命令,其中,eSSD系统可包括所述至少一个主要SSD、至少一个次级SSD和结合到所述至少一个主要SSD和所述至少一个次级SSD的以太网交换机,第一写入命令可用于将数据存储在所述至少一个主要SSD中;由SoE控制器向所述至少一个次级SSD发送第二写入命令以在次级SSD中复制与第一写入命令关联的数据,其中,第二写入命令可为第一写入命令的复制品或修改版本。如果SoE控制器在纠删编码模式下,则所述方法可还包括:由SoE控制器向所述至少一个主要SSD和所述至少一个主要SSD的纠删编码对等设备发送第一读取命令;响应于第一读取命令,在SoE控制器接收存储的数据和与存储的数据关联的纠删编码;基于第一写入命令确定新的纠删编码;由SoE控制器向所述至少一个主要SSD和所述至少一个主要SSD的纠删编码对等设备发送与新的纠删编码关联的第三写入命令。
示例实施例提供一种eSSD系统,所述eSSD系统可包括:至少一个SSD、以太网交换机和SoE控制器。所述至少一个SSD可包括主要存储区域和次级存储区域。以太网交换机可结合到所述至少一个SSD。SoE控制器可结合到以太网交换机和所述至少一个SSD。SoE控制器可接收从远程装置发送到所述至少一个SSD的第一写入命令,以在主要存储区域中存储数据,并且SoE控制器可向所述至少一个SSD发送第二写入命令以在次级存储区域内复制与第一写入命令关联的数据,其中,第二写入命令可为第一写入命令的复制品或修改版本。在纠删编码模式下,SoE控制器可响应于第一写入命令而向所述至少一个SSD发送第一读取命令。SoE控制器可基于对第一读取命令的响应确定新的条带数据和新的纠删编码数据。SoE控制器可向所述至少一个SSD发送与新的纠删编码关联的第二写入命令。
示例实施例提供一种eSSD系统,所述eSSD系统可包括至少一个SSD、以太网交换机和SoE控制器。所述至少一个SSD可包括主要存储区域和次级存储区域。以太网交换机可结合到所述至少一个SSD。SoE控制器可结合到以太网交换机和所述至少一个SSD。SoE控制器可在复制模式下、在纠删编码模式下、或者在它们的组合下操作。SoE控制器可接收从远程装置发送到所述至少一个SSD的第一写入命令。如果SoE控制器在复制模式下或在复制模式和纠删编码模式的组合下操作,则SoE控制器响应于第一写入命令而可至少:向所述至少一个SSD发送第二写入命令以在所述至少一个SSD的次级存储区域中复制与第一写入命令关联的数据,其中,第二写入命令可为第一写入命令的复制品或修改版本。如果SoE控制器在纠删编码模式下或在复制模式和纠删编码模式的组合下操作,则SoE控制器响应于第一写入命令而可至少:向所述至少一个SSD发送第一读取命令。SoE控制器可响应于第一读取命令而接收存储的数据并可基于第一写入命令确定新的纠删编码。SoE控制器可向所述至少一个SSD发送与新的纠删编码关联的第三写入命令。
示例实施例提供一种用于在以太网固态驱动(eSSD)系统中提供存储卸载功能的方法,其中,所述方法可包括:在eSSD系统的存储卸载引擎(SoE)控制器接收从远程装置发送到eSSD系统的至少一个SSD的第一写入命令,其中,eSSD系统可包括所述至少一个SSD和结合到所述至少一个SSD的以太网交换机,所述至少一个SSD可包括主要存储区域和次级存储区域,并且第一写入命令可用于将数据存储在所述至少一个SSD中;由SoE控制器向所述至少一个SSD发送第二写入命令以在次级存储区域中复制与第一写入命令关联的数据,其中,第二写入命令可为第一写入命令的复制品或修改版本。
附图说明
在下面的部分中,这里公开的主题的方面将参照附图中示出的示例性实施例被描述,其中:
图1描绘了根据这里公开的主题的包括存储卸载引擎(SoE)的系统的示例实施例的框图;
图2描绘了根据这里公开的主题的如果图1的示例系统的SoE控制器在复制模式下则该系统响应写入命令的示例流程图;
图3描绘了根据这里公开的主题的如果图1的示例系统的SoE控制器在纠删编码模式下则该系统响应写入命令的示例流程图;
图4描绘了根据这里公开的主题的如果图1的示例系统的SoE控制器在纠删编码模式下则该系统响应读取命令的示例流程图。
具体实施方式
在下面的具体实施方式中,阐述了大量具体细节以提供对本公开的全面理解。然而,本领域技术人员将理解,公开的方面可在没有这些具体细节的情况下被实践。在其他实例中,公知的方法、过程、组件和电路未被详细描述以不模糊这里公开的主题。
贯穿本说明书,参考“一个实施例”或“实施例”意指与实施例结合起来描述的特定的特征、结构、或特性可被包括在这里公开的至少一个实施例中。因此,贯穿本说明书的各个地方中出现的短语“在一个实施例中”或“在实施例中”或“根据一个实施例”(或具有类似意义的其他短语)可不一定都是指同一实施例。此外,特定的特征、结构、或特性可按任何合适方式在一个或多个实施例中进行组合。关于这点,如这里使用的,词语“示例性”意指“作为示例、实例或说明”。这里描述为“示例性”的任何实施例将不被解释为必须优先或优越于其他实施例。另外,根据这里讨论的上下文,单数术语可包括对应的复数形式,复数术语可包括对应的单数形式。还注意,这里示出和讨论的各种附图(包括组件示图)仅用于说明的目的,而不按比例绘制。类似地,各种波形和时序示图仅示出用于说明性目的。例如,为了清楚,一些元件的大小可相对于其他元件被夸大。此外,如果认为合适,则在附图中重复参考标号以指示对应的和/或相似的元件。
这里使用的术语仅用于描述特定示例性实施例的目的,而不意图限制要求保护的主题。如在这里使用的,除非上下文明确地另有指示,否则单数形式也意图包括复数形式。还将理解,术语“包括”当在本说明书中使用时,说明存在陈述的特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其他特征、整体、步骤、操作、元件、组件和/或它们的组。除非明确地这样定义,否则如在这里使用的术语“第一”、“第二”等用作它们后面的名词的标签,而不表明任何类型的排序(例如,空间的、时间的、逻辑的等)。此外,相同的参考标号可跨两个或更多个附图使用以指示具有相同或相似功能的部件、组件、块、电路、单元或模块。然而,这样的使用仅用于说明的简洁和讨论的方便;它不表明所有实施例的这样的组件或单元的结构或架构细节相同或这样的共同引用的部件/模块是实现这里公开的特定实施例的教导的唯一方式。
除非另外定义,否则这里使用的所有术语(包括技术术语和科学术语)具有与本主题所属的领域的普通技术人员通常理解的含义相同的含义。还将理解,除非在这里明确地这样定义,否则术语(诸如在通用字典中定义的术语)应该被解释为具有与它们在相关领域的上下文中的含义一致的含义,而将不被解释为理想化或过于正式的意义。
如在这里使用的,术语“模块”是指被配置为提供结合模块的在这里描述的功能的软件、固件和/或硬件的任何组合。如应用于这里描述的任何实施方式的术语“软件”可被实现为软件封包、代码和/或指令集或指令。如应用于这里描述的任何实施方式的术语“硬件”可包括(例如,单独地或以任何组合地)硬连线电路、可编程电路、状态机电路和/或存储由可编程电路执行的指令的固件。模块可共同地或单独地被实现为形成较大系统的部件(诸如但不限于,集成电路(IC)、片上系统(SoC)等)的软件、固件和/或硬件。
这里公开的主题提供一种可包括存储卸载引擎的以太网固态驱动(eSSD)系统,存储卸载引擎提供可与存储功能相关的计算任务。在一个实施例中,存储卸载引擎可将非易失性存储器标准(NVMe)封包解码,并且响应于解码,可执行最好在SSD外部完成的特定任务(诸如但不限于,安排复制和/或纠删编码)。通过使存储卸载引擎安排复制,SSD充当启动器的限制被消除,此外,与多个SSD之一管理针对多个SSD的复制的系统相比,带宽被更有效利用。关于纠删编码,将需要在驱动之间被传送的数据的量与一个驱动接收写入、开发纠删码部分、然后将纠删码部分分布到其他驱动的系统相比也被显著减少。因此,根据这里公开的主题的系统提供不被来自对等设备的复制流量和/或纠删编码流量不利影响的针对系统中的任何SSD的写吞吐量。在一个实施例中,根据这里公开的主题的存储卸载引擎可包括嵌入运行存储卸载软件和提供功能(诸如但不限于,安排复制和/或纠删编码)的以太网交换机的处理器。此外,根据这里公开的主题的系统提高IO决定论并改善与其他存储功能(诸如但不限于,本地重构代码(local reconstruction code,LRC)、纠删编码、数据移动操作和文件克隆)关联的吞吐量和延迟。
图1描绘了根据这里公开的主题的包括存储卸载引擎的系统100的示例实施例的框图。系统100可包括以太网交换机101、基板管理控制器(BMC)装置102、一个或多个存储卸载引擎(SoE)控制器103、外围组件互连快速(PCIe)交换机104、中平面(mid-plane)105以及多个eSSD 106。
虽然图1中描绘的系统100包括仅一个以太网交换机101、一个SoE控制器103和仅一个PCIe交换机104,但应理解,系统100可包括多个以太网交换机101、多个SoE控制器103和/或多个PCIe交换机104。此外,形成系统100的组件(即,以太网交换机101、BMC装置102、SoE控制器103、PCIe交换机104、eSSD等)可被实现为单独组件或实现为单独模块。可选地,形成系统100的两个或更多个组件或模块可彼此成为一体。
系统100可被物理实现为机箱(chassis)或实现为机架单元,其中,一个或多个eSSD 106可针对系统100被本地布置。一个或多个额外的eSSD 106(未示出)还可针对系统100被远程设置。在一个实施例中,eSSD 106可被布置为eSSD的主要组(即,eSSD0-eSSD23)和eSSD的次级组(即,eSSD24-eSSD47)。eSSD的主要组可用作主要存储资源,eSSD的次级组可以是复制存储资源。应理解,图1未具体描绘所有的主要eSSD(eSSD0-eSSD23)和所有的次级eSSD(eSSD24-eSSD47)。在另一实施例中,系统100可包括已被分割为包括主要存储区域和次级存储区域的至少一个eSSD 106。在另一实施例中,系统100可包括多个eSSD 106,其中,一个或多个eSSD 106可被视为主要eSSD,一个或多个eSSD 106可被视为次级eSSD,和/或一个或多个eSSD 106可各自已被分割为包括主要存储区域和次级存储区域。
在一个实施例中,系统100可包括48个eSSD 106。在另一实施例中,系统100可包括任何数量的eSSD 106。在一个实施例中,eSSD 106可被本地地组织成eSSD 106的一个或多个子集,其中,每个子集可包括应用到该子集的一个或多个管理策略。
以太网交换机101可包括多个上行链路以太网端口107,多个上行链路以太网端口107中的仅三个上行链路端口(即,上行链路以太网端口)107被描绘在图1中。上行链路端口107可通过以太网链路108将以太网交换机101连接到一个或多个远程主机150,一个或多个远程主机150中的仅一个主机(即,一个远程主机)150被描绘。以太网交换机101的连接到远程主机150的上行链路端口107可以是高带宽链路。在一个实施例中,以太网交换机101的上行链路端口107可包括多个25Gbit/s、40Gbit/s、100Gbit/s和/或更高容量的链路。以太网交换机101还可包括通过中平面105连接到eSSD 106的多个下行链路以太网端口109。每个eSSD 106可通过以太网连接通信地结合到以太网交换机101。也就是说,每个eSSD 106可包括以太网端口110。
在一个实施例中,BMC装置102可位于作为系统100的部分的主交换机板中。在另一实施例中,BMC装置102和以太网交换机101可彼此成为一体。BMC装置102可被配置为提供管理功能(诸如但不限于,各个eSSD 106的发现、配置、操作状态和健康监控)。
在系统100的一个实施例中,在BMC装置102和eSSD 106之间可存在可用于由BMC装置102提供的管理功能的三个通信路径。第一通信路径可越过以太网网络111而通过以太网交换机101。第二通信路径可越过PCIe链路或总线112而通过PCIe交换机104和中平面105,尽管图1未具体描绘中平面105和eSSD 106之间的PCIe链路。第三通信路径可通过在BMC装置102和eSSD 106之间连接的系统管理总线(SMBus)113。SMBus 113可穿过中平面105或可直接连接到eSSD 106,尽管在图1中SMBus连接未被具体描绘为在eSSD 106与BMC装置102和/或中平面105之间。BMC装置102还可包括管理端口114,通过管理端口114,由管理员(用户)操作的管理服务器160可与BMC装置102通信并控制BMC装置102。管理服务器160可位于接近eSSD控制平台100(即,系统100)或离eSSD控制平台100远的位置。BMC装置102可从可用于控制和管理一个或多个eSSD 106的与该一个或多个eSSD 106有关的管理服务器160接收管理信息。
SoE控制器103可结合到输入到以太网交换机101的以太网链路107。在一个实施例中,系统100可包括结合到输入到以太网交换机101的各个以太网链路107的SoE控制器103。也就是说,系统100可包括针对以太网交换机101的每个以太网链路107的SoE控制器103。在另一实施例中,系统100可包括结合到输入到以太网交换机101的所有以太网链路107的单个SoE控制器103。在一个实施例中,尽管未具体描绘,但SoE控制器103还可通过PCIe交换机104和/或SMBus 113通信地结合到eSSD 106。
在一个实施例中,SoE控制器103可包括可将NVMe-oF封包解码的一个或多个专用现场可编程门阵列(FPGA)和/或应用专用集成电路(ASIC),并可执行特定任务(诸如但不限于,安排并执行复制和/或纠删编码(EC))。在一个实施例中,SoE控制器103可在复制模式、EC模式和/或任何其他存储卸载功能模式下操作。也就是说,SoE控制器103可将可被包含在系统100与远程主机150之间的以太网流量中的NVMe-oF封包解码,并提供复制模式和/或EC模式功能。在复制模式下,SoE控制器103提供用于将写入到一个或多个主要SSD的数据复制在对应的一个或多个次级SSD上的功能。这样的复制模式功能还可包括(但不限于)数据移动和文件克隆。在EC模式下,SoE控制器103提供用于针对写入到一个或多个次级SSD的数据确定EC代码并响应于读取命令而基于针对数据的EC代码来汇集数据的功能。SoE控制器103还可在组合的复制/EC模式下操作。
在一个实施例中,SoE控制器103可提供支持主要eSSD的复制的(或次级的)eSSD的管理功能。在可选实施例中,SoE控制器103可包括运行提供功能(诸如但不限于,安排复制和/或EC)的存储卸载软件的通用或专用处理器。在一个实施例中,BMC装置102可提供次级eSSD的一些或全部管理功能。管理功能可包括指示主要eSSD和针对复制的次级eSSD或指示EC模式下的EC对等节点。在一个实施例中,SoE控制器103和BMC装置102可彼此集成。在一个实施例中,以太网交换机101中的发现服务日志可被SoE控制器103迁移或保持。针对eSSD的初始化命令可被SoE控制器103执行,并且SoE控制器103可实时保持命令的状态(即,“正在进行(in flight)”)。SoE控制器103还可保持EC组(即,数据节点和EC节点)以及正在进行的命令的状态。
在一个实施例中,在远程主机150和系统100之间的以太网流量可使用可基于NVMe-oF规范的协议来向eSSD 106发送读取/写入IO命令。如在图1中的115指示的,在一个实施例中,SoE控制器103可对基于(但不限于)以下协议的通信协议解码:以太网协议、基于互联网协议(IP)的协议、基于传输控制协议(TCP)的协议、基于用户数据报协议(UDP)的协议、基于远程直接内存访问(RDMA)协议的协议以及基于NVMe-oF协议的协议或它们的组合。在一个实施例中,SoE控制器103可接收并解码包含在系统100与远程主机150之间的以太网流量中的NVMe-oF封装(capsule)。也就是说,SoE控制器103可处理接收的封包以提供可与系统100和eSSD 106的存储功能相关的计算/功能任务。
图2描绘了根据这里公开的主题的如果SoE控制器103在复制模式下则系统100响应写入命令的示例流程图200。对于图2中描绘的示例流程图200,系统100可被配置为包括一个或多个主要SSD和一个或多个次级SSD。在图2中的201,包含NVMe-oF写入命令的RDMA_Send消息从远程启动器(诸如,远程主机150)被发送到例如eSSD0(“主要”)。SoE控制器103接收并解码NVMe-oF写入命令,这触发或使得SoE控制器103在202向复制eSSD(诸如,eSSD24)发起并发送包含NVMe-oF写入命令的RDMA_Send消息的“复制品”。由于NVMe-oF命令的字段和参数中的一些可被修改为使复制功能成为可能和/或增强复制功能,所以“复制品”NVMe-oF写入命令可能不是原始写入命令的精确拷贝。在203,主要eSSD0通过向远程主机150发送RDMA_Read消息来响应接收的RDMA_Send消息。在204,复制eSSD24还以被发送到SoE控制器103的它自己的RDMA_Read消息来响应。在205,响应于在203发送的RDMA_Read消息,远程主机150向主要eSSD0发送RDMA_Read_Rsp消息。在206,SoE控制器103接收并解码RDMA_Read_Rsp,这触发或使得SoE控制器103向复制eSSD24发起并发送RDMA_Read_Rsp封装的复制品。在一个实施例中,RDMA_Read_Rsp封装的复制品可能不是从远程主机150接收的原始RDMA_Read_Rsp消息的精确拷贝。在207,主要eSSD0使用以RDMA_Send的NVMe-oF写入响应消息响应,并且独立地,在208,复制eSSD24以它自己的RDMA_Send写入响应消息响应。
如果系统100在复制模式下,则对主要eSSD(例如,eSSD0)的读取可以以正常方式被服务。在主要eSSD失败的情况下,BMC装置102可向SoE控制器103指示该失败,并且SoE控制器103可向次级eSSD(例如,复制到eSSD24)发送一个或多个读取请求并将数据返回到启动器。
此外,如上所述,复制模式功能还可包括(但不限于)数据移动和文件克隆。也就是说,上面关于图2的情况的描述也可应用于数据移动和文件克隆。例如,关于文件克隆,SoE控制器可接收从远程装置发送到至少一个主要SSD的数据克隆命令,并且SoE控制器可控制在该至少一个主要SSD中的与数据克隆命令关联的数据的克隆。例如,关于文件移动,SoE控制器可接收从远程装置发送到至少一个主要SSD的数据移动命令,并且SoE控制器可控制在该至少一个主要SSD内的与数据移动命令关联的数据的移动。
对于被配置为包括已被分割为具有主要存储区域和次级存储区域的一个或多个SSD的系统100,流程将与图2描绘的流程相似,只是SoE控制器103不是向次级SSD发送从远程主机接收的命令的复制品(或修改版本),而是SoE控制器103发送从远程主机接收的命令的复制品(或修改版本)以将数据写入一个或多个SSD的次级区域。
图3描绘了根据这里公开的主题的如果SoE控制器103在EC模式下则图1的示例系统100响应写入命令的示例流程图300。对于图3中描绘的示例流程图300,系统100可被配置为包括一个或多个主要SSD和一个或多个次级SSD。在图3中的301,包含NVMe-oF写入命令的RDMA_Send消息从远程启动器(诸如,远程主机150)被发送到例如eSSD0。SoE控制器103接收并解码NVMe-oF写入命令,这触发或使得SoE控制器103在302向eSSD0和eSSD0的EC组对等设备(也被称为EC对等设备)发起并发送包含NVMe-oF读取命令的RDMA_Send消息,以获取将被在301接收的NVMe-oF写入命令影响的数据。在303,eSSD0响应RDMA_Send消息并向远程主机150发送RDMA_Read消息。在304,eSSD0和EC对等设备向SoE控制器103发送RDMA_Wr消息。在305,远程主机150向eSSD0发送包含将写入eSSD0的新数据的RDMA_Read_Rsp消息,但eSSD0等待SoE控制器103将确定的新的EC数据。例如,新的EC数据可被称为新的纠删编码。在一个示例中,新的纠删编码可包括新的条带数据和新的纠删编码数据。由SoE控制器103在305接收并解码的RDMA_Read_Rsp消息和由SoE控制器103在304接收并解码的RDMA_Wr消息一起触发或使得SoE控制器103在306向eSSD0和EC对等设备发送包含NVMe-oF写入命令的RDMA_Send消息。在307之后,eSSD0和EC组对等设备向SoE控制器103发送RDMA_Read消息以得到写入数据。在308,SoE控制器103确定针对eSSD0的更新的写入数据并将包括EC数据的数据条带化到EC组对等设备上,从而实现针对在301接收的NVMe-oF写入命令的EC存储卸载功能。在309,SoE控制器103向eSSD0和EC组对等设备发送包含更新的写入数据和更新的EC代码的RDMA_Read_Rsp消息代码。在310,eSSD0将包含NVMe-oF写入响应封装的RDMA_Send消息发送到远程主机150。
对于被配置为包括已被分割为具有主要存储区域和次级存储区域的一个或多个SSD的系统100,流程将与图3描绘的流程相似,只是SoE控制器103不是向次级SSD发送从远程主机接收的命令的复制品(或修改版本),而是SoE控制器103发送从远程主机接收的命令的复制品(或修改版本)以将数据写入一个或多个SSD的主要和次级区域并从一个或多个SSD的主要和次级区域读取数据。
图4描绘了根据这里公开的主题的如果SoE控制器103在EC模式下则图1的示例系统100响应读取命令的示例流程图400。对于图4中描绘的示例流程图400,系统100可被配置为包括一个或多个主要SSD和一个或多个次级SSD。在图4中的401,包含NVMe-oF读取命令的RDMA_Send消息从远程启动器(诸如,远程主机150)被发送到例如eSSD0。SoE控制器103接收并解码NVMe-oF读取命令,这触发或使得SoE控制器103在402向eSSD0和eSSD0的EC组对等设备发起并发送包含NVMe-oF读取命令的RDMA_Send消息,以获取已在401请求的数据和将用于汇集数据的EC代码。在403,eSSD0向SoE控制器103发送RDMA_Wr消息。在404,eSSD0以包含NVMe-oF读取响应封装的RDMA_Send消息响应SoE控制器103。在405,eSSD0和EC对等设备向SoE控制器103发送具有数据的RDMA_Wr消息。在406,读取响应在RDMA_Send消息中从eSSD0和EC对等设备被发送。在407,SoE控制器103汇集请求的数据。在408,SoE控制器103向包含汇集的读取数据的远程主机发送RDMA_Wr消息。在SoE控制器103能够在所有EC对等设备响应之前汇集请求的数据的情况下,SoE控制器103向远程主机150发送请求的数据。在409,SoE控制器103向远程主机150发送包含NVMe-oF读取响应封装的RDMA_Send消息。
对于被配置为包括已被分割为具有主要存储区域和次级存储区域的一个或多个SSD的系统100,流程将与图4描绘的流程相似,只是SoE控制器103不是向次级SSD发送从远程主机接收的命令的复制品(或修改版本),而是SoE控制器103发送从远程主机接收的命令的复制品(或修改版本)以将数据写入一个或多个SSD的主要和次级区域并从一个或多个SSD的主要和次级区域读取数据。
应理解,在一个实施例中,系统100可在数据复制模式和纠删编码模式的组合下操作,在这种情况下,系统100可根据从远程主机接收的具体命令至少执行在图2至图4中描绘的操作。
还应理解,图3和图4中的示例流程图被描绘为使用RDMA协议作为示例,但存储卸载功能和流程可使用例如NVMe-TCP协议或可由NVMe工作组支持的任何其他协议在光纤交换机和eSSD中被采用和实现。
如本领域技术人员将认识到的,这里描述的创新构思可在广泛范围的应用上被修改和变化。因此,要求保护的主题的范围不应限制于上面讨论的任何具体示例性教导,而是由权利要求限定。

Claims (27)

1.一种以太网固态驱动eSSD系统,包括:
至少一个主要SSD;
至少一个次级SSD;
以太网交换机,结合到所述至少一个主要SSD和所述至少一个次级SSD;
存储卸载引擎SoE控制器,结合到以太网交换机,SoE控制器接收从远程装置发送到所述至少一个主要SSD的第一写入命令,并且SoE控制器向所述至少一个次级SSD发送第二写入命令以在所述至少一个次级SSD复制与第一写入命令关联的数据,其中,第二写入命令为第一写入命令的复制品或修改版本。
2.根据权利要求1所述的以太网固态驱动系统,其中,在纠删编码模式下,SoE控制器响应于第一写入命令而向所述至少一个主要SSD和所述至少一个主要SSD的纠删编码对等设备发送第一读取命令,SoE控制器基于对第一读取命令的响应确定新的纠删编码,SoE控制器向所述至少一个主要SSD和所述至少一个主要SSD的纠删编码对等设备发送与新的纠删编码关联的第二写入命令。
3.根据权利要求1所述的以太网固态驱动系统,其中,在纠删编码模式下,SoE控制器还接收从远程装置发送到所述至少一个主要SSD的第二读取命令,SoE控制器向所述至少一个主要SSD和所述至少一个主要SSD的纠删编码对等设备发送第三读取命令,SoE控制器响应于第三读取命令而接收存储的数据并针对第二读取命令汇集接收的数据,SoE控制器向远程装置发送汇集的数据。
4.根据权利要求1所述的以太网固态驱动系统,其中,SoE控制器还接收从远程装置发送到所述至少一个主要SSD的数据克隆命令,并且SoE控制器控制在所述至少一个主要SSD中的与数据克隆命令关联的数据的克隆。
5.根据权利要求1所述的以太网固态驱动系统,其中,SoE控制器还接收从远程装置发送到所述至少一个主要SSD的数据移动命令,并且SoE控制器控制在所述至少一个主要SSD内的与数据移动命令关联的数据的移动。
6.一种以太网固态驱动eSSD系统,包括:
至少一个主要SSD;
至少一个次级SSD;
以太网交换机,结合到所述至少一个主要SSD和所述至少一个次级SSD;
存储卸载引擎SoE控制器,结合到以太网交换机、所述至少一个主要SSD和所述至少一个次级SSD,SoE控制器在复制模式下、在纠删编码模式下、或者在它们的组合下操作,并且SoE控制器接收从远程装置发送到所述至少一个主要SSD的第一写入命令,
如果SoE控制器在复制模式下或在复制模式和纠删编码模式的组合下操作,则SoE控制器响应于第一写入命令而至少:向所述至少一个次级SSD发送第二写入命令以在所述至少一个次级SSD中复制与第一写入命令关联的数据,第二写入命令为第一写入命令的复制品或修改版本,
如果SoE控制器在纠删编码模式下或在复制模式和纠删编码模式的组合下操作,则SoE控制器响应于第一写入命令而至少:向所述至少一个主要SSD和所述至少一个主要SSD的纠删编码对等设备发送第一读取命令,SoE控制器响应于第一读取命令而接收存储的数据并基于第一写入命令确定新的纠删编码,SoE控制器向所述至少一个主要SSD和所述至少一个主要SSD的纠删编码对等设备发送与新的纠删编码关联的第三写入命令。
7.根据权利要求6所述的以太网固态驱动系统,其中,在纠删编码模式下,SoE控制器还接收从远程装置发送到所述至少一个主要SSD的第二读取命令,SoE控制器接收与第二读取命令关联的存储的数据和与存储的数据关联的纠删编码并汇集接收的数据和与接收的数据关联的接收的纠删编码,SoE控制器针对第二读取命令向远程装置发送汇集的数据。
8.根据权利要求6所述的以太网固态驱动系统,其中,SoE控制器还接收从远程装置发送到所述至少一个主要SSD的数据克隆命令,并且SoE控制器控制在所述至少一个主要SSD中的与数据克隆命令关联的数据的克隆。
9.根据权利要求6所述的以太网固态驱动系统,其中,SoE控制器还接收从远程装置发送到所述至少一个主要SSD的数据移动命令,并且SoE控制器控制在所述至少一个主要SSD内的与数据移动命令关联的数据的移动。
10.一种用于在以太网固态驱动eSSD系统中提供存储卸载功能的方法,所述方法包括:
在eSSD系统的存储卸载引擎SoE控制器接收从远程装置发送到eSSD系统的至少一个主要SSD的第一写入命令,eSSD系统包括所述至少一个主要SSD、至少一个次级SSD和结合到所述至少一个主要SSD和所述至少一个次级SSD的以太网交换机,第一写入命令用于将数据存储在所述至少一个主要SSD中;
由SoE控制器向所述至少一个次级SSD发送第二写入命令以在所述至少一个次级SSD中复制与第一写入命令关联的数据,第二写入命令为第一写入命令的复制品或修改版本。
11.根据权利要求10所述的方法,其中,如果SoE控制器在纠删编码模式下,则所述方法还包括:
由SoE控制器向所述至少一个主要SSD和所述至少一个主要SSD的纠删编码对等设备发送第一读取命令;
响应于第一读取命令,在SoE控制器接收存储的数据和与存储的数据关联的纠删编码;
基于第一写入命令确定新的纠删编码;
由SoE控制器向所述至少一个主要SSD和所述至少一个主要SSD的纠删编码对等设备发送与新的纠删编码关联的第三写入命令。
12.根据权利要求11所述的方法,其中,在纠删编码模式下,所述方法还包括:
在SoE控制器接收从远程装置发送到所述至少一个主要SSD的第二读取命令;
从SoE控制器向所述至少一个主要SSD和所述至少一个主要SSD的纠删编码对等设备发送第三读取命令;
响应于第三读取命令,在SoE控制器接收存储的数据和与存储的数据关联的纠删编码;
在SoE控制器汇集接收的存储的数据和与存储的数据关联的纠删编码;
响应于第二读取命令,由SoE控制器向远程装置发送汇集的数据。
13.根据权利要求10所述的方法,还包括:在SoE控制器接收从远程装置发送到所述至少一个主要SSD的数据克隆命令;
由SoE控制器控制在所述至少一个主要SSD中的与数据克隆命令关联的数据的克隆。
14.根据权利要求10所述的方法,还包括:在SoE控制器接收从远程装置发送到所述至少一个主要SSD的数据移动命令;
由SoE控制器控制在所述至少一个主要SSD内的与数据移动命令关联的数据的移动。
15.一种以太网固态驱动eSSD系统,包括:
至少一个SSD,所述至少一个SSD包括主要存储区域和次级存储区域;
以太网交换机,结合到所述至少一个SSD;
存储卸载引擎SoE控制器,结合到以太网交换机和所述至少一个SSD,SoE控制器接收从远程装置发送到所述至少一个SSD的第一写入命令以在主要存储区域中存储数据,并且SoE控制器向所述至少一个SSD发送第二写入命令以在次级存储区域内复制与第一写入命令关联的数据,其中,第二写入命令为第一写入命令的复制品或修改版本。
16.根据权利要求15所述的以太网固态驱动系统,其中,在纠删编码模式下,SoE控制器响应于第一写入命令而向所述至少一个SSD发送第一读取命令,SoE控制器基于对第一读取命令的响应确定新的纠删编码,SoE控制器向所述至少一个SSD发送与新的纠删编码关联的第二写入命令。
17.根据权利要求15所述的以太网固态驱动系统,其中,SoE控制器还接收从远程装置发送到所述至少一个SSD的数据克隆命令,并且SoE控制器控制在所述至少一个SSD中的与数据克隆命令关联的数据的克隆。
18.根据权利要求15所述的以太网固态驱动系统,其中,SoE控制器还接收从远程装置发送到所述至少一个SSD的数据移动命令,并且SoE控制器控制在所述至少一个SSD中的与数据移动命令关联的数据的移动。
19.一种以太网固态驱动eSSD系统,包括:
至少一个SSD,所述至少一个SSD包括主要存储区域和次级存储区域;
以太网交换机,结合到所述至少一个SSD;
存储卸载引擎SoE控制器,结合到以太网交换机和所述至少一个SSD,SoE控制器在复制模式下、在纠删编码模式下、或者在它们的组合下操作,并且SoE控制器接收从远程装置发送到所述至少一个SSD的第一写入命令,
如果SoE控制器在复制模式下或在复制模式和纠删编码模式的组合下操作,则SoE控制器响应于第一写入命令而至少:向所述至少一个SSD发送第二写入命令以在所述至少一个SSD的次级存储区域中复制与第一写入命令关联的数据,第二写入命令为第一写入命令的复制品或修改版本,
如果SoE控制器在纠删编码模式下或在复制模式和纠删编码模式的组合下操作,则SoE控制器响应于第一写入命令而至少:向所述至少一个SSD发送第一读取命令,SoE控制器响应于第一读取命令而接收存储的数据并基于第一写入命令确定新的纠删编码,SoE控制器向所述至少一个SSD发送与新的纠删编码关联的第三写入命令。
20.根据权利要求19所述的以太网固态驱动系统,其中,在纠删编码模式下,SoE控制器接收从远程装置发送到所述至少一个SSD的第二读取命令,SoE控制器接收与第二读取命令关联的存储的数据和与存储的数据关联的纠删编码并汇集接收的数据和与接收的数据关联的接收的纠删编码,SoE控制器针对第二读取命令向远程装置发送汇集的数据。
21.根据权利要求19所述的以太网固态驱动系统,其中,SoE控制器还接收从远程装置发送到所述至少一个SSD的数据克隆命令,并且SoE控制器控制在所述至少一个SSD中的与数据克隆命令关联的数据的克隆。
22.根据权利要求19所述的以太网固态驱动系统,其中,SoE控制器还接收从远程装置发送到所述至少一个SSD的数据移动命令,并且SoE控制器控制在所述至少一个SSD内的与数据移动命令关联的数据的移动。
23.一种用于在以太网固态驱动eSSD系统中提供存储卸载功能的方法,所述方法包括:
在eSSD系统的存储卸载引擎SoE控制器接收从远程装置发送到eSSD系统的至少一个SSD的第一写入命令,eSSD系统包括所述至少一个SSD和结合到所述至少一个SSD的以太网交换机,所述至少一个SSD包括主要存储区域和次级存储区域,并且第一写入命令用于将数据存储在所述至少一个SSD中;
由SoE控制器向所述至少一个SSD发送第二写入命令以在次级存储区域中复制与第一写入命令关联的数据,第二写入命令为第一写入命令的复制品或修改版本。
24.根据权利要求23所述的方法,其中,如果SoE控制器在纠删编码模式下,则所述方法还包括:
由SoE控制器向所述至少一个SSD发送第一读取命令;
响应于第一读取命令,在SoE控制器接收存储的数据和与存储的数据关联的纠删编码;
基于第一写入命令确定新的纠删编码;
由SoE控制器向所述至少一个SSD发送与新的纠删编码关联的第三写入命令。
25.根据权利要求24所述的方法,其中,在纠删编码模式下,所述方法还包括:
在SoE控制器接收从远程装置发送到所述至少一个SSD的第二读取命令;
从SoE控制器向所述至少一个SSD发送第三读取命令;
响应于第三读取命令,在SoE控制器接收存储的数据和与存储的数据关联的纠删编码;
在SoE控制器汇集接收的存储的数据和与存储的数据关联的纠删编码;
响应于第二读取命令,由SoE控制器向远程装置发送汇集的数据。
26.根据权利要求23所述的方法,还包括:在SoE控制器接收从远程装置发送到所述至少一个SSD的数据克隆命令;
由SoE控制器控制在所述至少一个SSD中的与数据克隆命令关联的数据的克隆。
27.根据权利要求23所述的方法,还包括:在SoE控制器接收从远程装置发送到所述至少一个SSD的数据移动命令;
由SoE控制器控制在所述至少一个SSD内的与数据移动命令关联的数据的移动。
CN201810343949.XA 2017-05-08 2018-04-17 以太网固态驱动系统和提供存储卸载功能的方法 Active CN108874307B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201762503319P 2017-05-08 2017-05-08
US62/503,319 2017-05-08
US15/654,493 US10275180B2 (en) 2017-05-08 2017-07-19 Ethernet SSD system including storage offload engine (SoE) controller and ethernet switch
US15/654,493 2017-07-19

Publications (2)

Publication Number Publication Date
CN108874307A true CN108874307A (zh) 2018-11-23
CN108874307B CN108874307B (zh) 2023-06-30

Family

ID=64014127

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810343949.XA Active CN108874307B (zh) 2017-05-08 2018-04-17 以太网固态驱动系统和提供存储卸载功能的方法

Country Status (3)

Country Link
US (1) US10275180B2 (zh)
KR (1) KR102295497B1 (zh)
CN (1) CN108874307B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110908600A (zh) * 2019-10-18 2020-03-24 华为技术有限公司 数据访问方法、装置和第一计算设备
CN112214159A (zh) * 2019-07-12 2021-01-12 三星电子株式会社 用于管理键-值固态驱动器(kv ssd)的方法和系统

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106951181A (zh) * 2017-02-21 2017-07-14 深圳大普微电子科技有限公司 一种数据存储系统的控制装置
US10275180B2 (en) * 2017-05-08 2019-04-30 Samsung Electronics Co., Ltd. Ethernet SSD system including storage offload engine (SoE) controller and ethernet switch
TWI636366B (zh) * 2017-11-22 2018-09-21 緯穎科技服務股份有限公司 資料冗餘的處理方法及其相關電腦系統
US20240095196A1 (en) * 2018-03-02 2024-03-21 Samsung Electronics Co., Ltd. Method for supporting erasure code data protection with embedded pcie switch inside fpga+ssd
US10990554B2 (en) 2018-03-02 2021-04-27 Samsung Electronics Co., Ltd. Mechanism to identify FPGA and SSD pairing in a multi-device environment
US10635609B2 (en) 2018-03-02 2020-04-28 Samsung Electronics Co., Ltd. Method for supporting erasure code data protection with embedded PCIE switch inside FPGA+SSD
US11157356B2 (en) * 2018-03-05 2021-10-26 Samsung Electronics Co., Ltd. System and method for supporting data protection across FPGA SSDs
US10795612B2 (en) * 2018-07-31 2020-10-06 EMC IP Holding Company LLC Offload processing using storage device slots
US11366610B2 (en) 2018-12-20 2022-06-21 Marvell Asia Pte Ltd Solid-state drive with initiator mode
US11003539B2 (en) 2019-01-15 2021-05-11 EMC IP Holding Company LLC Offload processing using a storage slot
WO2020183246A2 (en) 2019-03-14 2020-09-17 Marvell Asia Pte, Ltd. Termination of non-volatile memory networking messages at the drive level
EP3939237B1 (en) 2019-03-14 2024-05-15 Marvell Asia Pte, Ltd. Transferring data between solid state drives (ssds) via a connection between the ssds
EP3938880A1 (en) 2019-03-14 2022-01-19 Marvell Asia Pte, Ltd. Ethernet enabled solid state drive (ssd)
KR20210087628A (ko) 2020-01-03 2021-07-13 삼성전자주식회사 네트워크 기반 스토리지 장치의 구동 방법 및 이를 이용한 스토리지 시스템의 구동 방법
US11210002B2 (en) * 2020-01-29 2021-12-28 Samsung Electronics Co., Ltd. Offloaded device-driven erasure coding
US11770271B2 (en) 2020-08-21 2023-09-26 Samsung Electronics Co., Ltd. Data center
US20210294702A1 (en) * 2021-06-04 2021-09-23 Intel Corporation High-availability memory replication in one or more network devices
KR20240001414A (ko) * 2022-06-27 2024-01-03 삼성전자주식회사 복수의 ssd를 포함하는 스토리지 시스템 및 그것의 운용 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130339818A1 (en) * 2012-06-13 2013-12-19 Caringo, Inc. Erasure coding and replication in storage clusters
CA2904659A1 (en) * 2013-03-12 2014-10-09 Forrest Lawrence Pierson Indefinitely expandable high-capacity data switch
KR101533340B1 (ko) * 2014-04-09 2015-07-06 인하대학교 산학협력단 클라우드 스토리지 시스템에서 데이터 접근빈도와 소거 코드를 이용한 데이터 복제 방법
US20170046256A1 (en) * 2015-08-11 2017-02-16 Ocz Storage Solutions, Inc. Pool level garbage collection and wear leveling of solid state devices

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6917987B2 (en) 2001-03-26 2005-07-12 Intel Corporation Methodology and mechanism for remote key validation for NGIO/InfiniBand™ applications
US7200716B1 (en) * 2004-04-30 2007-04-03 Network Appliance, Inc. Method and apparatus to offload operations in a networked storage system
US7840765B2 (en) 2006-10-31 2010-11-23 Hewlett-Packard Development Company, L.P. RDMA copy-on-write
US8880937B2 (en) 2011-07-07 2014-11-04 International Business Machines Corporation Reducing impact of a repair action in a switch fabric
US9565050B1 (en) 2011-12-07 2017-02-07 Cisco Technology, Inc. Fibre channel peer zoning
US20150378640A1 (en) * 2013-06-26 2015-12-31 Cnex Labs, Inc. Nvm express controller for remote access of memory and i/o over ethernet-type networks
US10628353B2 (en) * 2014-03-08 2020-04-21 Diamanti, Inc. Enabling use of non-volatile media-express (NVMe) over a network
US9887008B2 (en) 2014-03-10 2018-02-06 Futurewei Technologies, Inc. DDR4-SSD dual-port DIMM device
US20160094619A1 (en) * 2014-09-26 2016-03-31 Jawad B. Khan Technologies for accelerating compute intensive operations using solid state drives
US20170357610A1 (en) * 2016-06-14 2017-12-14 Kazan Networks Corporation Split nvme ssd implementation using nvme over fabrics protocol
US10387353B2 (en) * 2016-07-26 2019-08-20 Samsung Electronics Co., Ltd. System architecture for supporting active pass-through board for multi-mode NMVE over fabrics devices
US10146527B2 (en) * 2016-10-12 2018-12-04 Samsung Electronics Co., Ltd. Method and apparatus for using BMC as proxy for NVME over fabrics device firmware upgrade
CN108228082B (zh) * 2016-12-21 2021-04-02 伊姆西Ip控股有限责任公司 存储系统和用于存储控制的方法
US10255134B2 (en) * 2017-01-20 2019-04-09 Samsung Electronics Co., Ltd. Control plane method and apparatus for providing erasure code protection across multiple storage devices
US11543967B2 (en) * 2017-02-23 2023-01-03 Samsung Electronics Co., Ltd. Method for controlling BW SLA in NVME-of ethernet SSD storage systems
US10866912B2 (en) * 2017-03-10 2020-12-15 Toshiba Memory Corporation Integrated heterogeneous solid state storage drive
US10691368B2 (en) * 2017-03-31 2020-06-23 Samsung Electronics Co., Ltd. System and method for providing data replication in NVMe-oF ethernet SSD
US10275180B2 (en) * 2017-05-08 2019-04-30 Samsung Electronics Co., Ltd. Ethernet SSD system including storage offload engine (SoE) controller and ethernet switch

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130339818A1 (en) * 2012-06-13 2013-12-19 Caringo, Inc. Erasure coding and replication in storage clusters
CA2904659A1 (en) * 2013-03-12 2014-10-09 Forrest Lawrence Pierson Indefinitely expandable high-capacity data switch
KR101533340B1 (ko) * 2014-04-09 2015-07-06 인하대학교 산학협력단 클라우드 스토리지 시스템에서 데이터 접근빈도와 소거 코드를 이용한 데이터 복제 방법
US20170046256A1 (en) * 2015-08-11 2017-02-16 Ocz Storage Solutions, Inc. Pool level garbage collection and wear leveling of solid state devices

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
王意洁;许方亮;裴晓强;: "分布式存储中的纠删码容错技术研究", 计算机学报 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112214159A (zh) * 2019-07-12 2021-01-12 三星电子株式会社 用于管理键-值固态驱动器(kv ssd)的方法和系统
CN110908600A (zh) * 2019-10-18 2020-03-24 华为技术有限公司 数据访问方法、装置和第一计算设备
CN110908600B (zh) * 2019-10-18 2021-07-20 华为技术有限公司 数据访问方法、装置和第一计算设备

Also Published As

Publication number Publication date
KR102295497B1 (ko) 2021-08-31
KR20180123427A (ko) 2018-11-16
US20180321876A1 (en) 2018-11-08
CN108874307B (zh) 2023-06-30
US10275180B2 (en) 2019-04-30

Similar Documents

Publication Publication Date Title
CN108874307A (zh) 以太网固态驱动系统和提供存储卸载功能的方法
US10698730B2 (en) Neural network processor
JP7001533B2 (ja) NVMe-oF SSDにおける低レイテンシ直接データアクセス方法、及びそのためのシステム
CN111352583B (zh) 具有发起方模式的固态驱动
CN103902486B (zh) 一种远端直接内存访问实现方法、装置及系统
CN106020926B (zh) 一种用于虚拟交换机技术中数据传输的方法及装置
JP2018173949A5 (zh)
US9983813B2 (en) Maintenance of a fabric priority during synchronous copy operations
KR102583255B1 (ko) 복수의 프로토콜을 적응적으로 지원하는 스토리지 장치
CN105549904A (zh) 一种应用于存储系统中的数据迁移方法及存储设备
JP2015518203A (ja) マルチキャストdmaおよび統合されたアドレス空間を有するストレージシステム
CN103180840A (zh) 动态允许和禁止写xfr_rdy
US20150363340A1 (en) Providing multiple synchronous serial console sessions using data buffering
CN103959255A (zh) 跨多个内存口使用选择性复制降低内存访问延迟的系统及方法
WO2020000700A1 (zh) 一种无人机系统中的模块升级方法和无人机系统
WO2017162175A1 (zh) 一种数据传输方法及装置
JP2022038688A (ja) メモリシステムおよび制御方法
US20140244879A1 (en) SAS Latency Based Routing
WO2013081620A1 (en) Server including switch circuitry
CN104123228B (zh) 一种数据存储系统及其使用方法
CN109582495A (zh) 双向复制
CN109117386A (zh) 一种网络远程读写二级存储的系统及方法
US20210382663A1 (en) Systems and methods for virtualizing fabric-attached storage devices
US10614012B2 (en) System and method for controlling the performance of serial attached SCSI (SAS) target devices
CN105573801B (zh) 堆叠系统中实现软件升级的方法、装置及系统

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