用于第三方流量监控的不引人注意的支持的制作方法

文档序号:20921608发布日期:2020-05-29 14:13阅读:239来源:国知局
用于第三方流量监控的不引人注意的支持的制作方法

相关申请

本申请要求于2017年10月18日所提交的标题为“用于第三方流量监控的不引人注意的(unobtrusive)支持”的美国专利申请第15/787,658号的优先权以及权益,其全部内容通过引用被结合在这里以用于所有目的。



背景技术:

分布式计算系统通常遭受已知为热点的性能病状,其中负载不平衡影响特定节点而不影响其他节点。受影响的节点变“热”,这通常意味着它们的个体利用率太高,并且它们的服务时间开始遭受影响。在极端情况下,受影响的节点可能完全失效。



技术实现要素:

根据一个方面,在本公开中所描述的主题涉及一种网络接口。所述网络接口包括多个主机存储器区域计数器。所述多个主机存储器区域计数器中的每个主机存储器区域计数器对应于位于被耦接到所述网络接口的主机的物理存储器中的多个存储器区域中的一个存储器区域。所述多个主机存储器区域计数器中的每个主机存储器区域计数器包括与其对应的存储器区域相关联的系统利用率度量。所述网络接口包括流量监控器。所述流量监控器响应于由所述网络接口接收到访问相应的主机存储器区域的请求,来更新所述主机存储器区域计数器。所述网络接口包括控制器。所述控制器访问被耦接到所述网络接口的所述主机计算机上的所述多个存储器区域。所述控制器接收资源请求消息,所述资源请求消息寻找与在所述资源请求消息中所识别的存储器区域相关联的系统利用率数据。所述控制器基于在所述主机存储器区域计数器中所存储的信息,生成对所述资源请求消息的响应,所述主机存储器区域计数器与在所述资源请求消息中所识别的所述存储器区域相关联。

在一些实施方式中,所述网络接口还包括全局计数器,所述全局计数器包括与所述网络接口相关联的系统利用率度量,并且所述流量监控器响应于由所述网络接口接收到访问相应的主机存储器区域的请求,来更新所述全局计数器,以及响应于所述控制器接收到所述资源请求消息,来更新所述全局计数器。

在一些实施方式中,所述多个存储器区域中的一个或多个存储器区域与队列相关联。

在一些实施方式中,生成的对所述资源请求消息的所述响应包括关于在所述资源请求消息中所识别的所述存储器区域的头部和尾部的信息。

在一些实施方式中,生成的对所述资源请求消息的所述响应包括关于所述队列的深度和所述队列的大小中的至少一个的信息。

在一些实施方式中,所述多个存储器区域中的一个或多个存储器区域是注册存储器区域。

在一些实施方式中,一个或多个存储器区域访问密钥被存储在所述网络接口上,每个存储器区域访问密钥对应于多个所述注册存储器区域中的一个注册存储器区域。

在一些实施方式中,一个或多个所述注册存储器区域各自对应于在被耦接到所述网络接口的所述主机计算机上执行的应用。

在一些实施方式中,所述控制器确定所述资源请求消息的源是否被授权为寻找与在所述资源请求消息中所识别的所述存储器区域相关联的系统利用率数据。响应于确定所述资源请求消息的所述源没有被授权为寻找与在所述资源请求消息中所识别的所述存储器区域相关联的系统利用率数据,所述控制器停止对所述资源请求消息的进一步处理。响应于所述控制器确定所述资源请求消息的所述源被授权为寻找与在所述资源请求消息中所识别的所述存储器区域相关联的系统利用率数据,所述流量监控器更新所述主机存储器区域计数器。

在一些实施方式中,所述资源请求消息的所述源是第三方实体,所述第三方实体单独且独立于所述网络接口和被连接到所述网络接口的所述主机计算机。

在一些实施方式中,所述资源请求消息包括主机存储器访问请求信息,并且所述控制器使用所述主机存储器访问请求信息和与在所述网络接口上所存储的识别的所述注册存储器区域对应的所述存储器区域访问密钥,来确定所述资源请求的所述源的权限。

根据另一方面,在本公开中所描述的主题涉及一种方法,所述方法包括,在能够访问被耦接到网络接口的主机计算机上的多个存储器区域的所述网络接口上,维护多个主机存储器区域计数器。所述多个主机存储器区域计数器中的每个主机存储器区域计数器对应于位于被耦接到所述网络接口的所述主机计算机的物理存储器中的多个存储器区域中的一个存储器区域。所述多个主机存储器区域计数器中的每个主机存储器区域计数器包括与其对应的存储器区域相关联的系统利用率度量。所述方法包括,响应于由所述网络接口接收到访问相应的所述主机存储器区域的请求,来更新所述主机存储器区域计数器。所述方法包括,在所述网络接口接收资源请求消息,所述资源请求消息寻找与在所述资源请求消息中所识别的存储器区域相关联的系统利用率数据。所述方法包括,基于在所述主机存储器区域计数器中所存储的信息,生成对接收的所述资源请求消息的响应,所述主机存储器区域计数器与在所述资源请求消息中所识别的所述存储器区域相关联。

根据另一方面,在本公开中所描述的主题涉及一种非暂时性计算机可读介质,所述非暂时性计算机可读介质上存储指令,所述指令在由一个或多个计算设备执行时进行一种方法,所述方法包括,在能够访问被耦接到网络接口的主机计算机上的多个存储器区域的所述网络接口上,维护多个主机存储器区域计数器。所述多个主机存储器区域计数器中的每个主机存储器区域计数器对应于位于被耦接到所述网络接口的所述主机计算机的物理存储器中的多个存储器区域中的一个存储器区域。所述多个主机存储器区域计数器中的每个主机存储器区域计数器包括与其对应的存储器区域相关联的系统利用率度量。所述方法包括,响应于由所述网络接口接收到访问相应的主机存储器区域的请求,来更新所述主机存储器区域计数器。所述方法包括,在所述网络接口接收资源请求消息,所述资源请求消息寻找与在所述资源请求消息中所识别的存储器区域相关联的系统利用率数据。所述方法包括,基于在所述主机存储器区域计数器中所存储的信息,生成对接收的所述资源请求消息的响应,所述主机存储器区域计数器与在所述资源请求消息中所识别的所述存储器区域相关联。

