用于远程直接存储器访问网络中基于时延的服务级别协议管理的技术
背景技术:[0001]
数据中心和其他分布式计算系统可以包括分解式i/o组件,例如,经池化的存储设备。远程直接存储器访问(rdma)网络可以是分布式i/o的基础。某些rdma网络可能要求无损服务质量(qos),这可能很难管理。在典型的网络中,服务于rdma的设备端口可以使用qos机制,例如,ieee优先级流控制(pfc)或数据中心桥接(dcb),这可能减慢性能并导致队首阻塞。
附图说明
[0002]
在附图中通过示例而非限制的方式示出了本文描述的概念。为了图示的简单和清楚起见,附图中示出的元素不一定按比例绘制。在认为适当的地方,已经在附图中重复了附图标记以指示对应或类似的元素。
[0003]
图1是用于以分解式资源执行工作负载的数据中心的至少一个实施例的简化图;
[0004]
图2是可以包括在图1的数据中心中的直槽(pod)的至少一个实施例的简化图;
[0005]
图3是可以包括在图2的直槽中的机架的至少一个实施例的透视视图;
[0006]
图4是图3的机架的侧面正视图;
[0007]
图5是图3的其中安装有托架的机架的透视视图;
[0008]
图6是图5的托架的顶部一侧的至少一个实施例的简化框图;
[0009]
图7是图6的托架的底部一侧的至少一个实施例的简化框图;
[0010]
图8是可在图1的数据中心中使用的计算托架的至少一个实施例的简化框图;
[0011]
图9是图8的计算托架的至少一个实施例的顶部透视视图;
[0012]
图10是可在图1的数据中心中使用的加速器托架的至少一个实施例的简化框图;
[0013]
图11是图10的加速器托架的至少一个实施例的顶部透视视图;
[0014]
图12是可在图1的数据中心中使用的存储托架的至少一个实施例的简化框图;
[0015]
图13是图12的存储托架的至少一个实施例的顶部透视视图;
[0016]
图14是可在图1的数据中心中使用的存储器托架的至少一个实施例的简化框图;
[0017]
图15是可以在图1的数据中心内建立的系统的简化框图,该系统用于以由分解式资源组成的受管节点(managed node)执行工作负载;
[0018]
图16是用于rdma网络中的基于时延的服务级别协议的系统的至少一个实施例的简化框图;
[0019]
图17是可以由图16的网络交换机建立的环境的至少一个实施例的简化框图;
[0020]
图18是可以由图16-17的主机计算设备执行的用于监视rdma时延的方法的至少一个实施例的简化流程图;
[0021]
图19是可以由图16-17的计算设备执行的用于优先级调度rdma请求的方法的至少一个实施例的简化流程图;并且
[0022]
图20是可以由图16-17的计算设备执行的用于管理交换机队列资源的方法的至少
一个实施例的简化流程图。
具体实施方式
[0023]
虽然本公开的概念易于进行各种修改和替代形式,但是其具体实施例已经在附图中通过示例的方式示出并且将在本文中进行详细描述。然而,应当理解的是,不旨在将本公开的概念限制为所公开的特定形式,而是相反,意图是覆盖与本公开和所附权利要求书一致的所有修改、等效物和替代方案。
[0024]
在说明书中对“一个实施例”、“实施例”、“说明性实施例”等的引用指示所描述的实施例可以包括特定的特征、结构或特性,但是每个实施例可以或可以不一定包括该特定的特征、结构或特性。此外,这样的短语不一定指代相同的实施例。此外,当结合实施例描述特定的特征、结构或特性时,认为结合其他实施例(无论其是否明确描述)来实现这种特征、结构或特性在本领域技术人员的知识范围内。另外地,应当认识到的是,包括在以“至少一个a,b和c”形式的列表中的项目可以表示(a);(b);(c);(a和b);(a和c);(b和c);或(a,b和c)。类似地,以“a,b或c中的至少一个”形式列出的项目可以表示(a);(b);(c);(a和b);(a和c);(b和c);或(a,b和c)。
[0025]
在一些情况下,可以以硬件、固件、软件或其任何组合来实现所公开的实施例。所公开的实施例还可以被实现为由暂时性或非暂时性机器可读(例如,计算机可读)存储介质承载或存储在其上的指令,该指令可以由一个或多个处理器读取并执行。机器可读存储介质可以体现为用于以机器可读形式存储或传输信息的任何存储设备、机制或其他物理结构(例如,易失性或非易失性存储器、介质盘或其他介质设备)。
[0026]
在附图中,一些结构或方法特征可以以特定的布置和/或次序示出。然而,应当认识到的是,可能不要求这种特定的布置和/或次序。而是,在一些实施例中,可以以与说明性附图中示出的方式和/或次序不同的方式和/或次序来布置这些特征。另外地,在特定附图中包括结构或方法特征并不意味着暗示在所有实施例中都要求这样的特征,在一些实施例中,可以不包括这样的特征或这样的特征可以与其他特征组合。
[0027]
现在参考图1,其中分解式资源可以协作地执行一个或多个工作负载(例如,代表客户的应用)的数据中心100包括多个直槽110、120、130、140,这些直槽中的每一个包括一排或多排机架。当然,尽管数据中心100被示出为具有多个直槽,但是在一些实施例中,数据中心100可以被体现为单个直槽。如本文更详细描述的,每个机架容纳多个托架,托架中的每一个可以主要配备有特定类型的资源(例如,存储器设备、数据存储设备、加速器设备、通用处理器),即,可以在逻辑上联接以形成组合节点的资源,该节点可以用作例如服务器。在说明性实施例中,每个直槽110、120、130、140中的托架连接到多个直槽交换机(例如,将数据通信路由到直槽内的托架或从该托架路由数据通信的交换机)。直槽交换机进而与骨干交换机(spine switch)150连接,该骨干交换机150在数据中心100中的直槽(例如,直槽110、120、130、140)之间交换通信。在一些实施例中,可以使用intel omni-path技术将托架与结构连接。在其他实施例中,托架可以与其他结构(例如,infiniband或以太网)连接。如本文中更详细描述的,可以将数据中心100中的托架内的资源分配给包含来自一个或多个托架的资源的组(在本文中称为“受管节点”),以在工作负载的执行中共同地对其进行利用。可以像属于受管节点的资源位于相同托架上那样来执行工作负载。受管节点中的资源
可以属于归属于不同机架的托架,并且甚至属于不同的直槽110、120、130、140。因此,可以将单个托架的一些资源分配给一个受管节点,而将相同托架的其他资源分配给不同的受管节点(例如,将一个处理器指派给一个受管节点,并且将相同托架的另一处理器指派给不同的受管节点)。
[0028]
包括分解式资源的数据中心(例如,数据中心100)可以在多种上下文(例如,企业、政府、云服务提供商和通信服务提供商(例如,telco’s),)中使用以及以多种尺寸使用,从消耗超过100,000平方英尺的云服务提供商大型数据中心到在基站中使用的单机架或多机架安装。
[0029]
将资源分解到主要包括单一类型资源的托架(例如,主要包括计算资源的计算托架,主要包含存储器资源的存储器托架),以及分解式资源的选择性分配和释放以形成被指派用于执行工作负载的受管节点,相对于由在单个机箱中包含计算、存储器、存储以及可能的附加资源的超融合服务器组成的典型数据中心而言,改进了数据中心100的操作和资源使用。例如,由于托架主要包含特定类型的资源,因此可以独立于其他资源来对给定类型的资源进行升级。另外地,由于不同的资源类型(处理器、存储、加速器等)典型地具有不同的刷新速率,因此可以实现更高的资源利用和降低的总体拥有成本。例如,数据中心运营商可以通过仅交换出计算托架来升级处理器在其整个设施内的性能。在这种情况下,可以不同时升级加速器和存储资源,而是可以允许其继续操作,直到针对这些资源自己的刷新安排了这些资源。资源利用也可以增加。例如,如果受管节点是基于将在其上运行的工作负载的要求组成的,则节点内的资源更有可能被充分利用。这样的利用可以允许更多的受管节点在具有给定的资源的集合的数据中心中运行,或者允许使用较少的资源来构建预期运行给定工作负载的集合的数据中心。
[0030]
现在参考图2,在说明性实施例中,直槽110包括成排200、210、220、230的机架240的集合。每个机架240可以容纳多个托架(例如,十六个托架),并且提供到所容纳的托架的电源和数据连接,如本文中更详细描述的。在说明性实施例中,每排200、210、220、230中的机架连接到多个直槽交换机250、260。直槽交换机250包括端口的集合252,直槽110的机架的托架连接到该端口的集合252;以及端口的另一集合254,其将直槽110连接到骨干交换机150,以提供到数据中心100中的其他直槽的连通性。类似地,直槽交换机260包括端口的集合262,直槽110的机架的托架连接到该端口的集合262;以及端口的集合264,其将直槽110连接到骨干交换机150。因此,使用交换机250、260的对为直槽110提供了一定量的冗余。例如,如果交换机250、260中的任何一个发生故障,则直槽110中的托架仍可以通过另一交换机250、260与数据中心100的其余部分(例如,其他直槽的托架)维持数据通信。此外,在说明性实施例中,交换机150、250、260可以体现为双模光交换机,其能够路由承载互联网协议(ip)分组的以太网协议通信以及经由光纤的光信号传输介质根据第二高性能链路层协议(例如,intel的omni-path架构、infiniband、pci快速)的通信两者。
[0031]
应当认识到的是,其他直槽120、130、140(以及数据中心100的任何附加直槽)中的每个直槽可以与在图2中示出并关于图2描述的直槽110类似地构造并且具有与直槽110类似的组件(例如,每个直槽可以具有容纳上面描述的多个托架的成排的机架)。另外地,尽管示出了两个直槽交换机250、260,但应当理解,在其他实施例中,每个直槽110、120、130、140可以连接到不同数量的直槽交换机,从而提供甚至更多的故障转移能力。当然,在其他实施
例中,直槽可以与图1-2中示出的成排机架的配置不同地布置。例如,直槽可以体现为机架的多个集合,其中机架的每个集合径向布置,即,机架与中心交换机等距。
[0032]
现在参考图3-5,数据中心100的每个说明性机架240包括两个垂直布置的细长支撑柱302、304。例如,细长支撑柱302、304可以在部署时从数据中心100的基层向上延伸。机架240还包括细长支撑臂312的一个或多个水平对310(在图3中经由虚线椭圆标识),其被配置为支撑数据中心100的托架,如下面所讨论的。细长支撑臂312的对中的一个细长支撑臂312从细长支撑柱302向外延伸,并且另一细长支撑臂312从细长支撑柱304向外延伸。
[0033]
在说明性实施例中,数据中心100的每个托架被体现为无机箱托架。即,每个托架具有无机箱的电路板基板,在其上安装了物理资源(例如,处理器、存储器、加速器、存储装置等),如下面更详细地讨论的。因此,机架240被配置为接纳这些无机箱托架。例如,细长支撑臂312的每个对310限定机架240的托架槽320,该托架槽320被配置为接纳对应的无机箱托架。为此,每个说明性细长支撑臂312包括电路板引导件330,该电路板引导件330被配置为接纳托架的无机箱电路板基板。每个电路板引导件330被固定至或以其他方式被安装到对应的细长支撑臂312的顶部一侧332。例如,在说明性实施例中,每个电路板引导件330被安装到对应的细长支撑臂312相对于对应的细长支撑柱302、304的远端。为了附图的清楚起见,并非在每个附图中都可以引用每个电路板引导件330。
[0034]
每个电路板引导件330包括内壁,该内壁限定电路板槽380,该电路板槽380被配置为在托架400被接纳在机架240的对应的托架槽320中时接纳托架400的无机箱电路板基板。为此,如图4中示出的,用户(或机器人)将说明性无机箱托架400的无机箱电路板基板与托架槽320对齐。然后,用户或机器人可以将无机箱电路板基板向前滑动到托架槽320中,使得无机箱电路板基板的每个侧边414被接纳在限定了对应的托架槽320的细长支撑臂312的对310的电路板引导件330的对应的电路板槽380中,如图4中示出的。通过使机器人可访问且机器人可操纵的托架包括分解式资源,每种类型的资源都可以彼此独立地且以其自身的优化的刷新速率进行升级。此外,托架被配置为与每个机架240中的电源和数据通信电缆盲配合,从而增强了它们被快速移除、升级、重新安装和/或更换的能力。因此,在一些实施例中,数据中心100可以在没有人类参与的情况下在数据中心基层上进行操作(例如,执行工作负载、进行维护和/或升级等)。在其他实施例中,人类可以促进数据中心100中的一个或多个维护或升级操作。
[0035]
应当认识到的是,每个电路板引导件330是双面的。即,每个电路板引导件330包括内壁,该内壁在电路板引导件330的每一侧上限定电路板槽380。以这种方式,每个电路板引导件330可以在任一侧上支撑无机箱电路板基板。因此,可以将单个附加的细长支撑柱添加到机架240,以将机架240变为双机架解决方案,该解决方案可以容纳两倍于如图3中示出的托架槽320。说明性机架240包括细长支撑臂312的七个对310g,其限定了对应的七个托架槽320,每个被配置为接纳并支撑对应的托架400,如上面所讨论的。当然,在其他实施例中,机架240可以包括细长支撑臂312的附加的或更少的对310(即,附加的或更少的托架槽320)。应当认识到的是,因为托架400是无机箱的,所以托架400可以具有与典型服务器不同的总体高度。因此,在一些实施例中,每个托架槽320的高度可以短于典型服务器的高度(例如,短于单个机架单元“1u”)。即,细长支撑臂312的每个对310之间的垂直距离可以小于标准机架单元“1u”。另外地,由于托架槽320的高度相对减小,因此在一些实施例中,机架240的总
体高度可以短于传统机架外壳的高度。例如,在一些实施例中,细长支撑柱302、304中的每一个可以具有六英尺或更短的长度。同样,在其他实施例中,机架240可以具有不同的尺寸。例如,在一些实施例中,细长支撑臂312的每个对310之间的垂直距离可以大于标准机架单元“1u”。在这样的实施例中,托架之间的增加的垂直距离允许将更大的散热器附接到物理资源,并且允许使用更大的风扇(例如,在下面描述的风扇阵列370中)来冷却每个托架,这进而可以允许物理资源以增加的功率水平操作。此外,应当认识到的是,机架240不包括任何壁、外壳等。而是,机架240是向局部环境开放的无外壳机架。当然,在某些情况下,在其中机架240在数据中心100中形成排尾机架的那些情况下,可以将端板附接到细长支撑柱302、304中的一个。
[0036]
在一些实施例中,各种互连可以向上或向下通过细长支撑柱302、304进行路由。为了便于这种路由,每个细长支撑柱302、304包括内壁,该内壁限定了内部腔室,互连可以位于该内部腔室中。通过细长支撑柱302、304进行路由的互连可以体现为任何类型的互连,包括但不限于用于向每个托架槽320提供通信连接的数据互连或通信互连、用于向每个托架槽320提供功率的功率互连和/或其他类型的互连。
[0037]
在说明性实施例中,机架240包括支撑平台,其上安装有对应的光学数据连接器(未示出)。每个光学数据连接器与对应的托架槽320相关联,并且被配置为当托架400被接纳在对应的托架槽320中时与对应的托架400的光学数据连接器配合。在一些实施例中,数据中心100中的组件(例如,托架、机架和交换机)之间的光学连接是通过盲配合光学连接进行的。例如,每条电缆上的门可以防止灰尘污染电缆内部的光纤。在连接至盲配合光连接器机构的过程中,当电缆的末端接近或进入连接器机构时,门被推开。随后,电缆内部的光纤可以进入连接器机构内的凝胶,并且一根电缆的光纤与连接器机构内部的凝胶内的另一根电缆的光纤接触。
[0038]
说明性机架240还包括联接到机架240的交叉支撑臂的风扇阵列370。风扇阵列370包括一排或多排冷却风扇372,这些冷却风扇372在细长支撑柱302、304之间的水平线上对齐。在说明性实施例中,风扇阵列370包括用于机架240的每个托架槽320的一排冷却风扇372。如上面所讨论的,在说明性实施例中,每个托架400不包括任何板载冷却系统,并且因此,风扇阵列370为被接纳在机架240中的每个托架400提供冷却。在说明性实施例中,每个机架240还包括与每个托架槽320相关联的电源。每个电源被固定到限定对应的托架槽320的细长支撑臂312的对310中的细长支撑臂312中的一个。例如,机架240可以包括联接或固定至从细长支撑柱302延伸的每个细长支撑臂312的电源。每个电源包括电源连接器,该电源连接器被配置为在托架400被接纳在对应的托架槽320中时与托架400的电源连接器配合。在说明性实施例中,托架400不包括任何板载电源,并且因此,当电源被安装到机架240时,机架240中提供的电源向对应的托架400供电。每个电源被配置为满足其相关联的托架的功率要求,该功率要求可能因托架而异。另外地,机架240中提供的电源可以彼此独立地操作。即,在单个机架内,向计算托架供电的第一电源可以提供与由向加速器托架供电的第二电源所提供的功率水平不同的功率水平。电源在托架级别或机架级别上可以是可控的,并且可以由相关联的托架上的组件本地控制,或者可以例如由另一托架或协调器远程控制。
[0039]
现在参考图6,在说明性实施例中,托架400被配置为被安装到数据中心100的对应
的机架240中,如上面所讨论的。在一些实施例中,每个托架400可以被优化或以其他方式配置用于执行特定任务,例如,计算任务、加速任务、数据存储任务等。例如,托架400可以体现为如下面关于图8-9所讨论的计算托架800、如下面关于图10-11所讨论的加速器托架1000、如下面关于图12-13所讨论的存储托架1200或者体现为被优化或以其他方式配置为执行其他专门的任务的托架,例如,下面关于图14所讨论的存储器托架1400。
[0040]
如上面所讨论的,说明性托架400包括无机箱电路板基板602,该无机箱电路板基板602支撑被安装在其上的各种物理资源(例如,电组件)。应当认识到的是,电路板基板602是“无机箱的”,因为托架400不包括壳体或外壳。而是,无机箱电路板基板602向局部环境开放。无机箱电路板基板602可以由能够支撑被安装在其上的各种电组件的任何材料形成。例如,在说明性实施例中,无机箱电路板基板602由fr-4玻璃增强环氧层压材料形成。当然,在其他实施例中,可以使用其他材料来形成无机箱电路板基板602。
[0041]
如下面更详细讨论的,无机箱电路板基板602包括多个特征,这些特征改进了被安装到无机箱电路板基板602上的各种电组件的热冷却特性。如所讨论的,无机箱电路板基板602不包括壳体或外壳,这可以通过减少可以抑制空气流动的那些结构来改进在托架400的电组件上的空气流动。例如,由于无机箱电路板基板602不位于单独的壳体或外壳中,所以不存在附接到无机箱电路板基板602的垂直布置的背板(例如,机架的背面板),该背板可以抑制跨电组件的空气流动。另外地,无机箱电路板基板602具有被配置为减少跨安装到无机箱电路板基板602的电组件的气流路径的长度的几何形状。例如,说明性无机箱电路板基板602的宽度604大于无机箱电路板基板602的深度606。例如,在一个特定实施例中,与具有约17英寸的宽度和约39英寸的深度的典型服务器相比,无机箱电路板基板602具有约21英寸的宽度和约9英寸的深度。因此,相对于典型服务器而言,从无机箱电路板基板602的前边缘610朝向后边缘612延伸的气流路径608具有较短的距离,这可以改进托架400的热冷却特性。此外,尽管未在图6中示出,但是被安装到无机箱电路板基板602上的各种物理资源被安装被对应的位置,使得没有两个实质性发热的电组件相互遮蔽,如下面更详细讨论的。即,没有将在操作期间产生可观热量(即,大于足以不利地影响另一电组件的冷却的标称热量)的两个电组件沿着气流路径608的方向彼此线性地成一直线(即,沿着从无机箱电路板基板602的前边缘610朝向后边缘612延伸的方向)安装到无机箱电路板基板602上。
[0042]
如上面所讨论的,说明性托架400包括被安装到无机箱电路板基板602的顶部一侧650的一个或多个物理资源620。尽管在图6中示出了两个物理资源620,但是应当认识到的是,在其他实施例中,托架400可以包括一个、两个或更多个物理资源620。物理资源620可以体现为能够执行各种任务(例如,计算功能和/或取决于例如托架400的类型或预期功能来控制托架400的功能)的任何类型的处理器、控制器或其他计算电路。例如,如下面更详细讨论的,物理资源620可以体现为:实施例中的高性能处理器,其中托架400体现为计算托架;实施例中的加速器协处理器或电路,其中托架400体现为加速器托架;实施例中的存储控制器,其中托架400体现为存储托架;或者实施例中的存储器设备的集合,签证托架400体现为存储器托架。
[0043]
托架400还包括被安装到无机箱电路板基板602的顶部一侧650的一个或多个附加物理资源630。在说明性实施例中,附加物理资源包括网络接口控制器(nic),如下面更详细讨论的。当然,在其他实施例中,取决于托架400的类型和功能,物理资源630可以包括附加
或其他的电组件、电路和/或设备。
[0044]
物理资源620经由输入/输出(i/o)子系统622通信地耦合到物理资源630。i/o子系统622可以体现为电路和/或组件,以促进与托架400的物理资源620、物理资源630和/或其他组件的输入/输出操作。例如,i/o子系统622可以体现为或以其他方式包括存储器控制器中心、输入/输出控制中心、集成传感器中心、固件设备、通信链路(例如,点对点链路、总线链路、电线、电缆、波导、光导、印刷电路板迹线等)和/或其他组件和子系统,以促进输入/输出操作。在说明性实施例中,i/o子系统622被体现为或以其他方式包括双倍数据速率4(ddr4)数据总线或ddr5数据总线。
[0045]
在一些实施例中,托架400还可以包括资源到资源互连624。资源到资源互连624可以被体现为能够促进资源到资源通信的任何类型的通信互连。在说明性实施例中,资源到资源互连624被体现为高速点对点互连(例如,比i/o子系统622更快)。例如,资源到资源互连624可以被体现为快速路径互连(qpi)、超路径(ultrapath)互连(upi)或专用于资源到资源通信的其他高速点对点互连。
[0046]
托架400还包括电源连接器640,该电源连接器640被配置为当托架400被安装到对应的机架240中时与机架240的对应的电源连接器配合。托架400经由电源连接器640从机架240的电源接收电力,以向托架400的各种电组件供电。即,托架400不包括用于向托架400的电组件提供电力的任何本地电源(即,板载电源)。排除本地或板载电源有助于减少无机箱电路板基板602的总体封装面积,这可以增加被安装到无机箱电路板基板602上的各种电组件的热冷却特性,如上面所讨论的。在一些实施例中,将电压调节器放置在与处理器820(参见图8)直接相对的无机箱电路板基板602的底部一侧750(参见图7)上,并且电力通过延伸通过电路板基板602的过孔从电压调节器路由到处理器820。相对于典型的印刷电路板,这样的配置提供了增加的热预算、附加的电流和/或电压以及更好的电压控制,在典型的印刷电路板中,处理器电力部分地通过印刷电路迹线从电压调节器递送。
[0047]
在一些实施例中,托架400还可以包括安装特征642,该安装特征642被配置为与机器人的安装臂或其他结构配合,以促进机器人将托架600放置在机架240中。安装特征642可以被体现为允许机器人抓握托架400而不会损坏无机箱电路板基板602或被安装在其上的电组件的任何类型的物理结构。例如,在一些实施例中,安装特征642可以被体现为附接到无机箱电路板基板602的非导电焊盘。在其他实施例中,安装特征可以被体现为附接到无机箱电路板基板602的托架、支架或其他类似结构。安装特征642的特定数量、形状、尺寸和/或构造可以取决于被配置为管理托架400的机器人的设计。
[0048]
现在参考图7,除了被安装到无机箱电路板基板602的顶部一侧650上的物理资源630之外,托架400还包括被安装到无机箱电路板基板602的底部一侧750的一个或多个存储器设备720。即,无机箱电路板基板602被体现为双面电路板。物理资源620经由i/o子系统622通信地耦合至存储器设备720。例如,物理资源620和存储器设备720可以通过延伸通过无机箱电路板基板602的一个或多个过孔通信地耦合。在一些实施例中,每个物理资源620可以通信地耦合至一个或多个存储器设备720的不同集合。可替代地,在其他实施例中,每个物理资源620可以通信地耦合至每个存储器设备720。
[0049]
存储器设备720可以被体现为能够在托架400的操作期间存储用于物理资源620的数据的任何类型的存储器设备,例如,任何类型的易失性存储器(例如,动态随机存取存储
器(dram)等)或非易失性存储器。易失性存储器可以是要求电力以维持由介质存储的数据的状态的存储介质。易失性存储器的非限制性示例可以包括各种类型的随机存取存储器(ram),例如,动态随机存取存储器(dram)或静态随机存取存储器(sram)。可以在存储器模块中使用的一种特定类型的dram是同步动态随机存取存储器(sdram)。在特定实施例中,存储器组件的dram可以符合由jedec颁布的标准,例如,用于ddr sdram的jesd79f、用于ddr2 sdram的jesd79-2f、用于ddr3 sdram的jesd79-3f、用于ddr4 sdram的jesd79-4a、用于低功率ddr(lpddr)的jesd209、用于lpddr2的jesd209-2、用于lpddr3的jesd209-3以及用于lpddr4的jesd209-4。这样的标准(和类似标准)可以被称为基于ddr的标准,并且实现这种标准的存储设备的通信接口可以被称为基于ddr的接口。
[0050]
在一个实施例中,存储器设备是块可寻址存储器设备,例如,基于nand或nor技术的那些存储器设备。存储器设备还可以包括下一代非易失性设备,例如,intel 3d xpoint
tm
存储器或其他字节可寻址就地写入非易失性存储器设备。在一个实施例中,存储器设备可以是或可以包括使用硫族化物玻璃的存储器设备、多阈值级别nand闪速存储器、nor闪速存储器、单级或多级相变存储器(pcm)、电阻式存储器、纳米线存储器、铁电晶体管随机存取存储器(fetram)、反铁电存储器、结合了忆阻器技术的磁阻随机存取存储器(mram)、包括金属氧化物基底的电阻式存储器、氧空位基和导电桥随机存取存储器(cb-ram)或自旋转移矩(stt)-mram、基于自旋电子磁性结存储器的设备、基于磁性隧穿结(mtj)的设备、基于dw(域壁)和sot(自旋轨道转移)的设备、基于晶闸管的存储器设备,或以上存储器中任一个的组合,或者其他存储器。存储器设备可以指代管芯本身和/或指代封装的存储器产品。在一些实施例中,存储器设备可以包括无晶体管的可堆叠交叉点架构,其中存储器单元位于字线和位线的交点处并且可单独寻址,并且其中位存储基于体电阻的改变。
[0051]
现在参考图8,在一些实施例中,托架400可以被体现为计算托架800。计算托架800被优化或以其他方式被配置为执行计算任务。当然,如上面所讨论的,计算托架800可以依赖于其他托架(例如,加速托架和/或存储托架)来执行这样的计算任务。计算托架800包括与托架400的物理资源类似的各种物理资源(例如,电组件),这些物理资源已经在图8中使用相同的附图标记标识。上面关于图6和图7提供的对这种组件的描述适用于计算托架800的对应的组件,并且为了清楚地描述计算托架800在本文不再重复。
[0052]
在说明性计算托架800中,物理资源620被体现为处理器820。尽管在图8中仅示出了两个处理器820,但是应当认识到的是,在其他实施例中,计算托架800可以包括附加处理器820。说明性地,处理器820被体现为高性能处理器820,并且可以被配置为以相对较高的额定功率进行操作。尽管与典型处理器(其以约155-230w进行操作)相比,以较高的额定功率进行操作的处理器820生成附加的热量,但上面讨论的无机箱电路板基板602的增强的热冷却特性促进了较高功率的操作。例如,在说明性实施例中,处理器820被配置为以至少250w的额定功率进行操作。在一些实施例中,处理器820可以被配置为以至少350w的额定功率进行操作。
[0053]
在一些实施例中,计算托架800还可以包括处理器到处理器互连842。类似于上面讨论的托架400的资源到资源互连624,处理器到处理器互连842可以被体现为能够促进处理器到处理器互连842通信的任何类型的通信互连。在说明性实施例中,处理器到处理器互连842被体现为高速点对点互连(例如,比i/o子系统622更快)。例如,处理器到处理器互连
842可以被体现为快速路径互连(qpi)、超路径(ultrapath)互连(upi)或专用于处理器到处理器通信的其他高速点对点互连。
[0054]
计算托架800还包括通信电路830。说明性通信电路830包括网络接口控制器(nic)832,该nic 832也可以被称为主机结构接口(hfi)。nic 832可以被体现为或以其他方式包括可以由计算托架800用于与另一计算设备(例如,与其他托架400)进行连接的任何类型的集成电路、分立电路、控制器芯片、芯片组、外接板、子卡、网络接口卡或其他设备。在一些实施例中,nic 832可以被体现为包括一个或多个处理器的片上系统(soc)的一部分,或者被包括在也包含一个或多个处理器的多芯片封装中。在一些实施例中,nic 832可以包括两者均位于nic 832本地的本地处理器(未示出)和/或本地存储器(未示出)。在这样的实施例中,nic 832的本地处理器可以能够执行处理器820的功能中的一个或多个。另外地或可替代地,在这样的实施例中,nic 832的本地存储器可以在板级、插座级、芯片级和/或其他级别被集成到计算托架的一个或多个组件中。
[0055]
通信电路830通信地耦合至光学数据连接器834。光学数据连接器834被配置为当计算托架800被安装到机架240中时,与机架240的对应的光学数据连接器配合。说明性地,光学数据连接器834包括从光学数据连接器834的配合表面引向光学收发器836的多条光纤。光学收发器836被配置为将来自机架侧光学数据连接器的传入光信号转换为电信号,并且将电信号转换为去往机架侧光学数据连接器的传出光信号。尽管光学收发器836在说明性实施例中被示为形成光学数据连接器834的一部分,但在其他实施例中,光学收发器836可以形成通信电路830的一部分。
[0056]
在一些实施例中,计算托架800还可以包括扩展连接器840。在这样的实施例中,扩展连接器840被配置为与扩展无机箱电路板基板的对应的连接器配合,以向计算托架800提供附加的物理资源。在计算托架800的操作期间,附加的物理资源可以例如由处理器820使用。扩展无机箱电路板基板可以与上面讨论的无机箱电路板基板602基本相似,并且可以包括被安装在其上的各种电组件。被安装到扩展无机箱电路板基板上的特定电组件可以取决于扩展无机箱电路板基板的预期功能。例如,扩展无机箱电路板基板可以提供附加的计算资源、存储器资源和/或存储资源。因此,扩展无机箱电路板基板的附加的物理资源可以包括但不限于处理器、存储器设备、存储设备和/或加速器电路,包括例如现场可编程门阵列(fpga)、专用集成电路(asic)、安全协处理器、图形处理单元(gpu)、机器学习电路或其他专门的处理器、控制器、设备和/或电路。
[0057]
现在参考图9,示出了计算托架800的说明性实施例。如所示的,处理器820、通信电路830以及光学数据连接器834被安装到无机箱电路板基板602的顶部一侧650。可以使用任何合适的附接或安装技术将计算托架800的物理资源安装到无机箱电路板基板602。例如,各种物理资源可以被安装到对应的插座(例如,处理器插座)、支持物或托架中。在一些情况下,电组件中的一些可以经由焊接或类似技术直接安装到无机箱电路板基板602。
[0058]
如上面所讨论的,各个处理器820和通信电路830被安装到无机箱电路板基板602的顶部一侧650,使得不会有两个发热的电组件相互遮蔽。在说明性实施例中,处理器820和通信电路830被安装到无机箱电路板基板602的顶部一侧650上的对应的位置,使得这些物理资源中没有两个物理资源沿着气流路径608的方向与其他物理资源线性地成一直线。应当认识到的是,尽管光学数据连接器834与通信电路830成一直线,但光学数据连接器834在
操作期间不产生热量或产生标称热量。
[0059]
计算托架800的存储器设备720被安装到无机箱电路板基板602的底部一侧750,如上面关于托架400所讨论的。尽管存储器设备720被安装到底部一侧750,但存储器设备720经由i/o子系统622通信地耦合至位于顶部一侧650的处理器820。因为无机箱电路板基板602被体现为双面电路板,所以存储器设备720和处理器820可以通过延伸通过无机箱电路板基板602的一个或多个过孔、连接器或其他机构通信地耦合。当然,在一些实施例中,每个处理器820可以通信地耦合至一个或多个存储器设备720的不同集合。可替代地,在其他实施例中,每个处理器820可以通信地耦合至每个存储器设备720。在一些实施例中,存储器设备720可以被安装到无机箱电路板基板602的底部一侧上的一个或多个存储器夹层,并且可以通过球栅阵列与对应的处理器820互连。
[0060]
处理器820中的每一个包括固定在其上的散热器850。由于将存储器设备720安装到无机箱电路板基板602的底部一侧750(以及对应的机架240中的托架400的垂直间隔),因此无机箱电路板基板602的顶部一侧650包括附加的“自由”区域或空间,其促进了使用相对于典型服务器中使用的传统散热器而言具有更大尺寸的散热器850。另外地,由于无机箱电路板基板602的改进的热冷却特性,因此处理器散热器850均不包括附接到其上的冷却风扇。即,散热器850中的每一个被体现为无风扇散热器。在一些实施例中,由于散热器850的增加的尺寸,被安装到处理器820顶上的散热器850可以在气流路径608的方向上与附接到通信电路830的散热器重叠,如图9说明性表示的。
[0061]
现在参考图10,在一些实施例中,托架400可以体现为加速器托架1000。加速器托架1000被配置为执行专门的计算任务,例如,机器学习、加密、哈希或其他计算密集的任务。例如,在一些实施例中,计算托架800可以在操作期间将任务卸载到加速器托架1000。加速器托架1000包括与托架400和/或计算托架800的组件类似的各种组件,这些组件已经在图10中使用相同的附图标记标识。上面关于图6、图7和图8提供的对这种组件的描述适用于加速器托架1000的对应的组件,并且为了清楚地描述加速器托架1000在本文不再重复。
[0062]
在说明性加速器托架1000中,物理资源620被体现为加速器电路1020。尽管在图10中仅示出了两个加速器电路1020,但是应当认识到的是,在其他实施例中,加速器托架1000可以包括附加的加速器电路1020。例如,如图11中示出的,在一些实施例中,加速器托架1000可以包括四个加速器电路1020。加速器电路1020可以体现为能够执行计算或处理操作的任何类型的处理器、协处理器、计算电路或其他设备。例如,加速器电路1020可以体现为例如现场可编程门阵列(fpga)、专用集成电路(asic)、安全协处理器、图形处理单元(gpu)、神经形态处理器单元、量子计算机、机器学习电路或其他专门的处理器、控制器、设备和/或电路。
[0063]
在一些实施例中,加速器托架1000还可以包括加速器到加速器互连1042。类似于上面讨论的托架600的资源到资源互连624,加速器到加速器互连1042可以被体现为能够促进加速器到加速器通信的任何类型的通信互连。在说明性实施例中,加速器到加速器互连1042被体现为高速点对点互连(例如,比i/o子系统622更快)。例如,加速器到加速器互连1042可以被体现为快速路径互连(qpi)、超路径(ultrapath)互连(upi)或专用于处理器到处理器通信的其他高速点对点互连。在一些实施例中,加速器电路1020可以与通过i/o子系统622连接到nic 832和存储器720的主要加速器电路1020以及通过主要加速器电路1020连
接到nic 832和存储器720的次要加速器电路1020进行菊花链连接。
[0064]
现在参考图11,示出了加速器托架1000的说明性实施例。如上面所讨论的,加速器电路1020、通信电路830以及光学数据连接器834被安装到无机箱电路板基板602的顶部一侧650。同样,如上面所讨论的,各个加速器电路1020和通信电路830被安装到无机箱电路板基板602的顶部一侧650,使得不会有两个发热的电组件相互遮蔽。加速器托架1000的存储器设备720被安装到无机箱电路板基板602的底部一侧750,如上面关于托架600所讨论的。尽管存储器设备720被安装到底部一侧750,但存储器设备720经由i/o子系统622(例如,通过过孔)通信地耦合至位于顶部一侧650的加速器电路1020。此外,加速器电路1020中的每一个可以包括散热器1070,该散热器1070比服务器中使用的传统散热器更大。如上面参考散热器870所讨论的,由于由存储器资源720提供的“自由”区域位于无机箱电路板基板602的底部一侧750而不是顶部一侧650上,因此散热器1070可以比传统散热器更大。
[0065]
现在参考图12,在一些实施例中,托架400可以被体现为存储托架1200。存储托架1200被配置为将数据存储在存储托架1200本地的数据存储装置1250中。例如,在操作期间,计算托架800或加速器托架1000可以存储数据并从存储托架1200的数据存储装置1250中取回数据。存储托架1200包括与托架400和/或计算托架800的组件类似的各种组件,这些组件已经在图12中使用相同的附图标记标识。上面关于图6、图7和图8提供的对这种组件的描述适用于存储托架1200的对应的组件,并且为了清楚地描述存储托架1200在本文不再重复。
[0066]
在说明性存储托架1200中,物理资源620被体现为存储控制器1220。尽管在图12中仅示出了两个存储控制器1220,但是应当认识到的是,在其他实施例中,存储托架1200可以包括附加的存储控制器1220。存储控制器1220可以被体现为能够基于经由通信电路830接收的请求来控制数据向数据存储装置1250中的存储和取回的任何类型的处理器、控制器或控制电路。在说明性实施例中,存储控制器1220被体现为相对低功率的处理器或控制器。例如,在一些实施例中,存储控制器1220可以被配置为以约75瓦特的额定功率进行操作。
[0067]
在一些实施例中,存储托架1200还可以包括控制器到控制器互连1242。类似于上面讨论的托架400的资源到资源互连624,控制器到控制器互连1242可以被体现为能够促进控制器到控制器通信的任何类型的通信互连。在说明性实施例中,控制器到控制器互连1242被体现为高速点对点互连(例如,比i/o子系统622更快)。例如,控制器到控制器互连1242可以被体现为快速路径互连(qpi)、超路径(ultrapath)互连(upi)或专用于处理器到处理器通信的其他高速点对点互连。
[0068]
现在参考图13,示出了存储托架1200的说明性实施例。在说明性实施例中,数据存储装置1250被体现为或以其他方式包括被配置为容纳一个或多个固态驱动器(ssd)1254的存储笼(storage cage)1252。为此,存储笼1252包括多个安装槽1256,安装槽1256中的每一个被配置为接纳对应的固态驱动器1254。安装槽1256中的每一个包括多个驱动器引导件1258,这些驱动器引导件协作以限定对应的安装槽1256的进入开口1260。存储笼1252被固定到无机箱电路板基板602,使得进入开口背向无机箱电路板基板602(即,朝向无机箱电路板基板602的前部)。因此,在存储托架1200被安装到对应的机架204中的同时,可以访问固态驱动器1254。例如,在存储托架1200保持安装在对应的机架240中的同时,固态驱动器1254可以(例如,经由机器人)交换出机架240。
[0069]
存储笼1252说明性地包括十六个安装槽1256,并且能够安装并且存储十六个固态
驱动器1254。当然,在其他实施例中,存储笼1252可以被配置为存储附加的或更少的固态驱动器1254。另外地,在说明性实施例中,固态驱动器被垂直地安装在存储笼1252中,但在其他实施例中,固态驱动器可以以不同的定向被安装在存储笼1252中。每个固态驱动器1254可以被体现为能够存储长期数据的任何类型的数据存储设备。为此,固态驱动器1254可以包括上面讨论的易失性和非易失性存储器设备。
[0070]
如图13中示出的,存储控制器1220、通信电路830以及光学数据连接器834被说明性地安装到无机箱电路板基板602的顶部一侧650。同样,如上面所讨论的,可以使用任何合适的附接或安装技术(包括例如插座(例如,处理器插座)、支持物、托架、焊接连接和/或其他安装或固定技术)将存储托架1200的电组件安装到无机箱电路板基板602。
[0071]
如上面所讨论的,各个存储控制器1220和通信电路830被安装到无机箱电路板基板602的顶部一侧650,使得不会有两个发热的电组件相互遮蔽。例如,存储控制器1220和通信电路830被安装到无机箱电路板基板602的顶部一侧650上的对应的位置,使得这些电组件中没有两个电组件沿着气流路径608的方向彼此线性地成一直线。
[0072]
存储托架1200的存储器设备720被安装到无机箱电路板基板602的底部一侧750,如上面关于托架400所讨论的。尽管存储器设备720被安装到底部一侧750,但存储器设备720经由i/o子系统622通信地耦合至位于顶部一侧650的存储控制器1220。同样,因为无机箱电路板基板602被体现为双面电路板,所以存储器设备720和存储控制器1220可以通过延伸通过无机箱电路板基板602的一个或多个过孔、连接器或其他机构通信地耦合。存储控制器1220中的每一个包括固定在其上的散热器1270。如上面所讨论的,由于存储托架1200的无机箱电路板基板602的改进的热冷却特性,因此散热器1270均不包括附接到其上的冷却风扇。即,散热器1270中的每一个被体现为无风扇散热器。
[0073]
现在参考图14,在一些实施例中,托架400可以被体现为存储器托架1400。存储器托架1400被优化或以其他方式被配置为向其他托架400(例如,计算托架800、加速器托架1000等)提供对存储托架1200本地的(例如,在存储器设备720的两个或更多个集合1430、1432中的)存储器池的访问。例如,在操作期间,计算托架800或加速器托架1000可以使用映射到存储器集合1430、1432中的物理地址的逻辑地址空间来远程地写入存储器托架1200的存储器集合1430、1432中的一个或多个和/或从其中读取。存储器托架1400包括与托架400和/或计算托架800的组件类似的各种组件,这些组件已经在图14中使用相同的附图标记标识。上面关于图6、图7和图8提供的对这些组件的描述适用于存储器托架1400的对应的组件,并且为了清楚地描述存储器托架1400在本文不再重复。
[0074]
在说明性存储器托架1400中,物理资源620被体现为存储器控制器1420。尽管在图14中仅示出了两个存储器控制器1420,但是应当认识到的是,在其他实施例中,存储器托架1400可以包括附加的存储器控制器1420。存储器控制器1420可以被体现为能够基于经由通信电路830接收的请求来控制数据向存储器集合1430、1432的写入和读取的任何类型的处理器、控制器或控制电路。在说明性实施例中,每个存储器控制器1420连接到对应的存储器集合1430、1432,以写入对应的存储器集合1430、1432内的存储器设备720以及从其中读取,并且强制执行与已经向存储托架1400发送请求以执行存储器访问操作(例如,读取或写入)的托架400相关联的任何许可(例如,读取、写入等)。
[0075]
在一些实施例中,存储器托架1400还可以包括控制器到控制器互连1442。类似于
上面讨论的托架400的资源到资源互连624,控制器到控制器互连1442可以被体现为能够促进控制器到控制器通信的任何类型的通信互连。在说明性实施例中,控制器到控制器互连1442被体现为高速点对点互连(例如,比i/o子系统622更快)。例如,控制器到控制器互连1442可以被体现为快速路径互连(qpi)、超路径(ultrapath)互连(upi)或专用于处理器到处理器通信的其他高速点对点互连。因此,在一些实施例中,存储器控制器1420可以通过控制器到控制器互连1442访问与另一存储器控制器1420相关联的存储器集合1432内的存储器。在一些实施例中,可扩展存储器控制器由在存储器托架(例如,存储器托架1400)上的多个较小的存储器控制器(在本文中被称为“小芯片”)制成。小芯片可以是互连的(例如,使用emib(嵌入式多管芯互连桥))。组合的小芯片存储器控制器可以扩展到相对大量的存储控制器和i/o端口(例如,多达16个存储器通道)。在一些实施例中,存储器控制器1420可以实现存储器交织(例如,一个存储器地址被映射到存储器集合1430,下一个存储器地址被映射到存储器集合1432,并且第三个地址被映射到存储器集合1430等)。可以在存储器控制器1420内管理交织,或者从跨网络链接到存储器集合1430、1432的cpu插座(例如,计算托架800的cpu插座)管理交织,并且与从相同的存储器设备访问连续的存储器地址相比,可以改进与执行存储器访问操作相关联的时延。
[0076]
此外,在一些实施例中,可以使用波导连接器1480通过波导将存储器托架1400连接到(例如,在相同机架240或相邻机架240中的)一个或多个其他托架400。在说明性实施例中,波导是64毫米波导,其提供16个rx(即,接收)通道和16个tx(即,发送)通道。在说明性实施例中,每个通道是16ghz或32ghz。在其他实施例中,频率可以是不同的。使用波导可以在不向光学数据连接器834增加负载的情况下,向另一托架(例如,与存储器托架1400处于相同机架240或相邻机架240中的托架400)提供对存储器池(例如,存储器集合1430、1432)的高吞吐量访问。
[0077]
现在参考图15,可以根据数据中心100来实现用于执行一个或多个工作负载(例如,应用)的系统。在说明性实施例中,系统1510包括协调器服务器1520,该协调器服务器1520可以被体现为包括执行管理软件(例如,诸如openstack之类的云操作环境)的计算设备(例如,计算托架800上的处理器820)的受管节点,该受管节点通信地耦合至多个托架400,这些托架包括大量的计算托架1530(例如,每个与计算托架800类似)、存储器托架1540(例如,每个与存储器托架1400类似)、加速器托架1550(例如,每个与加速器托架1000类似)以及存储托架1560(例如,每个与存储托架1200类似)。托架1530、1540、1550、1560中的一个或多个可以例如由协调器服务器1520分组为受管节点1570,以共同执行工作负载(例如,在虚拟机或容器中执行的应用1532)。受管节点1570可以被体现为来自相同或不同托架400的物理资源620的组合,例如,处理器820、存储器资源720、加速器电路1020或数据存储装置1250。此外,受管节点可以在将工作负载指派给受管节点时或在任何其他时间由协调器服务器1520建立、定义或“拆分”,并且无论当前是否有指派给受管节点的任何工作负载,受管节点都可以存在。在说明性实施例中,协调器服务器1520可以根据与工作负载(例如,应用1532)的服务级别协议相关联的服务质量(qos)目标(例如,与吞吐量、时延、每秒指令等相关联的性能目标),从托架400选择性地分配和/或取消分配物理资源620,和/或从受管节点1570添加或删除一个或多个托架400。在这样做时,协调器服务器1520可以接收指示受管节点1570的每个托架400中的性能状况(例如,吞吐量、时延、每秒指令等)的遥测数据,并且将
遥测数据与服务质量目标进行比较以确定服务质量目标是否得到满足。协调器服务器1520可以另外地确定是否可以从受管节点1570取消分配一个或多个物理资源同时仍然满足qos目标,由此释放那些物理资源以供在另一个受管节点中使用(例如,以执行不同的工作负载)。可替代地,如果qos目标当前没有得到满足,则协调器服务器1520可以确定动态地分配附加的物理资源,以在工作负载(例如,应用1532)正在执行时协助工作负载的执行。类似地,如果协调器服务器1520确定对物理资源的取消分配将导致qos目标仍然得到满足,则协调器服务器1520可以确定从受管节点动态地取消分配物理资源。
[0078]
另外地,在一些实施例中,协调器服务器1520可以例如通过标识工作负载(例如,应用1532)的执行阶段(例如,在其中执行不同操作的时间段,每个操作具有不同的资源利用特性)以及抢先地标识数据中心100中的可用资源并将其分配给受管节点1570(例如,在相关联阶段开始的预定义时间段内)来标识工作负载(例如,应用1532)的资源利用的趋势。在一些实施例中,协调器服务器1520可以基于各种时延和分配方案来对性能进行建模,以将工作负载放置在数据中心100中的计算托架和其他资源(例如,加速器托架、存储器托架、存储托架)之中。例如,协调器服务器1520可以利用考虑托架400上的资源的性能(例如,fpga性能,存储器访问时延等)以及通过网络到资源(例如,fpga)的路径的性能(例如,拥塞、时延、带宽)的模型。因此,协调器服务器1520可以基于与数据中心100中可用的每个潜在资源相关联的总时延(例如,除了通过与执行工作负载的计算托架与资源所位于的托架400之间的网络的路径相关联的时延之外,与资源本身的性能相关联的时延)来确定哪个(那些)资源应该用于哪些工作负载。
[0079]
在一些实施例中,协调器服务器1520可以使用从托架400报告的遥测数据(例如,温度、风扇速度等)生成在数据中心100中的热量生成图,并且根据热量生成图以及与不同工作负载相关联的预测的热量生成来向受管节点分配资源,以维持数据中心100中的目标温度和热量分布。另外地或可替代地,在一些实施例中,协调器服务器1520可以将所接收的遥测数据组织成指示受管节点之间的关系(例如,空间关系(例如,数据中心100内的受管节点的资源的物理位置)和/或功能关系(例如,按受管节点提供服务所针对的客户、典型地由受管节点执行的功能类型、典型地彼此之间共享或交换工作负载的受管节点等对受管节点进行的分组))的分层模型。基于受管节点中物理位置和资源的差异,给定工作负载可以在不同的受管节点的资源之间展现出不同的资源利用(例如,导致不同的内部温度、使用处理器或存储器容量的不同百分比)。协调器服务器1520可以基于存储在分层模型中的遥测数据来确定差异,并且如果工作负载从一个受管节点重新指派给另一受管节点,则可以将该差异作为因素计入对工作负载的未来资源利用的预测中,以准确地平衡数据中心100中的资源利用。
[0080]
为了减少协调器服务器1520上的计算负载和网络上的数据传输负载,在一些实施例中,协调器服务器1520可以向托架400发送自检信息,以使每个托架400能够在本地(例如,在托架400上)确定由托架400生成的遥测数据是否满足一个或多个条件(例如,满足预定义阈值的可用容量、满足预定义阈值的温度等)。然后,每个托架400可以返回向协调器服务器1520报告简化的结果(例如,是或否),协调器服务器1520可以利用该简化的结果来确定对受管节点的资源分配。
[0081]
现在参考图16,用于基于时延的服务级别协议的说明性系统1600包括通过网络
1606进行通信的控制器设备1602和多个主机设备1604。在使用中,如下面进一步描述的,为rdma网络定义了一个或多个服务级别目标(slo)。系统1600使用基于时延的计算来针对slo测量rdma请求。在主机设备1604的网络接口控制器(nic)处的计数器可以辅助时延计算。系统1600基于需要校正多少偏差以满足slo来使用灵活的缓冲器管理以满足slo。因此,系统1600不基于静态rdma会话优先级而是基于事务时延监视独立地处理rdma会话的事务来实现用于i/o系统的调度算法。另外地,与基于pfc和dcb的流管理以及具有分配的带宽的基于区分服务代码点(dscp)的优先级不同,系统1600基于会话时延执行自校正slo管理,这可以改进实现的吞吐量/实际吞吐量。会话实际吞吐量等于接收器按顺序接收到的分组的最大数量乘以每个测量间隔的分组大小。
[0082]
控制器设备1602可以被体现为能够执行本文描述的功能的任何类型的计算设备。例如,控制器设备1602可以被实现为但不限于托架400、计算托架800、加速器托架1000、存储托架1200、计算机、服务器、分布式计算设备、分解式计算设备、网络设备、多处理器系统、服务器、工作站和/或消费者电子设备。类似地,主机设备1604中的每一个可以被体现为能够执行本文描述的功能的任何类型的计算设备,包括但不限于托架400、计算托架800、加速器托架1000、存储托架1200、计算机、服务器、分布式计算设备、分解式计算设备、网络设备、多处理器系统、服务器、工作站和/或消费者电子设备。说明性地,控制器设备1602可以被体现为计算托架800,并且主机设备1604中的每一个可以被体现为存储托架1200。如下面进一步描述的,主机设备1604彼此耦合并且通过高速存储结构或支持数据存储传输的其他高速网络1606(例如,在结构上的非易失性存储器快速(nvme-of)传输、rdma传输或其他传输)耦合至控制器设备1602。
[0083]
如下面更详细地讨论的,系统1600的元件被配置为通过网络1606彼此发送和接收数据和/或与系统1600的其他设备发送和接收数据。网络1606可以体现为任何数量的各种有线和/或无线网络。例如,网络1606可以被体现或以其他方式包括为有线或无线局域网(lan)和/或有线或无线广域网(wan)。因此,网络1606可以包括用于促进系统1600的设备之间的通信的任何数量的附加设备,例如,附加计算机、路由器和交换机。如所示的,网络1606说明性地包括网络交换机1608,该网络交换机1608可以被体现为机架顶部(tor)交换机、机架中间(mor)交换机、行尾交换机、直槽交换机、骨干交换机或其他网络设备。当然,网络1606可以包括多个附加的交换机、路由器、网关或其他网络设备。
[0084]
在一些实施例中,控制器设备1602和/或主机设备1604中的每一个可以被体现为经虚拟化的系统(例如,在(多个)经虚拟化的环境中执行的一个或多个功能,例如,(多个)虚拟机或(多个)容器,其中基础硬件资源对在(多个)经虚拟化的环境中执行的软件表现为物理硬件,但通过抽象层与软件分开)或分解式系统(例如,由一个或多个基础硬件设备组成)。在一些实施例中,控制器设备1602和/或主机设备1604的某些功能可以被复制和/或并入其他设备中。例如,在一些实施例中,控制器设备1602的某些功能可以由一个或多个主机设备1604和/或网络交换机1608执行。
[0085]
仍然参考图16,在说明性实施例中,控制器设备1602在操作期间建立环境1620。说明性环境1620包括rdma会话控制器1622、软件定义网络(sdn)控制器1624和结构控制器1626。环境1620的各种组件可以被体现为硬件、固件、软件或其组合。因此,在一些实施例中,环境1620的一个或多个组件可以被体现为电路或电子设备的集合(例如,rdma会话控制
器电路1622、sdn控制器电路1624和/或结构控制器电路1626)。应当认识到的是,在这样的实施例中,rdma会话控制器电路1622、sdn控制器电路1624和/或结构控制器电路1626中的一个或多个可以形成处理器820、i/o子系统622、hfi 832和/或控制器设备1602的其他组件的一部分。另外地,在一些实施例中,说明性组件中的一个或多个可以形成另一组件的一部分和/或说明性组件中的一个或多个可以彼此独立。
[0086]
rdma会话控制器1622被配置为确定针对rdma会话的服务级别目标(slo)。rdma会话在两个主机设备1604之间建立并且包括多个rdma请求。slo可以指示针对rdma会话的rdma请求中的一定百分比的保证的最大时延。
[0087]
sdn控制器1624被配置为请求通过网络交换机1608的入口转发引擎将队列资源指派给一个或多个rdma请求。队列资源可以包括网络交换机1608的交换机缓冲器。可以通过sdn控制器1624的一个或多个子组件(例如,交换机遥测服务)来执行这些功能。如下面结合图20进一步讨论的,交换机1608可以包括队列资源管理器,该队列资源管理器用于进行以下操作:响应于队列资源的指派的请求而将队列资源分配给队列,响应于正在被调度的rdma请求而收回队列资源,并且将队列资源返回到空闲池。
[0088]
结构控制器1626被配置为从主机设备1604接收时延数据。时延数据指示rdma会话的rdma请求的时延。在一些实施例中,时延数据可以被提供给交换机1608和/或主机设备1604以用于调度rdma请求。
[0089]
仍然参考图16,在说明性实施例中,每个主机设备1604在操作期间建立环境1640。说明性环境1640包括rdma会话端点1642、请求调度器1644和时延监视器1646。环境1640的各种组件可以被体现为硬件、固件、软件或其组合。因此,在一些实施例中,环境1640的组件中的一个或多个可以被体现为电路或电子设备的集合(例如,rdma会话端点电路1642、请求调度器电路1644和/或时延监视器电路1646)。应当认识到的是,在这样的实施例中,rdma会话端点电路1642、请求调度器电路1644和/或时延监视器电路1646中的一个或多个可以形成处理器820、i/o子系统622、hfi 832和/或主机设备1604的其他组件的一部分。此外,如所示的,每个主机设备1604可以包括一个或多个i/o设备1648。i/o设备1648可以被体现为任何存储设备(例如,nvme-of设备或其他数据存储装置1250)、加速器设备(例如,fpga、gpu、asic或其他加速器电路1020)或可通过rdma请求访问的其他i/o设备。另外地,在一些实施例中,说明性组件中的一个或多个可以形成另一组件的一部分和/或说明性组件中的一个或多个可以彼此独立。
[0090]
rdma会话端点1642被配置为在rdma会话中与另一主机设备1604发送和/或接收rdma请求。例如,rdma会话端点1642可以是经由rdma会话访问远程主机设备1604的i/o设备1648的应用。作为另一示例,rdma会话端点1642可以是经由rdma会话向远程主机设备1604提供i/o设备1648服务的服务器。
[0091]
时延监视器1646被配置为确定指示rdma会话的rdma请求的时延的时延数据。可以从指示rdma会话业务的一个或多个计数器中读取时延数据或者时延数据可以以其他方式基于该一个或多个计数器。计数器可以由主机设备1604的hfi 832或其他网络接口控制器提供或以其他方式包括在其中。
[0092]
请求调度器1644被配置为根据slo和与rdma请求相关联的时延数据来确定与rdma请求相关联的优先级。确定优先级可以包括确定完成rdma请求的时间是否超过与slo相关
联的时间间隔。可以根据i/o设备1648的与rdma请求相关联的时延来进一步确定优先级。请求调度器1644还被配置为基于优先级调度rdma请求。基于优先级调度rdma请求可以包括基于优先级选择网络交换机1608的队列,并且将rdma请求提交到该队列。应当理解,在一些实施例中,除了主机设备1604之外或替代于主机设备1604,调度rdma请求可以由诸如控制器设备1602和/或网络交换机1608之类的其他设备执行。
[0093]
现在参考图17,在说明性实施例中,交换机1608在操作期间建立环境1700。说明性环境1700包括队列资源管理器1702、多个入口转发引擎1712、结构控制器1716和交换机遥测服务1718。交换机1608的环境1700的各种组件可以被体现为硬件、固件、软件或其组合。此外,在一些实施例中,环境1700的各种组件可以被包括在系统1600的其他组件中或以其他方式由其提供。例如,在一些实施例中,结构控制器1716可以被体现为或以其他方式耦合到控制器设备1602的结构控制器1626和/或交换机遥测服务1718可以被包括在控制器设备1602的sdn控制器1624中。另外地,在一些实施例中,说明性组件中的一个或多个可以形成另一组件的一部分和/或说明性组件中的一个或多个可以彼此独立。
[0094]
如所示的,每个入口转发引擎1712包括多个队列1714。基于调度灵活性,队列1714(包括例如交换机缓冲器)可以具有不同的大小和类型。交换机遥测服务1718(例如,在sdn控制器1624中)将确定业务流(以及通过入口转发引擎1712的请求)以指派附加资源。资源分配在交换机系统内集中管理。队列资源管理器1702把各个队列1714看作可以基于业务需求进行指派/分配或收回/重新分配的空闲资源。如所示的,队列资源管理器1702包括由结构控制器1716设置的一个或多个资源管理器策略1704。队列资源管理器1702可以转换通过多个状态,包括资源分配1706、收回1708和空闲池1710。
[0095]
现在参考图18,在使用中,主机设备1604可以执行用于监视rdma时延的方法1800。应当认识到的是,在一些实施例中,方法1800的操作可以由主机设备1604的环境1640的一个或多个组件执行,如图16中示出的。方法1800开始于框1802中,其中主机设备1604监视针对rdma会话的时延。在一些实施例中,在框1804中,主机设备1604可以从hfi 832或其他网络接口控制器读取一个或多个nic性能计数器。性能计数器可以指示业务量或其他数据,这些业务量或数据指示用于完成与hfi 832的rdma请求的时延。在框1806中,主机设备1604可以使用性能计数器数据来计算rdma会话时延。主机设备1604可以使用下面的等式1来计算rdma会话时延。在等式1中,rdmarxsnd和rdmatxsnd分别是对接收到的和发送的rdma发送消息的计数。rdmarxwrs和rdmarxrds分别是对接收到的rdma写入和接收到的rdma读取的计数。rdmatxwrs和rdmatxrds分别是对发送的rdma写入和发送的rdma读取的计数。在一些实施例中,在框1808中,主机设备1604可以计算每端口时延的udp。主机设备1604可以使用下面的等式2来计算每端口时延的upd。在等式2中,udprxpkts和udptxpkts分别是对由端口接收到的和发送的udp分组的计数。
[0096]
rdma会话时延=[(rdmarxsnd+rdmatxsnd)-(rdmarxwrs+rdmarxrds)+((rdmatxwrs+rdmatxrds))
×
分组速率
ꢀꢀꢀꢀ
(1)
[0097]
每udp端口时延=(udprxpkts+udptxpkts)
×
分组速率
ꢀꢀꢀꢀ
(2)
[0098]
在框1810中,主机设备1604将时延数据提供给请求调度器。如上面描述的,主机设备1604可以提供rdma会话时延和/或每udp端口时延。在一些实施例中,主机设备1604可以向请求调度器提供性能计数器数据,该请求调度器可以执行其自己的时延计算。在一些实
施例中,可以将时延数据提供给主机设备1604和/或远程主机设备1604的请求调度器1644,例如以将请求调度到该主机设备1604的i/o设备1648。在一些实施例中,可以将时延数据提供给结构控制器1626或控制器设备1602的其他组件。在一些实施例中,可以将时延数据提供给交换机1608。在提供时延数据之后,方法1800循环回到框1802以继续监视rdma会话时延。
[0099]
现在参考图19,在使用中,主机设备1604可以执行用于优先级调度rdma请求的方法1900。应当认识到的是,在一些实施例中,方法1900的操作可以由主机设备1604的环境1640的一个或多个组件执行,如图16中示出的。方法1900开始于框1902中,其中,主机设备1604接收针对一个或多个rdma会话的服务级别目标(slo)。可以例如从控制器设备1602接收slo。每个slo定义针对rdma会话的要实现的特定的服务质量。可以关于针对rdma请求中的特定百分比的保证的最大rdma会话时延来定义slo。示例slo在下面的表1中示出。
[0100]
slo 1(金)请求中的90%<100μsslo 2(银)请求中的75%<150μsslo 3(铜)请求中的50%<200μs
[0101]
表1.示例slo
[0102]
在框1904中,主机设备1604接收针对rdma会话的时延数据。主机设备1604可以例如接收如上面结合图18所描述地确定的时延数据。在一些实施例中,主机设备1604可以收集或接收指示时延数据的计数器数据。
[0103]
在框1906中,主机设备1604基于会话slo和时延来确定针对rdma请求的优先级。基于完成rdma事务所剩余的时间不超过基于slo的定义的rdma会话时延来指派请求优先级。例如,可以使用下面的等式3来确定请求优先级。在等式3中,较低的计算值具有较高的优先级。大小因子是基于请求和响应大小差异计算出的。i/o设备处理时延可以取决于与rdma请求相关联的特定i/o设备1648,例如,存储设备、加速器设备或其他设备。
[0104]
优先级=slo
–
{时延(rdma_请求)+[大小_因子
×
时延(rdma_请求)]+io_设备_处理}
ꢀꢀꢀꢀꢀ
(3)
[0105]
在框1908中,主机设备1604基于rdma请求优先级调度rdma请求。主机设备1604可以基于利用时延监视确定的优先级来修改会话的事务处理。例如,主机设备1604可以管理hfi 832的端口缓冲器的分配和指派,以根据优先级来管理rdma业务。作为另一示例,主机设备1604可以以优先级次序向i/o设备1648提交rdma请求。在调度rdma请求之后,方法1900循环回到框1902以继续调度rdma请求。
[0106]
现在参考图20,在使用中,交换机1608可以执行用于管理交换机队列资源的方法2000。应当认识到的是,在一些实施例中,方法2000的操作可以由交换机1608的环境1700的一个或多个组件来执行,如图16-17中示出的。方法2000开始于框2002中,其中交换机1608从结构控制器(例如,控制器设备1602)接收队列资源管理策略1704。策略1704可以包括或基于从主机设备1604的hfi 832接收到的rdma时延数据。
[0107]
在框2004中,交换机1608请求用于rdma会话的队列。例如,入口转发引擎1712可以响应于指派从交换机遥测服务(例如,控制器设备1602)接收到的附加资源的请求而请求队列1714。
[0108]
在框2006中,交换机1608基于rdma会话优先级来选择用于调度的队列。可以如上
面结合图19所描述地确定优先级。在框2008中,交换机1608将所选定的队列指派给rdma会话。在框2010中,交换机1608使用所指派的队列来调度rdma会话。例如,交换机1608可以将由入口转发引擎接收到的rdma请求指派给所选定的虚拟队列。可以通过交换机1608的输出端口从该虚拟队列中输出rdma请求。可以基于相关联的队列的调度优先级来输出rdma请求。
[0109]
在框2012中,交换机1608收回队列并将队列返回到空闲池。在rdma请求已经通过输出端口输出之后,可以收回队列资源(例如,交换机缓冲器)。在队列资源返回到空闲池之后,可以将队列资源重新指派给rdma请求。在收回队列资源之后,方法2000循环回到框2004以继续将队列指派给rdma会话。
[0110]
尽管方法1800、1900在图18-19中示出为由主机设备1604执行,但是应当理解,在一些实施例中,方法1800、1900可以由系统1600的不同的计算设备、网络设备或设备的组合来执行。类似地,尽管方法2000在图20中示出为由交换机1608执行,但是应当理解,在一些实施例中,方法2000可以由系统1600的不同的计算设备、网络设备或设备的组合来执行。
[0111]
示例
[0112]
下面提供了本文公开的技术的说明性示例。这些技术的实施例可以包括下面描述的示例中的任何一个或多个以及这些示例的任何组合。
[0113]
示例1包括一种用于网络服务质量管理的计算设备,该计算设备包括:远程直接存储器访问(rdma)会话控制器,其用于确定针对rdma会话的服务级别目标,其中,rdma会话包括多个rdma请求,并且其中,服务级别目标指示针对rdma会话的rdma请求中的一定百分比的保证的最大时延;光纤控制器,其用于从主机设备接收时延数据,其中,时延数据指示rdma会话的rdma请求的时延;以及请求调度器,其用于进行以下操作:(i)根据服务级别目标和时延数据来确定与rdma请求相关联的优先级;以及(ii)基于优先级调度rdma请求。
[0114]
示例2包括示例1的主题,并且其中,会话实际吞吐量包括接收到的分组的最大数量乘以每个测量间隔的分组大小。
[0115]
示例3包括示例1和示例2中任一项的主题,并且其中,时延数据基于指示被包括在主机设备的网络接口控制器中的rdma会话业务的一个或多个计数器。
[0116]
示例4包括示例1-3中任一项的主题,并且其中,主机设备包括计算托架、存储托架或加速器托架。
[0117]
示例5包括示例1-4中任一项的主题,并且其中,确定优先级包括确定完成rdma请求的时间是否超过与服务级别目标相关联的时间间隔。
[0118]
示例6包括示例1-5中任一项的主题,并且其中,确定优先级还包括根据i/o设备的与rdma请求相关联的时延来确定优先级。
[0119]
示例7包括示例1-6中任一项的主题,并且其中,i/o设备包括nvme存储设备。
[0120]
示例8包括示例1-7中任一项的主题,并且其中,i/o设备包括加速器设备。
[0121]
示例9包括示例1-8中任一项的主题,并且其中,基于优先级调度rdma请求包括:基于优先级选择网络交换机的队列;以及响应于队列的选择而将rdma请求提交到队列。
[0122]
示例10包括示例1-9中任一项的主题,并且还包括:交换机遥测服务,其用于请求通过网络交换机的入口转发引擎将队列资源指派给rdma请求;其中,选择队列包括响应于队列资源的指派的请求而选择队列。
[0123]
示例11包括示例1-10中任一项的主题,并且其中,网络交换机包括队列资源管理器,该队列资源管理器用于进行以下操作:响应于队列资源的指派的请求而将队列资源分配给队列;响应于rdma请求的调度而收回队列资源;以及响应于队列资源的收回而将队列资源返回到空闲池。
[0124]
示例12包括示例1-11中任一项的主题,并且其中,队列资源包括网络交换机的交换机缓冲器。
[0125]
示例13包括一种用于网络服务质量管理的方法,该方法包括:由计算设备确定针对远程直接存储器访问(rdma)会话的服务级别目标,其中,rdma会话包括多个rdma请求,并且其中,服务级别目标指示针对rdma会话的rdma请求中的一定百分比的保证的最大时延;由计算设备从主机设备接收时延数据,其中,时延数据指示rdma会话的rdma请求的时延;由计算设备根据服务级别目标和时延数据来确定与rdma请求相关联的优先级;以及由计算设备基于优先级调度rdma请求。
[0126]
示例14包括示例13的主题,并且其中,会话实际吞吐量包括接收到的分组的最大数量乘以每个测量间隔的分组大小。
[0127]
示例15包括示例13和示例14中任一项的主题,并且其中,时延数据基于指示被包括在主机设备的网络接口控制器中的rdma会话业务的一个或多个计数器。
[0128]
示例16包括示例13-15中任一项的主题,并且其中,主机设备包括计算托架、存储托架或加速器托架。
[0129]
示例17包括示例13-16中任一项的主题,并且其中,确定优先级包括确定完成rdma请求的时间是否超过与服务级别目标相关联的时间间隔。
[0130]
示例18包括示例13-17中任一项的主题,并且其中,确定优先级还包括根据i/o设备的与rdma请求相关联的时延来确定优先级。
[0131]
示例19包括示例13-18中任一项的主题,并且其中,i/o设备包括nvme存储设备。
[0132]
示例20包括示例13-19中任一项的主题,并且其中,i/o设备包括加速器设备。
[0133]
示例21包括示例13-20中任一项的主题,并且其中,基于优先级调度rdma请求包括:基于优先级选择网络交换机的队列;以及响应于选择队列而将rdma请求提交到队列。
[0134]
示例22包括示例13-21中任一项的主题,并且还包括:由计算设备请求通过网络交换机的入口转发引擎将队列资源指派给rdma请求;其中,选择队列包括响应于请求队列资源的指派而选择队列。
[0135]
示例23包括示例13-22中任一项的主题,并且还包括:由网络交换机响应于请求队列资源的指派而将队列资源分配给队列;由网络交换机响应于调度rdma请求而收回队列资源;以及由网络交换机响应于收回队列资源而将队列资源返回到空闲池。
[0136]
示例24包括示例13-23中任一项的主题,并且其中,队列资源包括网络交换机的交换机缓冲器。
[0137]
示例25包括一种计算设备,该计算设备包括:处理器;以及存储器,其中存储有多个指令,这些指令当由处理器执行时使得计算设备执行示例13-24中任一项的方法。
[0138]
示例26包括一种或多种非暂时性计算机可读存储介质,该非暂时性计算机可读存储介质包括存储在其上的多个指令,这些指令响应于被执行而导致计算设备执行示例13-24中任一项的方法。
[0139]
示例27包括计算设备,该计算设备包括用于执行示例13-24中任一项的方法的模块。