以太网固态硬盘系统和用于控制其带宽的方法与流程

文档序号:15394680发布日期:2018-09-08 01:54阅读:374来源:国知局

在此公开的主题总体涉及一种存储系统,更具体地讲,涉及一种用于管理与以太网固态硬盘(ssd)系统相关联的带宽服务水平协议(sla)的系统和方法。



背景技术:

以太网ssd(essd)允许一个或多个远程服务器主机在远程直连存储(rdas)模式下通过以太网网络连接到essd。然而,传统的essd存储系统不易于使带宽sla应用于具有多个essd的存储系统中的特定essd。



技术实现要素:

示例实施例提供一种essd系统,可包括:至少一个essd、以太网交换机和控制器(诸如,基板管理控制器)。以太网交换机可连接到所述至少一个essd;控制器可连接到所述至少一个essd和太网交换机。控制器可控制以太网交换机将预定带宽提供给所述至少一个essd,其中,预定带宽可基于存储在控制器的策略表中的针对所述至少一个essd的带宽信息。在一个实施例中,针对所述至少一个essd的每个预定带宽可包括所述至少一个essd的预定入口带宽和预定出口带宽。在一个实施例中,预定入口带宽可与预定出口带宽不同。在另一实施例中,预定带宽可基于与所述至少一个essd相关联的服务水平。在另一实施例中,预定带宽可自适应地基于所述至少一个essd的操作参数。

示例实施例可提供一种用于控制以太网固态硬盘(essd)系统的带宽的方法,可包括:在控制器接收针对多个essd中的至少一个essd的带宽信息;在控制器存储针对所述至少一个essd的接收的带宽信息;通过控制器配置所述至少一个essd的以太网交换机的带宽容量,其中,以太网交换机连接到所述至少一个essd。在一个实施例中,所述至少一个essd的带宽容量可包括所述至少一个essd的预定入口带宽和预定出口带宽。在一个实施例中,预定入口带宽可与预定出口带宽不同。在一个实施例中,带宽容量可基于与所述至少一个essd相关联的服务水平。在另一实施例中,带宽容量可自适应地基于所述至少一个essd的操作参数。

附图说明

在以下部分中,将参照在附图中示出的示例性实施例描述在此公开的主题的方面,其中:

图1示出根据在此公开的主题的essd控制平台;

图2a至图2c分别示出根据在此公开的主题的用于管理和/或强制执行(enforce)以太网入口和出口带宽的示例策略表;

图3示出根据在此公开的主题的用于初始化sla策略强制执行的处理的示例实施例的流程图;

图4示出根据在此公开的主题的用于监视essd的状态并基于essd的状态修改策略表的处理的示例实施例的流程图。

具体实施方式

在以下详细描述中,陈述许多特定细节,以提供对本公开的彻底理解。然而,本领域技术人员应该理解,可在没有这些特定细节的情况下实践公开的方面。在其它实例中,没有详细描述公知的方法、程序、组件和电路,以不模糊在此公开的主题。

贯穿本说明书提及的“一个实施例”或“实施例”表示结合实施例描述的具体特征、结构或特性可被包括在在此公开的至少一个实施例中。因此,在贯穿本说明书的各个地方的短语“在一个实施例中”或“在实施例中”或“根据一个实施例”(或具有相似含义的其他短语)的出现可不必全部涉及同一实施例。此外,具体特征、结构或特性可以在一个或多个实施例中以任意合适的方式被组合。关于这一点,如在此使用的,单词“示例性”表示“起示例、实例或说明的作用”。在此描述为“示例性”的实施例不将被解释为与其他实施例相比必须优选或必须有优点。此外,根据在此公开的上下文,单数术语可包括对应的复数形式,并且复数术语可包括对应的单数形式。还应注意,在此示出和讨论的各个附图(包括组件图)是仅用于说明性目的,而不是按比例绘制。相似地,各种波形和时序图被示出仅为了说明性目的。例如,为了清楚,一些元件的尺寸可相对于其他元件被夸大。此外,适当情况下,参考标号在附图中已被重复,以指示对应的元件和/或类似的元件。

