CN109861914B - 提供差异化存储服务的方法和以太网固态驱动器 - Google Patents

提供差异化存储服务的方法和以太网固态驱动器 Download PDF

Info

Publication number
CN109861914B
CN109861914B CN201811269464.7A CN201811269464A CN109861914B CN 109861914 B CN109861914 B CN 109861914B CN 201811269464 A CN201811269464 A CN 201811269464A CN 109861914 B CN109861914 B CN 109861914B
Authority
CN
China
Prior art keywords
identifier
state drive
solid state
parameter
packet
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
CN201811269464.7A
Other languages
English (en)
Other versions
CN109861914A (zh
Inventor
瑞姆达斯·P·卡佳瑞
李东起
拉兹 阿贾伊·桑达尔
佛瑞德·沃里
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 CN109861914A publication Critical patent/CN109861914A/zh
Application granted granted Critical
Publication of CN109861914B publication Critical patent/CN109861914B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17331Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]
    • 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/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • 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
    • 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/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/35Switches specially adapted for specific applications
    • H04L49/351Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2212/00Encapsulation of packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/50Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]

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)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

一种利用以太网固态驱动器进行差异化存储服务的系统及方法,所述方法包括:在以太网固态驱动器(eSSD)处通过多协议标签交换(MPLS)网络从远程主机接收输入/输出(I/O)服务请求。所述输入/输出服务请求包括至少一个参数,可使用所述至少一个参数来基于所述参数将所述输入/输出服务请求匹配到标签交换路径(LSP)。可接着根据所述标签交换路径通过所述多协议标签交换网络在所述以太网固态驱动器与所述远程主机之间开启存储业务串流。也提供一种以太网固态驱动器。

Description

