不论我们在讨论SDN,NFV或者其他的虚拟网络技术,有一点需要明确,网络数据包最终都是跑在物理网络上。物理网络的特性,例如带宽,MTU,延时等,最终直接或者间接决定了虚拟虚拟网络的特性。可以说物理网络决定了虚拟网络的“天花板”。在Mirantis对OpenStack Neutron的性能测试报告中可以看出,网络设备的升级和调整,例如采用高速网卡,配置MTU9000,可以明显提高虚拟网络的传输效率。在对网络性能进行优化时,有些物理网络特性可以通过升级设备或线路来提升,但是有些与网络架构有关。升级或者改动网络架构带来的风险和成本是巨大的,因此在架设数据中心初始,网络架构的选择和设计尤其需要谨慎。另一方面,在设计虚拟网络时,不可避免的需要考虑实际的物理网络架构,理解物理网络架构对于最终理解虚拟网络是不可缺少的。
接下来我将分几次说一说自己对数据中心网络架构的认识,想到哪说到哪,不对的地方请大家指正。
Core Layer(核心层):核心交换机为进出数据中心的包提供高速的转发,为多个汇聚层提供连接性,核心交换机为通常为整个网络提供一个弹性的L3路由网络。
一个三层网络架构示意图如下所示:
通常情况下,汇聚交换机是L2和L3网络的分界点,汇聚交换机以下的是L2网络,以上是L3网络。每组汇聚交换机管理一个POD(Point Of Delivery),每个POD内都是独立的VLAN网络。服务器在POD内迁移不必修改IP地址和默认网关,因为一个POD对应一个L2广播域。
大二层网络架构虽然使得虚机网络能够灵活创建,但是带来的问题也是明显的。共享的L2广播域带来的BUM(Broadcast·,Unknown Unicast,Multicast)风暴随着网络规模的增加而明显增加,最终将影响正常的网络流量。
传统三层网络架构已经存在几十年,并且现在有些数据中心中仍然使用这种架构。这种架构提出的最初原因是什么?一方面是因为早期L3路由设备比L2桥接设备贵得多。即使是现在,核心交换机也比汇聚接入层设备贵不少。采用这种架构,使用一组核心交换机可以连接多个汇聚层POD,例如上面的图中,一对核心交换机连接了多个汇聚层POD。另一方面,早期的数据中心,大部分流量是南北向流量。例如,一个服务器上部署了WEB应用,供数据中心之外的客户端使用。使用这种架构可以在核心交换机统一控制数据的流入流出,添加负载均衡器,为数据流量做负载均衡等。
数据中心是为了数据服务。随着技术的发展,数据的内容和形式也发生了变化。
虚拟化的流行。传统的数据中心中,服务器的利用率并不高,采用三层网络架构配合一定的超占比(oversubion),能够有效的共享利用核心交换机和一些其他网络设备的性能。但是虚拟化的流行使得服务器的利用率变高,一个物理服务器可以虚拟出多个虚拟机,分别运行各自的任务,走自己的网络路径。因此,高的服务器利用率要求更小的超占比。Gartner的一份报告:Forecast: x86 Server Virtualization, Worldwide, 2012-2018, 2014 Update指出,在2018年,82%的服务器将是虚拟服务器。虚拟化对数据中心网络架构的影响是巨大的。
软件架构的解耦。传统的软件架构,采用专用模式进行部署,软件系统通常跑在一个物理服务器,与其他的系统做物理隔离。但是,模块化,分层的软件架构设计已经成为了现在的主流。一个系统的多个组件通常分布在多个虚机/容器中。最典型的就是三层WEB应用,包含了Client/Application/DB。一次请求,不再是由一个虚机/物理机完成,而是由多个服务器协同完成。这对网络的影响是,东西向流量变多了。
新的应用的兴起。传统数据中心是为.com应用设计的,这些流量大多是客户端和服务器之间的通信。而分布式计算,大数据渐渐兴起,这些应用会在数据中心的服务器之间产生大量的流量。例如Hadoop,将数据分布在数据中心中成百上千个服务器中,进行并行计算。据说Facebook的一个Hadoop集群有着超过100 petabytes的数据。可见对于某些应用,数据中心的东西向流量是巨大的。
软件定义数据中心(SDDC,Software Defined Data Center)的提出。SDDC提出软件定义的数据中心,这要求数据中心的计算存储网络都是可以软件定义的。对应于网络,就是SDN。传统的三层网络架构在设计之初并没有考虑SDN。
总结起来,技术发展要求新的数据中心有更小的超占比,甚至没有超占比;更高的东西向流量带宽;支持SDN。
跨数据中心流量:跨数据中心的流量,例如数据中心之间的灾备,私有云和公有云之间的通讯。
首先,东西向流量分为L2和L3流量。
东西向的L2流量,如果源和目的主机都在同一个接入层交换机下,那么可以达到全速,因为接入交换机就能完成转发。
如果需要跨机架,但仍然是在一个汇聚层POD内,则需要通过汇聚层交换机进行转发,带宽取决于汇聚层交换机的转发速率,端口带宽和同时有多少个接入层交换机共享汇聚层交换机。前面说过汇聚层和接入层之间一般使用STP,这使得一个汇聚层POD只能有一个汇聚层交换机在工作。为了满足跨机架的L2转发,汇聚层交换机的性能,例如带宽,转发速率必然要大于接入层交换机。
这是一种发卡(hair-pin)流量,它不仅浪费了宝贵的核心交换机资源,而且多层的转发增加了网络传输的延时。同样,由于超占比的存在,它也不能保证全速的L3流量。
市场需求变化对网络架构的影响
由于成本和运维因素,数据中心一般是大企业才有能力部署。但是随着技术的发展,一些中小型企业也需要部署数据中心。不同的是,中小型企业的需求一般是,以一个小规模启动,随着自身业务的增长再逐步的扩展数据中心。数据中心的规模很大程度上取决于网络的规模,对应网络的需求就是,以一个低成本,小规模的网络架构启动,但是要能够水平扩展到较大规模。
传统三层网络架构的规模取决于核心层设备的性能和规模,取决于交换机的端口密度。最大的数据中心对应着体积最大和性能最高的网络设备,这种规模的设备并非所有的网络设备商都能提供,并且对应的资金成本和运维成本也较高。采用传统三层网络架构,企业将面临成本和可扩展性的两难选择。