领英(LinkedIn)的数据中心设计原则
2017-03-03 SDNLAB 编辑:佚名
运营大规模、快速增长的网络需要在如何规划、部署和运营基础设施方面进行变革,随着LinkedIn不断扩张数据中心网络,很明确的是LinkedIn不仅需要尽快地提供和建立网络,还必须使用最简单的方法。在没有任何流量丢失或架构更改的情况下,添加新组建、新功能或新服务是极具挑战性的。
LinkedIn数据中心基础设施设计和战略的三个核心原则是:
- 开放性:尽可能使用社区的工具
- 独立性:避免开发对单一厂商或厂商驱动架构的依赖
- 简单性:专注于寻找最简单、容易和模块化的基础设施工程方法。在我们的网络和协议中遵循RFC 1925第12条规则:“对设计协议而言,仅当无法减少什么,而不是无法增加什么,才算完美。”
对于上面的三个维度,我们最近添加了一个新的维度:可编程性。能够近实时地修改数据中心架构的行为,而无需接触设备配置,这使得我们能够调整架构,以最佳的方式适应应用和业务需求。这使得我们的网络运营和现场团队更专注于运行网络,而不是管理工具和配置,从而进一步释放创新能力。可编程性带来的好处包括能够按需优先处理流量分配、负载均衡或安全状态,并提高交付的敏捷性和响应速度。
为了实现这些目标,我们正在分解我们的网络,以一种允许我们修改和管理网络且无需停机的方式分离软件和硬件,并转向软件驱动的网络架构。
单SKU数据中心
在我们最近发布的Altair项目的博客中,我们解释了转向单SKU数据中心的模式,特别是基于Falco开放交换平台。我们使用一个3.2 Tbps交换机作为我们的leaf-spine拓扑的不同层的构建块,让他们在一个统一的软件栈上运行。
这种单SKU数据中心使我们能够从基于大型机箱的复杂性转移到一个简单的单一模块,该模块是可重复的,在扩展时可以增加数量。然而,构建简单的结构不会完全消除复杂性,它只是将复杂性转移到网络中的其他方面。
在我们的案例中,复杂性是在几个标准Linux发行版之间的软件堆栈:可以在主机和路由器上运行的便携式控制平面,为我们提供硬件扩展软件的功能。硬件平台以Open19服务器平台为基础,它通过snap-on电源和数据传输速度提高了我们的机架集成度,数据传输速度比当前生成的硬件快2-3倍。
- 架顶式:Pigeon 1.0硬件——3.2T芯片;10/25/50/100G服务器附件;96个密集计算单元。
- 叶节点:Pigeon 1.0硬件——3.2T芯片;非阻塞拓扑;
- 枝节点:Pigeon 1.0硬件——3.2T芯片;非阻塞拓扑;提供64个pod(每个pod 32 ToR);10万个裸机服务器——每个pod大约1550个计算单元。
另一方面,特征和控制被迁移到代码中,而不是复杂的专用硬件设备。
自定义网络
我们正在研究一个新的概念:我们将如何建立网络。当我们连接系统和网络元素时,我们希望网络以更简单的方式工作。
自定义网络是一些列开箱即用的功能,使网络元素能够在没有预配置或人为干预的情况下进行动态初始化和构建。网络元素以自动的方式发现并定义其角色和功能,一旦交换机接线,它就能开始工作,不仅要求低而且零配置。
网络元素的第一步是在网络中找到它的位置、角色和功能。它必须找到自己在拓扑中的位置,以便开始在线路上推送数据包。虽然大多数协议可以邻接,并通过网络携带策略,位置感知仍然是一个关键的功能,使我们的架构在很大程度上能够自配置。
传统上,网络依靠带外网络通过控制台或带外以太网来配置和执行基本设置,通过DHCP和TFTP从外部获取配置,并使用这些配置以发现操作者的意图并提供某种形式的身份。配置通常由脚本提前准备,这些脚本提供一些寻址并在模板中设置唯一值以使得设备开始运行。
另一方面,自定义网络一旦接线,立即开始编程流表并开始转发。它不需要任何预配置或任何静态映射布置。它发现其相邻的邻居在库存系统中注册它自己,更新具有所需信息的中央存储库,并从完全动态模式迁移到注册和确定性模式。
谋求更好的控制平面
LinkedIn数据中心与其他超大规模数据中心一样,是通过形成Clos拓扑的一系列点对点链路连接的服务器和中间网络设备的集合。目前,我们利用自动配置的链路本地地址来建立控制平面以实现IPv6和IPv4的路由;因此,不需要在交换机接口上准备IP配置。我们希望使我们的控制平面支持自定义网络,一旦设备搁置就开始转发。
这种控制平面的要求非常简单直接:
- 快速、简单的分布式控制平面
- 没有标签、铃声或哨声(没有黑客,没有策略)
- 自动发现邻居并构建RIB
- 零配置
- 必须使用TLV,向后兼容和可扩展性
- 必须携带MPLS标签(每个节点/接口)
除了上述之外,如果我们考虑物理拓扑结构或网络如何连接,作为自定义网络的意图和期望状态,我们希望确保当前的应用状态能够被发现,并应用于检测不符合预期模式的任何布线或物理配置错误。
我们将在不久发布IETF草案,概述这些基本概念,以便整个社群都能够开启相关方面的工作。
作者简介:Shawn Zandi是LinkedIn的主要网络架构师,他领导LinkedIn下一代数据中心和基础设施架构项目以及多项工程和研究工作组,并拥有超过50个行业认证,如Russ White,CCIE,CCDE和思科认证架构师。
原文链接:https://www.networkcomputing.com/data-centers/linkedin’s-data-center-design-principles/448361001