附图说明

如附图中所示,从以下的本发明的示例实施方式的更具体描述,前述内容将是显而易见的。附图不一定按比例绘制,而是将重点放在示出本发明的实施方式上。

图1a是根据示例实施方式的系统的图。

图1b是根据示例实施方式的示出提供了不引人注意的第三方系统利用率监控的系统的环境的图。

图2是根据示例实施方式的由图1b中的网络接口所生成和接收的请求的图。

图3是根据示例实施方式的由图1b中的网络接口所生成和传送的响应的图。

图4是根据示例实施方式的用于提供不引人注意的第三方系统利用率监控的方法的流程图,适合于由图1b中所示的流量监控器、控制器和网络接口执行。

图5是适合于在描述的各种实施方式中使用的计算系统的图。

为了清楚起见,不是每个组件都可以被标记在每个图中。附图不是旨在按比例绘制。在各个附图中,相同的附图标记和标示指示相同的元素。

具体实施方式

用于抵消热点现象的典型策略通常包括重新平衡和向上复制(up-replicating)。然而,反应性缓解热点的第一步是检测。检测热点需要分布式系统内的负载水平的可见性,这通常通过在受影响的系统内进行自我报告来实现。然而,例如,在诸如远程存储访问(rma)的一侧通信的情况下,自我报告并非始终可行。自我报告还可能进一步增加受影响的系统上的负载。另外,有时不希望自我报告。例如,服务提供商可能不愿意信任服务客户进行准确的自我报告。使问题更加复杂的是,即使是对热点进行本地检测也可能是昂贵的,因为用于监控过度利用率的机制通常没有得到很好的优化。这导致倾向于以粗略的时间粒度(例如,样本之间的1秒或更长时间)来监控系统利用率。

根据本公开的系统和方法提供用于监控系统或网络资源的不引人注意的支持。监控的资源可以是主机物理存储器内的存储器区域。在一些实施方式中,存储器区域可以与一个或多个队列相关联。图1a是根据示例实施方式的系统100的图。系统100包括被耦接到网络接口140的主机计算机105。在一些实施方式中,网络接口140可以是被耦接到主机105的网络接口卡(nic)。在一些实施方式中,每个缺少其自己的网络接口卡的多个主机105可以被耦接到网络接口140。在这样的实施方式中,网络接口140可以用作被耦接到网络接口140的多个主机105的网络接口和架顶(tor)交换机。

主机105包括物理存储器110。多个存储器区域115位于主机105的物理存储器110内。在一些实施方式中,多个存储器区域115中的一个或多个存储器区域可以与队列相关联。在这样的实施方式中,可以基于关于队列的头部和尾部的信息来确定队列的深度。在一些实施方式中,一个或多个存储器区域115可以与消息队列相关联,该消息队列跟踪等待被处理的多个消息。消息队列的深度可以指示消息队列内的消息的后备日志(backlog)。在一些实施方式中,多个存储器区域115中的一个或多个存储器区域可以各自对应于与在主机105上执行的应用相关联的存储器区域。在一些实施方式中,多个存储器区域115中的一个或多个存储器区域可以被登记用于rma通信。

网络接口140包括多个存储器区域计数器130、流量监控器150和控制器155。多个存储器区域计数器130中的每个存储器区域计数器对应于多个存储器区域115中的一个存储器区域,该存储器区域115位于被耦接到网络接口140的主机105的物理存储器110内。多个存储器区域计数器130中的每个存储器区域计数器包括与其对应的存储器区域115相关联的系统利用率度量。网络接口140的流量监控器150被配置为响应于由网络接口140接收到访问相应存储器区域115的请求,来更新存储器区域计数器130。网络接口140的控制器155被配置为接收资源请求消息,该资源请求消息寻找与在接收的资源请求消息中所识别的多个存储器区域115中的一个存储器区域相关联的系统利用率数据。网络接口140的控制器155被配置为基于在存储器区域计数器130中所存储的信息,来生成对接收的资源请求消息的响应,该存储器区域计数器130与在接收的资源请求消息中所识别的存储器区域115相关联。

在一些实施方式中,认证方可以不引人注意地和安全地监控与诸如存储器区域130的特定网络资源相关联的活动。在一些实施方式中,网络接口140的控制器155可以被配置为确定由网络接口140所接收的资源请求消息的源是否被授权为寻找与在资源请求消息中所识别的存储器区域115相关联的系统利用率数据。控制器155可以被配置为响应于确定资源请求消息的源没有被授权而停止对资源请求消息的进一步处理。在一些实施方式中,资源请求消息的源可以是单独且独立于主机105和网络接口140的第三方实体。在一些实施方式中,位于主机105的物理存储器110中的一个或多个存储器区域115是注册存储器区域。在这样的实施方式中,网络接口140可以存储一个或多个存储器区域访问密钥,每个存储器区域访问密钥对应于多个注册存储器区域中的一个注册存储器区域。在一些实施方式中,网络接口140的控制器155可以被配置为确定资源请求消息的源是否被授权为寻找与在资源请求消息中所识别的注册存储器区域相关联的系统利用率数据。在这样的实施方式中,资源请求消息可以包括主机存储器访问请求信息,并且控制器155可以被配置为使用主机存储器访问请求信息和在网络接口140上所存储的与识别的注册存储器区域对应的存储器区域访问密钥,来确定资源请求的源的权限。

