再聊数据中心网络

2023-10-24 11:59
文章标签 网络 数据中心 再聊

本文主要是介绍再聊数据中心网络,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前天,小枣君发了一篇关于数据中心网络的文章(链接)。很多读者留言,说没看明白。

1c0782914d0140a6b4b58d156113f70c.png

本着“将通信科普到底”的原则,今天,我再继续聊一下这个话题。

故事还是要从头开始说起。

1973年夏天,两名年轻的科学家(温顿·瑟夫和罗伯特卡恩)开始致⼒于在新⽣的计算机⽹络中,寻找⼀种能够在不同机器之间进行通讯的⽅法。

不久后,在一本黄⾊的便签本上,他们画出了TCP/IP协议族的原型。

96048065bb90fb91d7e16a83d77e0ec6.png

几乎在同时,施乐公司的梅特卡夫和博格思,发明了以太网(Ethernet)。

我们现在都知道,互联网的最早原型,是老美搞出来的ARPANET(阿帕网)。

ARPANET最开始用的协议超烂,满足不了计算节点规模增长的需求。于是,70年代末,大佬们将ARPANET的核心协议替换成了TCP/IP(1978年)。

进入80年代末,在TCP/IP技术的加持下,ARPANET迅速扩大,并衍生出了很多兄弟姐妹。这些兄弟姐妹互相连啊连啊,就变成了举世闻名的互联网。

可以说,TCP/IP技术和以太网技术,是互联网早期崛起的基石。它们成本低廉,结构简单,便于开发、部署,为计算机网络的普及做出了巨大贡献。

800d5333b6cc8cf9bd2430ca5ed81d80.png

但是后来,随着网络规模的急剧膨胀,传统TCP/IP和以太网技术开始显现疲态,无法满足互联网大带宽、高速率的发展需求。

最开始出现问题的,是存储

早期的存储,大家都知道,就是机器内置硬盘,通过IDE、SCSI、SAS等接口,把硬盘连到主板上,通过主板上的总线(BUS),实现CPU、内存对硬盘数据的存取。

后来,存储容量需求越来越大,再加上安全备份的考虑(需要有RAID1/RAID5),硬盘数量越来越多,若干个硬盘搞不定,服务器内部也放不下。于是,就有了磁阵。

a902fc799085516bb98fabbca81078ea.png

磁阵,磁盘阵列

磁阵就是专门放磁盘的设备,一口子插几十块那种。

硬盘数据存取,一直都是服务器的瓶颈。开始的时候,用的是网线或专用电缆连接服务器和磁阵,很快发现不够用。于是,就开始用光纤。这就是FC通道(Fibre Channel,光纤通道)。

2000年左右,光纤通道还是比较高大上的技术,成本不低。

当时,公共通信网络(骨干网)的光纤技术处于在SDH 155M、622M的阶段,2.5G的SDH和波分技术才刚起步,没有普及。后来,光纤才开始爆发,容量开始迅速跃升,向10G(2003)、40G(2010)、100G(2010)、400G(现在)的方向发展。

光纤不能用于数据中心的普通网络,那就只能继续用网线,还有以太网。

好在那时服务器之间的通信要求还没有那么高。100M和1000M的网线,勉强能满足一般业务的需求。2008年左右,以太网的速率才勉强达到了1Gbps的标准。

2010年后,又出幺蛾子。

除了存储之外,因为云计算、图形处理、人工智能、超算还有比特币等乱七八糟的原因,人们开始盯上了算力。

摩尔定律的逐渐疲软,已经无法支持CPU算力的提升需求。牙膏越来越难挤,于是,GPU开始崛起。使用显卡的GPU处理器进行计算,成为了行业的主流趋势。

得益于AI的高速发展,各大企业还搞出了AI芯片、APU、xPU啊各自五花八门的算力板卡。

算力极速膨胀(100倍以上),带来的直接后果,就是服务器数据吞吐量的指数级增加。

除了AI带来的变态算力需求之外,数据中心还有一个显著的变化趋势,那就是服务器和服务器之间的数据流量急剧增加。

互联网高速发展、用户数猛涨,传统的集中式计算架构无法满足需求,开始转变为分布式架构

91bdd6bb70fd512f1e67bf52ba9050e4.png

