四元全网状以维度驱动的网络架构转让专利

申请号 : CN201780070569.7

文献号 : CN109952809B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 邱必永

申请人 : 华为技术有限公司

摘要 :

提供了一种数据中心网络架构和数据通信方法。所述网络中的节点和通信链路按N个维度排列。包含四个节点的组最初排列在四元全网状网络中。在每个维度中,每个节点与其它节点有三个连接。特别地,在每个维度中,所述节点可以按象限排列,其中一个象限的节点与其它三个象限中的每一个象限中的节点相连。在每个维度中,发送节点和目的节点之间的最大跳数为N。所述维度使所述节点和通信链路可以很容易地分类为不同的服务级别,从而便于诊断问题。

权利要求 :

1.一种数据中心,其特征在于,包括:

多个节点,包括4^N个节点,其中N为至少2的整数;

多个通信链路,包括连接所述多个节点的3*N*(4^N)个通信链路,其中:所述节点排列在4^(N-1)个四元全网状网络中;

每个四元全网状网络包括四个节点;

在每个四元全网状网络中,通信链路将每个节点连接到每个其它节点;

所述四元全网状网络和所述多条通信链路按N个维度排列;

在每个维度中,多个四元全网状网络按四个象限排列,一个象限中的每个节点通过各自的通信链路连接至所述四个象限中的三个其它象限中的每个象限中的一个节点。

2.根据权利要求1所述的数据中心,其特征在于:对于每个四元全网状网络,通信链路将每个节点连接到其它四元全网状网络中的3*(N-1)个节点。

3.根据权利要求1所述的数据中心,其特征在于:每个维度关联一组不同的通信链路;

逐步增大的通信链路连接数量用于所述维度逐步增大的值。

4.根据权利要求1所述的数据中心,其特征在于:所述维度中的一个维度的通信链路的数据速率与另一个维度的通信链路的数据速率不同。

5.根据权利要求1所述的数据中心,其特征在于:在包括发送节点和目的节点的最小维度中,一个四元全网状网络位于一个象限,另一个四元全网状网络位于另一个象限中,数据包通过一条通信链路从所述一个象限发送到所述另一个象限。

6.根据权利要求5所述的数据中心,其特征在于:在包含所述发送节点和所述目的节点的所述最小维度中,所述数据包在所述另一个象限内使用不超过N-1条通信链路进行发送。

7.根据权利要求1所述的数据中心,其特征在于:在所述N个维度中的一个维度中,所述四元全网状网络按四个象限排列,其中一个象限中的节点的服务级别与另一个象限中的节点的服务级别不同。

8.根据权利要求1所述的数据中心,其特征在于:在所述N个维度中的一个维度中,所述四元全网状网络按四个象限排列,其中一个象限的通信链路的数据速率与另一个象限的通信链路的数据速率不同。

9.根据权利要求8所述的数据中心,其特征在于:所述不同的数据速率由不同的通信链路介质提供。

10.根据权利要求1所述的数据中心,其特征在于:每个节点通过不超过N条通信链路与每个其它节点连接。

11.根据权利要求1所述的数据中心,其特征在于:每个节点包括3*N个端口;

每个端口分别连接所述通信链路中的相应一条通信链路。

12.一种用于路由数据的方法,其特征在于,包括:数据中心中的发送节点标识目的节点的目的节点地址以协助请求,其中所述发送节点配置有发送节点地址;

所述发送节点基于所述发送节点地址和所述目的节点地址,标识发送节点路由端口和目的节点路由端口;

所述发送节点在数据包中提供节点地址表项和路由端口地址表项,其中所述节点地址表项包括所述发送节点地址和所述目的节点地址,所述路由端口地址表项包括所述发送节点路由端口和所述目的节点路由端口;

所述发送节点使用所述节点地址表项和所述路由端口地址表项,从所述数据中心中的多个四元全网状网络中的一个四元全网状网络中的发送节点向所述数据中心中的另一个四元全网状网络中的目的节点发送所述数据包,所述数据包标识节点的最小维度,其包括所述数据中心的节点的N个维度中的发送节点和目的节点,并且N为至少2的整数。

13.根据权利要求12所述的方法,其特征在于:所述多个四元全网状网络和连接所述节点的多个通信链路按所述N个维度排列。

14.根据权利要求12所述的方法,其特征在于,所述方法还包括:在所述发送节点与所述目的节点之间通过不超过N条通信链路发送所述数据包。

15.根据权利要求12所述的方法,其特征在于:在每个维度中,多个四元全网状网络按四个象限排列,且一个象限中的每个节点与所述四个象限中的三个其它象限中的每个象限中的一个节点连接;

在包括所述发送节点和所述目的节点的最小维度中,所述一个四元全网状网络位于一个象限,所述另一个四元全网状网络位于另一个象限中,所述数据包通过一条通信链路从所述一个象限发送到所述另一个象限。

16.根据权利要求15所述的方法,其特征在于,所述方法还包括:在包含所述发送节点和所述目的节点的所述最小维度中,在另一个象限内使用不超过N-1个通信链路发送所述数据包。

17.根据权利要求12所述的方法,其特征在于:所述节点地址表项包括一组数据字段,所述一组数据字段包括一对数据字段和一个或多个空数据字段,所述一对数据字段包括所述发送节点地址和所述目的节点地址,所述一对数据字段在所述一组数据字段中的位置标识包含所述发送节点和所述目的节点的所述最小维度。

18.根据权利要求12所述的方法,其特征在于:所述路由端口地址表项包括一组数据字段,所述一组数据字段包括一对数据字段和一个或多个空数据字段,所述一对数据字段包括所述发送节点路由端口和所述目的节点路由端口,所述一对数据字段在所述一组数据字段中的位置标识包含所述发送节点和所述目的节点的所述最小维度。

19.根据权利要求12所述的方法,其特征在于,所述方法还包括:所述发送节点确定所述数据包是否成功发送到所述目的节点;

如果所述数据包未成功发送到所述目的节点,所述发送节点使用包含所述发送节点和所述目的节点的所述最小维度的节点和关联的通信链路进行诊断。

20.根据权利要求19所述的方法,其特征在于:所述诊断排除了维度高于包含所述发送节点和所述目的节点的所述最小维度的节点和关联的通信链路。

说明书 :

四元全网状以维度驱动的网络架构

[0001] 本申请要求于2016年11月14日递交的、申请序列号为15/351,247、发明名称为“四元全网状以维度驱动的网络架构”的美国非临时专利申请案的在先申请优先权,其全部内容通过引用结合在本文中。。

背景技术

[0002] 数据中心通过存储数据并提供对所述数据的访问等方式支持企业、政府和消费者用户。通常,为高效地存储和检索数据,将数百或数千台服务器相互连接。所述服务器连接到诸如互联网这样的网络,以向手机、笔记本电脑和个人计算机或其它客户端设备等用户设备提供数据。在某些情况下,用户请求由一个服务器接收,然后将所述请求分为多个任务,并将所述多个任务分发到其它服务器进行处理。数据也可以在服务器之间进行传达,以存储备份副本或以其它方式使所述数据在多个服务器上可用。服务器之间通过按照网络架构排列的通信链路进行通信。

发明内容