将存储器区域计数器130存储在网络接口140上使得能够监控与每个存储器区域115相关联的系统利用率度量,而不用与主机105的操作系统进行交互,从而提供对存储器资源的不引人注意的低开销监控。另外,将存储器区域计数器130存储在网络接口140上,将存储器区域计数器130的内容与可能驻留在主机105的物理存储器110内的潜在特权数据相隔离,从而提供对存储器资源的安全的第三方监控。

图1b是根据示例实施方式的示出提供不引人注意的第三方系统利用率监控的系统的环境101的图。环境101包括通过网络175进行通信的第一网络接口140a和第二网络接口140b(一般来说,网络接口140)。在一些实施方式中,环境101可以包括通过网络175与网络接口140进行通信的监控实体195。每个网络接口140可以与一个或多个主机105a、105b、105c或105d(一般来说,主机105)进行直接通信。例如,第一网络接口140a可以与第一主机105a和第二主机105b进行直接通信,该第一主机105a和第二主机105b可以分别被电连接到第一网络接口140a。第二网络接口140b可以与第三主机105c和第四主机105d进行直接通信,该第三主机105c和第四主机105d可以分别被电连接到第二网络接口140b。

每个主机105a-105d包括相应的物理存储器110a-110d(一般来说,物理存储器110)。例如,第一主机105a包括第一物理存储器110a,第二主机105b包括第二物理存储器110b,第三主机105c包括第三物理存储器110c,并且第四主机105d包括第四物理存储器110d。每个主机105可以是物理服务器或其他计算系统。在一些实施方式中,主机105可以是类似于图5中所示的计算设备910。

每个网络接口140是提供主机105与网络175之间的连接点的计算设备。第一网络接口140a和第二网络接口140b各自包括相应的第一流量监控器150a和第二流量监控器150b(一般来说,流量监控器150)、第一控制器155a和第二控制器115b、第一区域密钥表170a和第二区域密钥表170b(一般来说,区域密钥表170)、第一全局计数器160a和第二全局计数器160b(一般来说,全局计数器160)以及多个存储器区域计数器130a-130f(一般来说,存储器区域计数器130)。

在一些实施方式中,主机105的物理存储器110内的一个或多个存储器区域被注册用于rma通信。例如,如图1b中所示,第一主机105a的物理存储器110a内的存储器区域被注册为第一注册存储器区域115a。第二主机105b的物理存储器110b内的第一存储器区域和第二存储器区域分别被注册为第三注册存储器区域115b和第四注册存储器区域115c。第三主机105c的物理存储器110c内的第一存储器区域和第二存储器区域分别被注册为第五注册存储器区域115d和第六注册存储器区域115e。第四主机105d的物理存储器110d内的存储器区域被注册为第七注册存储器区域115f。

在一些实施方式中,一个或多个应用可以在每个主机105上执行。在主机105中的对应的一个主机上执行的每个应用可以与存储器区域相关联。在这样的实施方式中,与在主机105中的对应的一个主机上执行的应用相关联的存储器区域的整体或存储器区域的子集可以被注册用于rma通信。在一些实施方式中,在主机105上执行的每个应用与单个注册存储器区域(“特定应用的注册存储器区域”)相关联。

多个区域密钥中的每个区域密钥对应于多个注册存储器区域115中的一个注册存储器区域。当主机105的物理存储器110内的存储器区域由该主机105注册时,生成注册存储器区域115的对应的区域密钥。生成的与注册存储器区域115对应的区域密钥是与一个或多个远程主机共享的秘密(即,它们不是以纯文本共享),并且可以以加密形式被传递到带外的一个或多个远程主机。在一些实施方式中,区域密钥与诸如网络监控实体195的一个或多个第三方进行通信。

与典型的主机计算机不同,图1b中所示的主机105缺少它们自己的内部网络接口。相反,环境101包括多个网络接口140,每个网络接口耦接到多个主机105,并且用作那些主机105的网络接口。在一些实施方式中,多个主机105中的每个主机通过串行计算机扩展总线或其他直接总线连接被电连接到网络接口140中的一个网络接口。除其他功能外,每个网络接口140被配置为代表与其连接的主机105传送和接收rma(和其他)通信,诸如是rma读取请求消息和rma读取请求响应消息。另外,在一些实施方式中,网络接口140可以用作被连接到网络接口140的多个主机105的架顶(tor)交换机。

为了支持其rma功能,第一网络接口140a被配置为访问第一主机105a和第二主机105b中的多个注册存储器区域115a-115c,该第一主机105a和第二主机105b被电连接到第一网络接口140a。第二网络接口140b被配置为访问第三主机105c和第四主机105d中的多个注册存储器区域115d-115f,该第三主机105c和第四主机105d被电连接到第二网络接口140b。网络接口140被配置为(根据来自被耦接到网络接口140的主机105上的应用的指示)生成和传送rma请求。网络接口140被配置为通过生成和传送rma响应来接收、评估和响应rma请求。

第一网络接口140a和第二网络接口140b本身可以经由诸如串行计算机扩展总线或以太网连接的电连接、或者经由诸如光纤链接的光链接彼此连接。在具有大量网络接口140的一些实施方式中,一些对网络接口140可以经由电链接连接,而其他网络接口140可以经由光链接连接。

第一网络接口140a和第二网络接口140b各自存储相应的第一区域密钥表170a和第二区域密钥表170b(一般来说,区域密钥表170)。一个或多个区域密钥被存储在每个区域表170内。每个区域密钥对应于多个注册存储器区域115a-115f中的一个注册存储器区域。第一网络接口140a的第一区域表170存储用于第一主机105a和第二主机105b的每个注册存储器区域115a-115c的对应的区域密钥。第二网络接口140b的第二区域表170b存储用于第三主机105c和第四主机105d的每个注册存储器区域115d-115f的对应的区域密钥。