举例来说,现在618,大家都在血拼。百八十个用户,一台服务器就可以,千万级亿级,肯定不行了。所以,有了分布式架构,把一个服务,放在N个服务器上,分开算。

分布式架构下,服务器之间的数据流量大大增加了。数据中心内部互联网络的流量压力陡增,数据中心与数据中心之间也是一样。

这些横向(专业术语叫东西向)的数据报文,有时候还特别大,一些图形处理的数据,包大小甚至是Gb级别。

综上原因,传统以太网根本搞不定这么大的数据传输带宽和时延(高性能计算,对时延要求极高)需求。所以,少数厂家就搞了一个私有协议的专用网络通道技术,也就是Infiniband网络(直译为“无限带宽”技术,缩写为IB)。

31641bbb84b24773e4c6b0b32886bbb0.png

FC vs IB vs 以太网

IB技术时延极低,但是造价成本高,而且维护复杂,和现有技术都不兼容。所以,和FC技术一样,只在特殊的需求下使用。

算力高速发展的同时,硬盘不甘寂寞,搞出了SSD固态硬盘,取代机械硬盘。内存嘛,从DDR到DDR2、DDR3、DDR4甚至DDR5,也是一个劲的猥琐发育,增加频率,增加带宽。

处理器、硬盘和内存的能力爆发,最终把压力转嫁到了网卡和网络身上。

b41d75f80dbafdb3ed54c88ad71b4876.png

学过计算机网络基础的同学都知道,传统以太网是基于“载波侦听多路访问/冲突检测(CSMA/CD)”的机制,极容易产生拥塞,导致动态时延升高,还经常发生丢包。

TCP/IP协议的话,服役时间实在太长,都40多年的老技术了,毛病一大堆。

举例来说,TCP协议栈在接收/发送报文时,内核需要做多次上下文切换,每次切换需要耗费5us~10us左右的时延。另外,还需要至少三次的数据拷贝和依赖CPU进行协议封装。

这些协议处理时延加起来,虽然看上去不大,十几微秒,但对高性能计算来说,是无法忍受的。

除了时延问题外,TCP/IP网络需要主机CPU多次参与协议栈内存拷贝。网络规模越大,带宽越高,CPU在收发数据时的调度负担就越大,导致CPU持续高负载。

按照业界测算数据:每传输1bit数据需要耗费1Hz的CPU,那么当网络带宽达到25G以上(满载)的时候,CPU要消费25GHz的算力,用于处理网络。大家可以看看自己的电脑CPU,工作频率是多少。

那么,是不是干脆直接换个网络技术就行呢?

不是不行,是难度太大。

CPU、硬盘和内存,都是服务器内部硬件,换了就换了,和外部无关。

但是通信网络技术,是外部互联技术,是要大家协商一起换的。我换了,你没换,网络就嗝屁了。

全世界互联网同时统一切换技术协议,你觉得可不可能?

不可能。所以,就像现在IPv6替换IPv4,就是循序渐进,先双栈(同时支持v4和v6),然后再慢慢淘汰v4。

数据中心网络的物理通道,光纤替换网线,还稍微容易一点,先小规模换,再逐渐扩大。换了光纤后,网络的速度和带宽上的问题,得以逐渐缓解。

网卡能力不足的问题,也比较好解决。既然CPU算不过来,那网卡就自己算呗。于是,就有了现在很火的智能网卡。某种程度来说,这就是算力下沉。

搞5G核心网的同事应该很熟悉,5G核心网媒体面网元UPF,承担了无线侧上来的所有业务数据,压力极大。

7524061107690cf36a46abe1c9ef8ed9.png

现在,UPF网元就采用了智能网卡技术,由网卡自己进行协议处理,缓解CPU的压力,流量吞吐还更快。

如何解决数据中心通信网络架构的问题呢?专家们想了半天,还是决定硬着头皮换架构。他们从服务器内部通信架构的角度,重新设计一个方案。

在新方案里,应用程序的数据,不再经过CPU和复杂的操作系统,直接和网卡通信。

这就是新型的通信机制——RDMA(Remote Direct Memory Access,远程直接数据存取)。

63ec05277a4dd2553a70435bfd5b36d4.png

RDMA相当于是一个“消灭中间商”的技术,或者说“走后门”技术。