[0003] 提供了一种数据中心,包括多个节点,所述多个节点包括4^N个节点,其中N为至少2的整数;以及包括多个通信链路,所述多个通信链路包括3*N*(4^N)条通信链路,其连接所述多个节点。所述节点排列在4^(N-1)个四元全网状网络中。每个四元全网状网络包括四个节点。在每个四元全网状网络中,通信链路将每个节点连接到每个其它节点。所述四元全网状网络和所述多条通信链路按N个维度排列。在每个维度中,四元全网状网络的每个节点通过各自的通信链路连接至其它四元全网状网络中的其它三个节点。
[0004] 在所述数据中心的实施例中,对于每个四元全网状网络,通信链路将每个节点连接到其它四元全网状网络中的3*(N-1)个节点。在所述数据中心的实施例中,每个维度关联不同的通信链路集合,且通信链路连接逐步增大的数量用于所述维度逐步增大的值。在所述数据中心的实施例中,所述维度中的一个维度的通信链路的数据速率与另一个维度的通信链路的数据速率不同。在所述数据中心的实施例中,所述四元全网状网络按四个象限排列,且一个象限中的每个节点与所述四个象限中的三个其它象限中的每个象限中的一个节点连接。在所述数据中心的实施例中,在包括发送节点和目的节点的最小维度中,一个四元全网状网络位于一个象限,另一个四元全网状网络位于另一个象限中,数据包通过一条通信链路从所述一个象限发送到所述另一个象限。在所述数据中心的实施例中,在包含所述发送节点和所述目的节点的所述最小维度中,所述数据包在所述另一个象限内使用不超过N-1条通信链路进行发送。
[0005] 在所述数据中心的实施例中,在所述N个维度中的一个维度中,所述四元全网状网络按四个象限排列,其中一个象限中的节点的服务级别与另一个象限中的节点的服务级别不同。在所述数据中心的实施例中,所述不同的服务级别包括不同的存储介质访问速度。在所述数据中心的实施例中,在所述N个维度中的一个维度中,所述四元全网状网络按四个象限排列,其中一个象限的通信链路的数据速率与另一个象限的通信链路的数据速率不同。在所述数据中心的实施例中,所述不同的数据速率由不同的通信链路介质提供。在所述数据中心的实施例中,每个节点通过不超过N条通信链路与每个其它节点连接。在所述数据中心的实施例中,每个节点包括处理和存储器资源。在所述数据中心的实施例中,每个节点包括3*N个端口,每个端口分别连接到所述通信链路中的相应一条通信链路。
[0006] 一种用于路由数据的方法包括:数据中心中的发送节点标识目的节点的目的节点地址以协助请求,其中所述发送节点配置有发送节点地址,所述发送节点基于所述发送节点地址和所述目的节点地址,标识发送节点路由端口和目的节点路由端口,所述发送节点在数据包中提供节点地址表项和路由端口地址表项,其中所述节点地址表项包括所述发送节点地址和所述目的节点地址,所述路由端口表项包括所述发送节点路由端口和所述目的节点路由端口,以及所述发送节点使用所述节点地址表项和所述路由端口地址表项从所述数据中心中的多个四元全网状网络中的一个四元全网状网络中的发送节点向所述数据中心中的另一个四元全网状网络中的目的节点发送所述数据包,所述数据包标识节点的最小维度,其包括所述数据中心的节点的N个维度中的发送节点和目的节点,并且N为至少2的整数。
[0007] 在所述方法中,所述多个四元全网状网络和连接所述节点的多个通信链路按N个维度排列。所述方法还包括:在所述发送节点处,所述发送节点与所述目的节点之间通过不超过N条通信链路发送所述数据包。在所述方法的实施例中,在每个维度中,多个四元全网状网络按四个象限排列,且一个象限中的每个节点与所述四个象限中的三个其它象限中的每个象限中的一个节点连接,并且在包含所述发送节点和所述目的节点的所述最小维度中,所述一个四元全网状网络位于一个象限中,所述另一个四元全网状网络位于另一个象限中,所述数据包通过一条通信链路从所述一个象限发送到所述另一个象限。
[0008] 在所述方法的实施例中,在包含所述发送节点和所述目的节点的所述最小维度中,所述数据包在所述另一个象限内使用不超过N-1条通信链路进行发送。在所述方法的实施例中,所述节点地址表项包括一组数据字段,所述一组数据字段包括一对数据字段和一个或多个空数据字段,所述一对数据字段包括所述发送节点地址和所述目的节点地址,所述一对数据字段在所述一组数据字段中的位置标识包含所述发送节点和所述目的节点的所述最小维度。在所述方法的实施例中,所述路由端口地址表项包括一组数据字段,所述一组数据字段包括一对数据字段和一个或多个空数据字段,所述一对数据字段包括所述发送节点路由端口和所述目的节点路由端口,所述一对数据字段在所述一组数据字段中的位置标识包含所述发送节点和所述目的节点的所述最小维度。在所述方法的实施例中,所述方法还包括所述发送节点确定所述数据包是否成功发送到所述目的节点,如果所述数据包未成功发送到所述目的节点,所述发送节点使用包含所述发送节点和所述目的节点的所述最小维度的节点和关联的通信链路进行诊断。
[0009] 在所述方法的实施例中,所述诊断排除了维度高于包含所述发送节点和所述目的节点的所述最小维度的节点和关联的通信链路。
[0010] 数据中心包括多个节点,所述多个节点包括4^N个节点,N为至少2的整数;以及包括连接所述多个节点的3*N*(4^N)个通信链路的多个通信链路。所述节点排列在4^(N-1)个四元全网状网络中。每个四元全网状网络包括四个节点。所述四元全网状网络和所述多条通信链路按N个维度排列。在每个维度中,所述四元全网状网络按四个象限排列,且一个象限中的每个节点与所述四个象限中的三个其它象限中的每个象限中的一个节点连接。
[0011] 在所述数据中心的实施例中,其中一个维度的通信链路的数据速率与另一个维度的通信链路的数据速率不同。在所述数据中心的实施例中,在所述N个维度中的一个维度中,所述四元全网状网络按四个象限排列,其中一个象限中的节点的服务级别与另一个象限中的节点的服务级别不同。
[0012] 数据中心中的发送节点包括:存储器、路由端口和处理器。所述存储器存储软件指令并配置有发送节点地址,所述处理器用于执行所述指令以:标识目的节点的目的节点地址以协助请求,基于所述发送节点地址和所述目的节点地址,标识发送节点路由端口和目的节点路由端口,提供包括节点地址表项和路由端口地址表项的数据包,其中所述节点地址表项包括所述发送节点地址和所述目的节点地址,所述路由端口表项包括所述发送节点路由端口和所述目的节点路由端口,以及使用所述节点地址表项和所述路由端口地址表项从所述数据中心中的多个四元全网状网络中的一个四元全网状网络中的发送节点向所述数据中心中的另一个四元全网状网络中的目的节点发送所述数据包,所述数据包标识节点的最小维度,其包括所述数据中心的节点的N个维度中的发送节点和目的节点,并且N为至少2的整数。

附图说明

[0013] 本发明的各个方面通过举例的方式示出但不受附图的限制,附图中相同的附图标记表示相同的元件。
[0014] 图1A描述了包括数据中心的示例网络;
[0015] 图1B描述了图1A所示的数据中心中的节点的示例配置;
[0016] 图1C描述了图1A所示的数据中心的示例节点N0-N3中的路由端口的示例配置;
[0017] 图2A描述了一维配置中包括4个节点和6条关联通信链路的示例四元全网状网络;
[0018] 图2B描述了与图2A所示的网络一致的示例节点和路由端口表项;
[0019] 图2C描述了一种示例数据包,其包括与图2B一致的节点地址表项和路由端口地址表项;
[0020] 图3描述了一种二维配置中的示例网络,其包括四个四元全网状网络,其中描述了第一维度的通信链路;
[0021] 图4A描述了与图3所示的网络300一致的示例网络,其中描述了第二维度的通信链路;
[0022] 图4B描述了与图4A所示的网络一致的示例节点和路由端口表项,其中所述发送节点为N0、N1、N2或N3;
[0023] 图4C描述了与图4A所示的网络一致的示例节点和路由端口表项,其中所述发送节点为N4、N5、N6或N7;
[0024] 图4D描述了与图4A所示的网络一致的示例节点和路由端口表项,其中所述发送节点为N8、N9、N10或N11;
[0025] 图4E描述了与图4A所示的网络一致的示例节点和路由端口表项,其中所述发送节点为N12、N13、N14或N15;
[0026] 图5描述了与图3和图4A所示的网络一致的示例网络,其中所述网络不同象限中的节点和所述关联通信链路提供不同的服务级别;
[0027] 图6A描述了一种三维配置的示例网络,包括16个四元全网状网络,其中描述了用于N0、N16、N32和N48的通信链路;
[0028] 图6B描述了与图6A所示的网络的N0、N16、N32和N48一致的示例节点和路由端口表项;
[0029] 图6C描述了与图6A所示的网络一致的示例网络,其中在诊断过程中识别所述网络中节点的不同子集;
[0030] 图7A描述了四维配置的示例网络,其包括64个四元全网状网络,其中描述了N0、N64、N128和N192的通信链路;
[0031] 图7B描述了与图7A所示的网络的N0、N64、N128和N192一致的示例节点和路由端口表项;
[0032] 图7C描述了作为图1B所示的节点和路由端口表项172a的示例与图2B、4B、6B和7B所示的示例一致的N0的示例节点和路由端口表项;
[0033] 图8A描述了五维配置的示例网络,其包括256个四元全网状网络,其中描述了N0、N256、N512和N768的通信链路;
[0034] 图8B描述了与图7A所示的网络的N0、N256、N512和N768一致的示例节点和路由端口表项;
[0035] 图9A描述了与图1A至图8B所示一致的列出了网络维度、节点数量、四元全网状网络数量、每节点链路或端口数量以及最大跳数的表格;
[0036] 图9B描述了网状网络的比较示例;
[0037] 图9C描述了与图9B所示一致的列出了节点数量、每节点链路或端口数量以及最大跳数的表格;
[0038] 图10描述了提供N维网络的示例过程;
[0039] 图11A描述了在N维网络中发送数据包的示例过程;
[0040] 图11B描述了在N维网络中诊断问题的示例过程;
[0041] 图12描述了用于标识网络最小维度的数据,所述最小维度包括发送节点和目的节点以及关联的通信链路;
[0042] 图13描述了可用于实现各种实施例的网络系统的框图。