第一网络接口140a和第二网络接口140b各自存储多个存储器区域计数器130。每个存储器区域计数器130对应于多个注册存储器区域115a-115f中的一个注册存储器区域。存储器区域计数器130各自包括与其对应的注册存储器区域115相关联的系统利用率度量。如图1b中所示,第一网络接口140a存储第一存储器区域计数器130a、第二存储器区域计数器130b和第三存储器区域计数器130c。存储器区域计数器130a对应于位于第一主机105a的物理存储器110a内的注册存储器区域150a。存储器区域计数器130b对应于位于第二主机105b的物理存储器110b内的注册存储器区域150b。存储器区域计数器130c对应于位于第二主机105b的物理存储器110b内的注册存储器区域150c。类似地,在第二网络接口140b上所存储的存储器区域计数器130d-130f各自对应于位于第三主机105c和第四主机150d的物理存储器110b和110c内的注册存储器区域115d-115f中的相应的一个注册存储器区域,该第三主机105c和第四主机150d被连接到第二网络接口140b。在一些实施方式中,第一网络接口140a和第二网络接口140b各自存储相应的第一全局计数器160a和第二全局计数器160b。第一全局计数器160a包括与第一网络接口140a相关联的系统利用率度量,并且第二全局计数器160b包括与第二网络接口140b相关联的系统利用率度量。

在一些实施方式中,环境100可以包括监控实体195。在一些实施方式中,监控实体195可以是单独且独立于网络接口140和主机计算机105的授权的第三方实体。监控实体195可以监控与系统内的一个或多个特定网络资源相关联的活动。在图1b中,监控的网络资源是注册存储器区域115。

为了支持其监控功能,上面所讨论的每个网络接口140包括对应的流量监控器150,例如,流量监控器150a和150b。网络接口140的流量监控器150被配置为响应于由网络接口140接收到访问相应的注册存储器区域115的rma请求,来更新存储器区域计数器130和全局计数器160。流量监控器150被配置为响应于由网络接口140接收到寻找与在资源请求中所识别的注册存储器区域115相关联的系统利用率数据的资源请求,来更新全局计数器160。

而且,为了支持其监控功能,上面所讨论的每个网络接口140包括对应的控制器155,例如,控制器155a和155b。网络接口140的控制器150被配置为接收寻找与在资源请求消息中所识别的存储器区域相关联的系统利用率数据的资源请求,并且基于在存储器区域计数器130中所存储的信息,来生成对接收的资源请求的响应,该存储器区域计数器130与在资源请求中所识别的注册存储器区域115相关联。这些功能中的每个功能在下面被简要地描述,然后参考图4被详细地描述。

网络接口140的流量监控器150被配置为响应于由网络接口140接收到访问相应的注册存储器区域115的请求,来更新全局计数器160和存储器区域计数器130。响应于网络接口140对被连接到网络接口140的主机105的物理存储器110内的注册存储器区域115进行操作,网络接口140的流量监控器150更新与注册存储器区域115对应的存储器区域计数器130和全局计数器160中的值。流量监控器150通过与进行操作相关联的成本来增加存储器区域计数器130和全局计数器160中的值。成本可以是至少基于操作的对应的操作负载。由网络接口140所进行的每个类型的操作,诸如是读取请求、写入请求或读取资源请求,可以各自具有对应的操作负载。操作负载指示与操作的执行相关联的成本。操作负载可以基于操作类型。例如,写入操作可以具有比读取操作更大的操作负载。另外,具有相同操作类型的不同操作可以各自具有不同的对应的操作负载。例如,检索大量数据的读取操作的对应的操作负载可以大于检索少量数据的读取操作的对应的操作负载。因此,在各种实施方式中,操作负载可以是变量值或恒定值。

如上所述,当由网络接口140接收到诸如读取请求的操作并且对该操作进行处理时,该网络接口140的流量监控器150基于对应的操作负载,使在网络接口140上所存储的全局计数器160和存储器区域计数器130增加一值。在一些实施方式中,流量监控器150可以使全局计数器160和存储器区域计数器130中的值增加根据以下所计算的值:a*(操作负载)+b,其中,a是操作负载系数,并且b是与执行操作相关联的每个操作的成本。在一些实施方式中,可以基于特定于系统内所使用的硬件的性能特征来设置a和b的值。例如,由于制造处理中的变型,与执行操作相关联的实际成本最终可能比预期的多或少。操作负载系数(a)可以用于根据特定硬件的性能特征来调整操作的对应的操作负载。如先前所讨论的,存储器区域计数器130和全局计数器160包括与相应的注册存储器区域115和网络接口140相关联的系统利用率度量。因此,根据实际的硬件性能来调整操作的对应的操作负载能够更准确地计算系统利用率。在一些实施方式中,操作负载系数(a)的值可以与以字节所测量的特定操作的大小成比例。在一些实施方式中,操作负载系数(a)的值可以被设置为例如但是不限于1、2或4。在一些实施方式中,与执行操作相关联的每个操作的成本(b)可以被设置为8与256之间的任何整数,例如,64。在一些实施方式中,操作负载系数(a)可以被设置为零。在操作瓶颈严重的系统中,将操作负载系数(a)设置为零使得计算的系统利用率能够仅反映与执行操作相关联的每个操作的成本。在一些实施方式中,可以将执行操作的每个操作的成本(b)设置为零。在带宽瓶颈严重的系统中,将与执行操作相关联的每个操作的成本(b)设置为零使得计算的系统利用率能够是基于与执行操作相关联的操作负载。因此,每个操作的成本(b)可以调整很小或甚至无大小(sizeless)的操作的有效成本。在一些实施方式中,可以经由固件设置来选择a和b的值。