RDMA的内核旁路机制,允许应用与网卡之间的直接数据读写,将服务器内的数据传输时延降低到接近1us。

同时,RDMA的内存零拷贝机制,允许接收端直接从发送端的内存读取数据,极大的减少了CPU的负担,提升CPU的效率。

RDMA的能力远远强于TCP/IP,逐渐成为主流的网络通信协议栈,将来一定会取代TCP/IP。

RDMA有两类网络承载方案,分别是专用InfiniBand传统以太网络

6aa979324c0867857dd22b9fd25468fc.png

RDMA最早提出时,是承载在InfiniBand网络中。

但是,InfiniBand是一种封闭架构,交换机是特定厂家提供的专用产品,采用私有协议,无法兼容现网,加上对运维的要求过于复杂,并不是用户的合理选择。

于是,专家们打算把RDMA移植到以太网上。

比较尴尬的是,RDMA搭配传统以太网,存在很大问题。

RDMA对丢包率要求极高。0.1%的丢包率,将导致RDMA吞吐率急剧下降。2%的丢包率,将使得RDMA的吞吐率下降为0。

67b9620cf87efb7cce08abb3040bbda8.png

InfiniBand网络虽然贵,但是可以实现无损无丢包。所以RDMA搭配InfiniBand,不需要设计完善的丢包保护机制。

现在好了,换到传统以太网环境,以太网的人生态度就是两个字——“摆烂”。以太网发包,采取的是“尽力而为”的原则,丢包是家常便饭,丢了就再传。

于是,专家们必须解决以太网的丢包问题,才能实现RDMA向以太网的移植。再于是,就有了前天文章提到的,华为的超融合数据中心网络智能无损技术

说白了,就是让以太网做到零丢包,然后支撑RDMA。有了RDMA,就能实现超融合数据中心网络。

关于零丢包技术的细节,我不再赘述,大家看前天那篇文章(再给一遍链接:这里)。

值得一提的是,引入AI的网络智能无损技术是华为的首创,但超融合数据中心,是公共的概念。除了华为之外,别的厂家(例如深信服、联想等)也讲超融合数据中心,而且,这个概念在2017年就很热了。

什么叫超融合?

准确来说,超融合就是一张网络,通吃HPC高性能计算、存储和一般业务等多种业务类型。处理器、存储、通信,全部都是超融合管理的资源,大家平起平坐。

超融合不仅要在性能上满足这些低时延、大带宽的变态需求,还要有低成本,不能太贵,也不能太难维护。

未来,数据中心在整体网络架构上,就是叶脊网络一条路走到黑(到底什么是叶脊网络?)。路由交换调度上,SDN、IPv6、SRv6慢慢发展。微观架构上,RDMA技术发展,替换TCP/IP。物理层上,全光继续发展,400G、800G、1.2T…

我个人臆测,目前电层光层的混搭,最终会变成光的大一统。光通道到全光交叉之后,就是渗透到服务器内部,服务器主板不再是普通PCB,而是光纤背板。芯片和芯片之间,全光通道。芯片内部,搞不好也是光。

c6ec5975377f9ea48e8ab867779c5de4.png

光通道是王道

路由调度上,以后都是AI的天下,网络流量啊协议啊全部都是AI接管,不需要人为干预。大量的通信工程师下岗。

好了,关于数据中心通信网络的介绍就是这么多。不知道大家这次有没有看明白?

没看明白的话,就再看一次。6cefa5586732048becc805a1737c5814.png

—— The End ——

延伸阅读:

互联网究竟是怎么诞生的?

到底什么是叶脊网络(Spine-Leaf)?

什么是OXC(全光交叉)?

关于ROADM的入门科普

关于存储技术的最强入门科普

778590f73034e29c08c9f38b99a2e2bc.png

这篇关于再聊数据中心网络的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/275022

相关文章

Linux 网络编程 --- 应用层

一、自定义协议和序列化反序列化 代码: 序列化反序列化实现网络版本计算器 二、HTTP协议 1、谈两个简单的预备知识 https://www.baidu.com/ --- 域名 --- 域名解析 --- IP地址 http的端口号为80端口,https的端口号为443 url为统一资源定位符。CSDNhttps://mp.csdn.net/mp_blog/creation/editor

ASIO网络调试助手之一:简介