在此使用的术语仅为了描述特定示例性实施例的目的,而不意在限制要求保护的主题。除非上下文另外清楚地指示,否则如在此使用的单数形式也意在包括复数形式。还将理解,当在本说明书中使用时,术语“包括”和/或“包含”指定存在叙述的特征、整体、步骤、操作、元件和/或组件,但是不排除存在或添加一个或多个其它特征、整体、步骤、操作、元件、组件和/或它们的组。除非明确地如此定义,否则如在此使用的术语“第一”、“第二”等可用作位于它们之后的名词的标签,而不意指任何类型的排序(例如,空间的、暂时的、逻辑的等)。此外,相同的参考标号可跨过两个或更多个附图被使用,以表示具有相同或相似功能的部件、组件、块、电路、单元或模块。然而,这样的使用仅为了说明的简单和讨论的容易;不意指这样的组件或单元的结构或建筑上的细节跨过所有实施例是相同的,或者不意指这样的共同引用的部件/模块是用于实现在此公开的特定实施例的教导的唯一方法。

除非另有定义,否则在此使用的所有术语(包括技术术语和科学术语)具有与本主题所属领域的普通技术人员通常理解的含义相同的含义。例如,如在此使用的术语“mod”应被理解为“模运算(modulo)”。还应该理解,除非在此明确地这样定义,否则术语(诸如在常用词典中定义的术语)应被解释为具有与它们在相关领域的上下文中的含义一致的含义,而不将被理解为理想化或过于形式的含义。

如在此使用的,术语“模块”表示被配置为提供在此结合模块描述的功能的软件、固件和/或硬件的任意组合。如在此描述的应用于任意实现的术语“软件”可被实现为软件包、代码和/或指令集或指令。例如,如在此描述的应用于任意实现的术语“硬件”可单个地或以任意组合地包括硬连接的电路、可编程电路、状态机电路和/或存储由可编程电路执行的指令的固件。模块可共同地或单独地被实现为形成更大系统(诸如,但不限于,集成电路(ic)、片上系统(soc)等)的部分的软件、固件和/或硬件。

在此公开的主题提供一种用于从系统中的essd的角度来看以非入侵方式提供essd控制平台强制执行(enforce)(或者,实施)一个或多个带宽sla的系统和技术。essd控制平台中的基板管理控制器(bmc)可维持连接到控制平台的一个或多个essd的各种带宽策略。bmc装置可在控制平台中对以太网交换机进行编程和配置,以对连接到主机的上行链路端口和/或连接到essd的下行链路端口进行速率限制。速率限制配置可针对每个单独的essd的入口方向(主机读取)和出口方向(主机写入)而不同。以太网交换机的速率限制配置:可响应于从在管理服务器处的管理员接收的命令和/或带宽信息而被设置;可响应于bmc装置强制执行包含在系统内的一个或多个策略而被设置;或者可响应于系统中的一个或多个essd的的当前健康或状态可被设置。如在此使用的,术语“带宽信息”可包括与将被应用于单独的essd、一组essd和/或连接到控制平台的整个essd池的入口和/或出口带宽有关的信息。

bmc装置具有出现在系统中的所有ssd的可视性,并可监视它们各自的参数和操作状态,因此针对单独的essd、连接到系统的所有essd的子集和/或连接到系统的所有ssd的最佳的智能和复杂策略可被实现和监视。因此,bmc装置不需要管理可在系统中使用的不同的ssd的多个专用机制(proprietarymechanism),因为bmc装置通过对以太网交换机进行编程或配置来强制执行系统的sla,从而使sla带宽管理独立于系统中的essd。bmc装置还包括到存储管理器可有效管理系统的sla的存储功率服务器的通信路径。

图1示出根据在此公开的主题的essd控制平台100。在一个实施例中,essd控制平台100可包括:以太网交换机101、bmc装置102、外围组件互连快速(pcie)交换机103、中平面104和一个或多个essd105。尽管在图1中示出了仅有一个以太网交换机101和仅有一个pcie交换机作为essd控制平台100的部分,但应该理解,多个以太网交换机101和多个pcie交换机可以是以太网ssd控制平台100的部分。此外,形成essd控制平台100的组件可被实现为单独的组件或单独的模块。作为替换,形成essd控制平台100的两个或更多个组件可以是整体。