流量监控器150还被配置为响应于由网络接口140接收到寻找与在资源请求中所识别的注册存储器区域115相关联的系统利用率数据的资源请求,来更新全局计数器160。响应于网络接口140接收到资源请求,流量监控器150至少基于资源请求的对应的操作负载来增加网络接口140的全局计数器160中的值。另外,网络接口140的控制器150被配置为基于在存储器区域计数器130中所存储的信息,来生成对接收的资源请求的响应,该存储器区域计数器130与在资源请求中所识别的注册存储器区域115相关联。在一些实施方式中,网络接口140的控制器155可以被配置为基于关于在资源请求中所识别的存储器区域115的头部和尾部的信息,来生成对接收的资源请求消息的响应。在一些实施方式中,网络接口140的控制器155可以被配置为基于在网络接口140的全局计数器160中所存储的信息,来生成对接收的资源请求的响应。

如先前所述,图1b中的网络接口140被配置为生成和传送rma(和其他)请求。网络接口140还被配置为通过生成和传送rma(和其他)响应来接收、评估和响应rma请求。为了支持其rma功能,每个网络接口140被配置为访问主机105上的多个注册存储器区域115,该主机105被连接到网络接口140。下面讨论图1b中的网络接口140的rma功能。

网络接口140被配置为接收请求(诸如图2中所示的示例rma请求200)。由网络接口140所接收的请求可以是例如但是不限于rma读取请求或资源请求。在一些实施方式中,由网络接口140所接收的请求可以源自网络接口140中的不同的一个网络接口。在一些实施方式中,由网络接口140所接收的资源请求可以源自监控实体195。rma读取请求是用于访问位于识别的注册存储器区域115内的数据的请求。rma读取请求包括多个注册存储器区域115中的一个注册存储器区域的标识符、识别的注册存储器区域115内的存储器位置的标识符以及主机存储器访问请求信息。资源请求寻找与在资源请求中所识别的注册存储器区域115相关联的系统利用率数据。资源请求包括多个注册存储器区域115中的一个注册存储器区域的标识符和主机存储器访问请求信息。

图2是根据示例实施方式的由图1b中的网络接口140所生成和接收的请求200的图。请求200可以是例如但是不限于rma读取请求或读取资源请求。请求200可以包括目标主机id205、区域id215、区域偏移220、请求大小225和认证标签235。请求200还可以包括基于发起方主机id245、消息类型250、命令255和命令id260的初始化向量240。在一些实施方式中,请求200可以包括更多或更少的字段。区域id215识别可以由网络接口140所访问的多个注册存储器区域115中的一个注册存储器区域。目标主机id205识别被电连接到网络接口140的多个主机105中的一个主机。因此,由区域id215所识别的注册存储器区域115位于由目标主机id205所识别的主机105的物理存储器110内,该主机105被电连接到网络接口140。消息类型250识别rma请求的类型。如先前所讨论的,由网络接口140所接收的请求可以是例如但是不限于rma读取请求或资源请求。如果请求是rma读取请求,则区域偏移220包括相对于由区域id215所识别的注册存储器区域的存储器位置的偏移。基于区域偏移220和由区域id215所识别的注册存储器区域的起始存储器地址,来确定请求的数据的存储器位置。请求的数据的大小由请求大小225指定。如果请求是资源请求,则在一些实施方式中,区域偏移220和请求大小225字段中的值不相关,因此可以不进行处理。

在一些实施方式中,网络接口140被配置为存储和跟踪由网络接口140所生成的每个请求。在一些实施方式中,响应于由电连接到相同的网络接口140的主机105所发起的请求,可以由网络接口140生成请求。在一些实施方式中,响应于由电连接到不同的网络接口140的主机105所发起的请求,可以由网络接口140生成rma读取请求。在一些实施方式中,可以由监控实体195生成请求。作为示例,第一网络接口140可以响应于由在主机105中的被电连接到第一网络接口140(被称为“发起方网络接口”)的一个主机上执行的应用所发起的请求,来生成rma读取请求。请求可以用于远程访问与在远程主机105上执行的应用相对应的识别的注册存储器区域115内的数据,该远程主机105被电连接到第二网络接口140(被称为“目标网络接口”)。发起方网络接口140为生成的rma读取请求分配唯一的命令id。发起方网络接口140存储与生成的rma读取请求有关的信息。在一些实施方式中,上面所讨论的网络接口140可以各自包括对应的命令表。发起方网络接口140可以在发起方网络接口的命令表内将与生成的rma读取请求有关的信息存储为用于被分配给生成的rma读取请求的对应的命令id的条目。

rma请求200还可以包括发起方主机id245、命令225和命令id260。命令225包括与请求200有关的信息。命令id260包括在生成请求200时被分配给请求200的唯一命令id。发起方主机id245识别请求200的源。如果请求200是rma读取请求,则发起方主机id245识别主机105中的没有被连接到接收请求200的网络接口140的一个主机。如果请求200是读取资源请求,则发起方主机id245可以识别监控实体195或网络接口140。

在一些实施方式中,网络接口140的控制器155被配置为认证由网络接口140所接收的请求的源。如果接收的请求是rma读取请求,则网络接口140的控制器155被配置为确定rma读取请求的源的权限,以访问在rma读取请求中所识别的注册存储器区域115内的数据。如果接收的请求是资源请求,则网络接口140被配置为确定资源请求的源的权限,以寻找与在资源请求中所识别的注册存储器区域115相关联的系统利用率数据。使用在请求中所包括的主机存储器访问请求信息和在网络接口140的区域密钥表170内所存储的用于识别的注册存储器区域的对应的区域密钥,来确定请求的源的权限。

如上面所讨论的,请求可以包括主机存储器访问请求信息。返回参考图2中的示例请求200,初始化向量240可以用作主机存储器访问请求信息。初始化向量(iv)240可以基于发起方主机id245、消息类型250、命令225和命令id260。

