2. Network Design Requirements (网络设计需求)
2. Network Design Requirements (网络设计需求)
本节描述并总结了大规模数据中心的网络设计需求。
2.1 Bandwidth and Traffic Patterns (带宽和流量模式)
为大量服务器构建互连网络时的首要需求是满足应用程序的带宽和延迟要求。直到最近, 看到大多数流量进出数据中心 (通常称为"南北向"流量) 仍然非常普遍。传统的"树形"拓扑足以容纳此类流量, 即使在网络层之间具有较高的超额认购比率。如果需要更多带宽, 可以通过"纵向扩展"网络元素来添加, 例如, 通过升级设备的线卡或交换结构, 或用具有更高端口密度的设备替换该设备。
如今, 许多大规模数据中心托管生成大量服务器到服务器流量的应用程序, 这些流量不会离开数据中心, 通常称为"东西向"流量。此类应用程序的示例可能是计算机集群 (如 Hadoop [HADOOP]), 某些应用程序所需的集群之间的大规模数据复制, 或虚拟机迁移。扩展传统树形拓扑以匹配这些带宽需求要么变得过于昂贵, 要么由于物理限制 (例如交换机中的端口密度) 而变得不可能。
2.2 CAPEX Minimization (资本支出最小化)
仅网络基础设施相关的资本支出 (CAPEX) 就占数据中心总支出的约 10-15% (参见 [GREENBERG2009])。然而, 绝对成本是显著的, 因此需要不断降低单个网络元素的成本。这可以通过两种方式实现:
-
统一所有网络元素, 最好使用相同的硬件类型甚至相同的设备。这允许批量采购的批量定价, 并降低维护和库存成本。
-
通过引入多个网络设备供应商, 利用竞争压力来降低成本。
为了实现良好的供应商多样性, 重要的是最小化网络元素的软件功能需求。这种策略提供了最大的供应商设备选择灵活性, 同时使用开放标准强制实现互操作性。
2.3 OPEX Minimization (运营支出最小化)
运营大规模基础设施可能很昂贵, 因为更多数量的元素在统计上会更频繁地发生故障。拥有更简单的设计并使用有限的软件功能集进行运营可最大程度地减少与软件问题相关的故障。
运营支出 (OPEX) 最小化的一个重要方面是减小网络中故障域的大小。众所周知, 以太网网络容易受到广播或单播流量风暴的影响, 这些风暴可能对网络性能和可用性产生巨大影响。使用完全路由的设计可显著减小数据平面故障域的大小, 即将它们限制在网络层次结构的最低级别。然而, 这种设计引入了分布式控制平面故障的问题。这一观察要求更简单和更少的控制平面协议来减少协议交互问题, 从而减少网络崩溃的机会。如上文 CAPEX 部分所述, 最小化软件功能需求还可以减少测试和培训需求。
2.4 Traffic Engineering (流量工程)
在任何数据中心中, 应用程序负载均衡都是网络设备执行的关键功能。传统上, 负载均衡器作为专用设备部署在流量转发路径中。问题出现在流量需求增长时扩展负载均衡器。一个更可取的解决方案是能够通过添加更多统一节点并将传入流量分配到这些节点来水平扩展负载均衡层。在这种情况下, 理想的选择是使用网络基础设施本身在一组负载均衡器之间分配流量。任播前缀通告 [RFC4786] 和等价多路径 (ECMP) 功能的组合可用于实现此目标。为了实现更细粒度的负载分配, 网络支持执行受控的逐跳流量工程的能力是有益的。例如, 在网络层次结构的每个级别直接控制任播前缀的 ECMP 下一跳集是有益的。
2.5 Summarized Requirements (需求总结)
本节总结了前面各节中概述的需求列表:
-
REQ1: 选择可以通过添加更多相同类型的链路和网络设备来"水平"扩展的拓扑, 而无需升级网络元素本身。
-
REQ2: 定义由多个网络设备供应商支持的一组狭窄的软件功能/协议。
-
REQ3: 选择在编程代码复杂性和运营支持便利性方面具有简单实现的路由协议。
-
REQ4: 尽可能最小化设备或协议问题的故障域。
-
REQ5: 允许进行一些流量工程, 最好通过使用内置协议机制明确控制路由前缀下一跳。