前浪:传统数据中心的网络模型

本文涉及的产品
网络型负载均衡 NLB,每月750个小时 15LCU
传统型负载均衡 CLB,每月750个小时 15LCU
应用型负载均衡 ALB,每月750个小时 15LCU
简介: 我们将围绕IDC网络运营规划的基本要求、传统PC时代的网络架构、移动互联网和大数据时代的IDC网络结构、常用服务器接入技术四个部分对数据中心的发展历程进行拆解。本文将先与大家分享传统数据中心的网络模型。

1.png

个推运维平台高级网络工程师 山川

随着互联网公司规模的扩大,企业对成本控制和数据安全的需求越来越高,大部分公司往往会自建机房,而非租用云服务器。个推在互联网数据中心(Internet Data Center,简称IDC)网络规划和运营方面也经历了几次的迭代和变迁,同时,我们也对数据中心网络发展的历程进行了总结。

我们将围绕IDC网络运营规划的基本要求、传统PC时代的网络架构、移动互联网和大数据时代的IDC网络结构、常用服务器接入技术四个部分对数据中心的发展历程进行拆解。本文将先与大家分享传统数据中心的网络模型。

01

数据中心网络建设的基本要求

数据中心网络建设基本要求可以归纳为四点:
a) 带宽和流量模型的适配
“南北”流量通常指的是进入和离开数据中心的流量。而服务器到服务器间的交互流量,通常称为“东西”流量。传统的“树形”拓扑中“南北”流量占比较高,当需要更大带宽时,我们往往可以通过升级设备的线卡结构或使用端口密度更高的设备来满足要求。现代数据中心内常见的应用,例如Hadoop等,大多采用“东西”流量,其某些特定集群之间需要复制大量数据或进行虚拟机迁移。因此,传统“树形”拓扑不太适用于现在IDC的互联网应用。

b) 资本支出最小化
与网络相关的资本支出(CAPEX)所占比重比较大,仅基础架构就占据了整个数据中心约10-15%支出。尽管绝对成本的支出是不可避免的,但我们还是可以采取一些方式来减少绝对成本的支出。

有以下两种方法:
从采购层面来看,我们可以通过设备标准化来降低成本:比如使用相同类型的设备甚至使用同一种型号的设备,这样我们可以通过批量定价、批量采购的方式,减少设备维护和备件购买成本。

从网络规划层面来看,网络层协议的设计要兼容多厂家,我们可以通过引入多个网络设备供应商,采用竞价的方式来降低成本。

c) 运营支出最小化
数据中心规模越大,企业运营支出成本就越高。据有关统计,网络设备越多,故障率越高。在网络控制层面上,设计越简洁,功能越稳定,这样我们就可以最大限度地减少软件问题相关的故障。

最小化运营支出的一个关键点在于减少网络中故障域的大小。网络(这里指的是以太网络)故障主要是由广播或未知单播流量引起的,我们通过使用全布线设计,可以大大减少数据平面故障域的大小,即将它们限制为网络层次结构中的最低级别。但是,这样的设计不能解决分布式控制平面故障的问题,所以网络设计上我们需要保持简洁,尽量减少控制平面协议的使用以尽可能避免协议交互问题的发生、降低网络整体故障发生的频率。此外,我们还应最大限度减少网络协议的使用,以减少测试成本,提高人效。

d) 流量负载均衡的合理应用
应用程序负载均衡对于任意一个数据中心而言,都是至关重要的功能。在传统流量工程中,负载均衡器是流量转发路径中的专用设备。网络规划可以帮助组内多台负载均衡器合理分配流量。任意播前缀[ RFC4786 ]和等价组合多路径(ECMP)功能可用于实现网络流量调度。

02

传统web时代的网络架构

2.png
首先我们要明确一点:大二层网络基本上针对的是数据中心场景,旨在解决数据中心虚拟机动态迁移这一特定需求。对于园区网之类的网络,大二层网络架构适用性不强(除了某些特殊场景,例如WIFI漫游等)。

**
传统二层架构**

06.png