网络接口140被配置为更新存储器区域计数器130和/或全局计数器160。如果确定接收的rma读取请求的源被授权,则网络接口140的流量监控器150被配置为更新在请求中所识别的注册存储器区域115的对应的存储器区域计数器130,并且更新全局计数器160。如果确定接收的资源请求的源被授权,则网络接口140的流量监控器150被配置为更新全局计数器160。然而,如果确定请求的源没有被授权,则网络接口140被配置为停止对请求的进一步处理。在一些实施方式中,网络接口140可以进一步被配置为生成错误响应,并且将生成的错误响应传送到请求的源。

在一些实施方式中,网络接口140被配置为提供认证加密。在一些实施方式中,请求的源可以在将请求传送到网络接口140之前对请求的一个或多个部分进行加密。请求的源可以使用用于识别的存储器区域115的对应的共享区域密钥和在如图2中所示的请求的初始化向量240中所包括的主机存储器访问请求信息,来对请求的一个或多个部分进行加密。对请求的一个或多个部分进行加密会将在请求中所包括的认证数据创建为认证标签235。初始化向量240以纯文本(即,没有被加密)被包括在请求200中,但是共享区域密钥不被包括在请求200中。在接收到请求之后,网络接口140被配置为使用在区域密钥表170中所存储的区域密钥和初始化向量,来对接收的请求的至少一部分进行密码处理。密码处理导致解密的数据和认证数据。将认证数据与在请求中所包括的认证标签235进行比较。如果两个值匹配,则请求被视为被授权并且被成功地认证。当创建响应时,可以使用类似的认证加密处理。

网络接口140被配置为生成对对应的请求的一个或多个响应。网络接口140被配置为将生成的一个或多个响应传送到对应的请求的源。图3是根据示例实施方式的由图1b中的网络接口140所生成的响应的图。响应300可以包括发起方主机id305和认证标签315。发起方主机id305识别对应的请求的认证的源。如果对应的请求是rma读取请求,则发起方主机id305识别发起rma读取请求的主机105。如果对应的请求是读取资源请求,则发起方主机id305识别正在请求网络资源信息的主机105或监控实体195。目标主机id325识别与在对应的请求中所识别的注册存储器区域115相关联的主机105。消息类型330识别响应的类型。如先前所讨论的,响应300可以是rma读取响应或资源响应。如果响应是rma读取响应,则响应字节偏移340指定相对于请求的数据的存储器位置的偏移。响应字节偏移340识别在rma读取响应中所包括的数据的部分相对于请求的数据的起始存储器地址的位置。

如果对应的请求是资源请求,则生成的响应300是资源响应,并且包括资源信息370。如图3中所示,资源信息370可以包括区域计数器345、区域头部350、区域尾部355和全局计数器值360。区域计数器345可以基于在存储器区域计数器130中所存储的信息,该存储器区域计数器130与在资源请求中所识别的注册存储器区域115相关联。全局计数器360可以基于在网络接口140的全局计数器160中所存储的信息。区域头部320和区域尾部355指定存储器区域的开始和结束。区域头部320可以包括相对于在对应的资源请求中所识别的注册存储器区域的起始地址的偏移。区域尾部355可以包括相对于在对应的资源请求中所识别的注册存储器区域的起始地址的偏移。在一些实施方式中,资源响应可以包括队列深度和队列大小。

如先前所讨论的,在一些实施方式中,网络接口140被配置为在创建和接收请求时提供认证加密。当创建和接收响应时,可以使用类似的认证加密处理。在一些实施方式中,网络接口140可以被配置为在传送响应之前对响应的一个或多个部分进行加密。网络接口140可以使用用于识别的注册存储器区域的对应的区域密钥和初始化向量,来对响应的一个或多个部分进行加密。对响应的一个或多个部分进行加密会将在响应中所包括的认证数据创建为认证标签315。

在接收到响应之后,可以使用与在请求中所识别的注册存储器区域对应的共享区域密钥和用于对响应进行加密的初始化向量,来对接收的响应的至少一部分进行解密。响应中的初始化向量可能不包括对响应的内容进行解密所需的所有信息。在这样的实施方式中,可以由响应的接收方基于响应的目标主机id325、消息类型330、命令id335和响应字节偏移340,来重建用于对响应进行加密的初始化向量的第一部分。可以由响应的接收方基于由接收实体在命令表中所存储的信息,来重建用于对响应进行加密的初始化向量的第二部分。如果接收响应的实体是网络接口140,则可以从区域密钥表170检索用于解密的区域密钥。如果接收实体是监控实体195,则可以从监控实体196的共享区域密钥表196检索用于解密的区域密钥。密码处理导致解密的数据和认证数据。将认证数据与在响应中所包括的认证标签315进行比较。如果两个值匹配,则响应被视为被授权和可信的。

图4是根据示例实施方式的用于提供网络资源的不引人注意的第三方系统利用率监控的方法400的流程图,适合于由图1b中的网络接口140执行。尽管参考图1b在rma通信的情境内描述了方法400,但是应该注意的是,方法400可以由支持非rma通信的其他实施方式来进行。方法400包括在网络接口上维护多个存储器区域计数器和全局计数器(阶段404)。方法400包括接收包括操作并且识别存储器区域的请求(阶段405)。方法400包括确定请求的源是否被授权为进行操作(判定框415)。如果确定请求的源没有被授权为进行操作,则方法400包括停止对请求的进一步处理(阶段420)。如果确定请求的源被授权为进行操作,则方法400包括确定操作的类型(判定框425)。如果确定操作是读取请求,则方法400包括更新与在读取请求中所识别的存储器区域对应的存储器区域计数器中的值,并且更新全局计数器中的值(阶段430),以及传送对读取请求的响应(阶段445)。如果确定操作是资源请求,则方法400包括更新全局计数器中的值(阶段435),以及传送对资源请求的响应(阶段450)。