essd控制平台100可被物理地实现为机架或架子,其中,一个或多个essd相对于essd控制平台100而局部布置。一个或多个附加essd105还可相对于essd控制平台100而远程地安置。在一个实施例中,essd控制平台100可包括24个essd105。在另一实施例中,essd控制平台100可包括48个essd105。在另一实施例中,essd控制平台100可包括任意数量的essd105。

以太网交换机101可包括多个上行链路以太网端口106,其中,在图1中仅示出了所述多个上行链路以太网端口106中的一个上行链路端口106。上行链路端口106可将以太网交换机101连接到一个或多个远程主机150,其中,仅示出了所述一个或多个远程主机150中的一个主机150。以太网交换机101还可包括多个下行链路以太网端口107,其中,在图1中仅示出了所述多个下行链路以太网端口107中的一个端口107。下行链路端口107可将以太网交换机101通过中平面104连接到单独的essd105上的以太网端口108。在一个实施例中,每个essd105可包括以太网端口108。以太网交换机101可执行对上行链路以太网端口106和/或下行链路以太网端口107的速率限制(ratelimiting)。速率限制可具有三个构成要素(component):包或帧排队(packetorframequeuing)、调度以及流量和拥塞控制(flowandcongestioncontrol)。加权公平排队(wfq)速率限制\构成要素可用于实现排队子系统。调度速率限制构成要素的一些示例包括加权轮询(weightedroundrobin,wrr)技术和亏空轮询(deficitroundrobin,drr)技术。流量和拥塞控制速率限制构成要素可使用例如队尾丢弃(taildrop)技术和/或加权随机早期丢弃(weightedrandomearlydiscard,wred)技术来实现。在一些实施例中,早期拥塞通知技术可用于对通信量进行流量控制。对于以太网链路,可使用暂停帧和优先级流量控制(pfc)标准技术。

在一个实施例中,bmc装置102可安置在作为以太网ssd控制平台100的一部分的主交换机板中。在另一实施例中,bmc装置102和以太网交换机101可彼此为整体。

bmc装置102可被配置为提供每个essd105的管理功能(诸如,发现、配置、操作状态和健康监视)。在一个实施例中,bmc装置102可包括包含与但不限于每个essd105的发现、配置、操作状态和健康监视的管理功能有关的信息的一个或多个策略表109。bmc装置102可使用策略表109管理和/或强制执行已与essd控制平台100相关联的一个或多个sla。在一个实施例中,sla中的一个或多个可涉及bmc装置102可强制执行的特定带宽策略。在一个实施例中,带宽策略可涉及单独的essd105。在另一实施例中,带宽策略可涉及形成连接到essd控制平台100的所有essd105的子集的一组essd105。在另一实施例中,带宽策略可涉及连接到essd控制平台100的所有essd105。

在以太网ssd控制平台100的一个实施例中,在bmc装置102与essd105之间可存在可用于获得与由bmc装置102提供的管理功能的信息有关的三个通信路径。第一通信路径可通过经由以太网交换机101的以太网网络110。第二通信路径可通过经由pcie交换机103和中平面104的pcie总线111。第三通信路径可通过连接在bmc装置102与essd105之间的系统管理总线(smbus)112。bmc装置102还可具有管理端口113,其中,由管理员(用户)操作的管理服务器160可通过管理端口113与bmc装置102通信并控制bmc装置102。bmc装置102可接收针对一个或多个essd105的可用于形成一个或多个带宽策略的带宽信息。管理服务器160可接近于essd控制平台100被安置或与essd控制平台100远程地被安置。