为了保障网络的高可靠性,传统的二层架构在应用于数据中心场景中,网络设计上往往采用二层冗余链路,而由于传统二层协议没有任何防环机制,这样的做法容易引发二层环路和广播风暴。为了解决环路问题,我们采用了两种技术:VLAN技术和xSTP技术。而为了解决广播风暴问题,我们采用了如下两个解决方案:
**
1)通过划分VLAN缩小广播域的规模**
VLAN技术可以把一个相对比较大的物理二层域划分成许多较小的逻辑二层域,这种逻辑二层域被称为VLAN。同一个VLAN内可以进行二层通信,不同VLAN之间则进行二层隔离,这样广播的范围就可以控制在一个VLAN内,不会扩散到整个物理二层域。

04.png

VLAN虽然可以在一定程度上降低广播风暴的范围和强度,但还是无法防止VLAN内广播风暴的形成(只要同一个VLAN内还有环路)。

2) 通过破环协议防止环路的产生
我们从广播风暴形成的根本原因入手,可以更好地解决广播风暴问题。由于广播风暴是出现环路才导致的,因此,通过一定的手段,防止环路出现就可以有效避免广播风暴的发生。

为防止环路出现,并保证网络的可靠性,我们可以将冗余设备和冗余链路变成备份设备和备份链路,即在正常情况下,将网络冗余的设备端口和链路进行阻塞,使端口与链路临时不参与数据报文的转发。

只有当前转发的设备、端口、链路出现故障,导致网络不通时,冗余的设备端口和链路才会被打开,使网络恢复正常。实现这些自动控制功能的协议我们称为破环协议,其中最常用的协议则是生成树协议(xSTP)。

05.png

当然,也有一些其他的破环协议,比如SEP、RRPP等等,其本质思想和xSTP协议一致。

3) 传统的二层技术网络规模之困境
上面提到传统二层网络最主要的技术是VLAN和xSTP,但这两个技术存在以下问题。

  1. VLAN的问题
    正如前文所述,VLAN的核心思想之一,就是通过划分VLAN来缩小二层域的范围和规模,从而控制广播风暴的规模。而大二层网络又要求把所有服务器都纳入同一个二层域。这和划分VLAN的初衷是背道而驰的。所以VLAN技术就无法很好地支持大二层网络。
  2. xSTP的问题
    xSTP可以解决大二层网络的环路问题,但由于xSTP的收敛性能等原因(如果xSTP的节点过多,那么整网的收敛速度会呈指数级下降),所以一般情况下xSTP的网络要求其交换机数量不能超过100台。同时由于xSTP需要对冗余设备和链路进行阻塞,这也在一定程度上降低了网络资源的带宽利用率。故xSTP协议无法很好地满足大二层网络的需求。

4) 小结
总之,由于前文所提及的制约条件,基于VLAN+xSTP技术的二层网络(作为大二层网络的一种),其所能容纳的服务器数量,通常不会超过1K。这与真正意义上大二层网络至少能容纳一万台以上主机的要求差距甚远。

**
设备虚拟化架构**

传统的xSTP技术无法有效解决大二层环境中的环路问题,于是一种新的技术便应运而生——网络设备虚拟化技术。所谓网络设备虚拟化技术,就是将相互冗余的两台或多台物理网络设备组合在一起,虚拟化成一台逻辑网络设备,在整个网络中只呈现为一个节点。
06.png

只要网络设备虚拟化与链路聚合技术相配合,就可以把原来的多节点、多链路的结构变成逻辑上单节点、单链路的结构,从而有效避免环路问题。

网络设备虚拟化+链路聚合技术构建的二层网络天然没有环路,其规模仅受限于虚拟网络设备所能支持的接入能力,只要虚拟网络设备允许,二层网络的规模就不受限制。

但是网络设备虚拟化方案也存在一定的缺点:
1)这些协议都为厂家私有,因此我们只能使用同一厂家的设备组网。

2)由于堆叠系统本身的规模限制,目前最大规模的堆叠/集群大概可以支持接入1-2万主机,对于超大型的数据中心来说,就显得力不从心了。但是对于一般的数据中心而言,还是可以游刃有余地运行的。

