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

文档序号:17861461发布日期:2019-06-11 22:53阅读:111来源:国知局
本申请主张在2017年11月30日提出申请的美国临时专利申请第62/593,189号的优先权及权利,所述美国临时专利申请的内容全文并入本申请供参考。本公开的一些实施例大体来说涉及一种以太网固态驱动器(essd)。
背景技术
::跨结构的非易失性存储器快速(non-volatilememoryexpressoverfabrics,nvme-of)使主机计算机能够通过网络来与固态驱动器(solidstatedrive,ssd)之间直接执行输入/输出(input/output,i/o)操作。使用nvme-of固态驱动器能够实现在按照最小延迟增加的情况下进行分解的远程直接附接存储(remotedirectattachedstorage)。与ssd进行通信的常用方法包括远程直接存储器存取(remotedirectmemoryaccess,rdma)、基于聚合以太网的远程直接存储器存取(rdmaoverconvergedethernet,roce)、互联网广域远程直接存储器存取(internetwide-areardma,iwarp)及基于传输控制协议的非易失性存储器快速(nvme-over-transmissioncontrolprotocol,nvme-over-tcp)。现有的存储业务方法缺乏用于区分存储业务与非存储业务的手段。无法区分存储业务与非存储业务使得难以为输入/输出保证服务品质(qualityofservice,qos)。此外,交换机及路由器的缓冲有限,且网络拥塞可进一步以不可预测的方式放慢输入/输出。因此期望提供一种改善的网络系统。以上信息仅是为了增强对本公开实施例的背景的理解,且因此可能含有并非形成现有技术的信息。技术实现要素:本公开的一些实施例提供一种用于在以太网固态驱动器(ethernetssd,essd)系统中提供差异化存储服务的系统及方法。在各种实施例中,一种essd系统被配置成通过多协议标签交换(multiprotocollabelswitching,mpls)网络从远程主机接收输入/输出(i/o)服务请求。在各种实施例中,服务请求可包括至少一个参数。在各种实施例中,所述输入/输出服务请求匹配到基于所述至少一个参数的标签交换路径(labelswitchedpath,lsp)以及开启通过所述多协议标签交换网络根据所述标签交换路径将所述远程主机连接到所述essd的存储业务串流。在各种实施例中,利用所述至少一个参数及标签查找表(llt)来进行将所述输入/输出服务请求匹配到标签交换路径。在各种实施例中,所述llt存储在所述essd上。在各种实施例中,所述存储业务串流包括至少一个mpls包。在各种实施例中,所述系统还被配置成由所述essd将第一数据包包封在mpls包中。在各种实施例中,所述mpls包包括具有与所述lsp相关联的标签堆的mpls报头。在各种实施例中,所述第一数据包是以下中的一者:远程直接存储器存取包、基于聚合以太网的rdma包、互联网广域rdma包或基于tcp的nvme包。在各种实施例中,所述至少一个参数是至少一个存储参数。在各种实施例中,所述至少一个存储参数是以下中的至少一者:队列对id(queuepairid,qpid)、提交队列id(submissionqueueid,sqid)、完成队列id(completionqueueid,cqid)、nvme控制器id(nvmecontrollerid,cntid)、名称空间id(namespaceid,nsid)、逻辑块地址(logicblockaddress,lba)范围<开始lba>到<结束lba>、nvme串流id、主机识别符、nvme当限名称(nvmequalifiedname,nqn)识别符、基于时间的id、基于日期的id及非易失性存储器(non-volatilememory,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)”、“连接到(connectedto)”或“耦合到(coupledto)”另一元件、层、区或组件时,所述元件、层、区或组件可直接位于所述另一元件、层、区或组件上、直接连接到或直接耦合到所述另一元件、层、区或组件,抑或可存在一个或多个中间元件、层、区或组件。然而,“直接连接/直接耦合(directlyconnected/directlycoupled)”则是指一个组件与另一个组件直接连接或直接耦合,而不具有中间组件。同时,例如“位于...之间(between)”、“直接位于...之间(immediatelybetween)”或者“相邻于...(adjacentto)”及“紧邻于...(directlyadjacentto)”等阐述各个组件之间的关系的其他表达可类似地加以解释。另外,还应理解,当称一元件或层“位于”两个元件或层“之间(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-specificintegratedcircuit))、软件、或软件、固件、及硬件的组合来实施。举例来说,可将这些装置的各种组件形成在一个集成电路(integratedcircuit,ic)芯片上或单独的集成电路芯片上。此外,可将这些装置的各种组件实施在柔性印刷电路膜(flexibleprintedcircuitfilm)、带载封装(tapecarrierpackage,tcp)、印刷电路板(printedcircuitboard,pcb)上、或形成在一个衬底上。此外,这些装置的各种组件可为在一个或多个计算装置中由一个或多个处理器运行、执行计算机程序指令并与用于执行本文所述各种功能性的其他系统组件进行交互的过程或线程(thread)。计算机程序指令存储在可在使用例如(举例来说)随机存取存储器(randomaccessmemory,ram)等标准存储器装置的计算装置中实施的存储器中。计算机程序指令也可存储在例如(举例来说)紧凑型光盘只读存储器(compactdiscreadonlymemory,cd-rom)、闪存驱动器(flashdrive)或类似元件等其他非暂时性计算机可读媒体中。另外,所属领域中的技术人员应知,在不背离本发明示例性实施例的精神及范围的条件下,可将各种计算装置的功能性组合或整合成单一的计算装置,或者可使一特定计算装置的功能性跨越一个或多个其他计算装置分布。除非另外定义,否则本文所用所有用语(包括技术及科学用语)的含义均与本发明所属领域中的普通技术人员所通常理解的含义相同。还应理解,用语(例如在常用词典中所定义的用语)应被解释为具有与其在相关技术的上下文和/或本说明书中的含义一致的含义,且除非在本文中明确定义,否则不应将其解释为具有理想化或过于正式的意义。本发明的实施例包括一种利用多协议标签交换(multiprotocollabelswitching,mpls)在nvme-of以太网ssd中进行差异化存储服务的系统及方法。mpls能够使用用于识别各个节点之间的路径的标签来代替与路由表相结合的传统的长的网络地址。在各种实施例中,支持mpls的essd可被配置成能够用作mpls标签边缘路由器(labeledgerouter,ler)。因此,essd能够将传统的essd输入/输出包包封到包括外出业务(egresstraffic)的标签堆的mpls包中并从进入业务(ingresstraffic)移除mpls包。可利用存储参数及网络参数来进行往来于essd之间的业务分类且存储参数及网络参数可用于确定用于进行路由的mpls标签。因此,可根据与存储参数及网络参数相关联的服务品质来选择mpls标签。图1绘示示例性的支持mpls的nvme-of以太网ssd系统。参照图1,在各种实施例中,以太网ssd机架100可包括以太网交换机110、基板管理控制器(baseboardmanagementcontroller,bmc)120、外围组件互连快速(peripheralcomponentinterconnectexpress,pcie)交换机130及多个essd140、141、142。essd140至142通过以太网交换机110连接到网络150。essd140至142还通过pcie交换机130连接到bmc120。在各种实施例中,bmc120可被配置成用于对essd140至142执行管理任务。举例来说,bmc120可被配置成在每一个essd140至142的标签查找表(labellook-uptable,llt)中维持mpls标签映射。在远程主机上运行的应用160可通过操作系统(operatingsystem,os)/文件系统170及nvme-of驱动器180来利用essd140至142进行输入/输出。举例来说,在各种实施例中,应用160可具有服务品质(qos)要求且网络150包括mpls网络。基于qos要求,nvme-of驱动器180产生mpls包,mpls包包封有输入/输出命令且包括用于根据应用160的qos要求来对输入/输出进行路由的标签/标签堆。mpls输入/输出命令是在essd140至142处接收的,essd140至142可作为mpls标签边缘路由器(ler)运行并从mpls包移除输入/输出命令且执行指定的输入/输出功能。essd可使用mpls包来执行作为命令执行的一部分所需要的与主机之间的任何数据传输。essd140至142将返回命令完成(returncommandcompletion)包封到mpls包中,所述mpls包具有描述根据qos要求所选择的返回输入/输出路径的标签。图2绘示根据各种实施例的示例性mpls包。图3绘示根据各种实施例的使用mpls进行差异化存储服务的示例性方法。参照图2,在各种实施例中,essd140至142被配置成用作用于mpls网络的ler。作为ler,essd140至142被配置成通过以下操作来将数据包包封到mpls包200中:将包括标签栈210(其包括用于输入/输出串流的标签交换路径(lsp))的mpls报头以及其他mpls数据字段加到传统的数据包,所述传统的数据包包括用于遍历非mpls网络(例如,传统网络)的合适的报头信息以及任何数据净荷(datapayload)。在各种实施例中,essd140至142可通过mpls网络从远程主机接收输入/输出服务请求(s300)。在各种实施例中,输入/输出服务请求可包括用于将所请求的输入/输出服务请求从其他请求区分开的存储参数及其他参数。举例来说,网络可基于网络状况以及对于输入/输出的qos要求将不同的存储业务串流区分开(例如,以不同方式进行对待)。举例来说,较短的(例如,较快的路径)可用于具有高速度qos要求的输入/输出,而较长的(例如,较慢的路径)可用于具有低速度qos要求的输入/输出。在接收到输入/输出服务请求之后,essd140至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进行编程。举例来说,存储管理员可利用bmc120对llt进行编程。bmc可接着通过pcie交换机130及pcie总线将llt分配到所连接的essd140到142中的每一者。每一个essd140至142可接着利用llt来为输入/输出请求指派lsp。在各种实施例中,每一个essd140至142可被指派相同的llt,而在其他实施例中,可向一个或多个essd140至142指派独有的llt。一旦已将输入/输出服务请求匹配到lsp,便可起始存储业务串流(s320)。由essd140至142将传出包包封到包括用于定义所选择lsp的标签堆的mpls包中(s330)。在各种实施例中,携带数据净荷且还包括任何对于对传统网络中的包进行路由而言所需的信息的传统数据包220被作为净荷包封在mpls包200中。举例来说,在各种实施例中,传统包可包括rdma包、roce包、rocev2包、iwarp包或基于tcp的nvme包。传统的数据包220是通过加上mpls报头进行包封的。在各种实施例中,mpls报头包括标签堆210、存活时间(timetolive,ttl)字段211、堆底(s)字段212、业务类别(trafficclass,tc)字段213及一个或多个标签214、215、216。在各种实施例中,tc字段213可用于qos用途。如上所述,每一个标签214至216用于识别mpls网络150中各个节点之间的路径中的分支(leg)以建立lsp。所述标签如上所述可由llt提供。图4绘示根据各种实施例的其中起始主机是mpls网络域的一部分的示例性essdmpls网络。参照图4,在各种实施例中,远程主机400是mpls网络420的一部分。在这些实施例中,远程主机400被配置成连接到ler410,ler410针对传出业务对来自主机的输入/输出进行包封并针对传入输入输出移除mpls包信息。mpls网络420包括可用于形成多条标签交换路径(lsp)的用于对数据进行路由的多个节点。被配置成用于mpls通信的essd430还连接到mpls网络420且可从远程主机400接收输入/输出请求。在各种实施例中,远程主机400可包括多个存储业务串流。举例来说,图4绘示第一存储业务串流j及第二存储业务串流m。在各种实施例中,存储业务串流中的每一者可根据lsp而经过mpls网络420行进。在所绘示的实施例中,已向第一存储业务串流j指派了lspk且已向第二存储业务串流m指派了lspn。图5绘示根据各种实施例的其中起始主机位于mpls网络域外部的示例性essdmpls网络。参照图5,在各种实施例中,远程主机500可不直接连接到mpls网络520。在这些实施例中,远程主机500可利用传统包格式通过传统的非mpls网络540将数据发送到与essd530连接的mpls网络520。每一存储业务数据串流可经过非mpls网络540在不受控制的共享网络路径上行进直到数据在ler510处到达mpls网络520为止。ler510将传入数据包封到mpls包中并从传出数据(例如,行进到非mpls网络540之外的数据)剥离mpls包。举例来说,存储业务串流j可通过经过mpls网络520的lspk以及经过穿过非mpls网络540的不受控制的共享网络路径将远程主机500连接到essd530。相似地,存储业务串流m可通过经过mpls网络520的lspn以及经过穿过非mpls网络540的不受控制的共享网络路径将远程主机500连接到essd530。在此实例中,存储业务串流能够部分地彼此区分开及与其他网络业务部分地区分开。因此,本公开的上述实施例提供一种利用mpls在nvme-of以太网ssd中进行差异化存储服务的系统及方法。当利用mpls网络时,所述系统能够根据各种存储参数及其他参数来指派lsp。每一lsp可实现不同水平的服务并提供一种对经过网络的业务进行区分的方式。以上是对示例性实施例的例示,而不应被视为对示例性实施例的限制。尽管已阐述了几个示例性实施例,但是所属领域中的技术人员将容易地理解,在不实质上背离示例性实施例的新颖教示及优点的条件下,在示例性实施例中可进行许多修改。因此,所有这些修改均旨在包含在由权利要求书所界定的示例性实施例的范围内。在权利要求书中,手段附加功能条款旨在涵盖执行所述功能的本文所述结构,且不仅涵盖结构等效形式且还涵盖等效结构。因此,应理解,以上是对示例性实施例的例示,而不应被视为仅限于所公开的具体实施例,且对所公开的示例性实施例的修改形式以及其他示例性实施例也旨在包含于随附权利要求书的范围内。本发明概念是由以上权利要求书界定,其中所述权利要求书的等效形式包含在本文中。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1