以太网交换机101的连接到远程主机150的上行链路106可以是高带宽链路。在一个实施例中,以太网交换机101的上行链路端口106可包括多个40gbit/s和/或100gbit/s链路。单独的essd105可通常具有10gbit/s和/或25gbit/s以太网端口108。essd控制平台100中的单独的essd105可针对以太网交换机102的上行链路端口106的更高带宽而被过度订阅(oversubscribe)。这样的带宽的过度订阅是可形的,因为通常并非所有的essd105同时处于工作中。由特定essd105消耗的以太网带宽的量取决于由远程主机150提交给该essd的工作负荷(例如,服务水平)。

在一个实施例中,由远程主机150提交的工作负荷可使用基于结构上的非易失性存储器快速(nvmeoverfabric)规范的协议将读取/写入i/o命令发送到essd105。因此,在任何时间由essd105消耗的带宽的量取决于已提交的i/o命令的数量和这些命令的数据传送大小。对于主机写入命令,essd105将用户数据从远程主机150传送到essd105的本地介质,并且这样做会消耗以太网入口带宽。对于主机读取命令,essd105将用户数据从essd105的本地介质传送到远程主机150,因此消耗以太网出口带宽。

每个essd105可包括预定数量的命令提交队列(sq)。essd105可执行用于对队列进行服务的仲裁。在选择sq之后,essd105从选择的sq提取用于执行的下一个命令。作为命令执行的一部分,essd105执行到远程主机150或来自远程主机150的特定数据传送。一旦已完成数据传送,则essd105可将完成消息发送到远程主机150。在那时,essd105返回到sq仲裁等。essd105通过对sq进行仲裁的命令执行循环继续进行循环,直到在sq中存在挂起命令。

bmc装置102可使用一个或多个策略表109管理和/或强制执行已与essd控制平台100相关联的一个或多个sla。sla可涉及应用于控制平台100中的一个或多个essd105的特定带宽策略。带宽策略可基于一个或多个方面(诸如,但不限于,时间方面(当日时间、星期几等)、essd操作参数、essd功耗、闪存介质技术、用户订阅率、利用成本率(即,工作日对比假日或周末)和/或服务提供者的促销安排)。通过读取的重要产品数据(vpd)从essd获得的信息可本地地存储在bmc装置102,并可用于自适应地(adaptively)基于essd105的操作参数控制带宽sla。在一个实施例中,essd105的状态和/或参数可通过bmc装置102使用在smbus和/或pcie接口上运行的基于nvme管理接口(nvme-mi)的协议来读取。

图2a至图2c分别示出根据在此公开的主题的用于管理和/或强制执行以太网入口和出口带宽(b/w)的示例策略表。图2a示出用于针对多个essd的以太网入口和出口b/wsla的示例策略表109a,其中,在所述表中,以太网入口和出口b/wsla针对表中的每个essd是相同的。具体地讲,每个essd具有5gbps的入口b/wsla和10gbps的出口b/wsla。图2b示出用于针对多个essd的以太网入口和出口b/wsla的另一示例策略表109b,其中,在所述表中,以太网入口和出口b/wsla针对表中的每个essd是不同的。图2c示出用于针对多个essd的以太网入口和出口b/wsla的另一示例策略表109c,其中,在所述表中,以太网入口和出口b/wsla针对表中的不同组的essd是不同的。具体地讲,作为第一组的essd-0和essd-1二者具有5gbps的入口b/wsla和5gbps的出口b/wsla;而作为第二组的essd-2至essd-n均具有5gbps的入口b/wsla和10gbps的出口b/wsla。

图3示出根据在此公开的主题的用于初始化sla策略强制执行的处理300的示例实施例的流程图。也就是说,处理300可以是bmc在上电时或系统重置时执行的用于标识系统中的essd并初始地配置一个或多个sla的处理。在301,处理开始。在302,bmc确定系统中的所有essd是否已被标识。如果没有,则流程继续到303,其中,在303,bmc通过essd的nvme-mi读取vpd。vpd可包括,但不限于:通用头部(commonheader)、产品信息、多记录信息(multirecordinformation)、内部使用信息、机架信息区域和板特定区域。在304,bmc基于vpd标识essd。在305,bmc本地地存储essd的essd参数。流程返回到302,直到平台中的所有essd已被标识并且与每个essd对应的vpd已本地地被存储为止。