提供差异化存储服务的方法和以太网固态驱动器
[相关申请的交叉参考]
本申请主张在2017年11月30日提出申请的美国临时专利申请第62/593,189号的优先权及权利,所述美国临时专利申请的内容全文并入本申请供参考。
技术领域
本公开的一些实施例大体来说涉及一种以太网固态驱动器(eSSD)。
背景技术
跨结构的非易失性存储器快速(non-volatile memory express over fabrics,NVMe-oF)使主机计算机能够通过网络来与固态驱动器(solid state drive,SSD)之间直接执行输入/输出(Input/Output,I/O)操作。使用NVMe-oF固态驱动器能够实现在按照最小延迟增加的情况下进行分解的远程直接附接存储(remote direct attached storage)。与SSD进行通信的常用方法包括远程直接存储器存取(remote direct memory access,RDMA)、基于聚合以太网的远程直接存储器存取(RDMA over Converged Ethernet,RoCE)、互联网广域远程直接存储器存取(Internet Wide-area RDMA,iWARP)及基于传输控制协议的非易失性存储器快速(NVMe-over-Transmission Control Protocol,NVMe-over-TCP)。
现有的存储业务方法缺乏用于区分存储业务与非存储业务的手段。无法区分存储业务与非存储业务使得难以为输入/输出保证服务品质(quality of service,QoS)。此外,交换机及路由器的缓冲有限,且网络拥塞可进一步以不可预测的方式放慢输入/输出。因此期望提供一种改善的网络系统。
以上信息仅是为了增强对本公开实施例的背景的理解,且因此可能含有并非形成现有技术的信息。
发明内容
本公开的一些实施例提供一种用于在以太网固态驱动器(Ethernet SSD,eSSD)系统中提供差异化存储服务的系统及方法。在各种实施例中,一种eSSD系统被配置成通过多协议标签交换(multiprotocol label switching,MPLS)网络从远程主机接收输入/输出(I/O)服务请求。在各种实施例中,服务请求可包括至少一个参数。在各种实施例中,所述输入/输出服务请求匹配到基于所述至少一个参数的标签交换路径(label switched path,LSP)以及开启通过所述多协议标签交换网络根据所述标签交换路径将所述远程主机连接到所述eSSD的存储业务串流。
在各种实施例中,利用所述至少一个参数及标签查找表(LLT)来进行将所述输入/输出服务请求匹配到标签交换路径。
在各种实施例中,所述LLT存储在所述eSSD上。
在各种实施例中,所述存储业务串流包括至少一个MPLS包。
在各种实施例中,所述系统还被配置成由所述eSSD将第一数据包包封在MPLS包中。在各种实施例中,所述MPLS包包括具有与所述LSP相关联的标签堆的MPLS报头。
在各种实施例中,所述第一数据包是以下中的一者:远程直接存储器存取包、基于聚合以太网的RDMA包、互联网广域RDMA包或基于TCP的NVMe包。
在各种实施例中,所述至少一个参数是至少一个存储参数。
在各种实施例中,所述至少一个存储参数是以下中的至少一者:队列对ID(QueuePair ID,QPID)、提交队列ID(Submission Queue ID,SQID)、完成队列ID(CompletionQueue ID,CQID)、NVMe控制器ID(NVMe Controller ID,CNTID)、名称空间ID(NamespaceID,NSID)、逻辑块地址(logic block address,LBA)范围<开始LBA>到<结束LBA>、NVMe串流ID、主机识别符、NVMe当限名称(NVMe Qualified Name,NQN)识别符、基于时间的ID、基于日期的ID及非易失性存储器(non-volatile memory,NVM)组ID。
在各种实施例中,所述至少一个参数包括至少一个网络参数。
本公开的一些实施例提供一种以太网固态驱动器,包括:以太网连接;存储器;以及,处理器,被配置成执行所述存储器中的指令,所述指令在由所述处理器执行时使所述处理器:利用所述以太网连接通过多协议标签交换网络从远程主机接收输入/输出服务请求,其中所述输入/输出服务请求包括至少一个参数;由所述处理器基于所述至少一个参数将所述输入/输出服务请求匹配到标签交换路径;以及,利用所述以太网连接开启存储业务串流,所述存储业务串流通过所述多协议标签交换网络根据所述标签交换路径将所述远程主机连接到所述以太网固态驱动器。
本公开的一些实施例提供一种提供差异化存储服务的方法,包括:在以太网固态驱动器处通过多协议标签交换网络从远程主机接收输入/输出服务请求,其中所述输入/输出服务请求包括至少一个参数;由所述以太网固态驱动器基于所述至少一个参数将所述输入/输出服务请求匹配到标签交换路径,其中所述输入/输出服务请求是利用标签查找表并利用所述至少一个参数被匹配到标签交换路径;由所述以太网固态驱动器将第一数据包包封在多协议标签交换包中,所述多协议标签交换包还包括具有与所述标签交换路径相关联的标签堆的多协议标签交换报头;以及,由所述以太网固态驱动器开启存储业务串流,所述存储业务串流通过所述多协议标签交换网络根据所述标签交换路径将所述多协议标签交换包从所述以太网固态驱动器发送到所述远程主机。
附图说明
结合附图阅读以下说明可更详细地理解一些实施例,在附图中:
图1绘示示例性的支持MPLS的NVMe-oF以太网SSD系统。
图2绘示根据各种实施例的示例性MPLS包。
图3绘示根据各种实施例的使用MPLS进行差异化存储服务的示例性方法。
图4绘示根据各种实施例的其中起始主机是MPLS网络域的一部分的示例性eSSDMPLS网络。
图5绘示根据各种实施例的其中起始主机位于MPLS网络域外部的示例性eSSDMPLS网络。
[符号的说明]
100:以太网SSD机架;
110:以太网交换机;
120:基板管理控制器(BMC);
130:外围组件互连快速交换机(PCIe交换机);
140、141、142、430、530:以太网固态驱动器(eSSD);
150:网络/MPLS网络;
160:应用;
170:操作系统/文件系统;
180:NVMe-oF驱动器;
200:MPLS包;
210:标签堆;
211:存活时间字段;
212:堆底字段;
213:业务类别字段(TC字段);
214、215、216:标签;
220:传统的数据包;
400:远程主机;
410、510:标签边缘路由器(LER);
420、520:MPLS网络;
500:远程主机;
540:非MPLS网络;
J:第一存储业务串流/存储业务串流;
K、N:标签交换路径(LSP);
M:第二存储业务串流/存储业务串流;
S300、S310、S320、S330:步骤。
具体实施方式
通过参照对实施例及附图的以下详细说明,可更容易地理解本发明概念的特征及其实现方法。在下文中,将参照附图更详细地阐述实施例,其中在所有附图中相同的参考编号指代相同的元件。然而,本发明可被实施为各种不同形式,而不应被视为仅限于本文所示出的实施例。确切来说,提供这些实施例作为实例是为了使本公开将透彻及完整,并将向所属领域中的技术人员充分传达本发明的各个方面及特征。因此,可不再阐述对于所属领域中的一般技术人员完整地理解本发明的各个方面及特征而言并非必需的工艺、元件及技术。除非另有说明,否则在所有附图及书面说明通篇中相同的参考编号表示相同的元件,且因此,将不再对其予以重复说明。在图式中,为清晰起见,可夸大各个元件、各个层及各个区的相对大小。
在以下说明中,出于解释目的,阐述各种具体细节来提供对各种实施例的透彻理解。然而,显而易见的是,可不使用这些具体细节或者可使用一种或多种等效配置来实践各种实施例。在其他实例中,以方块图形式示出众所周知的结构及装置以避免不必要地混淆各种实施例。
应理解,当称一元件、层、区或组件位于另一元件、层、区或组件“位…上(on)”、“连接到(connected to)”或“耦合到(coupled to)”另一元件、层、区或组件时,所述元件、层、区或组件可直接位于所述另一元件、层、区或组件上、直接连接到或直接耦合到所述另一元件、层、区或组件,抑或可存在一个或多个中间元件、层、区或组件。然而,“直接连接/直接耦合(directly connected/directly coupled)”则是指一个组件与另一个组件直接连接或直接耦合,而不具有中间组件。同时,例如“位于...之间(between)”、“直接位于...之间(immediately between)”或者“相邻于...(adjacent to)”及“紧邻于...(directlyadjacent to)”等阐述各个组件之间的关系的其他表达可类似地加以解释。另外,还应理解,当称一元件或层“位于”两个元件或层“之间(between)”时,所述元件或层可为所述两个元件或层之间的唯一元件或层,抑或也可存在一个或多个中间元件或层。
本文所用术语仅是出于阐述特定实施例的目的而并非旨在限制本发明。除非上下文清楚地另外指明,否则本文所用单数形式“一(a及an)”旨在也包括复数形式。还应理解,当在本说明书中使用用语“包括(comprises、comprising)”、“具有(have、having)”及“包含(includes、including)”时,是指明所陈述特征、整数、步骤、操作、元件和/或组件的存在,但不排除一个或多个其他特征、整数、步骤、操作、元件、组件和/或其群组的存在或添加。本文所用用语“和/或”包括相关列出项中的一个或多个项的任意及所有组合。
本文所用用语“实质上(substantially)”、“大约(about)”、“近似地(approximately)”及类似用语用作近似用语、而并非作为程度用语,并且旨在考虑到所属领域中的一般技术人员将知的测量值或计算值的固有偏差。本文所述“大约”或“近似地”包括所阐述值且意指处于所属领域中的一般技术人员所确定的特定值的偏差的可接受范围内,此考虑到所说的测量以及与特定品质的测量相关联的误差和问题(即,测量系统的限制)。举例来说,“大约”可意指处于一个或多个标准偏差范围内,或处于所述规定值的±30%、20%、10%、5%内。另外,在阐述本发明的实施例时使用“可(may)”是指“本发明的一个或多个实施例”。本文所用用语“使用(use)”、“正使用(using)”及“被使用(used)”可被视为分别与用语“利用(utilize)”、“正利用(utilizing)”及“被利用(utilized)”同义。另外,用语“示例性(exemplary)”旨在指实例或例示。
当某一实施例可被以不同方式实施时,特定工艺次序可与所阐述的次序不同地执行。举例来说,两个连续阐述的工艺可实质上同时执行或以与所阐述的次序相反的次序执行。
在本文中参照剖视图阐述各种实施例,所述剖视图为实施例和/或中间结构的示意性例示。因此,预期会因例如制造技术和/或容差而导致相对于例示形状的变化。另外,本文所公开的具体结构说明或功能说明仅是例示性的,目的在于阐述根据本公开概念的实施例。因此,本文所公开的实施例不应被视为仅限于各个区的特定例示形状,而是应包含由例如制造引起的形状偏差。举例来说,被例示为矩形的植入区通常应具有圆形特征或曲线特征和/或在其边缘存在植入浓度的梯度而非从植入区到非植入区为二元变化。同样地,通过植入而形成的掩埋区可在所述掩埋区与在进行植入时所经过的表面之间的区中引起一些植入。因此,图式中所例示的区为示意性的且其形状并非旨在例示装置的区的实际形状且并非旨在进行限制。
根据本文所述本发明的实施例的电子装置或电装置和/或任何其他相关装置或组件可利用任何适合的硬件、固件(例如,应用专用集成电路(application-specificintegrated circuit))、软件、或软件、固件、及硬件的组合来实施。举例来说,可将这些装置的各种组件形成在一个集成电路(integrated circuit,IC)芯片上或单独的集成电路芯片上。此外,可将这些装置的各种组件实施在柔性印刷电路膜(flexible printed circuitfilm)、带载封装(tape carrier package,TCP)、印刷电路板(printed circuit board,PCB)上、或形成在一个衬底上。此外,这些装置的各种组件可为在一个或多个计算装置中由一个或多个处理器运行、执行计算机程序指令并与用于执行本文所述各种功能性的其他系统组件进行交互的过程或线程(thread)。计算机程序指令存储在可在使用例如(举例来说)随机存取存储器(random access memory,RAM)等标准存储器装置的计算装置中实施的存储器中。计算机程序指令也可存储在例如(举例来说)紧凑型光盘只读存储器(compactdisc read only memory,CD-ROM)、闪存驱动器(flash drive)或类似元件等其他非暂时性计算机可读媒体中。另外,所属领域中的技术人员应知,在不背离本发明示例性实施例的精神及范围的条件下,可将各种计算装置的功能性组合或整合成单一的计算装置,或者可使一特定计算装置的功能性跨越一个或多个其他计算装置分布。
除非另外定义,否则本文所用所有用语(包括技术及科学用语)的含义均与本发明所属领域中的普通技术人员所通常理解的含义相同。还应理解,用语(例如在常用词典中所定义的用语)应被解释为具有与其在相关技术的上下文和/或本说明书中的含义一致的含义,且除非在本文中明确定义,否则不应将其解释为具有理想化或过于正式的意义。
本发明的实施例包括一种利用多协议标签交换(Multiprotocol LabelSwitching,MPLS)在NVMe-oF以太网SSD中进行差异化存储服务的系统及方法。MPLS能够使用用于识别各个节点之间的路径的标签来代替与路由表相结合的传统的长的网络地址。在各种实施例中,支持MPLS的eSSD可被配置成能够用作MPLS标签边缘路由器(label edgerouter,LER)。因此,eSSD能够将传统的eSSD输入/输出包包封到包括外出业务(egresstraffic)的标签堆的MPLS包中并从进入业务(ingress traffic)移除MPLS包。可利用存储参数及网络参数来进行往来于eSSD之间的业务分类且存储参数及网络参数可用于确定用于进行路由的MPLS标签。因此,可根据与存储参数及网络参数相关联的服务品质来选择MPLS标签。
图1绘示示例性的支持MPLS的NVMe-oF以太网SSD系统。
参照图1,在各种实施例中,以太网SSD机架100可包括以太网交换机110、基板管理控制器(baseboard management controller,BMC)120、外围组件互连快速(peripheralcomponent interconnect express,PCIe)交换机130及多个eSSD 140、141、142。eSSD 140至142通过以太网交换机110连接到网络150。eSSD 140至142还通过PCIe交换机130连接到BMC 120。在各种实施例中,BMC 120可被配置成用于对eSSD 140至142执行管理任务。举例来说,BMC 120可被配置成在每一个eSSD 140至142的标签查找表(Label Look-up table,LLT)中维持MPLS标签映射。在远程主机上运行的应用160可通过操作系统(operatingsystem,OS)/文件系统170及NVMe-oF驱动器180来利用eSSD 140至142进行输入/输出。
举例来说,在各种实施例中,应用160可具有服务品质(QoS)要求且网络150包括MPLS网络。基于QoS要求,NVMe-oF驱动器180产生MPLS包,MPLS包包封有输入/输出命令且包括用于根据应用160的QoS要求来对输入/输出进行路由的标签/标签堆。MPLS输入/输出命令是在eSSD 140至142处接收的,eSSD 140至142可作为MPLS标签边缘路由器(LER)运行并从MPLS包移除输入/输出命令且执行指定的输入/输出功能。eSSD可使用MPLS包来执行作为命令执行的一部分所需要的与主机之间的任何数据传输。eSSD 140至142将返回命令完成(return command completion)包封到MPLS包中,所述MPLS包具有描述根据QoS要求所选择的返回输入/输出路径的标签。
图2绘示根据各种实施例的示例性MPLS包。图3绘示根据各种实施例的使用MPLS进行差异化存储服务的示例性方法。
参照图2,在各种实施例中,eSSD 140至142被配置成用作用于MPLS网络的LER。作为LER,eSSD 140至142被配置成通过以下操作来将数据包包封到MPLS包200中:将包括标签栈210(其包括用于输入/输出串流的标签交换路径(LSP))的MPLS报头以及其他MPLS数据字段加到传统的数据包,所述传统的数据包包括用于遍历非MPLS网络(例如,传统网络)的合适的报头信息以及任何数据净荷(data payload)。在各种实施例中,eSSD 140至142可通过MPLS网络从远程主机接收输入/输出服务请求(S300)。在各种实施例中,输入/输出服务请求可包括用于将所请求的输入/输出服务请求从其他请求区分开的存储参数及其他参数。举例来说,网络可基于网络状况以及对于输入/输出的QoS要求将不同的存储业务串流区分开(例如,以不同方式进行对待)。举例来说,较短的(例如,较快的路径)可用于具有高速度QoS要求的输入/输出,而较长的(例如,较慢的路径)可用于具有低速度QoS要求的输入/输出。在接收到输入/输出服务请求之后,eSSD 140至142可移除MPLS标签堆,并基于所提供的参数将输入/输出服务请求匹配到LSP(S310)。在各种实施例中,对输入/输出服务请求进行匹配可包括利用标签查找表(LLT)对请求进行匹配。举例来说,可使用各种存储参数将存储业务串流映射到LSP。存储参数可包括:队列对识别符(ID)(QPID)、提交队列ID(SQID)、完成队列ID(CQID)、NVMe控制器ID(CNTID)、名称空间ID(NSID)、逻辑块地址范围<开始LBA>到<结束LBA>、NVMe串流ID、主机识别符、NVMe当限名称(NQN)识别符、基于时间的ID、基于日期的ID、NVM组ID、或任何其他存储参数。另外,在一些实施例中,可使用例如网络报头字段等非存储参数来将存储业务串流映射到LSP。存储管理员可对如何将存储参数中的一个或多个存储参数映射到每一个LSP进行编程。举例来说,存储管理员可利用BMC 120对LLT进行编程。BMC可接着通过PCIe交换机130及PCIe总线将LLT分配到所连接的eSSD 140到142中的每一者。每一个eSSD 140至142可接着利用LLT来为输入/输出请求指派LSP。在各种实施例中,每一个eSSD 140至142可被指派相同的LLT,而在其他实施例中,可向一个或多个eSSD 140至142指派独有的LLT。一旦已将输入/输出服务请求匹配到LSP,便可起始存储业务串流(S320)。由eSSD 140至142将传出包包封到包括用于定义所选择LSP的标签堆的MPLS包中(S330)。
在各种实施例中,携带数据净荷且还包括任何对于对传统网络中的包进行路由而言所需的信息的传统数据包220被作为净荷包封在MPLS包200中。举例来说,在各种实施例中,传统包可包括RDMA包、RoCE包、RoCE v2包、iWARP包或基于TCP的NVMe包。传统的数据包220是通过加上MPLS报头进行包封的。
在各种实施例中,MPLS报头包括标签堆210、存活时间(time to live,TTL)字段211、堆底(S)字段212、业务类别(traffic class,TC)字段213及一个或多个标签214、215、216。在各种实施例中,TC字段213可用于QoS用途。如上所述,每一个标签214至216用于识别MPLS网络150中各个节点之间的路径中的分支(leg)以建立LSP。所述标签如上所述可由LLT提供。
图4绘示根据各种实施例的其中起始主机是MPLS网络域的一部分的示例性eSSDMPLS网络。
参照图4,在各种实施例中,远程主机400是MPLS网络420的一部分。在这些实施例中,远程主机400被配置成连接到LER 410,LER 410针对传出业务对来自主机的输入/输出进行包封并针对传入输入输出移除MPLS包信息。MPLS网络420包括可用于形成多条标签交换路径(LSP)的用于对数据进行路由的多个节点。被配置成用于MPLS通信的eSSD 430还连接到MPLS网络420且可从远程主机400接收输入/输出请求。在各种实施例中,远程主机400可包括多个存储业务串流。举例来说,图4绘示第一存储业务串流J及第二存储业务串流M。在各种实施例中,存储业务串流中的每一者可根据LSP而经过MPLS网络420行进。在所绘示的实施例中,已向第一存储业务串流J指派了LSP K且已向第二存储业务串流M指派了LSPN。
图5绘示根据各种实施例的其中起始主机位于MPLS网络域外部的示例性eSSDMPLS网络。
参照图5,在各种实施例中,远程主机500可不直接连接到MPLS网络520。在这些实施例中,远程主机500可利用传统包格式通过传统的非MPLS网络540将数据发送到与eSSD530连接的MPLS网络520。每一存储业务数据串流可经过非MPLS网络540在不受控制的共享网络路径上行进直到数据在LER 510处到达MPLS网络520为止。LER 510将传入数据包封到MPLS包中并从传出数据(例如,行进到非MPLS网络540之外的数据)剥离MPLS包。举例来说,存储业务串流J可通过经过MPLS网络520的LSP K以及经过穿过非MPLS网络540的不受控制的共享网络路径将远程主机500连接到eSSD 530。相似地,存储业务串流M可通过经过MPLS网络520的LSP N以及经过穿过非MPLS网络540的不受控制的共享网络路径将远程主机500连接到eSSD 530。在此实例中,存储业务串流能够部分地彼此区分开及与其他网络业务部分地区分开。
因此,本公开的上述实施例提供一种利用MPLS在NVMe-oF以太网SSD中进行差异化存储服务的系统及方法。当利用MPLS网络时,所述系统能够根据各种存储参数及其他参数来指派LSP。每一LSP可实现不同水平的服务并提供一种对经过网络的业务进行区分的方式。
以上是对示例性实施例的例示,而不应被视为对示例性实施例的限制。尽管已阐述了几个示例性实施例,但是所属领域中的技术人员将容易地理解,在不实质上背离示例性实施例的新颖教示及优点的条件下,在示例性实施例中可进行许多修改。因此,所有这些修改均旨在包含在由权利要求书所界定的示例性实施例的范围内。在权利要求书中,手段附加功能条款旨在涵盖执行所述功能的本文所述结构,且不仅涵盖结构等效形式且还涵盖等效结构。因此,应理解,以上是对示例性实施例的例示,而不应被视为仅限于所公开的具体实施例,且对所公开的示例性实施例的修改形式以及其他示例性实施例也旨在包含于随附权利要求书的范围内。本发明概念是由以上权利要求书界定,其中所述权利要求书的等效形式包含在本文中。