具体实施方式

[0043] 本发明涉及数据中心的网络架构以及用于在网络中发送数据的关联技术。
[0044] 在数据中心中,节点/服务器通过网络架构相互连接。为了满足当前和未来的需要,需要节点的存储介质的读写时间更快,节点之间的数据速率更快。数据速率受例如所使用的通信链路的类型和节点间的链路连接的影响。例如,图9B描述了网状网络900的比较示例。所述网络有16个节点,即N0-N15。所述节点之间的箭头表示通信链路,使每个节点有两条、三条或四条通信链路来发送和接收来自其最近邻节点的数据。这种方法的缺点是,在节点之间进行数据包通信时,最大跳数较高。例如,从节点N0至N10发送的数据包在到达N10之前可能在6跳中经过节点N1、N4、N5、N6和N9。跳表示数据包在两个节点之间的通信。此时,所述数据包经过N0和N10的端点节点之间的五个中间节点(N1、N4、N5、N6和N9)进行路由。不同节点具有不同数量的通信端口也会使实现变得更加困难。
[0045] 此外,处理所述源节点和所述目的节点之间的路径中的中间节点的每个节点中的传入数据包具有开销成本。每个传入数据包的数据包终止、数据包分析和数据包转发都会产生这些成本。高速链路中通常会有大量的数据包。因此,减少源节点和目的节点之间通信的跳数在节能和性能改善方面提供了相应的巨大效益。
[0046] 图9C描述了与图9B所示一致的列出了节点数量、每节点链路或端口数量以及最大跳数的表格。在本示例中,有16个节点,每个节点具有3个链路或端口,最大跳数为6。相比之下,图9A描述了用于与图1A至图8B所示一致的网络架构的列出了网络维度、节点数量、四元网状网络数量、每节点链路或端口数量以及最大跳数的表格。对于16个节点的类似情况,每个节点有6个链路或端口,最大跳数为2跳。因此,最大跳数从6个减到2个。此外,每个节点的通信端口数量相等。这种优势随着节点数量的增加而增大。
[0047] 此处提供的网络拓扑与数据中心的以存储器为中心的方法兼容。在以存储器为中心的方法中,重点在于提供一种网络架构以补充所述数据中心存储器的非常高的访问速度(读/写数据速率)。可以使用的各种类型的存储器包括相变存储器(phase change memory,简称PCM)、3D交叉点、动态随机存取存储器(dynamic random access memory,简称DRAM)、静态RAM(static RAM,简称SRAM)、NOR存储器、闪存、电阻型随机存储器(resistive random access memory,简称RRAM)或硬盘驱动器。可以使用易失性或非易失性存储器。例如,RAM具有约1纳秒的非常快的存取时间,DRAM具有约30纳秒的存取时间,闪存具有约25微秒的存取时间,硬盘具有毫秒级的存取时间。
[0048] 一种方法是在节点中扩展使用超速缓存内存。与其它类型的存储器相比,超速缓存内存可以被计算机微处理器更快存取。其可以直接与CPU芯片集成,也可以放置在单独的芯片上与所述CPU具有单独的互连总线。高速存储器的使用可以满足未来5G移动数据网络等网络的需求。5G硬件/软件(hardware/software,简称HW/SW)平台可以满足移动数据流量的预期指数增长(例如,相对于当前4G技术增加1000倍)以及各种应用所带来的要求。
[0049] 所述节点之间的通信链路可以包括光链路、电链路和/或无线链路。例如,所述光链路可以使用硅光子学,其中半导体激光器与集成电路结合替代印刷电路板上的光应答器。利用硅光子学,所述光应答器在所述芯片内部,IC管脚是所述光链路连接。一条光纤链路可以使用密集波分复用(dense wavelength division multiplexing,简称DWDM)来同时承载多条通道的数据。目前的设计可以使用以太网等现有协议提供100G/秒的数据速度。使用这些和其它技术,可以减少所述数据中心中的时延。另一个挑战是提供一种网络架构,其能够有效地扩展并在出现问题时辅助提供故障隔离。本文提供的技术解决了上述问题和其它问题。
[0050] 该技术提供了一种集群机制和一种轻量级拓扑协议。一方面,提供了一种具有轻量级拓扑协议的四节点全网状以维度驱动的超环面集群架构。每节点三条链路可以创建全网状连接来覆盖网络的多个维度/层的每个维度/层。所述四节点单元是一种用于增加更高维度/层的基本构建块,并使用三个链路提供全网状连接。节点数量N基于4xN增长(其中N为具有维度特征的组)。将最大跳数(即,数据在所述集群中的节点之间传送的最坏情况)确定为维度N。网络中的链路可以被认为以不同的集合或维度排列。也就是说,可以将给定的链路分配给一个维度。链路所分配的维度可以表示所述链路的长度,其中较低维度对应于相对较短的链路,其连接距离较近的节点。较高维度对应于相对较长的链路,其连接距离较远的节点。通过按照此处描述的维度排列链路,可以优化节点之间的跳数。
[0051] 这不同于其它集群架构,例如没有基于维度的方法的网格或树架构。在最佳情况下,只需一跳即可到达目的节点。
[0052] 另一个优点是可以按维度(或组)分配任务。按不同的数据类型(热/温/冷)对地理段进行分类很容易,集群的扩展尺寸没有限制,通过减少所述集群中数据传输时的跳数,可以节省大量的开销。
[0053] 图1A描述了一种示例网络100,其包括数据中心110、网络150(例如互联网)和客户端计算设备160(例如手机、笔记本电脑或个人计算机)。客户端计算设备的另一示例是访问所述数据中心的分析服务器,例如进行大数据分析。所述数据中心包括多个节点,例如示例节点125,所述示例节点125通过总线或背板130连接到例如数据中心路由器120。每个节点包括处理和存储资源。示例节点标记为N0、N1、N2和N3。总线或背板,例如光背板,与每个节点相连,以允许每个节点直接与所述数据中心路由器通信。所述路由器可以分层排列以在所述网络150和所述节点之间发送数据。如后续图所示,也可以在所述节点之间提供通信链路。如下面进一步讨论的,可以使用管理员计算机配置每个节点各自的一组节点和路由端口表项。
[0054] 一种示例性实现方式包括排列在17个机架上的34个pod中的2176个服务器,其中一个pod包括按8行8列排列的64个服务器。
[0055] 一些数据中心延伸到许多英亩的大面积区域。然而,未来的数据中心预计会小得多。数据中心可以包括共址的节点,例如,在一个建筑物中,或者地理上分散的节点,例如,在不同的城市中。
[0056] 图1B描述了图1A的数据中心110中节点125的示例配置。每个节点包括处理、数据存储和路由/交换能力。例如,可以提供一种路由器170,包括处理器171、存储器172和路由端口173,路由端口173与和其它节点来往的通信链路174关联。所述路由端口可以被认为是输入/输出端口,因为它们可以接收和发送数据。存储器172可存储节点地址和路由端口表项172a,其标识到目的节点的通信路径。所述存储器还可以存储节点125的地址,例如互联网协议(Internet Protocol,简称IP)地址和/或媒体访问控制(Media Access Control,简称MAC)地址。例如,可以使用自适应或自主路由。基于节点地址和路由端口表项172a,所述路由端口可以与不同的网络维度关联。例如,图7C提供了节点N0的节点和路由端口表项的示例。所述处理器171可以访问所述节点和路由端口表项,以确定在将数据包路由到另一个节点时使用哪一个路由端口。所述数据中心的处理和数据存储部分180包括处理器181、主存储器182、输入/输出设备183、辅助存储器184和网络接口185。所述主存储器182可以包括访问速度较高的存储介质,例如超速缓存内存。一种示例性实现方式使用RAM。所述辅助存储器184可以包括访问速度较低的存储介质,例如固态存储器(例如闪存)或者硬盘驱动器。相对频繁访问的数据可以存储在所述主存储器182中,以减少延迟。所述处理器181可以包括微处理器或中央处理器的其它实现形式。所述输入/输出设备183包括允许所述处理器
181与所述路由器170的所述处理器171通信的接口,例如向其它节点发送数据包和从其它节点接收数据包。
[0057] 所述网络接口185允许所述节点125与一个或多个数据中心路由器通信。例如,所述网络接口185可以连接到所述总线或背板130。
[0058] 例如,所述节点125可以包括服务器。通常使用的服务器具有强大的计算能力,并且连接到某种类型的存储设备,例如硬盘驱动器。在未来的设计中,所述节点CPU能力将更专用于输入和输出,从而使服务器更像是一个存储器控制器。节点125可以包括某种类型的CPU加速能力。加速器可以连接到CPU总线上,快速执行关键功能。
[0059] 所述处理器181可以加载并执行工作存储器181a中的代码(例如,软件例程172b),以执行本文描述的功能。所述处理器171可以加载并执行工作存储器171a中的代码,以执行本文描述的功能。各种计算设备可利用所有所示的组件或仅利用所述组件的子集,且设备之间的集成程度可能不同。此外,设备可以包含组件的多个实例,例如多个处理单元、处理器、存储器、发射器以及接收器等。所述数据源可包括硬件存储设备,所述硬件存储设备存储待处理的数据的样本。所述处理器可以是任何类型的电子数据处理器,例如CPU。所述输入/输出设备可以包括网络接口、存储接口、显示器、键盘、指针设备等。工作存储器可以存储代码,例如,由处理器执行以执行本文描述的功能的指令。所述代码可以存储在非易失性存储器中并加载到所述工作存储器中。
[0060] 所述存储器/存储设备可包括任何类型的系统存储器,例如静态随机存取存储器(static random access memory,简称SRAM)、动态随机存取存储器(Dynamic random access memory,简称DRAM)、同步DRAM(synchronous DRAM,简称SDRAM)、只读存储器(read-only memory,简称ROM)、固态驱动器、硬盘驱动器、磁盘驱动器或光盘驱动器。所述存储器设备可以包括在启动时使用的ROM,以及在执行程序时使用的程序和数据存储的DRAM。所述存储器设备可以包括非瞬时性硬件存储器设备。
[0061] 所述管理员计算机105可以具有与所述处理部分180类似的配置。其存储器为所有所述节点存储节点和路由端口表项,并将相关节点和路由端口表项传送到每个节点,以配置所述网络。
[0062] 图1C描述了图1A所示的数据中心的示例节点N0-N3中的路由端口的示例配置。在一种方法中,每个路由端口可以通过双向通信链路在给定时间发送或接收数据。此外,通信链路可以从一个节点的一个端口扩展到另一个节点的另一个端口。所述通信链路也可以与不同的网络维度关联。在该示例中,每个节点具有15个标记为p0、p1、p2、p3、p4、p5、p6、p7、p8、p9、pa、pb、pc、pd和pe的端口。端口p0、p1和p2(第一组端口140)与第一维度(D1)关联,端口p3、p4和p5(第二组端口141)与第二维度(D2)关联,端口p6、p7和p8(第三组端口142)与第三维度(3D)关联,端口p9、pa和pb(第四组端口143)与第四维度(4D)关联,端口pc、pd和pe(第五组端口144)与第五维度(5D)关联。
[0063] 类似地,N1包括D1中的第一组端口190、D2中的第二组端口191、D3中的第三组端口192、D4中的第四组端口193和D5中的第五组端口194。类似地,N2包括D1中的第一组端口
195、D2中的第二组端口196、D3中的第三组端口197、D4中的第四组端口198和D5中的第五组端口199。类似地,N3包括D1中的第一组端口145、D2中的第二组端口146、D3中的第三组端口
147、D4中的第四组端口148和D5中的第五组端口149。
[0064] 在一种方法中,不同节点的路由端口按模式连接,其中每个模式都不同且与所述网络的维度相关联。例如,D1中不同节点的路由端口可以通过关联通信链路相互连接,D2中不同节点的路由端口可以通过关联通信链路相互连接,D3中不同节点的路由端口可以通过关联通信链路相互连接,D4中不同节点的路由端口可以通过关联通信链路相互连接,D5中不同节点的路由端口可以通过关联通信链路相互连接。具体例子如下。
[0065] 请注意,随着增加额外的节点和通信链路,网络可以随着时间的推移扩展到更高的维度。如果所述路由端口中的一些路由端口与高于所述网络当前维度的维度关联,则这些路由端口可能不会被使用。例如,如果所述当前维度为N=3(D3),则对于N0,将使用路由端口集合140、141和142,而不使用路由端口集合143和144。
[0066] 图2A描述了一维(1D)配置中包括4个节点和6条关联通信链路的示例四元全网状网络200。每个节点通过一条通信链路直接连接到每个其它节点。例如,链路L0-1将N0的端口p2连接至N1的端口p0,链路L0-3将N0的端口p0连接至N3的端口p2,链路L0-2将N0的端口p1连接至N2的端口p1,链路L1-2将N1的端口p2连接至N2的端口p0,链路L2-3将N2的端口p2连接至N3的端口p0,链路L1-3将N1的端口p1连接至N3的端口p1。
[0067] 四元全网状网络是合适的可以重复扩展网络维数的单元。另请参考图9A,所述网络的维度是基于四元全网状网络的数量和节点的数量。例如,让N(大于等于1的整数)表示所述维度。在最低维度(第一维度或N=1)中,有一个四元全网状网络和四个节点。在第二最低维度(第二维度或N=2)中,有四个四元全网状网络和十六个节点。在下一维度(第三维度或N=3)中,有16个四元全网状网络和64个节点等。一般情况下,当维数=N时,节点数为4^N(4的N次方),四元全网状网络数为4^(N-1)(4的N-1次方)。根据4的幂在维度中排列节点的数量,可以方便地组织所述节点和链路。
[0068] 图2B描述了与图2A所示的网络一致的示例节点和路由端口表项。表包括节点地址表项和对应的路由端口表项。对于给定的发送节点和目的节点,在所述发送节点和所述目的节点中将有一个指定的路由端口。在一种方法中,节点地址表项的语法为“发送节点地址:目的节点地址”,路由端口地址表项的语法为“发送路由端口:目的路由端口”。此外,还可以在所述节点和端口地址之前和/或之后提供大量的空数据值或其它默认数据值,以指示关联的维度。例如,节点地址表项220a为x.x.x.x.x.0:1,表示N0为所述发送节点,N1为所述目的节点。此外,所述节点地址和路由端口地址之后没有空字段(x),表示所述维度为最低维度,或者D1。对应的路由端口地址表项220b为x.x.x.x.2:0,表示p2为所述发送节点中的路由端口,p0为所述目的节点中的路由端口。同样,所述节点地址和路由端口地址之后没有空字段(x),表示所述维度是最低维度,或者D1。对应的链路为L0-1。
[0069] 所述表提供了其余情况的类似信息。所述表可以认为是发送节点用于向目的节点发送数据包的路由信息。
[0070] 图2C描述了与图2B一致的示例性数据包230,其包括所述数据包的报头231中的节点地址表项231a和路由端口地址表项231b。所述报头231c可以包括其它信息,例如纠错码(error-correcting code,简称ECC)数据231c,其由所述目的节点用于确定是否成功接收数据包。例如,所述ECC数据231c可以包括校验和。数据包标识(ID)231d可以用于标识一组数据包中的数据包的顺序位置以供所述目的节点使用。
[0071] 所述目的节点可以确定数据包发送是否由于各种原因而存在错误。一个例子是当校验和或其它ECC数据231c没有期望值时。另一示例是当数据包在一个数据包序列中丢失时。所述发送节点也可以确定数据包发送是否存在错误,例如在所述发送节点发送所述数据包后的一定时间内没有从所述目的节点接收到确认或请求的数据。
[0072] 所述数据包中也提供净荷数据232。例如,所述净荷数据232可以包括相关用户请求的数据,将用户请求分为多个任务以使一个任务的指令在净荷数据232中从一个节点传送到另一个节点。在另一示例中,所述净荷数据232包括数据的副本,所述副本将存储在所述目的节点中,以提高所述数据的可用性。其它许多例子都是可能的。
[0073] 图3描述了二维配置的示例网络300,其包括四个四元全网状网络310、320、330和340,其中描述了第一维度的通信链路。所述四元全网状网络310、320、330和340分别包括节点N0-N3、N4-N7、N8-N11和N12-N15。此外,所述节点和所述四元全网状网络310、320、330和
340按象限排列,分别包括Q1、Q2、Q3和Q4。如下所示,在所述网络的每个维度中,所述网络的象限中的每个节点与三个其它节点连接,即其它每个象限中的一个节点。
[0074] 图4A描述了与图3所示的网络300一致的示例网络400,其中描述了第二维度的通信链路。所述网络包括四元全网状网络410、420、430和440,分别位于象限Q1、Q2、Q3和Q4中。本示例仅示出所述第二维度的通信链路。第一维度的通信链路,例如,四元全网状网络的维度,如图2A所示。所述网络400中的每个节点与第二维度中的三个其它节点连接,即其它每个象限中的一个节点。
[0075] 在图4A的示例中,p5处的N0与p3处的N4连接,p4处的N0与p4处的N8连接,p3处的N0与p5处的N12连接。所述节点之间的连接在图4B-4E的表中进行了描述。在所述网络400的第二维度中,象限的节点与其它象限的其它节点或其它网格的其它节点连接。
[0076] 图4B描述了与图4A所示的网络一致的示例节点和路由端口表项,其中所述发送节点为N0、N1、N2或N3。节点地址表项x.x.x.0:4.x表示Q1中的N0为所述发送节点,Q2中的N4为所述目的节点。所述表项包括若干字段,其中,一些字段为空数据,用“x”表示。此外,其中一个字段还标识所述发送节点,相邻的后续字段标识所述目的节点。标识所述发送节点和目的节点的字段用冒号(“:”)分隔。所述发送节点和目的节点字段在所述表项中的位置还可以表示使用所述识别出的端口进行通信的维度。例如,所述发送和目的节点字段的右侧的空字段的数量(在所述发送和目的节点字段之后)可以与所述维度关联。
[0077] 在表项x.x.x.0:4.x中,所述节点地址和路由端口地址后面有一个空字段(x)。这可以表示这些表项用于第二维度或D2中的通信。在该方案中,所述维度等于所述节点地址和/或路由端口地址之后空字段数量加一。
[0078] 或者,所述节点地址和路由端口地址之前有三个字段也可以表示这些表项用于第二维度中的通信。在该方案中,所述维度等于5减去所述节点地址和/或路由端口地址之前的空字段数量(例如,3)。所述维度也可以由数据包中的单独数据字段指示。
[0079] 通常,所述节点地址表项包括一组数据字段,所述一组数据字段包括一对数据字段和一个或多个空数据字段,所述一对数据字段包括所述发送节点地址和所述目的节点地址。此外,在所述节点地址表项中,包含所述发送节点和所述目的节点的所述最小维度由所述一对数据字段在所述一组数据字段中的位置标识。
[0080] 换句话说,在节点地址表项中,维度可以通过所述发送节点地址和所述目的节点地址的数据字段之前和/或之后的空数据字段的数量来标识。
[0081] 类似地,所述路由端口地址表项包括一组数据字段,所述一组数据字段包括一对数据字段和一个或多个空数据字段,所述一对数据字段包括所述发送节点路由端口和所述目的节点路由端口。此外,在所述路由端口地址表项中,包含所述发送节点和所述目的节点的所述最小维度由所述一对数据字段在所述一组数据字段中的位置标识。
[0082] 换句话说,在路由端口地址表项中,维度可以通过所述发送节点路由端口地址和所述目的节点路由端口地址的数据字段之前和/或之后的空数据字段的数量来标识。例如,路由端口地址表项x.x.x.5:3.x表示p5是所述发送节点中的路由端口,p3是所述目的节点中的路由端口。所述节点地址和路由端口地址后面有一个空字段(x),前面有三个数据字段,表示所述维度为N=2。
[0083] 节点地址表项x.x.0:8.x表示N0为Q1中的发送节点,Q3中的N8为所述目的节点。路由端口地址表项x.x.x.4:4.x表示p4为所述发送节点中的路由端口,p4为所述目的节点中的路由端口。
[0084] 节点地址表项x.x.0:12.x表示N0为Q1中的发送节点,Q4中的N12为所述目的节点。路由端口地址表项x.x.x.3:5.x表示p3为所述发送节点中的路由端口,p5为所述目的节点中的路由端口。
[0085] 其余表项适用于所述发送节点为N1、N2或N3时。
[0086] 图4C描述了与图4A所示的网络一致的示例节点和路由端口表项,其中所述发送节点为N4、N5、N6或N7。节点地址表项x.x.4:0.x表示Q2中的N4为所述发送节点,Q1中的N0为所述目的节点。路由端口地址表项x.x.x.3:5.x表示p3为所述发送节点中的路由端口,p5为所述目的节点中的路由端口。
[0087] 节点地址表项x.x.4:8.x表示Q2中的N4为所述发送节点,Q1中的N8为所述目的节点。路由端口地址表项x.x.x.4:3.x表示p4是所述发送节点中的路由端口,p3是所述目的节点中的路由端口。
[0088] 节点地址表项x.x.4:12.x表示Q2中的N4为所述发送节点,Q4中的N12为所述目的节点。路由端口地址表项x.x.x.5:3.x表示p5是所述发送节点中的路由端口,p3是所述目的节点中的路由端口。
[0089] 其余表项适用于所述发送节点为N5、N6或N7时。
[0090] 图4D描述了与图4A所示的网络一致的示例节点和路由端口表项,其中所述发送节点为N8、N9、N10或N11。节点地址表项x.x.8:0.x表示Q3中的N8为所述发送节点,Q1中的N0为所述目的节点。路由端口地址表项x.x.x.4:4.x表示p4为所述发送节点中的路由端口,p4为所述目的节点中的路由端口。其余表项适用于来自N8的其它通信以及所述发送节点为N5、N6或N7时。
[0091] 图4E描述了与图4A所示的网络一致的示例节点和路由端口表项,其中所述发送节点为N12、N13、N14或N15。节点地址表项x.x.12:0.x表示Q4中的N12为所述发送节点,Q1中的N0为所述目的节点。路由端口地址表项x.x.x.5:3.x表示p5是所述发送节点中的路由端口,p3是所述目的节点中的路由端口。其余表项适用于来自N12的其它通信以及所述发送节点为N13、N14或N15时。
[0092] 图5描述了与图3和图4A所示的网络一致的示例网络500,其中所述网络不同象限中的节点和所述关联通信链路提供不同的服务级别。所述网络包括四元全网状网络510、520、530和540,分别位于象限Q1、Q2、Q3和Q4中。
[0093] 在图5中,所述节点的不同虚线和通信链路表示不同的服务级别。例如,L0-4、L0-8和L0-12的通信链路提供了不同的服务级别。所述网络架构允许在节点和/或通信链路之间方便地区分服务级别。例如,在所述网络的给定维度中,所述节点的服务级别可以在不同的象限中有所不同。例如,Q1中的节点的服务级别可以不同于Q2中的节点的服务级别,而Q1中的节点可以具有相等的服务级别,Q2中的节点可以具有相等的服务级别。节点的服务级别可以涉及不同的因素,例如节点处存储介质的访问速度,例如以比特/秒为单位。
[0094] 在另一示例中,Q2和Q4的节点具有相等的中等服务级别,并用于存储以中等频率(例如,每月一次)访问的数据(温数据)。例如,这些节点可以通过使用闪存等提供中等访问速度。Q1的节点具有高服务级别,用于存储以高频(例如,每天一次)访问的数据(热数据)。例如,这些节点可以通过使用超速缓存内存等提供高访问速度。Q3的节点具有较低的服务级别,用于存储以低频(例如,一年一次)访问的数据(冷数据)。例如,这些节点可以通过使用硬盘驱动器等提供低访问速度。
[0095] 通信链路的服务级别也可以在不同的象限中变化,例如,在数据发送速度方面。节点或通信链路的服务级别还可以与其它因素关联,例如可靠性(例如平均故障间隔时间)、错误率或可用性(例如节点或链路在给定时间内运行的概率)。不同的通信链路介质(例如,光和铜线)和/或发送介质中带宽的不同分配可以提供不同的数据发送速率。例如,在所述网络的给定维度中,Q1与Q2之间的通信链路的服务级别可以不同于Q1与Q3之间的通信链路的服务级别。即使不同的通信链路使用相同的媒体时,也可以通过一条链路相对于另一条链路的通信优先级来提供不同的服务级别。通信链路的服务级别也可以随着关联网络维度而变化,使维度中的链路提供不同于其它维度中的链路的服务级别。
[0096] 图6A描述了一种三维配置的示例网络600,包括16个四元全网状网络,其中描述了用于节点N0、N16、N32和N48的通信链路。所述网络包括16个四元全网状网络610(N0-N15)、620(N16-N31)、630(N32-N47)和640(N48-N63),分别位于象限Q1、Q2、Q3和Q4中。提供了用于N0、N16、N32和N48的示例通信链路。另请参考图6B,其描述了与图6A所示的网络的N0、N16、N32和N48一致的示例节点和路由端口表项。
[0097] 节点地址表项x.x.0:16.x.x表示Q1中的N0为所述发送节点,Q2中的N16为所述目的节点。此外,所述节点地址和路由端口地址之后有两个空字段(x),表示所述维度为第三维度,或者D3。路由端口地址表项x.x.6:8.x.x表示p6为所述发送节点中的路由端口,p8为所述目的节点中的路由端口。所述关联的通信链路为L0-16。
[0098] 节点地址表项x.x.0:32.x.x表示Q1中的N0为所述发送节点,Q3中的N32为所述目的节点。路由端口地址表项x.x.7:7.x.x表示p7是所述发送节点中的路由端口,p7是所述目的节点中的路由端口。所述关联的通信链路为L0-32。
[0099] 节点地址表项x.x.0:48.x.x表示Q1中的N0为所述发送节点,Q4中的N48为所述目的节点。路由端口地址表项x.x.8:6.x.x表示p8为所述发送节点中的路由端口,p6为所述目的节点中的路由端口。所述关联的通信链路为L0-48。
[0100] 其余表项适用于所述发送节点为N16、N32或N48时的通信。其它节点的表项可以遵循所描述的模式,但出于简洁并不列出。
[0101] 图6C描述了与图6A所示的网络一致的示例网络,其中在诊断过程中识别所述网络中节点的不同子集。所述网络包括四个四元全网状网络610(N0-N15)、620(N16-N31)、630(N32-N47)和640(N48-N63),分别位于象限Q1、Q2、Q3和Q4,如图6A所示。在一个示例中,Q1周围的粗虚线表示网络650的该子集已被识别为所述网络中错误的可能来源。在另一示例中,Q2中四元全网状网络622周围的粗虚线表示网络650的该子集已被识别为网络中错误的可能来源。另请参见图11B的过程。
[0102] 例如,当从一个节点到另一个节点的数据包发送不成功时,所述错误的根源可以限于所述网络的最小维度,所述网络的最小维度包括所述发送和目的节点以及所述关联的通信链路。例如,四个四元全网状网络610周围的虚线表示所述发送节点和目的节点以及所述关联的通信链路在该区域内,其中维度N=2。四元全网状网络622周围的虚线表示所述发送和目的节点以及所述关联的通信链路在该区域内,其中维度N=1。因此,诊断过程可以集中于所述网络的特定维度的组件,而不是整个网络。在一种方法中,所述发送和/或目的节点可以生成错误消息,所述错误消息由系统管理员等能够进行诊断的人员查看。所述诊断也可以自动完成。
[0103] 图7A描述了四维配置的示例网络700,其包括64个四元全网状网络,其中描述了N0、N64、N128和N192的通信链路。所述网络包括64个四元全网状网络710(N0-N63)、720(N64-N127)、730(N128-N191)和740(N192-N255),分别位于象限Q1、Q2、Q3和Q4中。提供了用于N0、N64、N128和N192的示例通信链路。另请参考图7B,其描述了与图7A所示的网络的N0、N64、N128和N192一致的示例节点和路由端口表项。
[0104] 节点地址表项x.0:64.x.x.x表示Q1中的N0为所述发送节点,Q2中的N64为所述目的节点。此外,所述节点地址和路由端口地址之后有三个空字段(x),表示所述维度为第四维度,或者D4。路由端口地址表项x.9:b.x.x.x表示p9为所述发送节点中的路由端口,pb为所述目的节点中的路由端口。所述关联的通信链路为L0-64。
[0105] 节点地址表项x.0:128.x.x.x表示Q1中的N0为所述发送节点,Q3中的N128为所述目的节点。路由端口地址表项x.a:a.x.x.x表示pa是所述发送节点中的路由端口,pa是所述目的节点中的路由端口。所述关联的通信链路为L0-128。
[0106] 节点地址表项x.0:192.x.x.x表示Q1中的N0为所述发送节点,Q4中的N192为所述目的节点。路由端口地址表项x.b:9.x.x.x表示pb为所述发送节点中的路由端口,p9为所述目的节点中的路由端口。所述关联的通信链路为L0-192。
[0107] 其余表项适用于所述发送节点为N64、N128或N192时的通信。其它节点的表项可以遵循所描述的模式,但出于简洁并不列出。
[0108] 图7C描述了作为图1B所示的节点和路由端口表项172a的示例与图2B、4B、6B和7B所示的示例一致的N0的示例节点和路由端口表项。每个节点可以配置有用于所述网络的每个维度的节点表和路由端口表项。所述节点使用这些表来确定如何路由通信。每个节点都可以配置有涉及经由该节点路由的表。在本示例中,N0为示例节点,提供了表750-753。也可以在一个表中提供所述表项。这种方法方便地提供了用于所述不同维度通信的表项。如所讨论的,每个节点可以由管理员计算机105配置各自的一组节点和路由端口表项。
[0109] 图8A描述了五维配置的示例网络800,其包括256个四元全网状网络,其中描述了N0、N256、n512和N768的通信链路。所述网络包括256个四元全网状网络810(N0-N255)、820(N256-N511)、830(N512-N767)和840(N768-N1023),分别位于象限Q1、Q2、Q3和Q4中。提供了用于N0、N256、N512和N768的示例通信链路。另请参考图8B,其描述了与图7A所示的网络的N0、N256、N512和N768一致的示例节点和路由端口表项。
[0110] 节点地址表项0:256.x.x.x.x表示Q1中的N0为所述发送节点,Q2中的N256为所述目的节点。此外,所述节点地址和路由端口地址之后有四个空字段(x),表示所述维度为第五维度,或者D5。路由端口地址表项c:e.x.x.x.x表示pc是所述发送节点中的路由端口,pe是所述目的节点中的路由端口。所述关联的通信链路为L0-256。
[0111] 节点地址表项0:512.x.x.x.x表示Q1中的N0为所述发送节点,Q3中的N512为所述目的节点。路由端口地址表项d:d.x.x.x.x表示pd为所述发送节点中的路由端口,pd为所述目的节点中的路由端口。所述关联的通信链路为L0-512。
[0112] 节点地址表项0:768.x.x.x.x表示Q1中的N0为所述发送节点,Q4中的N768为所述目的节点。路由端口地址表项e:c.x.x.x.x表示pe是所述发送节点中的路由端口,pc是所述目的节点中的路由端口。所述关联的通信链路为L0-768。
[0113] 其余表项适用于所述发送节点为N256、N512或N768时的通信。其它节点的表项可以遵循所描述的模式,但出于简洁并不列出。
[0114] 图9A描述了与图1A至图8B所示一致的列出了网络维度、节点数量、四元全网状网络数量、每节点链路或端口数量以及最大跳数的表格。对于N的维度,其中N为大于等于1的整数,节点的数量为4^N。四元全网状网络的数量为该值的四分之一,或4^(N-1)。每个节点的链路或端口总数为3*N。在给定的维度中,每个节点的链路或端口数为3。在给定的维度N中,数据包从发送节点到目的节点的通信的最大跳数为N。这意味着所述数据包通过所述发送节点和所述目的节点之间的N-1个中间节点。跳表示通过一个通信链路从一个节点发送到另一个节点。
[0115] 一方面,数据中心包括4^N个节点,N为至少2的整数,以及连接所述多个节点的3*N*(4^N)条通信链路。所述节点排列在4^(N-1)个四元全网状网络中。对于每个四元全网状网络,通信链路在所述网络的所有维度上将每个节点连接到其它四元全网状网络中的3*(N-1)个节点。
[0116] 此外,不同的通信链路集合与每个维度关联,且通信链路逐步增大的数量用于所述维度逐步增大的值。每个节点通过不超过N条通信链路与每个其它节点连接。可选地,逐步增长的通信链路用于所述维度逐步增大的值。这在所述网络中提供了具有不同长度的通信链路,以最小化节点之间的跳数。通常,数据包从发送节点到目的节点的通信链路的长度可以随着每个连续跳逐渐缩短。
[0117] 每个节点包括3*N个端口,每个端口分别连接到所述通信链路中的相应一条通信链路。
[0118] 另一方面,一种装置包括:4^N个节点,N为至少2的整数,以及连接所述多个节点的3*N*(4^N)条通信链路。所述节点排列在4^(N-1)个四元全网状网络中。所述四元全网状网络和所述多个通信链路按N个维度排列,并且在每个维度中,所述四元全网状网络按四个象限排列,且一个象限中的每个节点与所述四个象限中的三个其它象限中的每个象限中的一个节点连接。
[0119] 图9B描述了一种网状网络900的比较示例,所述网状网络900包括逻辑上排列为x行和X列的节点N0-N10,其中每个节点在行和列中与其每个邻居节点连接。然而,如所讨论的,在该方法中,发送节点和目的节点之间的跳数并不一定很大。例如,该网络在有效的扩展和故障隔离等方面也不具备优势。
[0120] 图9C描述了与图9B所示一致的列出了节点数量、每节点链路或端口数量以及最大跳数的表格。在本示例中,有16个节点,每个节点具有3个链路或端口,最大跳数为6。相比之下,图9A,对于16个节点的类似情况,每个节点有6个链路或端口,最大跳数为2。因此,最大跳数从6个减到2个。
[0121] 图10描述了提供N维网络的示例过程。在一种方法中,所述过程由管理员计算机105执行,并且涉及定义和分发如前所述的节点和路由端口表项的表。为提供网络,可以从第一维度开始,在最高维度或第N维度结束,根据不同维度将通信链路连接到节点。步骤
1001定义了节点和路由端口表项的表,所述表提供节点的路由端口之间的通信链路,以形成四元全网状网络。例如,若有N个维度,则有4^(N-1)个四元全网状网络。步骤1002增加维度索引n=2。在步骤1003处,对于每组4^n个节点,定义表节点和路由端口表项提供从象限中的每个节点到三个其它象限中的每个象限中的一个节点的通信链路。当n=2时,对于每组16个节点,提供从象限中的每个节点到三个其它象限中的每个象限中的一个节点的通信链路。每个象限包括4个节点,如图4A所示。
[0122] 决策步骤1004确定n是否等于网络的最高维度。如果此步骤为真(T),则在步骤1006处,所述管理员计算机将所述节点和路由端口表项的表分发到各自的节点。例如,图7C提供了用于N0的示例表。如果决策步骤1004为假(F),则在步骤1005处将n递增1,重复步骤
1003。当n=3时,对于每组64个节点,提供从象限中的每个节点到三个其它象限中的每个象限中的一个节点的通信链路。每个象限包括16个节点,如图6A所示。当n=4时,对于每组256个节点,提供从象限中的每个节点到三个其它象限中的每个象限中的一个节点的通信链路。每个象限包括64个节点,如图7A所示。当n=5时,对于每组1024个节点,提供从象限中的每个节点到三个其它象限中的每个象限中的一个节点的通信链路。每个象限包括256个节点,如图8A所示。该过程可以扩展到更大的n值。
[0123] 图11A描述了在N维网络中发送数据包的示例过程。步骤1100包括:在一个四元全网状网络的发送节点处接收数据请求等任务。步骤1101包括在所述发送节点处获取其它四元全网状网络中的目的节点的标识。所述标识可以是目的节点地址。该目的节点可以协助执行该任务。例如,到达所述数据中心的用户请求可以基于其可用性分布到不同的节点。接收到请求的节点可以与一个或多个其它节点联系,以获得满足该请求的数据。例如,请求可以用于由通用资源标识符(uniform resource locator,简称URL)标识的网页。所述节点可以与所述管理员计算机联系以识别具有所述数据以满足所述请求的节点。例如,所述节点可以将所述URL或所述URL中的一个或多个字段发送给所述管理员计算机。作为响应,所述管理员计算机将所述URL字段交叉引用到特定的节点地址,并将该地址作为所述目的节点地址返回。所述目的节点地址例如可以是互联网协议(Internet Protocol,简称IP)地址或媒体接入控制(Media Access Control,简称MAC)地址。因此,所述管理员计算机可以充当索引服务器。所述管理员计算机也可以识别能够完成所述请求的不同部分的多个节点。
[0124] 在另一示例中,所述管理员计算机监测所述节点的可用性,并可以决定采取诸如指示特定节点将其部分数据复制或移动到另一节点的操作。在这种情况下,所述管理员计算机将所述复制或移动指令和所述目的节点地址提供给所述特定节点。在另一示例中,节点可以独立地向另一节点(独立于所述管理员计算机)生成请求。
[0125] 在步骤1102处,所述发送节点基于所述发送节点和目的节点的地址,从所述节点和路由端口表项的表中查找路由端口,例如,如图2B、4B-4E、6B、7B和8B所示。在步骤1103处,所述发送节点准备包括节点地址表项、路由端口地址表项和请求的数据包,其中所述数据包标识包括所述发送节点和目的节点的网络的最小维度。这是与所述发送关联的维度。所述请求可以是提供某些数据或执行例如上文所述的复制或移动等任务。因此,基于所述发送节点接收到的请求,所述发送节点向所述目的节点发送具有相关请求的数据包。在步骤1104处,所述发送节点向所述目的节点发送所述数据包。例如,这可以包括通过所述发送节点路由端口发送所述数据包。在步骤1105处,可以使用一个或多个中间节点路由所述数据包。每个接收到数据包的节点分析所述报头,以确定该节点是否是所述目的节点。如果不是,则所述节点确定接收所述数据包的下一个节点。这可以是所述目的节点,也可以是将导致最小跳数的另一中间节点。
[0126] 在步骤1106处,所述目的节点接收所述数据包并向所述发送节点发送确认。在步骤1107处,所述目的节点将所请求的数据或任务完成确认发送到所述发送节点。在一种实现方式中,一种用于路由数据的方法包括:数据中心中的发送节点标识目的节点的目的节点地址以协助请求,其中所述发送节点配置有发送节点地址,所述发送节点基于所述发送节点地址和所述目的节点地址,标识发送节点路由端口和目的节点路由端口,所述发送节点在数据包中提供节点地址表项和路由端口地址表项,其中所述节点地址表项包括所述发送节点地址和所述目的节点地址,所述路由端口地址表项包括所述发送节点路由端口和所述目的节点路由端口,以及所述发送节点使用所述节点地址表项和所述路由端口地址表项从所述数据中心中的多个四元全网状网络中的一个四元全网状网络中的发送节点向所述数据中心中的另一个四元全网状网络中的目的节点发送所述数据包,所述数据包标识节点的最小维度,其包括所述数据中心的节点的N个维度中的发送节点和目的节点,并且N为至少2的整数。
[0127] 一种用于路由数据的相应装置包括:准备数据包的装置、发送数据包的装置、确定数据包是否发送成功的装置、以及如上所讨论的,如果数据包发送不成功,则进行诊断的装置。所述装置可以包括例如图1B所示的组件。
[0128] 所述数据包通过所述发送节点和所述目的节点之间不超过N条通信链路发送。
[0129] 在每个维度中,所述多个四元全网状网络按四个象限排列,且一个象限中的每个节点与所述四个象限中的三个其它象限中的每个象限中的一个节点连接,并且在所述一个维度中,所述一个四元全网状网络位于一个象限中,所述另一个四元全网状网络位于另一个象限中,所述数据包通过一条通信链路从所述一个象限发送到所述另一个象限。
[0130] 此外,在包含所述发送节点和所述目的节点的最小维度中,所述数据包在所述另一个象限内使用不超过N-1条通信链路进行发送。
[0131] 在所述节点地址表项中,所述一个维度由一对数据字段之前和/或之后的空数据字段的数量标识,其中所述一对数据字段包括一个数据字段中的发送节点地址和另一个数据字段中的目的节点地址。
[0132] 如果所述数据包未成功发送到所述目的节点,一种方法包括在涉及所述一个维度的节点和关联通信链路的诊断中使用所述一维,所述诊断不包括高于所述一个维度的维度的节点和关联通信链路。
[0133] 图11B描述了在N维网络中诊断问题的示例过程。步骤1110包括确定数据包未从所述发送节点成功发送到所述接收节点。例如,当数据包由于校验和或其它纠错数据而不具有期望值、在一系列数据包中丢失数据包或未接收到确认时,可能会出现问题。步骤1111从所述数据包中或通过其它方式识别包含所述发送和目的节点以及所述关联通信链路的网络的最小维度。另请参见图12。步骤1112对与所述一个维度(包括所述发送节点和目的节点的最小维度)相关联的节点和通信链路执行诊断,但不包括更高维度的节点和通信链路。所述诊断可以包括例如测试所述节点和所述通信链路的操作,例如通过在节点之间发送测试数据包。
[0134] 图12描述了用于标识网络最小维度的数据,所述最小维度包括发送节点和目的节点以及关联的通信链路。在本示例中,N=4为与图7A所示一致的所述网络的最高维度。如果所述节点的周围是N0-N255,但不是较小维度(例如,N=1、2或3)范围内的节点,则最高维度为N=4。如果所述节点的周围是N0-N255的四个子集中的一个子集,例如N0-N63、N64-N127、N128-N191或N192-N255,但不是更小维度范围内的节点,例如N=1,2,则最高维度为N=3。
[0135] 如果所述节点的周围是N0-N63、N64-N127、N128-N191或N192-N255中的每一个的四个子集中的一个子集,但不是较小维度范围内的节点(例如,N=1,2),则最高维度为N=2。例如,N0-N63的子集为N0-N15、N16-N31、N32-N47和N48-N63,N64-N127的子集为N64-N79、N80-N95、N96-N111和N112-N127,N128-N191的子集为N128-N143、N144-N159、N160-N175和N176-N191,N192-N255的子集为N192-N207、N208-N223、N224-N239和N240-N255。
[0136] 如果所述节点的周围是N0-N15、N16-N31、N32-N47和N48-N63、N64-N79、N80-N95、N96-N111和N112-N127、N128-N143、N144-N159、N160-N175和N176-N191以及N192-N207、N208-N223、N224-N239和N240-N255中的每一个的四个子集中的一个子集,则最高维度为N=1。例如,N0-N15的4个子集为N0-N3、N4-N7、N8-N11和N12-N15,N16-N31的4个子集为N16-N19、N20-N23、N24-N27和N28-N31,N32-N47的4个子集为N32-N35、N36-N39、N40-N43和N44-N47,N48-N63的4个子集为N48-N51、N52-N55、N56-N59和N60-N63。
[0137] 图13描述了可用于实现各种实施例的网络系统10的框图。特定设备可利用所有所示的组件或仅所述组件的子集,且设备之间的集成程度可能不同。此外,设备可以包含组件的多个实例,例如多个处理单元、处理器、存储器、发射器以及接收器等。所述网络系统10可包括处理单元11,处理单元11配备有一个或多个输入/输出设备,例如网络接口、存储接口等。所述处理单元11可以包括与总线12连接的至少一个中央处理器(central processing unit,简称CPU)13、存储器16、大容量存储设备14和I/O接口18。所述总线12可以是任意类型的几种总线架构中的一种或多种,包括存储器总线或存储器控制器、外设总线等。
[0138] 所述CPU 13可包括任意类型的电子数据处理器。所述存储器16可包括任意类型的系统存储器,例如静态随机存取存储器(static random access memory,SRAM)、动态随机存取存储器(dynamic random access memory,DRAM)、同步DRAM(synchronous DRAM,SDRAM)、只读存储器(read-only memory,ROM)或其组合等等。在实施例中,所述存储器16可包含在开机时使用的ROM以及在执行程序时使用的存储程序和数据的DRAM。所述程序可以作为一个或多个软件例程17提供。所述至少一个CPU 13能够访问并执行所述一个或多个软件例程17。在多个实施例中,所述存储器16是非瞬时性的。大容量存储器设备14可包括任意类型的存储设备,其用于存储数据、程序和其它信息,并使这些数据、程序和其它信息通过总线访问。大容量存储器设备14可包括如下项中的一种或多种:固态磁盘、硬盘驱动器、磁盘驱动器、光盘驱动器等等。
[0139] 所述处理单元11还包括一个或多个通信接口15,所述通信接口15可包括有线链路,例如以太网线等,和/或链接到接入节点或一个或多个网络150的无线链路。所述通信接口15允许所述处理单元11通过所述网络150与远端单元通信。举例来说,所述通信接口15可以经由一个或多个发射器/发射天线以及一个或多个接收器/接收天线提供无线通信。在一个实施例中,所述处理单元11耦合到局域网或广域网上以用于数据处理以及与远程设备通信,所述远程设备例如其它处理单元、因特网、远程存储设施等等。
[0140] 还提供了用户界面19,例如图形用户界面,以允许用户配置和监控所述处理单元11。
[0141] 在图1A的数据中心中提供了图13的一个示例性实施例。所述软件例程17可用于当所述软件例程由所述CPU 13执行时,执行所述数据中心110的功能。所述处理单元11/数据中心110可包括多个节点,所述多个节点包括4^N个节点,所述N为至少2的整数,以及包括连接所述多个节点的3*N*(4^N)个通信链路的多个通信链路。所述节点排列在4^(N-1)个四元全网状网络中,每个四元全网状网络包括4个节点。此外,在每个四元全网状网络中,通信链路将每个节点连接到每个其它节点。所述四元全网状网络和所述多条通信链路按N个维度排列。在每个维度中,四元全网状网络的每个节点通过各自的通信链路连接至其它四元全网状网络中的其它三个节点。
[0142] 在图1B的节点中提供了图13的一个示例性实施例。所述软件例程17可用于当所述软件例程由所述CPU 13执行时,执行所述节点125的功能。所述处理单元11/节点125位于包括多个节点的数据中心中,所述多个节点包括4^N个节点,其中N为至少2的整数,以及包括连接所述多个节点的3*N*(4^N)个通信链路的多个通信链路。所述节点排列在4^(N-1)个四元全网状网络中,每个四元全网状网络包括4个节点,所述四元全网状网络和所述多条通信链路排列在N个维度中。此外,在每个维度中,所述四元全网状网络按四个象限排列,且一个象限中的每个节点与所述四个象限中的三个其它象限中的每个象限中的一个节点连接。
[0143] 本文提供的技术可用于数据中心中以存储器为中心的存储器,其与当前和未来的存储器和通信技术兼容。所述技术与数据中心中的超高速大规模网络集群兼容。所述技术允许所述节点和通信链路以时延最小的动态方式进行地理分类。每个维度中的节点具有三条通信链路来提供全网状连接。这些链路可以是电接口、光接口和/或无线接口。所有链路和节点可以按维度提供相同或不同的速度或服务级别。例如,按维度应用速度等级,可以将数据中心划分为热、温、冷的数据服务区。此外,扩展所述集群的大小还不受限制。通过每节点增加3条链路,可以创建通信链路的新维度。
[0144] 所述网络为节点和通信链路的地理分类提供了一种更有组织的方式。使用维度聚类技术也可以提供更有效的故障隔离。这允许基于所述网络维度对地理任务和数据业务类型分配进行分类。
[0145] 任何节点到节点的通信都将具有最小的路由过程和跳数,从而节省了总体的网络成本和功耗。轻量级的高速拓扑协议可以用于处理集群或一组节点的维度和速度等级信息。
[0146] 许多应用是可能的,包括巨型光总线或背板。
[0147] 可以理解的是,本发明可以以许多不同的形式实现,并且不应视为对本文所阐述的实施例的限制。相反,提供这些实施例是为了使本发明内容更加透彻和完整,并将本发明完整地传达给本领域技术人员。实际上,本发明旨在涵盖包括在由所附权利要求书限定的本发明公开的范围和精神内的这些实施例的替代物、修改和等同物。另外,阐述了许多特定细节以便透彻理解。但是,本领域普通技术人员清楚的是,所述实施例可以在没有这些具体细节的情况下实施。
[0148] 根据本发明的各实施例,本文所述的方法可以通过执行软件程序的硬件计算机系统实现。此外,在非限制性实施例中,实施方式可以包括分布式处理、部件/对象分布式处理和并行处理。可以构建虚拟计算机系统处理以实施本文所描述的方法或功能中的一种或多种,本文所描述的处理器可以用于支持虚拟处理环境。
[0149] 此处,结合本发明实施例的方法、装置(系统)以及计算机程序产品的流程图和/或方框图描述本发明的各方面。应当理解,流程图和/或方框图的每个框以及流程图和/或方框图中的框的组合可以由计算机程序指令来实现。可以将这些计算机程序指令提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,以生成机制,使得这些通过计算机或其它可编程指令执行装置的处理器所执行的指令创建实现所述流程图和/或方框图中的一个或多个方框所指定的功能/动作的机制。
[0150] 本文中所用的术语仅仅是出于描述特定方面的目的,并且并不打算限制本发明。除非上下文清楚说明,否则本文所用的单数形式“一”和“所述”包括其复数形式。应进一步了解,本说明书中所用的术语“包括”用于说明存在所述特征、整数、步骤、操作、元件和/或部件,但并不排除存在或添加一个或多个其它特征、整数、步骤、操作、元件、部件和/或它们的组合。
[0151] 对本发明的描述只是为了说明的目的,而这些描述并不旨在穷举或限于所公开的实施例。在不偏离本发明的范围和精神的前提下,多种修改和改变对本领域技术人员而言是显而易见的。选择和描述的本发明各个方面以便更好地解释本发明的原理和实际应用,并且使本领域技术人员能够理解本发明适合预期特定用途的各种修改。
[0152] 为了本文档的目的,与所公开的技术相关联的每个过程可以连续执行并由一个或多个计算设备执行。过程中的每个步骤可以由与其它步骤中使用的相同或不同的计算设备执行,并且每个步骤不一定由单个计算设备执行。
[0153] 虽然已经以特定于结构特征和/或方法动作的语言描述了主题,但是应该理解的是,权利要求书定义的主题不必局限于上面描述的具体特征或动作。相反,上述具体的特征和动作被公开作为实施权利要求的示例性方式。