方法400包括维护多个存储器区域计数器和全局计数器(阶段404)。返回参考图1b中所示的示例实施方式,网络接口140各自包括多个存储器区域计数器130和全局计数器160。存储器区域计数器130各自包括与其对应的注册存储器区域115相关联的系统利用率度量。第一全局计数器160a包括与第一网络接口140a相关联的系统利用率度量,并且第二全局计数器160b包括与第二网络接口140b相关联的系统利用率度量。

方法400包括接收包括操作并且识别存储器区域的请求(阶段405)。如先前所讨论的,网络接口140可以被配置为接收请求(诸如图2中所示的示例请求200)。由网络接口140所接收的请求可以是例如rma读取请求或资源请求。在一些实施方式中,请求可以包括其他类型的请求。rma读取请求是用于访问位于识别的注册存储器区域115内的数据的请求。rma读取请求包括多个注册存储器区域115中的一个注册存储器区域的标识符、识别的注册存储器区域115内的存储器位置的标识符以及主机存储器访问请求信息。资源请求寻找与在请求中所识别的存储器区域相关联的系统利用率数据。

如先前所讨论的,在一些实施方式中,网络接口140的控制器155被配置为认证由网络接口140所接收的请求的源。在这样的实施方式中,方法400包括确定请求的源是否被授权为进行操作(判定框415)。如果接收的请求是rma读取请求,则网络接口140的控制器155被配置为确定读取请求的源的权限,以访问在读取请求中所识别的注册存储器区域115内的数据。如果接收的请求是资源请求,则网络接口140被配置为确定资源请求的源的权限,以访问与在请求中所识别的存储器区域相关联的系统利用率数据。控制器155可以使用在请求中所包括的主机存储器访问请求信息和在区域密钥表170内所存储的用于识别的注册存储器区域的对应的区域密钥,来确定请求的源的权限。

如上所述,在一些实施方式中,网络接口140的控制器155被配置为认证由网络接口140所接收的rma请求的源。在这样的实施方式中,如果确定请求的源没有被授权为进行操作,则方法400包括停止对请求的进一步处理(阶段420)。如果请求的源没有被成功地授权,则网络接口140的控制器155被配置为停止对请求的进一步处理。

如果确定请求的源被授权为进行操作,则方法400包括确定请求的类型(判定框425)。返回参考图2中所示的示例请求格式,可以基于接收的请求的消息类型250来确定请求的类型。

如果确定接收的请求是读取请求,则方法400包括更新与在读取请求中所识别的存储器区域对应的存储器区域计数器中的值,并且更新全局计数器中的值(阶段430),以及传送对读取请求的响应(阶段445)。返回参考图1b,如果在网络接口140所接收的请求是rma读取请求,则网络接口140的流量监控器150更新与在rma读取请求中所识别的注册存储器区域115对应的存储器区域计数器130中的值。网络接口140的流量监控器150还更新全局计数器160中的值。控制器155生成和传送一个或多个rma读取响应,该一个或多个rma读取响应包括从识别的注册存储器区域115内的存储器位置所检索的数据。

如果确定请求是资源请求,则方法400包括更新全局计数器中的值(阶段435),以及传送对资源请求的响应(阶段450)。返回参考图1b,如果在网络接口140所接收的请求是资源请求,则网络接口140的流量监控器150更新全局计数器160中的值。控制器155基于在存储器区域计数器130中所存储的信息,来生成和传送资源响应,该存储器区域计数器130与在接收的资源请求中所识别的注册存储器区域115相关联。在一些实施方式中,生成的资源响应可以另外地或替代地包括全局计数器160的值和/或与识别的注册存储器区域115的头部和尾部有关的信息。

图5示出示例计算系统900的框图。在一些实施方式中,计算系统900可以用于实施图1中所示的主机105。

概括而言,计算系统910包括用于根据指令进行动作的至少一个处理器950以及用于存储指令和数据的一个或多个存储器设备970或975。示出的示例计算系统910包括经由总线915与至少一个网络接口控制器920、存储器970和任何其他设备980进行通信的一个或多个处理器950,该至少一个网络接口控制器920具有连接到其他计算设备912(a-n)的网络接口端口922(a-n),该任何其他设备980例如是i/o接口。网络接口控制器可以是例如图1中所示的网络接口140中的一个网络接口。通常,处理器950将执行从存储器所接收的指令。示出的处理器950合并或被直接连接到缓存存储器975。

返回参考图1b,在一些实施方式中,通过网络175所连接的主机150可以各自执行一个或多个虚拟机或容器(在本文中被统称为“虚拟化计算实例”或vci)、以及用于管理虚拟机或容器的操作的管理程序或容器管理器。每个vci在其对应的主机的物理存储器内被分配有存储器区域。在被分配给vci的主机存储器区域内,由该vci所托管的每个应用被分配有存储器区域。

更详细地,处理器950可以是处理指令的任何逻辑电路,该指令例如是从存储器970或缓存975所获取的指令。在许多实施例中,处理器950是微处理器单元或专用处理器。计算设备900可以基于能够如在本文中所述进行操作的任何处理器或处理器组。处理器950可以是单核或多核处理器。处理器950可以是多个处理器。在一些实施方式中,处理器950可以被配置为运行多线程操作。在一些实施方式中,处理器950可以托管一个或多个vci、以及用于管理vci的操作的管理程序或容器管理器。

存储器970可以是适合于存储计算机可读数据的任何设备。存储器970可以是具有固定存储器的设备或用于读取可移动存储介质的设备。示例包括所有形式的非易失性存储器、介质和存储器设备,半导体存储器设备(例如,eprom、eeprom、sdram和闪存设备),磁盘,磁光盘和光盘(例如,cdrom、dvd-rom和盘)。计算系统900可以具有任何数量的存储器设备970。在一些实施方式中,存储器970支持可以由计算系统910所提供的vci执行环境访问的虚拟化或容器化存储器。