如果在302,平台中的所有essd已被标识,则流程继续到306,其中,在306,bmc确定sla策略是否将被添加到策略管理表、修改或从策略管理表删除。如果sla策略将被添加,则流程继续到307和310,其中,在307和310,策略添加到策略管理表。如果sla策略将被修改,则流程继续到308和310,其中,在308和310,策略将在策略管理表中被修改。如果sla策略将被删除,则流程继续到309和310,其中,在309和310,策略将从sla策略表删除。策略在系统上电时或在系统重置时改变的一些原因可以是因为一个或多个新的essd可被添加到多个essd105,先前存在的多个essd105中的一个或多个essd可被去除,和/或先前存在多个essd105中的一个或多个essd可能已成为不可操作的。事件(诸如,但不限于,这些事件)可引起不同的策略成为活动的。此外,essd特性(诸如,误码率(ber)、操作温度、存储容量等)可随时间改变,并因此导致对策略改变的需要。此外,一个或多个essd105可随时间被重新分配到不同的主机和/或应用,这可导致对策略改变的需要。可引起策略改变的另一示例可涉及在不同时间(例如,白天对比夜晚或者工作日对比周末)应用的多个策略。

然后,流程继续到311,其中,在311,以太网交换机101的配置基于在310对策略表的更新而被更新。流程返回到302。在306,如果没有sla策略被添加、修改或删除,则流程返回到302(未示出)。

图4示出根据在此公开的主题的用于监视essd的状态并基于essd的状态修改策略表的处理400的示例实施例的流程图。在401,处理400开始。流程继续到402,其中,在402,bmc确定系统中的所有essd的(健康)状态是否已被扫描。如果没有,则流程继续到403,其中,在403,未被扫描的第一essd的(健康)状态使用例如nvme-mi健康状态轮询(poll)来扫描。在404,bmc读取essd的智能/健康信息日志。在405,bmc本地地存储essd的当前健康状态。流程返回到402。

如果在402,bmc已扫描系统中的所有essd的健康状态,则流程继续到406,其中,在406,bmc确定是否存在任意essd的健康状态的改变。可由bmc监视的essd的健康状态参数可包括,但不限于:essd内的数据结构、操作温度、介质完整性(即,ber)、剩余寿命、可用空闲容量、总容量、已用容量、自预定时间以来的数据读取/写入的量、响应于自预定时间以来的主机命令的数量、每日硬盘写入次数(dwpd)、essd控制器繁忙时间和专有信息。

如果在406,任意essd的健康状态的改变没有被确定或检测到,则流程返回到402。如果在406,已存在任意essd的健康状态的改变,则流程返回到407,其中,在407,bmc访问与受影响的essd的健康状态有关的策略表。策略改变可被确定为在406被需要的其他原因可包括:一个或多个新的essd可被添加(即,热插拔(hotswap))到多个essd105、先前存在的多个essd105中的一个或多个essd可被去除(即,热插拔)以及先前存在的多个essd105中的一个或多个essd可能已变成不可操作的。事件(诸如,但不限于,这些事件)可引起不同的策略成为活动的。此外,由于提及的essd特性(诸如,ber、操作温度、存储容量等)可随时间改变,因此引起对策略改变的需要。此外,一个或多个essd105可随时间被重新分配到不同的主机和/或应用,这可导致对策略改变的需要。可在406引起策略改变的另一示例可涉及在不同时间(例如,白天对比夜晚或者工作日对比周末)应用的多个策略。

在408,基于essd的健康状态的改变和与essd的健康状态有关的策略表的内容来确定以太网交换机是否应该被识别。如果不应被识别,则流程返回到402。如果以太网交换机应该被识别,则流程返回到409,其中,在409,bmc将太网交换机重新编程为更新的配置。

如将被本领域技术人员所认识到的,在此描述的创新构思可在广泛的应用范围内被修改和改变。因此,要求保护的主题不应限制为以上讨论的特定的示例性教导,而是由权利要求替代限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1