个推运维平台高级网络工程师 山川
随着互联网公司规模的扩大,企业对成本控制和数据安全的需求越来越高,大部分公司往往会自建机房,而非租用云服务器。个推在互联网数据中心(Internet Data Center,简称IDC)网络规划和运营方面也经历了几次的迭代和变迁,同时,我们也对数据中心网络发展的历程进行了总结。
我们将围绕IDC网络运营规划的基本要求、传统PC时代的网络架构、移动互联网和大数据时代的IDC网络结构、常用服务器接入技术四个部分对数据中心的发展历程进行拆解。本文将先与大家分享传统数据中心的网络模型。
01
数据中心网络建设的基本要求
数据中心网络建设基本要求可以归纳为四点:
a) 带宽和流量模型的适配
“南北”流量通常指的是进入和离开数据中心的流量。而服务器到服务器间的交互流量,通常称为“东西”流量。传统的“树形”拓扑中“南北”流量占比较高,当需要更大带宽时,我们往往可以通过升级设备的线卡结构或使用端口密度更高的设备来满足要求。现代数据中心内常见的应用,例如Hadoop等,大多采用“东西”流量,其某些特定集群之间需要复制大量数据或进行虚拟机迁移。因此,传统“树形”拓扑不太适用于现在IDC的互联网应用。
b) 资本支出最小化
与网络相关的资本支出(CAPEX)所占比重比较大,仅基础架构就占据了整个数据中心约10-15%支出。尽管绝对成本的支出是不可避免的,但我们还是可以采取一些方式来减少绝对成本的支出。
有以下两种方法:
从采购层面来看,我们可以通过设备标准化来降低成本:比如使用相同类型的设备甚至使用同一种型号的设备,这样我们可以通过批量定价、批量采购的方式,减少设备维护和备件购买成本。
从网络规划层面来看,网络层协议的设计要兼容多厂家,我们可以通过引入多个网络设备供应商,采用竞价的方式来降低成本。
c) 运营支出最小化
数据中心规模越大,企业运营支出成本就越高。据有关统计,网络设备越多,故障率越高。在网络控制层面上,设计越简洁,功能越稳定,这样我们就可以最大限度地减少软件问题相关的故障。
最小化运营支出的一个关键点在于减少网络中故障域的大小。网络(这里指的是以太网络)故障主要是由广播或未知单播流量引起的,我们通过使用全布线设计,可以大大减少数据平面故障域的大小,即将它们限制为网络层次结构中的最低级别。但是,这样的设计不能解决分布式控制平面故障的问题,所以网络设计上我们需要保持简洁,尽量减少控制平面协议的使用以尽可能避免协议交互问题的发生、降低网络整体故障发生的频率。此外,我们还应最大限度减少网络协议的使用,以减少测试成本,提高人效。
d) 流量负载均衡的合理应用
应用程序负载均衡对于任意一个数据中心而言,都是至关重要的功能。在传统流量工程中,负载均衡器是流量转发路径中的专用设备。网络规划可以帮助组内多台负载均衡器合理分配流量。任意播前缀[ RFC4786 ]和等价组合多路径(ECMP)功能可用于实现网络流量调度。
02
传统web时代的网络架构
首先我们要明确一点:大二层网络基本上针对的是数据中心场景,旨在解决数据中心虚拟机动态迁移这一特定需求。对于园区网之类的网络,大二层网络架构适用性不强(除了某些特殊场景,例如WIFI漫游等)。
**
传统二层架构**
为了保障网络的高可靠性,传统的二层架构在应用于数据中心场景中,网络设计上往往采用二层冗余链路,而由于传统二层协议没有任何防环机制,这样的做法容易引发二层环路和广播风暴。为了解决环路问题,我们采用了两种技术:VLAN技术和xSTP技术。而为了解决广播风暴问题,我们采用了如下两个解决方案:
**
1)通过划分VLAN缩小广播域的规模**
VLAN技术可以把一个相对比较大的物理二层域划分成许多较小的逻辑二层域,这种逻辑二层域被称为VLAN。同一个VLAN内可以进行二层通信,不同VLAN之间则进行二层隔离,这样广播的范围就可以控制在一个VLAN内,不会扩散到整个物理二层域。
VLAN虽然可以在一定程度上降低广播风暴的范围和强度,但还是无法防止VLAN内广播风暴的形成(只要同一个VLAN内还有环路)。
2) 通过破环协议防止环路的产生
我们从广播风暴形成的根本原因入手,可以更好地解决广播风暴问题。由于广播风暴是出现环路才导致的,因此,通过一定的手段,防止环路出现就可以有效避免广播风暴的发生。
为防止环路出现,并保证网络的可靠性,我们可以将冗余设备和冗余链路变成备份设备和备份链路,即在正常情况下,将网络冗余的设备端口和链路进行阻塞,使端口与链路临时不参与数据报文的转发。
只有当前转发的设备、端口、链路出现故障,导致网络不通时,冗余的设备端口和链路才会被打开,使网络恢复正常。实现这些自动控制功能的协议我们称为破环协议,其中最常用的协议则是生成树协议(xSTP)。
当然,也有一些其他的破环协议,比如SEP、RRPP等等,其本质思想和xSTP协议一致。
3) 传统的二层技术网络规模之困境
上面提到传统二层网络最主要的技术是VLAN和xSTP,但这两个技术存在以下问题。
- VLAN的问题
正如前文所述,VLAN的核心思想之一,就是通过划分VLAN来缩小二层域的范围和规模,从而控制广播风暴的规模。而大二层网络又要求把所有服务器都纳入同一个二层域。这和划分VLAN的初衷是背道而驰的。所以VLAN技术就无法很好地支持大二层网络。 - xSTP的问题
xSTP可以解决大二层网络的环路问题,但由于xSTP的收敛性能等原因(如果xSTP的节点过多,那么整网的收敛速度会呈指数级下降),所以一般情况下xSTP的网络要求其交换机数量不能超过100台。同时由于xSTP需要对冗余设备和链路进行阻塞,这也在一定程度上降低了网络资源的带宽利用率。故xSTP协议无法很好地满足大二层网络的需求。
4) 小结
总之,由于前文所提及的制约条件,基于VLAN+xSTP技术的二层网络(作为大二层网络的一种),其所能容纳的服务器数量,通常不会超过1K。这与真正意义上大二层网络至少能容纳一万台以上主机的要求差距甚远。
**
设备虚拟化架构**
传统的xSTP技术无法有效解决大二层环境中的环路问题,于是一种新的技术便应运而生——网络设备虚拟化技术。所谓网络设备虚拟化技术,就是将相互冗余的两台或多台物理网络设备组合在一起,虚拟化成一台逻辑网络设备,在整个网络中只呈现为一个节点。
只要网络设备虚拟化与链路聚合技术相配合,就可以把原来的多节点、多链路的结构变成逻辑上单节点、单链路的结构,从而有效避免环路问题。
网络设备虚拟化+链路聚合技术构建的二层网络天然没有环路,其规模仅受限于虚拟网络设备所能支持的接入能力,只要虚拟网络设备允许,二层网络的规模就不受限制。
但是网络设备虚拟化方案也存在一定的缺点:
1)这些协议都为厂家私有,因此我们只能使用同一厂家的设备组网。
2)由于堆叠系统本身的规模限制,目前最大规模的堆叠/集群大概可以支持接入1-2万主机,对于超大型的数据中心来说,就显得力不从心了。但是对于一般的数据中心而言,还是可以游刃有余地运行的。
随着移动互联网的蓬勃发展,大数据技术应用变得越来越普及,传统时代的IDC架构难以进行动态扩展,Clos架构由于灵活和成本较低的优势,被越来越多的大型互联网公司所采用。
《大数据时代的IDC网络结构和服务器常用接入技术(下篇)》我们将会带大家了解Close架构的核心思想及特性、服务器常用接入技术类型,希望能给大家带来更多启发。