缓存存储器975通常是紧邻处理器950放置以便快速读取时间的计算机存储器的形式。在一些实施方式中,缓存存储器975是处理器950的一部分或与处理器950在相同的芯片上。在一些实施方式中,有多个级别的缓存975,例如,l2和l3缓存层。

网络接口控制器920经由网络接口922(a-n)(也被称为网络接口端口)管理数据交换。网络接口控制器920处理用于网络通信的osi模型的物理和数据链接层。网络接口端口922(a-n)是物理网络链接的连接点。在一些实施方式中,网络接口控制器920支持无线网络连接,并且接口端口922是无线接收器/传送器。通常,计算910经由到网络接口922(a-n)的物理或无线链接与其他计算设备912(a-n)交换数据。在一些实施方式中,网络接口控制器920实施诸如以太网或其他网络协议的网络协议。

其他网络设备912(a-n)经由相应的网络接口端口922被连接到计算系统910。其他网络设备912(a-n)可以是对等计算设备、网络设备或具有网络功能的任何其他计算设备。在这样的实施方式中,接口控制器920可以用作用于计算设备912(a-n)的架顶(tor)交换机。

其他设备980可以包括i/o接口、其他外部串行设备端口和任何另外的协处理器。本说明书中所描述的主题和操作的实施方式可以以数字电子电路来实施,或者以在有形介质、固件或硬件上所实施的计算机软件来实施,该计算机软件包括本说明书中所公开的结构及其结构等同物,或者以它们中的一个或多个的组合来实施。本说明书中所描述的主题的实施方式可以被实施为在有形介质上所实施的一个或多个计算机程序,即,在一个或多个计算机存储介质上所编码的一个或多个计算机程序指令的模块,用于由数据处理装置执行或控制数据处理装置的操作。计算机存储介质可以是计算机可读存储设备、计算机可读存储基板、随机或串行访问存储器阵列或设备、或它们中的一个或多个的组合,或者被包括在计算机可读存储设备、计算机可读存储基板、随机或串行访问存储器阵列或设备、或它们中的一个或多个的组合中。计算机存储介质还可以是一个或多个单独的组件或介质(例如,多个cd、盘或其他存储设备),或者被包括在一个或多个单独的组件或介质(例如,多个cd、盘或其他存储设备)中。计算机存储介质可以是有形的和非暂时性的。

在本说明书中所描述的操作可以被实施为由数据处理装置对在一个或多个计算机可读存储设备上所存储的或者从其他源所接收的数据所进行的操作。可以在数据处理装置的本机环境内执行操作。

计算机程序(也被已知为程序、软件、软件应用、脚本或代码)可以以任何形式的编程语言来编写,包括编译或解释的语言、声明或过程语言,并且它可以以任何形式来部署,包括作为独立程序或者作为模块、组件、子例程、对象或适用于计算环境的其他单元。计算机程序可以但是不一定与文件系统中的文件相对应。程序可以被存储在保持其他程序或数据(例如,被存储在标记语言文档中的一个或多个脚本)的文件的一部分中,被存储在专用于所讨论程序的单个文件中,或者被存储在多个协调文件(例如,存储一个或多个模块、子程序或部分代码的文件)中。计算机程序可以被部署为在一个计算机上或者在多个计算机或一个或多个vci上执行,该多个计算机或一个或多个vci位于一个站点或者分布在多个站点并且通过通信网络互连。通信网络的示例包括局域网(“lan”)和广域网(“wan”)、互联网(例如,因特网)以及对等网络(例如,自组织对等网络)。

本说明书中所描述的处理和逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程处理器来进行,以通过对输入数据进行操作并且生成输出来进行动作。处理和逻辑流程也可以由专用逻辑电路进行,并且装置也可以被实施为专用逻辑电路,该专用逻辑电路例如是fpga(现场可编程门阵列)或asic(专用集成电路)。

虽然本说明书包含许多特定的实施方式细节,但是这些细节不应该被解释为对任何发明或可能被要求保护的范围的限制,而是应该被解释为对特定发明的特定实施方式特定的特征的描述。本说明书中在单独实施方式的情境中所描述的某些特征也可以组合地在单个实施方式中实施。相反,在单个实施方式的情境中所描述的各种特征也可以单独地或以任何合适的子组合在多个实施方式中被实施。此外,尽管上面可以将特征描述为以某些组合起作用并且甚至最初如这样要求保护,但是在一些情况下,可以从要求保护的组合中删除来自该组合的一个或多个特征,并且要求保护的组合可以指向子组合或子组合的变型。

类似地,虽然在附图中以特定顺序示出了操作,但是这不应该被理解为要求以所示的特定顺序或按顺序进行这样的操作,或者进行所有示出的操作,以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上面所描述的实施方式中的各种系统组件的分离不应该被理解为在所有实施方式中都要求这样的分离,并且应该理解的是,描述的程序组件和系统通常可以被集成在单个软件产品中或者被打包到多个软件产品中。

对“或”的参考可以被解释为包括性的,使得使用“或”所描述的任何术语可以指示单个、多于一个和所有描述的术语中的任何一个。标签“第一”、“第二”、“第三”等不一定意味着指示顺序,并且通常仅用于区分相同或类似的项目或元素。

对在本公开中所描述的实施方式的各种修改对于本领域技术人员而言可以是显而易见的,并且在不脱离本公开的精神或范围的情况下,在本文中所限定的一般原理可以被应用于其他实施方式。因此,权利要求书不旨在限于在本文中所示的实施方式,而是应该被赋予与本公开、在本文中所公开的原理和新颖特征一致的最广泛范围。

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