在多服务器箱体中的固定速度背板连接上的可调节服务器传输速率的制作方法

文档序号:7942925阅读:338来源:国知局
专利名称:在多服务器箱体中的固定速度背板连接上的可调节服务器传输速率的制作方法
技术领域
本发明涉及多 服务器箱体(enclosure)中的服务器与外部实体的通信,以及具体 涉及一种用于为服务器和/或服务器中的单独端口提供到外部实体的可调节最大传输速 率的方法和系统。
背景技术
在过去50年中,随着单独计算机处理器、数据存储装置以及其他计算机构件的 能力的几何式增长,以及这种构件的体积的显著减小,传统的单处理器和单大容量存储 装置计算机架构正逐渐被尺寸类似但功能强大得多的多装置箱体所代替,所述多装置箱 体包括将多个大容量存储装置结合在单个箱体内的盘阵列;以及将多个服务器结合到 单个箱体中的刀片系统,其中每个服务器包括一个或多个处理器。多构件箱体简化了构 件之间的连接,提供用于电源和环境调节的集成方法,以及可以提供有用的虚拟接口, 以向外部实体抽象化单独的构件。虽然多构件箱体经常提供优于单独构件装置的具有类似能力的集合的无数优 点,但是多构件箱体有时可能约束或限制该多构件箱体中的构件,以便为单独构件提供 公共的内部和外部接口。例如,为了促进刀片系统中的服务器模块的互操作性以及容易 地更换和替代这些服务器模块的能力,所有服务器模块可以通过公共背板连接到外部通 信介质,公共背板可能将服务器模块的该传输速率限制为公共的固定传输速率,尽管服 务器在直接连接到通信介质时能够支持不同传输速率。多装置箱体的设计者、开发者、 供应商以及用户意识到需要再次启用由共享接口限制的多构件箱体中的构件的固有灵活 性和能力,以及需要为单独构件提供额外灵活性和能力以便增加多装置箱体作为整体的 可用性和灵活性。

发明内容
本发明的实施例针对为多装置箱体中的装置提供可配置传输速率,尽管该多装 置箱体中的公共通信介质否则将约束或固定该装置的传输速率。在多服务器箱体中包含 的或与该多服务器箱体相关联的虚拟连接管理器或其他模块或装置中实施的、本发明的 一个实施例中,该虚拟连接管理器提供监管或管理接口,通过该接口可以对每个服务器 分配最大传输速率。然后,虚拟连接管理器连续地监测服务器和/或服务器中端口的传 输速率,以应用背压或流量控制,使得服务器和/或服务器中的端口不超出所配置的最 大传输速率。