多年前,写过几篇《Boost.Asio C++网络编程》的学习文章,一直没机会实践。最近项目中用到了Asio,于是抽空写了个网络调试助手。 开发环境: Win10 Qt5.12.6 + Asio(standalone) + spdlog 支持协议: UDP + TCP Client + TCP Server 独立的Asio(http://www.think-async.com)只包含了头文件,不依

poj 3181 网络流,建图。

题意: 农夫约翰为他的牛准备了F种食物和D种饮料。 每头牛都有各自喜欢的食物和饮料,而每种食物和饮料都只能分配给一头牛。 问最多能有多少头牛可以同时得到喜欢的食物和饮料。 解析: 由于要同时得到喜欢的食物和饮料,所以网络流建图的时候要把牛拆点了。 如下建图: s -> 食物 -> 牛1 -> 牛2 -> 饮料 -> t 所以分配一下点: s  =  0, 牛1= 1~

poj 3068 有流量限制的最小费用网络流

题意: m条有向边连接了n个仓库,每条边都有一定费用。 将两种危险品从0运到n-1,除了起点和终点外,危险品不能放在一起,也不能走相同的路径。 求最小的费用是多少。 解析: 抽象出一个源点s一个汇点t,源点与0相连,费用为0,容量为2。 汇点与n - 1相连,费用为0,容量为2。 每条边之间也相连,费用为每条边的费用,容量为1。 建图完毕之后,求一条流量为2的最小费用流就行了

poj 2112 网络流+二分

题意: k台挤奶机,c头牛,每台挤奶机可以挤m头牛。 现在给出每只牛到挤奶机的距离矩阵,求最小化牛的最大路程。 解析: 最大值最小化,最小值最大化,用二分来做。 先求出两点之间的最短距离。 然后二分匹配牛到挤奶机的最大路程,匹配中的判断是在这个最大路程下,是否牛的数量达到c只。 如何求牛的数量呢,用网络流来做。 从源点到牛引一条容量为1的边,然后挤奶机到汇点引一条容量为m的边

配置InfiniBand (IB) 和 RDMA over Converged Ethernet (RoCE) 网络

配置InfiniBand (IB) 和 RDMA over Converged Ethernet (RoCE) 网络 服务器端配置 在服务器端,你需要确保安装了必要的驱动程序和软件包,并且正确配置了网络接口。 安装 OFED 首先,安装 Open Fabrics Enterprise Distribution (OFED),它包含了 InfiniBand 所需的驱动程序和库。 sudo

【机器学习】高斯网络的基本概念和应用领域

引言 高斯网络(Gaussian Network)通常指的是一个概率图模型,其中所有的随机变量(或节点)都遵循高斯分布 文章目录 引言一、高斯网络(Gaussian Network)1.1 高斯过程(Gaussian Process)1.2 高斯混合模型(Gaussian Mixture Model)1.3 应用1.4 总结 二、高斯网络的应用2.1 机器学习2.2 统计学2.3

网络学习-eNSP配置NAT

NAT实现内网和外网互通 #给路由器接口设置IP地址模拟实验环境<Huawei>system-viewEnter system view, return user view with Ctrl+Z.[Huawei]undo info-center enableInfo: Information center is disabled.[Huawei]interface gigabit

Golang 网络爬虫框架gocolly/colly(五)

gcocolly+goquery可以非常好地抓取HTML页面中的数据,但碰到页面是由Javascript动态生成时,用goquery就显得捉襟见肘了。解决方法有很多种: 一,最笨拙但有效的方法是字符串处理,go语言string底层对应字节数组,复制任何长度的字符串的开销都很低廉,搜索性能比较高; 二,利用正则表达式,要提取的数据往往有明显的特征,所以正则表达式写起来比较简单,不必非常严谨; 三,使

Golang网络爬虫框架gocolly/colly(四)

爬虫靠演技,表演得越像浏览器,抓取数据越容易,这是我多年爬虫经验的感悟。回顾下个人的爬虫经历,共分三个阶段:第一阶段,09年左右开始接触爬虫,那时由于项目需要,要访问各大国际社交网站,Facebook,myspace,filcker,youtube等等,国际上叫得上名字的社交网站都爬过,大部分网站提供restful api,有些功能没有api,就只能用http抓包工具分析协议,自己爬;国内的优酷、