随着移动互联网的蓬勃发展,大数据技术应用变得越来越普及,传统时代的IDC架构难以进行动态扩展,Clos架构由于灵活和成本较低的优势,被越来越多的大型互联网公司所采用。

《大数据时代的IDC网络结构和服务器常用接入技术(下篇)》我们将会带大家了解Close架构的核心思想及特性、服务器常用接入技术类型,希望能给大家带来更多启发。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
目录
相关文章
|
4月前
|
C++
基于Reactor模型的高性能网络库之地址篇
这段代码定义了一个 InetAddress 类,是 C++ 网络编程中用于封装 IPv4 地址和端口的常见做法。该类的主要作用是方便地表示和操作一个网络地址(IP + 端口)
282 58
|
4月前
|
网络协议 算法 Java
基于Reactor模型的高性能网络库之Tcpserver组件-上层调度器
TcpServer 是一个用于管理 TCP 连接的类,包含成员变量如事件循环(EventLoop)、连接池(ConnectionMap)和回调函数等。其主要功能包括监听新连接、设置线程池、启动服务器及处理连接事件。通过 Acceptor 接收新连接,并使用轮询算法将连接分配给子事件循环(subloop)进行读写操作。调用链从 start() 开始,经由线程池启动和 Acceptor 监听,最终由 TcpConnection 管理具体连接的事件处理。
170 2
|
4月前
基于Reactor模型的高性能网络库之Tcpconnection组件
TcpConnection 由 subLoop 管理 connfd,负责处理具体连接。它封装了连接套接字,通过 Channel 监听可读、可写、关闭、错误等
155 1
|
4月前
|
JSON 监控 网络协议
干货分享“对接的 API 总是不稳定,网络分层模型” 看电商 API 故障的本质
本文从 OSI 七层网络模型出发,深入剖析电商 API 不稳定的根本原因,涵盖物理层到应用层的典型故障与解决方案,结合阿里、京东等大厂架构,详解如何构建高稳定性的电商 API 通信体系。
|
5月前
|
存储 人工智能 边缘计算
Gartner 魔力象限:数据中心网络交换机 2025
Gartner 魔力象限:数据中心网络交换机 2025
416 0
Gartner 魔力象限:数据中心网络交换机 2025
|
1月前
|
监控 区块链 数据中心
Arista EOS 4.35.0F 发布 - 适用于下一代数据中心和云网络的可扩展操作系统
Arista EOS 4.35.0F 发布 - 适用于下一代数据中心和云网络的可扩展操作系统
170 0
Arista EOS 4.35.0F 发布 - 适用于下一代数据中心和云网络的可扩展操作系统
|
1月前
|
机器学习/深度学习 数据采集 人工智能
深度学习实战指南:从神经网络基础到模型优化的完整攻略
🌟 蒋星熠Jaxonic,AI探索者。深耕深度学习,从神经网络到Transformer,用代码践行智能革命。分享实战经验,助你构建CV、NLP模型,共赴二进制星辰大海。
|
2月前
|
机器学习/深度学习 传感器 算法
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
195 2
|
2月前
|
机器学习/深度学习 并行计算 算法
【CPOBP-NSWOA】基于豪冠猪优化BP神经网络模型的多目标鲸鱼寻优算法研究(Matlab代码实现)
【CPOBP-NSWOA】基于豪冠猪优化BP神经网络模型的多目标鲸鱼寻优算法研究(Matlab代码实现)
|
4月前
基于Reactor模型的高性能网络库之Poller(EpollPoller)组件
封装底层 I/O 多路复用机制(如 epoll)的抽象类 Poller,提供统一接口支持多种实现。Poller 是一个抽象基类,定义了 Channel 管理、事件收集等核心功能,并与 EventLoop 绑定。其子类 EPollPoller 实现了基于 epoll 的具体操作,包括事件等待、Channel 更新和删除等。通过工厂方法可创建默认的 Poller 实例,实现多态调用。
289 60

热门文章

最新文章

下一篇
oss云网关配置