Claims (20)

1.一种提供差异化存储服务的方法,包括:
在以太网固态驱动器处通过多协议标签交换网络从远程主机接收输入/输出服务请求,其中所述输入/输出服务请求包括至少一个参数;
由所述以太网固态驱动器基于所述至少一个参数将多个标签交换路径中的一者指派到所述输入/输出服务请求,其中所述多个标签交换路径通过所述多协议标签交换网络所包括的多个节点的路由来形成;以及
由所述以太网固态驱动器开启存储业务串流,所述存储业务串流通过所述多协议标签交换网络根据所指派的标签交换路径将所述远程主机连接到所述以太网固态驱动器。
2.根据权利要求1所述的方法,其中由所述以太网固态驱动器基于所述至少一个参数将所述多个标签交换路径中的一者指派到所述输入/输出服务请求还包括:利用标签查找表并利用所述至少一个参数将所述输入/输出服务请求指派到标签交换路径。
3.根据权利要求2所述的方法,其中所述标签查找表存储在所述以太网固态驱动器上。
4.根据权利要求1所述的方法,其中所述存储业务串流包括至少一个多协议标签交换包。
5.根据权利要求4所述的方法,还包括:
由所述以太网固态驱动器将第一数据包包封在多协议标签交换包中,所述多协议标签交换包还包括具有与所述标签交换路径相关联的标签堆的多协议标签交换报头。
6.根据权利要求5所述的方法,其中所述第一数据包包括以下中的一者:远程直接存储器存取包、基于聚合以太网的远程直接存储器存取包、互联网广域远程直接存储器存取包或基于传输控制协议的非易失性存储器快速包。
7.根据权利要求1所述的方法,其中所述至少一个参数包括至少一个存储参数。
8.根据权利要求7所述的方法,其中所述至少一个存储参数包括以下中的至少一者:队列对识别符、提交队列识别符、完成队列识别符、非易失性存储器快速控制器识别符、名称空间识别符、自开始逻辑块地址到结束逻辑块地址的逻辑块地址范围、非易失性存储器快速串流识别符、主机识别符、非易失性存储器快速当限名称识别符、基于时间的识别符、基于日期的识别符及非易失性存储器组识别符。
9.根据权利要求1所述的方法,其中所述至少一个参数包括至少一个网络参数。
10.一种以太网固态驱动器,包括:
以太网连接;
存储器;以及
处理器,被配置成执行所述存储器中的指令,所述指令在由所述处理器执行时使所述处理器:
利用所述以太网连接通过多协议标签交换网络从远程主机接收输入/输出服务请求,其中所述输入/输出服务请求包括至少一个参数;
由所述处理器基于所述至少一个参数将多个标签交换路径中的一者指派到所述输入/输出服务请求,其中所述多个标签交换路径通过所述多协议标签交换网络所包括的多个节点的路由来形成;以及
利用所述以太网连接开启存储业务串流,所述存储业务串流通过所述多协议标签交换网络根据所指派的标签交换路径将所述远程主机连接到所述以太网固态驱动器。
11.根据权利要求10所述的以太网固态驱动器,其中所述输入/输出服务请求是利用存储在所述存储器上的标签查找表并利用所述至少一个参数被指派到标签交换路径。
12.根据权利要求10所述的以太网固态驱动器,其中所述存储业务串流包括至少一个多协议标签交换包。
13.根据权利要求12所述的以太网固态驱动器,其中所述指令还使所述处理器:
将第一数据包包封在多协议标签交换包中,所述多协议标签交换包还包括具有与所述标签交换路径相关联的标签堆的多协议标签交换报头。
14.根据权利要求13所述的以太网固态驱动器,其中所述第一数据包包括以下中的一者:远程直接存储器存取包、基于聚合以太网的远程直接存储器存取包、互联网广域远程直接存储器存取包或基于传输控制协议的非易失性存储器快速包。
15.根据权利要求10所述的以太网固态驱动器,其中所述至少一个参数包括至少一个存储参数。
16.根据权利要求15所述的以太网固态驱动器,其中所述至少一个存储参数包括以下中的至少一者:队列对识别符、提交队列识别符、完成队列识别符、非易失性存储器快速控制器识别符、名称空间识别符、自开始逻辑块地址到结束逻辑块地址的逻辑块地址范围、非易失性存储器快速串流识别符、主机识别符、非易失性存储器快速当限名称识别符、基于时间的识别符、基于日期的识别符及非易失性存储器组识别符。
17.根据权利要求10所述的以太网固态驱动器,其中所述至少一个参数包括至少一个网络参数。
18.一种提供差异化存储服务的方法,包括:
在以太网固态驱动器处通过多协议标签交换网络从远程主机接收输入/输出服务请求,其中所述输入/输出服务请求包括至少一个参数;
由所述以太网固态驱动器基于所述至少一个参数将所述输入/输出服务请求匹配到标签交换路径,其中所述输入/输出服务请求是利用标签查找表并利用所述至少一个参数被匹配到标签交换路径;
由所述以太网固态驱动器将第一数据包包封在多协议标签交换包中,所述多协议标签交换包还包括具有与所述标签交换路径相关联的标签堆的多协议标签交换报头;以及
由所述以太网固态驱动器开启存储业务串流,所述存储业务串流通过所述多协议标签交换网络根据所述标签交换路径将所述多协议标签交换包从所述以太网固态驱动器发送到所述远程主机。
19.根据权利要求18所述的方法,其中所述至少一个参数包括以下中的至少一者:队列对识别符、提交队列识别符、完成队列识别符、非易失性存储器快速控制器识别符、名称空间识别符、自开始逻辑块地址到结束逻辑块地址的逻辑块地址范围、非易失性存储器快速串流识别符、主机识别符、非易失性存储器快速当限名称识别符、基于时间的识别符、基于日期的识别符及非易失性存储器组识别符。
20.根据权利要求18所述的方法,其中所述第一数据包包括以下中的一者:远程直接存储器存取包、基于聚合以太网的远程直接存储器存取包、互联网广域远程直接存储器存取包或基于传输控制协议的非易失性存储器快速包。
CN201811269464.7A 2017-11-30 2018-10-29 提供差异化存储服务的方法和以太网固态驱动器 Active CN109861914B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201762593189P 2017-11-30 2017-11-30
US62/593,189 2017-11-30
US15/878,388 2018-01-23
US15/878,388 US10884975B2 (en) 2017-11-30 2018-01-23 Differentiated storage services in ethernet SSD

