3. Data Center Topologies Overview (数据中心拓扑概述)
3. Data Center Topologies Overview (数据中心拓扑概述)
本节概述了两种通用类型的数据中心设计 - 分层 (也称为"基于树的") 和基于 Clos 的网络设计。
3.1 Traditional DC Topology (传统数据中心拓扑)
在网络行业中, 数据中心的常见设计选择通常看起来像一个 (倒置的) 树, 具有冗余上行链路和三层层次结构, 即核心层, 汇聚/分发层和接入层 (见图 1)。为了满足带宽需求, 从服务器到数据中心出口或 WAN 的每个更高层都具有更高的端口密度和带宽容量, 其中核心层充当基于树的设计的"主干"。为了保持术语统一并与其他设计进行比较, 本文档将这些层称为 Tier 1, Tier 2 和 Tier 3"层级", 而不是核心层, 汇聚层或接入层。
+------+ +------+
| | | |
| |--| | Tier 1
| | | |
+------+ +------+
| | | |
+---------+ | | +----------+
| +-------+--+------+--+-------+ |
| | | | | | | |
+----+ +----+ +----+ +----+
| | | | | | | |
| |-----| | | |-----| | Tier 2
| | | | | | | |
+----+ +----+ +----+ +----+
| | | |
| | | |
| +-----+ | | +-----+ |
+-| |-+ +-| |-+ Tier 3
+-----+ +-----+
| | | | | |
<- Servers -> <- Servers ->
图 1: 典型的数据中心网络拓扑
不幸的是, 如前所述, 由于无法获取端口密度足够大的 Tier 1 设备以充分扩展 Tier 2, 因此无法将基于树的设计扩展到足够大的程度来处理大规模设计。此外, 随着部署规模或带宽需求的增加, 需要持续升级或更换上层设备, 这在运营上是复杂的。因此, REQ1 就位, 将这种类型的设计排除在考虑之外。
3.2 Clos Network Topology (Clos 网络拓扑)
本节描述了大规模数据中心中水平可扩展拓扑的常见设计, 以满足 REQ1。
3.2.1 Overview (概述)
水平可扩展拓扑的常见选择是折叠的 Clos 拓扑, 有时称为"胖树" (例如, [INTERCON] 和 [ALFARES2008])。这种拓扑具有奇数个阶段 (有时称为"维度"), 通常由统一的元素组成, 例如具有相同端口数的网络交换机。因此, 折叠 Clos 拓扑的选择满足 REQ1 并促进 REQ2。参见下面的图 2, 这是一个折叠的 3 阶段 Clos 拓扑示例 (3 个阶段在跟踪数据包流时将 Tier 2 阶段计数两次):
+-------+
| |----------------------------+
| |------------------+ |
| |--------+ | |
+-------+ | | |
+-------+ | | |
| |--------+---------+-------+ |
| |--------+-------+ | | |
| |------+ | | | | |
+-------+ | | | | | |
+-------+ | | | | | |
| |------+-+-------+-+-----+ | |
| |------+-+-----+ | | | | |
| |----+ | | | | | | | |
+-------+ | | | | | | ---------> M links
Tier 1 | | | | | | | | |
+-------+ +-------+ +-------+
| | | | | |
| | | | | | Tier 2
| | | | | |
+-------+ +-------+ +-------+
| | | | | | | | |
| | | | | | ---------> N Links
| | | | | | | | |
O O O O O O O O O Servers
图 2: 3 阶段折叠 Clos 拓扑
这种拓扑通常也被称为"叶脊"网络, 其中"脊"是 Clos 拓扑中间阶段的名称 (Tier 1), "叶"是输入/输出阶段的名称 (Tier 2)。为了统一, 本文档将使用"Tier n"符号来引用这些层。
3.2.2 Clos Topology Properties (Clos 拓扑属性)
以下是 Clos 拓扑的一些关键属性:
-
如果 M >= N, 则拓扑是完全无阻塞的, 或者更准确地说是无干扰的, 否则按 N/M 的因子超额认购。这里 M 和 N 分别是 Tier 2 交换机的上行和下行端口数, 如图 2 所示。
-
利用此拓扑需要控制和数据平面支持扇出为 M 或更大的 ECMP。
-
Tier 1 交换机在此拓扑中到每个服务器只有一条路径。这是一个重要的属性, 使得路由汇总在此拓扑中很危险 (见下文第 8.2 节)。
-
从服务器到服务器的流量使用 ECMP 在所有可用路径上进行负载均衡。
3.2.3 Scaling the Clos Topology (扩展 Clos 拓扑)
Clos 拓扑可以通过增加网络元素端口密度或通过添加更多阶段来扩展, 例如, 移动到 5 阶段 Clos, 如下图 3 所示:
Tier 1
+-----+
Cluster | |
+----------------------------+ +--| |--+
| | | +-----+ |
| Tier 2 | | | Tier 2
| +-----+ | | +-----+ | +-----+
| +-------------| DEV |------+--| |--+--| |-------------+
| | +-----| C |------+ | | +--| |-----+ |
| | | +-----+ | +-----+ +-----+ | |
| | | | | |
| | | +-----+ | +-----+ +-----+ | |
| | +-----------| DEV |------+ | | +--| |-----------+ |
| | | | +---| D |------+--| |--+--| |---+ | | |
| | | | | +-----+ | | +-----+ | +-----+ | | | |
| | | | | | | | | | | |
| +-----+ +-----+ | | +-----+ | +-----+ +-----+
| | DEV | | DEV | | +--| |--+ | | | |
| | A | | B | Tier 3 | | | Tier 3 | | | |
| +-----+ +-----+ | +-----+ +-----+ +-----+
| | | | | | | | | |
| O O O O | O O O O
| Servers | Servers
+----------------------------+
图 3: 5 阶段 Clos 拓扑
图 3 中拓扑的小示例是由具有四个端口的设备构建的, 每个端口用于将设备连接到上层或下层。从概念上讲, 这种拓扑与图 2 中的拓扑相同, 只是水平扩展了一级。注意添加的新 Tier 2 设备, 它们作为网络的更多 Tier 1 段的根, 并将这些段连接到公共 Tier 1 核心。新的 Tier 2 设备形成与服务器之间的新间接级别。在图 3 中, Tier 3 设备本身形成了一个小型的 3 阶段 Clos 拓扑, 并通过 Tier 2 设备连接到整个拓扑的其余部分。通过将多个 Clos 拓扑组合在一起, 可以进一步扩展这种设计。例如, 可以将四个 3 阶段 Clos 拓扑互连以形成单个 5 阶段 Clos。在许多情况下, 形成 5 阶段 Clos 的每个 3 阶段 Clos 被称为"集群" (cluster), 这是本文档后面使用的术语。
3.2.4 Managing the Size of Clos Topology Tiers (管理 Clos 拓扑层级的规模)
控制 Clos 拓扑的扇出和大小对于满足本文档中概述的一些设计需求至关重要。例如, 拓扑不应要求在 Tier 1 和 Tier 2 之间使用太多链路, 因为这可能导致需要特殊的高端口密度设备, 这与 REQ1 相矛盾。因此, 通过添加更多阶段来扩展 Clos 拓扑通常比增加单个设备的端口密度更可取。
此外, 控制 Tier 1 的大小对于满足 REQ4 (最小化故障域) 也很重要。例如, 如果 Tier 1 太大, 则 Tier 1 中的路由协议问题可能会影响整个数据中心。通过保持 Tier 1 相对较小并使用多个较小的 Tier 1 实例 (例如, 在 5 阶段 Clos 拓扑中), 可以隔离故障域并提高整体网络弹性。
构建 Clos 拓扑时的另一个考虑因素是保持服务器到服务器的跳数相对较小, 以最小化延迟。3 阶段 Clos 拓扑在最坏情况下提供 4 跳的服务器到服务器延迟 (服务器 -> Tier 2 -> Tier 1 -> Tier 2 -> 服务器), 而 5 阶段 Clos 拓扑在最坏情况下提供 6 跳 (添加两个 Tier 2 跳)。