图1示出多服务器刀片系统的主要构件。图2示出提供网络接口卡与主机-总线适配器之间的信号路径连接的刀片系统的背板。图3A- 3B示出用于将刀片系统中的服务器互连到外部通信介质的虚拟连接管理 器方法。图4A-4C示出以太网连接装置的半双工和全双工操作。图5示出典型的以太网-II分组。图6示出用于以太网链路的公共带宽。图7A-7C示出传输速率的自动协商。图8A-8E示出提供用于遵循以太网-II的装置的流量控制机制。图9A-9K示出根据本发明的一个实施例的、用于限制刀片系统中NIC的最大数 据传输速率的一种方法。图10A-10D示出本发明的第二实施例。图11A-11B示出通过实施本发明实施例而产生的总体效果。图12提供实施所述的本发明的两个实施例中任一个的虚拟连接管理的控制流程 图。图13提供根据本发明的一个实施例的、在图12的步骤1208中调用的处理程序 “新分组”的控制流程图。图14提供根据本发明的一个实施例的、在图12的步骤1210中调用的处理程序 “处理计时器(handle timer)”的第一部分的流程控制图。图15提供根据参考图9A-9K描述的本发明的第一实施例的、在图14的步骤 1410中调用的例程“调节传输速率”的控制流程图。图16是根据参考图10A-10D描述的本发明的第二实施例的、在图14的步骤 1410中调用的例程“调节传输速率”的第二实施方式的控制流程图。
具体实施例方式本发明的一个实施例针对一种用于向多服务器箱体中的服务器或多服务器箱体 中的服务器的单独端口施加背压或流量控制的方法和系统,以便控制由该服务器或端口 向一个或多个通信介质传输的最大速率。首先讨论多服务器箱体以为本发明的各个实施 例的后续描述提供背景。在可选的实施方式中,可以配置并施行各种不同的最大传输速 率。例如,可以配置并施行每个服务器到与该服务器相连接的所有通信介质的总最大传 输速率。可选地,可以配置并施行每个服务器到与该服务器相连接的某种类型或种类的 通信介质的所有通信介质的总最大传输速率。可选地,可以配置并施行服务器中的单独 端口的总最大传输速率。图1示出多服务器刀片系统的主要构件。该刀片系统102包括许多温度控制 构件104-108 ;两个或更多的电源单元110和112 ;多个服务器模块114-121 ;以及背板 124,该背板124包括多个、不同类型的物理连接以用于经由电力线、控制信号线以及各 种物理通信介质将服务器模块114-121与其他构件互连,所述各种物理通信介质包括用 于向外部以太网、光纤信道以及其他通信介质传输数据以及从其接收数据的通信介质。 当然,刀片系统包括很多其他构件,以及管理模块和管理例程,在管理模块内运行该管 理例程,以向刀片系统管理员提供管理接口以及监测并管理刀片系统中的各种构件的操作。图2示出刀片系统的背板,该背板提供网络接口卡与主机-总线适配器之间的信 号路径连接。在图2中,刀片系统的背板202提供网络接口卡(“NIC” )和主机_总线 适配器(“HBA”)(诸如NIC 204和HBA 206)分别到局域网(“LAN” )以及存储区 域网(“SAN” )交换机中的端口(诸如LAN交换机210中的端口 208以及SAN交换机 214中的端口 212)之间的信号路径连接。每个交换机(诸如交换机210)将各种网络接口 卡或主机_总线适配器连接到一个或多个LAN或SAN。每个服务器216-219通常包括两 个或更多的NIC以及两个或更多的HBA,使得该服务器能够容忍NIC和/或HBA故障 而不丢失分别到外部LAN和/或SAN的连接。每个NIC包含制造商提供的介质访问控 制(“MAC”)地址,以及每个HBA包含全球名称(“WWN”),分别通过该介质访 问控制(“MAC” )地址和全球名称(“WWN” )在LAN以及SAN中分别对NIC以 及HBA进行寻址。背板202是无源的,提供能够用于在服务器中的NIC和HBA与LAN 和SAN交换机中的端口之间传输信号的信号线,所述LAN和SAN交换机包括以太网 和 光纤信道交换机。刀片系统中的服务器模块通过背板连接器插入到背板中,使得当将服 务器模块安装到刀片系统中时或者当更换或交换服务器模块时,不需要庞大的、容易出 错的布线。图3A-3B示出用于将刀片系统中的服务器互连到外部通信介质的虚拟连接管理 器方法。如图3A中所示,并非直接将服务器的NIC和HBA通过背板直接连接到交换 机,而是可以可选地通过背板将NIC和HBA连接到虚拟连接管理器模块302和304,该 虚拟连接管理器模块302和304又连接到外部通信介质,所述外部通信介质包括LAN和 SAN通信介质。图3B示出由虚拟连接管理器模块提供的功能。在虚拟连接管理器模块中运行的 虚拟连接管理器维持用于通信端口的MAC、WWN及其他唯一地址的池310和312,每 种类型的地址一个池。在图3B中,两个池310和312对应于MAC地址和WWN地址。 该虚拟连接管理器还维持用于每个服务器318-321的配置简档314-317。在初始化阶段 期间,所述虚拟连接管理器将来自MAC和WWN地址的池的MAC和WWN地址分配给 所有服务器的NIC和HBA,以替换每个服务器的NIC和HBA中的制造商提供的MAC和 WWN地址。虚拟连接管理器所使用的MAC地址和WWN地址由以太网和光纤信道联 盟保留以用于刀片系统中。配置简档314-317包含指定每个服务器上的每个NIC和HBA 待连接到的外部LAN和SAN的信息。所述虚拟连接管理器用作外部LAN和SAN与刀 片系统的服务器模块中的NIC和HBA之间的虚拟接口,并且向刀片系统管理员提供管理 员接口以进行通信管理。通过虚拟化在外部LAN和SAN与服务器模块中的NIC和HBA 之间的接口,虚拟连接管理器使得可以移除服务器模块并用新的服务器模块来替换所移 除的服务器模块,而无需重新配置曾与所移除的服务器模块相连接的那些LAN和SAN, 且无需对刀片系统或刀片系统构件重新布线。代替地,所述虚拟连接管理器,在感测到 替换服务器的上电后,使用用于该服务器的配置简档来用所移除的服务器使用的MAC和 WWN地址来替换替换服务器的NIC和HBA卡中的MAC地址和WWN地址,以及将新 安装的服务器与移除的服务器先前连接到的那些外部LAN和SAN相连接。所述的本发明的实施例涉及以太网互连,以及接着描述以太网通信的各方面。但是,本发明表示的方法可以应用于另外类型的通信介质和协议。图4A-4C示出以太网连接装置的半双工和全双工操作。图4A-4C使用在后续 附图中再次使用的图示约定,其中,两个装置402和404通过以太网物理链路发送和接收 数据编 码信号,且该两个装置402和404中的每个装置包括连接到所述以太网物理链路的 NIC。图4A-4B示出以太网的半双工操作。在图4A中,装置404发送数据到装置402, 以及在图4B中,装置402通过该物理链路发送信息到装置404。在半双工操作中,两个 装置无法同时发送数据。相反,在图4C中所示的全双工操作中,装置402和404通过物 理链路406同时地发送和接收数据。根据互联网连接的类型和操作速度,通过物理介质 每时钟周期发送8比特、16比特或32比特的数据值。在发送侧通过拆解(de-assemble) 存储器中存储的数据分组来获得这些数据值,并且在接收侧重新组装这些数据值以重新 构成所述分组并将该分组存储在存储器中。图5示出典型的以太网-II分组。该分组包括7字节的前导码502、帧起始定界 符504、该分组被引导到的NIC的6字节的MAC目的地地址508、从其发送该分组的NIC 的6字节的MAC源地址510、2字节的以太网类型/长度字段512、包括46到1500字节 的数据有效载荷字段514、以及4字节CRC字段516,该4字节CRC字段516提供对在 发送该分组期间发生的差错的检测和校正。在物理链路上,对应于每个分组的数据值被 帧间间隙518分开,所述帧间间隙518包括固定数量的时钟周期。以太网物理链路可以包括双绞铜线、光纤、同轴电缆以及在刀片系统的背板中 的信号线。可以根据端口、物理链路、NIC以及传输到NIC和其他构件的控制参数,以 不同速率通过以太网物理链路和端口发送数据。图6示出以太网装置的常见传输速率。 如图6中所示,以太网链路的常见带宽包括10兆比特/秒602、100兆比特/秒604、以 及1000兆比特/秒或1吉比特/秒606。10吉比特/秒的以太网链路也是当前可用的, 以及100吉比特/秒的链路预期在几年内可用。很多NIC可以配置为以图6中所示的最 大传输速率中的任何一个传输数据。通信装置中的NIC可以自动协商某些操作模式。图7A-7C示出对于传输速率的 自动协商。在图7A中,包含具有100兆比特/秒的最大可配置数据传输速率的NIC的装 置702与包含具有1吉比特/秒的最大可配置数据传输速率的NIC的装置704互连。物 理链路706能够在每个方向上以1吉比特/秒载送数据。如图7B中所示,在上电之后的 配置过程中,作为自动协商过程的一部分,装置702和704交换链路码字708和710,通 过此每个装置确定远程装置的能力,并且然后两个装置同意以该两个装置中最慢那个能 够处理的最大传输速率来通信。如图7C中所示,作为自动协商的结果,装置702和704 配置为以100兆比特/秒进行传输,其中100兆比特/秒是该两个装置中较慢那个的最大 传输速率。自动协商还可以用于确定是在半双工还是在全双工模式中操作,当两个装置 均能够在全双工模式中操作时,全双工模式是优选的。因为某些刀片系统中的背板互连的性质,该刀片系统的服务器中的NIC无法进 行自动协商和传输速率选择。代替地,在这些刀片系统中,要求所有NIC以特定的、固 定的最大传输速率操作。在本发明的实施例针对的一种类型的刀片系统的情况下,用于 刀片系统的服务器中的所有NIC的固定的、最大传输速率是1吉比特/秒。尽管初一思 考下,1吉比特/秒看似是合理的固定数据传输速率,但是由于它是服务器中结合的很多普遍可用的NIC支持的最高数据传输速率,固定的最大数据传输速率可能在包括刀片服 务器的系统中引起问题。 一个问题是,当将刀片系统安装到计算设施以替换较旧技术的服务器或服务器 集群时,该计算设施中先前与该较旧技术的服务器或服务器集群通信的各个计算机和构 件可能被刀片系统中多个服务器的增加的、总数据传输速率弄崩溃。这个问题可以利用 独立的替换服务器来容易地解决。服务器中的NIC可以配置为以较低的最大传输速率来 操作,该较低的最大传输速率诸如100兆比特/秒或10兆比特/秒,因为最大传输速率 对于现代NIC来说通常是可配置的。很多当前可用的NIC例如提供在图6中所示的三个 数据传输速率中选择一个。但是,在上述类型的刀片系统中,因为背板连接的限制,对 服务器中的NIC进行配置使之以较低的最大数据传输速率操作是不可能的。解决该问题 的另一方法将是,压制(throttle)在服务器上运行的较高级实体,所述较高级实体诸如请 求数据传输服务的应用程序。但是,对于较高级的改变是困难的、不精确的且容易出错 的,并且在很多情况下是不可能的,因为应用程序不被设计成用于监测和压制由对操作 系统的数据传输请求生成的数据传输速率,以及因为应用程序经常由外部供应商产生, 而该外部供应商不愿针对特殊情形而修改应用程序。本发明的实施例针对一种用于解决与刀片系统服务器中的NIC的固定最大数据 传输速率相关联的问题的不同方法。在这种方法中,上面参考图3A-3B所述的虚拟连接 管理器接口被实施以提供由刀片系统管理员通过由虚拟连接管理器提供给刀片系统管理 员的配置接口对刀片系统的服务器模块中的NIC的最大数据传输速率进行配置,以及监 测数据传输速率并按照需要施加背压或流量控制,以确保每个NIC不会以高于所配置的 最大数据传输速率的速率传输数据。图8A-8E示出提供用于遵循以太网_11的装置的流量控制机制。在图8A中所示 的情况中,其中第一装置802以超出第二装置804处理所接收数据的能力的数据传输速率 向该第二装置804传输数据,图8B中所示的第二装置能够发送暂停消息到第一装置802 以致使该第一装置停止数据传输达指定的时间段。该暂停消息被发送到所有连接到物理 介质的NI C能够接收的多播地址。该暂停消息被编码在2字节以太网类型/长度字段 (图5中的512)中,并包括16比特的值808,该16比特的值808指定在其期间接收装置 应该停止数据传输的时间。该值以512比特传输时间为单位表示停止数据传输的时间。 如图8C中所示,在接收到暂停消息后,接收装置设置计时器810并停止传输直到计时器 期满为止。如图8D中所示,发送暂停消息的装置能够通过以下操作来显式地覆盖该暂停 消息发送包含指定的“0”停止时间段的暂停消息812,该包含指定的“0”停止时间 段的暂停消息812在下面被称为“恢复消息”,其重置计时器。如图8E中所示,接收到 暂停消息的装置当计时器期满时或在接收到恢复消息后,恢复数据传输。由NIC接收暂停消息以及由NIC停止数据传输可能导致包含该NIC的服务器中 的较高级的流量控制。如果暂停数据传输达充分的时间量,NIC缓冲器和/或操作系统 缓冲器可能被填满,导致较高级数据传输操作的故障。操作系统可能自动重试这种发生 故障的数据传输操作,或故障可能流回到包括应用程序的较高级实体,该较高级实体然 后重试发生故障的数据传输操作。图9A-9K示出根据本发明的一个实施例的、一种用于限制刀片系统中的NIC的最大数据传输速率的方法。在该实施例中,刀片系统中的虚拟连接管理器采用以太网-II 提供的上述暂停消息,来在NIC超出在刀片系统的配置期间建立的最大数据传输速率时 对NIC施加背压。稍后讨论的图9A-9K以及图10A-10D均使用相同的图示约定。这些图示出了 在虚拟连接管理器中用来限制特定服务器或服务器中的特定单独端口(表示为服务器/端 口对)的最大数据传输速率的特定变量、数据结构以及其他实体。在某些实施例中,可 以采用该虚拟连接管理器来限制刀片系统中的每个服务器的最大数据传输速率,以及在 其他实施例中,可以将每个服务器中的每个端口单独地限制到所配置的、最大数据传输 速率。对于每个服务器或服务器/端口对(取决于实施例),虚拟连接管理器维持计 时器902; n-1个累加器(accumulator)的阵列,其中的每个累加器累加在固定时间段内由 虚拟连接管理器从服务器或服务器/端口 904接收的比特数;指向当前使用的累加器的指 针906;布尔值“背压” 908,该布尔值“背压” 908指示该虚拟连接管理器当前是否正 对服务器或服务器/端口对施加背压;用于该服务器或服务器/端口对的配置表格910 ; 以及来自该服务器或服务器/端口对的以太网分组输入912。另外但是没有在图9A中示 出,该虚拟连接管理器存储累加器阵列904中的第一累加器的地址以及累加器阵列904中 的累加器数目n,或者存储累加器阵列中的第一和最后累加器的地址。所有这些数据结 构、变量以及实体被成组到一起并且计算地与特定的服务器或服务器/端口相关联,以 便例如当接收到以太网分组时,该以太网分组中包含的源地址可以在对操作进行索引或 引用的过程中用来定位该组数据结构、变量和实体,该组数据结构、变量和实体描述从 其发送该以太网分组的服务器或服务器/端口对的当前虚拟连接管理器 上下文。例如, 可以采用数据结构来包含累加器阵列、当前累加器指针、布尔值“背压”、对计时器的 引用、以及对配置表格的引用以及服务器或服务器/端口对的MAC地址,以便该数据结 构能够立即从所接收的以太网分组中的源地址被识别出来。如图9A中所示,初始化虚拟连接管理器上下文,以便累加器指针906引用累加 器阵列904中的第一累加器914,并将计时器设置为在1秒后期满,其中,η是累加器阵列
Yl
中的累加器数目。所有累加器被初始化为具有值“0”。一旦对所有服务器进行上电和 初始化,并且对虚拟连接管理器上电和初始化,则所述虚拟连接管理器开始从刀片系统 中的服务器模块接收分组。如图9Β中所示,当下个分组到达时916,将以比特计的分组 的大小加到当前累加器指针906当前所引用的累加器914的内容。图9C示出第二分组的 到达,以及将第二分组中包含的比特数加到当前累加器指针906所引用的累加器914。如图9D中所示,当计时器在1秒期满时,通过模η运算,递增当前累加器指针
η
以指向下个累加器918,该下个累加器918被清除(cleared)。累加器阵列904中的所有累 加器被加到一起,以产生在上一秒期间从服务器或服务器/端口接收的总比特数920。更
精确地,可以将累加器的总和乘以比率」一以产生对于在前一秒期间由服务器或服务器/
端口发送的比特数的估计。如图9E中所示,在第二计时器期满后,当前累加器指针906再次通过模η加法进行递增,并且将累加器的总和乘以比率一\以产生在前一秒期间由服
务器或服务器/端口接收的比特数922。该过程继续,其中计时器随后每隔1秒的间隔就期满。在图9F中,累加器阵列被值完全充满。每隔1秒的间隔,将η个累加器中包含的总比特数乘以比率」一的值与配置表格
ηn-l
910中存储的为服务器或服务器/端口配置的最大数据传输速率进行比较。如图9G中 所示,当针对上一秒估计的数据传输速率超出了为服务器或服务器/端口配置的最大数 据传输速率时,则如图9Η中所示,布尔变量“背压” 908被设置为真,并发送暂停消 息924到服务器/端口或服务器的端口,以停止该服务器或服务器/端口的传输达固定 量的时间。该固定量的时间或暂停时间被计算为这样的时间量如果在1秒内η次将服 务器或服务器/端口停止该时间量,则该服务器或服务器/端口的数据传输速率,以其 当前数据传输速率,会被降低到低于为该服务器或服务器/端口配置的最大数据传输速 率。通常,将所估计的暂停时间增加某个额外因子,该额外因子在下面称为值“溢出值 (slop)”,以确保该服务器或服务器/端口的数据传输速率对于某个初始时间段显著落到 最大数据传输速率以下。然后,如图9I-9J中所示,正常操作继续。每次计时器期满时,
或每隔i秒的间隔,在布尔变量“背压” 908保持真的同时,将暂停消息发送到该服务器 η
/端口或服务器的端口。随后,如图9Κ中所示,如果在上一秒内为该服务器或服务器 /端口计算的数据传输速率落到低阈值以下,且该低阈值显著小于为该服务器或服务器/ 端口配置的最大数据传输速率,则将布尔值“背压” 908设置为假,以及不发送另外的暂 停消息,直到数据传输速率再次超出为该服务器或服务器/端口配置的最大数据传输速 率。因此,根据上述的本发明的第一实施例,一旦服务器或服务器/端口的数据传输速 率超出为该服务器或服务器/端口配置的最大数据传输速率,则以固定的、检测到计时 器期满的间隔发送暂停消息,以在每个时间间隔内将该服务器或服务器/端口暂停较小 的时间段,以便将该服务器或服务器/端口的总体数据传输速率降低到显著低于为该服 务器或服务器/端口配置的最大数据传输速率。图10A-10D示出本发明的第二实施例。在该第二实施例中采用与第一实施例中 采用的相同的数据结构,如通过比较图IOA和图9Α所能见到的。图IOA示出了在计时 器期满之后累加器寄存器的内容以及当前累加器指针906和布尔变量“背压” 908的当 前状态。图IOB示出在下个计时器期满后累加器904、背压寄存器908以及当前累加器
寄存器906的内容。注意到,在前面的i秒期间,发生了服务器或服务器/端口的数据
传输速率的巨大增加,如累加器930中的值所证明的。这导致了对上一秒计算的数据传 输速率932超过两倍于以及大大超出为该服务器或服务器/端口配置的最大数据传输速 率。此时,如在先前实施例中那样,将布尔变量“背压”设置为真908,并发送暂停消 息934到该服务器或服务器/端口。但是,在此种情况下,暂停消息包括最大可能的暂 停时间,以便该服务器或服务器/端口的接收端口将完全停止(halt)数据传输达相当大的 时间段。然后,相同的计时器重置以及后续期满模式以及当前累加器指针模递增持续,如上所讨论的,直到如图IOD 中所示,对上一秒计算的数据传输速率落到某个低阈值936 以下。此时,向服务器或服务器/端口发送恢复消息938以重启数据传输。还有很多另外的、可选的实施例,其可被实施用于使用在以太网II中可用的暂 停消息来对服务器或服务器/端口施加背压,以便确保为该服务器或服务器/端口配置的 数据传输速率不超出为该服务器或服务器/端口配置的最大数据传输速率。可以采用更 少的累加器,可以使用除了计时器事件之外的事件来唤醒监测例程,以便以连续方式监 测每个服务器或服务器/端口,并且其他可选实施方式也是可能的。但是,在所有情况 下,虚拟连接管理器使用以太网-II暂停消息以便控制每个服务器或服务器/端口的总体 数据传输速率。图11A-11B示出通过实施本发明的实施例所产生的总体效果。在图IlA中, 相对于垂直轴1102标出的数据传输速率关于时间用曲线表示,且时间相对于水平轴1104
标出。在图IlA中,时间增量非常短,处于1秒的量级或更小。如图IlA中所示,数
η
据传输速率可以随着时间而变化,直到数据传输速率超出最大数据传输速率1106,在该 点处发送暂停消息并且数据传输速率降到零1108且保持为零达一段时间。然后,在暂停 1110之后,数据传输速率跳回到某个有限值并继续增加和降低,直到数据传输速率再次 超出为该服务器或服务器/端口配置的最大数据传输速率1110,在该点处,发送另一暂 停消息,并且数据传输速率降到零且保持为零达另一段时间1112。因此,当以小的时间 增量来看时,服务器或服务器/端口的数据传输速率表现得非常不连续,且表征出高于 最大数据传输速率的峰以及没有数据传输的时段。但是,如图IlB中所示,当在大得多 的时间段内绘制服务器或服务器/端口的数据传输速率时,如例如用图IlB中表示几百个 图IlA中的增量1116的增量1114来绘制时,则该服务器或服务器/端口的数据传输速 率1118表现为连续的,并且从未超出最大数据传输速率。实际上,在如图IlA中所示的 在非常小的时间增量上计算的曲线中,看到数据传输速率偶尔在短时间段内超出最大数 据传输速率。但是,如图IlB中所示,当在较长时间段内计算数据传输速率时,短尖峰 被平均到较长时间段内,使得数据传输速率表现为连续的并且总低于最大数据传输速率 线。图12-15示出图解上面参考图9Α-9Κ以及图10A-10D描述的本发明的两个不同 实施例的控制流程图。图12提供用于实施本发明的两个所述实施例中任何一个的虚拟 连接管理器的控制流程图。在步骤1202,该虚拟连接管理器,在上电或重置后,根据配 置表格中存储的配置信息,对刀片系统中的所有服务器和服务器端口进行配置。在步骤 1204,对刀片系统进行初始化以进行操作。然后,在包括步骤1206-1211的事件环中, 该虚拟连接管理器等待并处理许多不同类型的事件中的任何事件。在事件是来自刀片系 统中的服务器的进入分组的情况下,如在步骤1207中确定的,在步骤1208中调用处理 程序“新分组”。在事件是与最大数据传输速率计时器期满相关联的计时器中断的情况 下,如在步骤1209中确定的,则在步骤1210中调用处理程序“处理计时器”。在步骤 1211中利用捕捉所有事件处理程序来处理许多其他类型的事件中的任何事件,包括由管 理员接口产生的事件、与通信介质问题相关的事件、与刀片系统中的功率或环境状况相 关的事件和其他事件。只要虚拟连接管理器操作,该事件环就持续。
图13提供根据本发明的一个实施例的、图12的步骤1208中调用的处理程序 “新分组”的控制流程图。在步骤1302,虚拟连接管理器确定从其接收分组的服务器或
服务器/端口。在步骤1304,该虚拟连接管理器找到对应于该服务器或服务器/端口的 一个或多个数据结构,如参考图9A讨论的,并在步骤1306,将由当前累加器指针(图9A 中的906)引用的当前累加器递增所接收分组的以比特计的大小。因此,由本发明的实施 例引入的用于处理每个进入分组的开销是很小的。图14提供根据本发明的一个实施例的、图12的步骤1210中调用的处理程序 “处理计时器”的第一部分的控制流程图。在步骤1402,虚拟连接管理器确定对应于 期满的计时器的服务器或服务器/端口。在步骤1404,该虚拟连接管理器将该服务器或 服务器/端口的当前的即时数据传输速率计算为当前累加器的内容乘以累加器数目η。 在步骤1406,虚拟连接管理器通过模η运算来递增当前累加器指针,并且在步骤1408, 重置计时器以及计时器期满中断,以提供对下个监测间隔的结束的检测。然后,在步骤 1410,调用例程“调节传输速率”。图15提供根据参考图9Α-9Κ描述的本发明的第一实施例的、在图14的步骤 1410中调用的例程“调节传输速率”的控制流程图。在步骤1502,将当前传输速率计
算为所有累加器(图9Α中的904)的总和乘以比率」、。当当前传输速率小于低阈值时,
如在步骤1504中确定的,则在步骤1506将布尔变量“背压”设置为假,并且该例程终 止。否则,当当前数据传输速率大于为服务器或服务器/端口配置的最大数据传输速率 时,如在步骤1508中确定的,则当布尔变量“背压”当前具有值“真”,如在步骤1510 中确定的,并且当当前的、即时数据传输速率(见图14中的步骤1404)大于该最大数据 传输速率时,如在步骤1512中确定的,则在步骤1514中递增用于暂停服务器或服务器/ 端口的暂停时间,以反映数据传输速率保持高于为该装置配置的最大数据传输速率的事 实。当即时数据传输速率不大于最大数据传输速率时,如在步骤1512中确定的,不需要 重新计算暂停时段。当布尔变量“背压”不是“真”时,如在步骤1510中确定的,则 在步骤1516中将布尔变量“背压”设置为“真”且计算暂停时间。在变量“暂停”中
存储的暂停时间被计算为服务器或服务器/端口在每个i秒的时间段期间应该停止的时间
η
量,以便将该服务器或服务器/端口的数据传输速率降低到为该服务器或服务器/端口配 置的最大数据传输速率以下。将附加值“溢出值”加到估计值,以便确保迫使该服务器 或服务器/端口的数据传输速率低于最大数据传输速率。然后,在步骤1518,使用变量 “暂停”的当前值,发送暂停消息到服务器或服务器/端口的端口。当当前数据传输速 率不高于为该装置配置的最大数据传输速率时,如在步骤1508中确定的,则例程结束, 除非布尔变量“背压”的当前值是“真”,如在步骤1520中确定的,在此种情况下,在 步骤1518中发送下一暂停消息。图16是根据参考图10A-10D描述的本发明的第二实施例的、在图14的步骤 1410中调用的例程“调节传输速率”的第二实施方式的控制流程图。如在图15中那 样,在步骤1602中计算当前数据传输速率。当当前数据传输速率大于低阈值时,如在 步骤1604中确定的,以及当布尔变量“背压”具有“真”值时,如在步骤1606中确定 的,则在步骤1608发送恢复消息到服务器或服务器/端口,并将布尔变量“背压”设置为“假”。否则,当当前数据传输速率超出为服务器或服务器/端口配置的最大数据传 输速率时,如在步骤1610中确定的,则当布尔变量“背压”当前具有“假”值时,如 在步骤1612中确定的,在步骤1614发送暂停消息到服务器或服务器/端口。虽然根据特定实施例对本发明进行了描述,不意图将本发明限制于这些实施 例。对于本领域技术人员来说,在本发明的精神内的修改是显而易见的。例如,本发明 的实施例可以以硬件电路、固件和/或软件来实现,所述软件驻留于刀片系统的虚拟连 接管理器中或刀片系统的另一构件中或在其中执行,该另一构件能够监测来自刀片系统 的服务器中的端口的数据传输。本发明可以通过改变常见硬件设计、固件设计和/或软 件设计参数,诸如模块化组织、控制结构、数据结构、变量、逻辑结构以及例程流,而 以很多不同方式实现。如上讨论的,可以将服务器配置用于通过特定类型的通信介质、 通过所有通信介质、或通过特定端口(这取决于实施方式)的最大传输速率。在可选实 施方式中,能够将最大数据传输速率配置用于服务器群或用于整个刀片系统。在某些实 施例中,单独服务器、服务器中的端口以及服务器群的任何组合可以被配置用于最大数 据传输速率,以及进行流量控制以确保不超出所配置的最大数据传输速率。在所有情况 下,监测所控制的服务器、端口或服务器群的数据传输速率,以及使用流量控制消息或 信号来确保每个配置的数据传输速率均不被超过。虽然上面在多服务器箱体的情境中讨 论了本发明,本发明也可应用于其他类型的多装置箱体,其中,所述装置包括到通信介 质的端口。在上述的实施方式中,对于每个服务器或服务器/端口、对于每个间隔调用 监测例程,但是在可选实施方式中,监测例程可以在单个调用期间对多个服务器和/或 服务器/端口进行监测和流量控制。前面的描述为了解释的目的使用了特定术语来提供对于本发明的彻底理解。但 是,对于本领域技术人员来说显而易见的是,为了实现本发明并不需要特定细节。为了 说明和描述的目的,给出了本发明的特定实施例的前面描述。它们并不意图是穷举的也 不意图将本发明限制于所公开的精确形式。考虑到上面的教导,很多修改和变型是可能 的。示出并描述实施例,以便最好地解释本发明的原理及其实际应用,从而使得本领域 其他技术人员能够视预期的特定用途来最佳地使用本发明以及具有各种修改的各种实施 例。本发明的范围意图由下面的权利要求及其等效物来限定。
权利要求
1.在多装置箱体中实施的数据传输速率监测器,所述多装置箱体包含装置,所述装 置包括将所述装置连接到通信介质的端口,所述数据传输速率监测器包括存储在电子存储器内的数据,所述数据包括为每个装置或端口配置的最大数据传输 速率的规范;以及监测构件,所述监测构件确定所述多装置箱体中的装置或端口的当前数据传输速 率,以及当所述装置或端口的当前数据传输速率超出为所述装置或端口配置的最大数据 传输速率时,传送暂停命令到所述装置或端口。
2.根据权利要求1所述的数据传输速率监测器,其在刀片系统的虚拟连接管理器中实现。
3.根据权利要求1所述的数据传输速率监测器,其中,所述通信介质是以太网链路, 以及所述暂停命令是以太网暂停消息,所述以太网暂停消息包括指示该消息是暂停消息 以及暂停时间的类型/长度字段。
4.根据权利要求1所述的数据传输速率监测器,进一步包括间隔定时构件,所述间隔定时构件在所述多装置箱体的操作期间每隔一段间隔就调 用所述监测构件;存储在电子存储器内的数据,所述数据包括为所述装置或端口配置的最大数据传输 速率的规范;以及累加器构件,当所述数据传输速率监测器从所述装置接收到数据传输时,所述累加 器构件将在所述数据传输中由所述装置传输的数据量加到累加器,所述累加器累加在当 前时间间隔期间由所述装置传输的总量数据。
5.根据权利要求2所述的数据传输速率监测器,其中,所述累加器构件将在从所述 装置接收的每个数据传输中传输的数据量加到由当前累加器引用从η个累加器中引用的 一个累加器,以及其中,在每一间隔,所述监测构件通过模η运算来递增当前累加器引 用,并清除由递增的当前累加器引用所引用的累加器。
6.根据权利要求5所述的数据传输速率监测器,其中,所述间隔定时构件每隔1秒调η用所述监测构件。
7.根据权利要求6所述的数据传输速率监测器,其中,所述监测构件通过对η个累加 器中存储的值相加来确定所述装置或端口的当前数据传输速率。
8.根据权利要求6所述的数据传输速率监测器,其中,所述间隔监测构件通过对η个累加器中存储的值相加以产生总和并将该总和乘以」1T,来确定所述装置或端口的当前数η —Y据传输速率。
9.根据权利要求8所述的数据传输速率监测器,其中,所述监测构件 确定所述装置或端口的当前数据传输速率是否低于低阈值;当所述装置或端口的当前数据传输速率低于所述低阈值时,在背压变量中存储不应 发送暂停命令到所述装置或端口的指示;当所述装置或端口的数据传输速率大于为所述装置或端口配置的最大数据传输速率时,当所述背压变量指示应该发送暂停命令到所述装置或端口时,增加在所述暂停命令 中包括的暂停时间,以便当所述装置或端口的即时数据传输速率大于为所述装置或端口 配置的最大数据传输速率时,进一步压制所述装置或端口;以及当所述背压变量指示不应发送所述暂停命令到所述装置或端口时, 在背压变量中存储应该发送暂停命令到所述装置或端口的指示,以及 计算待包括在所述暂停命令中的暂停时间;以及当所述背压变量指示应发送所述暂停命令到所述装置或端口时,发送包括所述暂停 时间的暂停命令到所述装置或端口。
10.根据权利要求8所述的数据传输速率监测器,其中,所述监测构件 确定所述装置或端口的当前数据传输速率是否低于低阈值;当所述装置或端口的当前数据传输速率低于所述低阈值并且在背压变量中存储的值 指示已经发送暂停命令到所述装置或端口时,向所述装置或端口发送恢复命令并在所述 背压变量中存储指示以指示尚未发 送暂停命令到所述装置或端口;以及当所述装置或端口的当前数据传输速率大于为所述装置或端口配置的最大数据传输 速率并且在背压变量中存储的值指示尚未发送暂停命令到所述装置或端口时,发送暂停 命令到所述装置或端口,并在所述背压变量中存储指示,以指示已经发送暂停命令到所 述装置或端口。
11.根据权利要求1所述的数据传输速率监测器,其中,所述数据传输速率监测器进 一步提供管理员接口,以允许管理员为所述多装置箱体中的每个装置或端口配置最大数 据传输速率。
12.—种用于控制多装置箱体内的装置或端口的最大数据传输速率的方法,所述多装 置箱体包含装置,所述装置包括将所述装置连接到通信介质的端口,所述方法包括在所述多装置箱体的操作期间,每隔一段间隔由监测构件确定在所述多装置箱体内 的装置或端口的当前数据传输速率,以及当所述装置或端口的当前数据传输速率超出为 所述装置或端口配置的最大数据传输速率时,传送暂停命令到所述装置或端口 ;以及当从所述装置或端口接收到数据传输时,将该数据传输中由所述装置传输的数据量 加到累加器,所述累加器累加在当前时间间隔期间由所述装置传输的总量数据。
13.根据权利要求12所述的方法,其在刀片系统的虚拟连接管理器中执行。
14.根据权利要求12所述的方法,其中,所述通信介质是以太网链路,以及所述暂停 命令是以太网暂停消息,所述以太网暂停消息包括指示该消息是暂停消息以及暂停时间 的类型/长度字段。
15.根据权利要求12所述的方法,进一步包括将在从所述装置接收的每个数据传输中传输的数据量加到由当前累加器引用从η个 累加器中引用的一个累加器;以及在每一间隔,通过模η运算来递增当前累加器引用,并清除由递增的当前累加器引 用所引用的累加器。
16.根据权利要求15所述的方法,进一步包括每隔1秒调用所述监测构件。
17.根据权利要求16所述的方法,其中,所述监测构件通过对η个累加器中存储的值相加来确定所述装置或端口的当前数据传输速率。
18.根据权利要求16所述的方法,其中,所述监测构件通过对η个累加器中存储的值相加以产生总和并将该总和乘以」、,来确定所述装置或端口的当前数据传输速率。η — i
19.根据权利要求18所述的方法,进一步包括确定所述装置或端口的当前数据传输速率是否低于低阈值;当所述装置或端口的当前数据传输速率低于所述低阈值时,在背压变量中存储不应 发送暂停命令到所述装置或端口的指示;当所述装置或端口的数据传输速率大于为所述装置或端口配置的最大数据传输速率时,当所述背压变量指示应该发送暂停命令到所述装置或端口时,增加在所述暂停命令 中包括的暂停时间,以便当所述装置或端口的即时数据传输速率大于为所述装置或端口 配置的最大数据传输速率时,进一步压制所述装置或端口;以及当所述背压变量指示不应发送所述暂停命令到所述装置或端口时, 在背压变量中存储应该发送暂停命令到所述装置或端口的指示,以及 计算待包括在所述暂停命令中的所述暂停时间;以及当所述背压变量指示应发送所述暂停命令到所述装置或端口时,发送包括所述暂停 时间的暂停命令到所述装置或端口。
20.根据权利要求18所述的方法,进一步包括确定所述装置或端口的当前数据传输速率是否低于低阈值;当所述装置或端口的当前数据传输速率低于所述低阈值并且在背压变量中存储的值 指示已经发送暂停命令到所述装置或端口时,向所述装置或端口发送恢复命令并在所述 背压变量中存储指示以指示尚未发送暂停命令到所述装置或端口;以及当所述装置或端口的当前数据传输速率大于为所述装置或端口配置的最大数据传输 速率并且在背压变量中存储的值指示尚未发送暂停命令到所述装置或端口时,发送暂停 命令到所述装置或端口,并在所述背压变量中存储指示,以指示已经发送暂停命令到所 述装置或端口。
全文摘要
本发明的实施例旨在为多装置箱体中的装置提供可配置的传输速率,尽管该多装置箱体内的公共通信介质否则会约束或固定装置的传输速率。在虚拟连接管理器或包含于多服务器箱体内或与之相关联的其他模块或装置内实施的本发明的一个实施例中,虚拟连接管理器提供监管或管理接口,通过该接口能够为每个服务器分配最大传输速率。然后,该虚拟连接管理器连续地监测服务器和/或服务器中的端口的传输速率,以便应用背压或流量控制,使得服务器和/或服务器中的端口不超出所配置的最大传输速率。
文档编号H04L12/40GK102017533SQ200880128904
公开日2011年4月13日 申请日期2008年4月28日 优先权日2008年4月28日
发明者C·L·赫森, M·创 申请人:惠普开发有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1