Publications (2)

Publication Number Publication Date
CN109861914A CN109861914A (zh) 2019-06-07
CN109861914B true CN109861914B (zh) 2022-07-12

Family

ID=66633229

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811269464.7A Active CN109861914B (zh) 2017-11-30 2018-10-29 提供差异化存储服务的方法和以太网固态驱动器

Country Status (5)

Country Link
US (3) US10884975B2 (zh)
JP (1) JP2019102083A (zh)
KR (1) KR102363521B1 (zh)
CN (1) CN109861914B (zh)
TW (1) TWI750405B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11513984B2 (en) * 2019-02-04 2022-11-29 American Megatrends International, Llc Common server san core solution to enable software defined storage
US11770271B2 (en) 2020-08-21 2023-09-26 Samsung Electronics Co., Ltd. Data center

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105556930A (zh) * 2013-06-26 2016-05-04 科内克斯实验室公司 针对远程存储器访问的nvm express控制器
US9467511B2 (en) * 2012-01-17 2016-10-11 Intel Corporation Techniques for use of vendor defined messages to execute a command to access a storage device
CN106688217A (zh) * 2014-03-08 2017-05-17 狄亚曼提公司 用于融合联网和存储的方法和系统
US9792056B1 (en) * 2014-03-31 2017-10-17 EMC IP Holding Company LLC Managing system drive integrity in data storage systems

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6205488B1 (en) 1998-11-13 2001-03-20 Nortel Networks Limited Internet protocol virtual private network realization using multi-protocol label switching tunnels
US7599360B2 (en) 2001-12-26 2009-10-06 Cisco Technology, Inc. Methods and apparatus for encapsulating a frame for transmission in a storage area network
JP2003241903A (ja) 2002-02-14 2003-08-29 Hitachi Ltd 記憶制御装置、ストレージシステム、及びその制御方法
JP4319925B2 (ja) * 2004-03-02 2009-08-26 株式会社日立製作所 ストレージネットワークシステムの制御方法及びストレージネットワークシステム
JP2005266933A (ja) 2004-03-16 2005-09-29 Fujitsu Ltd ストレージ管理システム及びストレージ管理方法
US7177921B2 (en) * 2004-03-18 2007-02-13 Hitachi, Ltd. Method and apparatus for storage network management
US7496661B1 (en) * 2004-03-29 2009-02-24 Packeteer, Inc. Adaptive, application-aware selection of differentiated network services
US7535917B1 (en) 2005-02-22 2009-05-19 Netapp, Inc. Multi-protocol network adapter
JP4900784B2 (ja) * 2006-04-13 2012-03-21 株式会社日立製作所 ストレージシステム及びストレージシステムのデータ移行方法
JP2010123084A (ja) 2008-11-21 2010-06-03 Hitachi Ltd ストレージ管理装置及びファイル削除制御方法
US8279861B2 (en) 2009-12-08 2012-10-02 International Business Machines Corporation Real-time VoIP communications using n-Way selective language processing
JPWO2012133060A1 (ja) 2011-03-29 2014-07-28 日本電気株式会社 ネットワークシステム、及びvlanタグ情報取得方法
US9059912B2 (en) * 2012-02-27 2015-06-16 Verizon Patent And Licensing Inc. Traffic policing for MPLS-based network
US20130290361A1 (en) 2012-04-30 2013-10-31 Eric A. Anderson Multi-geography cloud storage
US9419892B2 (en) * 2013-09-30 2016-08-16 Juniper Networks, Inc. Methods and apparatus for implementing connectivity between edge devices via a switch fabric
US9210075B2 (en) * 2013-10-08 2015-12-08 Ciena Corporation Method and apparatus for managing end-to-end consistency of bi-directional MPLS-TP tunnels via in-band communication channel (G-ACH) protocol
US9450864B2 (en) 2013-10-11 2016-09-20 Futurewei Technologies, Inc. Using PCE as SDN controller
EP2922252B1 (en) * 2014-03-21 2017-09-13 Juniper Networks, Inc. Selectable service node resources
US9565269B2 (en) * 2014-11-04 2017-02-07 Pavilion Data Systems, Inc. Non-volatile memory express over ethernet
US20160259754A1 (en) * 2015-03-02 2016-09-08 Samsung Electronics Co., Ltd. Hard disk drive form factor solid state drive multi-card adapter
US9588901B2 (en) 2015-03-27 2017-03-07 Intel Corporation Caching and tiering for cloud storage
US10114778B2 (en) * 2015-05-08 2018-10-30 Samsung Electronics Co., Ltd. Multi-protocol IO infrastructure for a flexible storage platform
US10250699B2 (en) * 2015-05-12 2019-04-02 Equinix, Inc. Centralized network control for a cloud-based services exchange
JPWO2016194089A1 (ja) * 2015-05-29 2017-06-15 株式会社日立製作所 通信ネットワーク、通信ネットワークの管理方法および管理システム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9467511B2 (en) * 2012-01-17 2016-10-11 Intel Corporation Techniques for use of vendor defined messages to execute a command to access a storage device
CN105556930A (zh) * 2013-06-26 2016-05-04 科内克斯实验室公司 针对远程存储器访问的nvm express控制器
CN106688217A (zh) * 2014-03-08 2017-05-17 狄亚曼提公司 用于融合联网和存储的方法和系统
US9792056B1 (en) * 2014-03-31 2017-10-17 EMC IP Holding Company LLC Managing system drive integrity in data storage systems

Also Published As

Publication number Publication date
CN109861914A (zh) 2019-06-07
US11544212B2 (en) 2023-01-03
US20210117369A1 (en) 2021-04-22
JP2019102083A (ja) 2019-06-24
KR102363521B1 (ko) 2022-02-17
US10884975B2 (en) 2021-01-05
US20190163665A1 (en) 2019-05-30
TWI750405B (zh) 2021-12-21
US12001379B2 (en) 2024-06-04
US20230144432A1 (en) 2023-05-11
KR20190064399A (ko) 2019-06-10
TW201926971A (zh) 2019-07-01

Similar Documents

Publication Publication Date Title
EP3854038B1 (en) Segment routing with fast reroute for container networking
US12001379B2 (en) Differentiated storage services in ethernet SSD
US11221972B1 (en) Methods and systems for increasing fairness for small vs large NVMe IO commands
US8644139B2 (en) Priority based flow control within a virtual distributed bridge environment
EP3608780A1 (en) Extending berkeley packet filter semantics for hardware offloads
US8982703B2 (en) Routing support for lossless data traffic
EP4298776A1 (en) Service mesh offload to network devices
US10333853B1 (en) Unified quality of service (QoS) for label switching traffic
US10027594B1 (en) Congestion control for label switching traffic
WO2021017930A1 (zh) 报文转发
US11902184B2 (en) Methods and systems for providing a virtualized NVMe over fabric service
WO2022132278A1 (en) Network interface device with flow control capability
US11995017B2 (en) Multi-plane, multi-protocol memory switch fabric with configurable transport
US9509613B1 (en) Mechanisms for deadlock avoidance support in network fabrics
US10715437B2 (en) Deadline driven packet prioritization for IP networks
US11740920B2 (en) Methods and systems for migrating virtual functions in association with virtual machines
US9258254B2 (en) Virtual router and switch
US9055005B2 (en) Virtual-port network switch fabric
CN114173373A (zh) 用于通过网络切片引导业务的装置、系统和方法
WO2022042396A1 (zh) 数据传输方法和系统、芯片
US20240015108A1 (en) Method and system for efficient input/output transfer in network devices
US20240070111A1 (en) Reconfigurable dataflow unit with streaming write functionality
US20240073129A1 (en) Peer-to-peer communication between reconfigurable dataflow units
US20240070106A1 (en) Reconfigurable dataflow unit having remote fifo management functionality
US20240073136A1 (en) Reconfigurable dataflow unit with remote read/write functionality

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