CLOS架构

CLOS Networking

CLOS Networking 是指使用 Clos 网络拓扑结构(Clos Network Topology)进行网络设计的一种方法。该方法是由贝尔实验室的工程师 Charles Clos 在1950年代提出的,以解决电路交换网络的可扩展性和性能问题。随着现代计算和网络技术的发展,Clos 网络拓扑被广泛应用于数据中心网络架构,特别是在大规模数据中心中。

Clos 网络通常由多个层级的交换机(或者路由器)组成,常见的层级包括:

  • 叶子层(Leaf Layer):连接服务器的第一层交换机。
  • 脊骨层(Spine Layer):连接叶子层交换机的核心交换机。
  • 超级脊骨层(Super-Spine Layer)(不常见, 仅在非常大规模的数据中心中):进一步连接多个脊骨层交换机。

主要特点和优点包括:

  • 高性能与低延迟:多路径设计支持多种并行数据流,减少瓶颈。
  • 可扩展性强:网络可以通过增加交换机来水平扩展,以满足不断增长的带宽需求。
  • 冗余与容错性:多条路径提供高冗余性,提升网络的可靠性和容错能力。
  • 均衡负载:可以实现有效的流量分布和负载均衡,优化网络资源的利用。

在现代数据中心,CLOS 网络架构通常采用协议如ECMP(Equal-Cost Multi-Path)和SDN(Software-Defined Networking)来增强网络的灵活性和管理效率。
总结来说,CLOS Networking 是一种高度可扩展、性能优越并且具有高可靠性的网络设计方法,被广泛应用于现代大型数据中心中。

Spine-Leaf架构

Spine-Leaf 架构是数据中心网络拓扑,它由两个交换层组成,分别是 Spine 和 Leaf。Leaf 层由接入交换机组成,这些交换机会对来自服务器的流量进行汇聚并直接连接到 spine 或网络核心。Spine 交换机可以一种全网格拓扑与所有 leaf 交换机实现互连。

传统上,数据中心网络基于三层模型:

  • 接入交换机连接到服务器
  • 聚合或分布交换机为接入交换机提供冗余连接
  • 核心交换机提供聚合交换机之间的快速传输,通常以冗余对的形式连接,以实现高可用性

在这里插入图片描述

Spine-Leaf拓扑结构的其他常见差异包括:

  • 去除了生成树协议 (STP)
  • 相对于网络主干的模块化模型,固定端口交换机的使用增加
  • 考虑到更高的互连数量,需要购买和管理更多电缆
  • 基础设施的横向扩展与纵向扩展
    在这里插入图片描述

为什么 Spine-Leaf架构越来越受欢迎?

鉴于云和容器化基础设施在现代数据中心的普及,东西向流量持续增加。东西向流量横向移动,从服务器到服务器。这种转变主要是由于现代应用程序的组件分布在更多的服务器或 VM 上。

对于东西向流量,具有低延迟、优化的流量流对于性能来说是必不可少的,尤其是对于时间敏感或数据密集型应用程序。Spine-Leaf架构通过确保流量始终与其下一个目的地的跳数相同来帮助实现这一点,因此延迟更低且可预测。

由于不再需要 STP,容量也有所提高。虽然 STP 支持两台交换机之间的冗余路径,但任何时候都只能有一台处于活动状态。因此,路径通常会被超额预订。相反,Spine-Leaf架构依靠等成本多路径 (ECMP) 协议来平衡所有可用路径上的流量,同时仍能防止网络环路。

除了更高的性能之外,Spine-Leaf拓扑还提供了更好的可扩展性。可以增加额外的 Spine 交换机,并连接到每个 Leaf 交换机,增加容量。同样,当端口密度成为问题时,可以无缝插入新的 Leaf 交换机。无论哪种情况,基础设施的这种“横向扩展”都不需要对网络进行任何重新架构,并且不会出现停机。

胖树(Fat-Tree)型网络架构

在 2008 年由美国加利福尼亚计算机科学与工程的几位教授发表的一篇论文《A scalable, commodity data center network architecture》中,明确的提出了一种三级的,被称之为胖树(Fat-Tree)的 CLOS 网络架构,标志着 CLOS 正式进入数据中心网络架构领域,这是 CLOS 网络模型的第三次应用。

当前,Fat-Tree 是业界普遍认可的实现无阻塞网络的技术。其基本理念是:使用大量低性能的交换机,构建出大规模的无阻塞网络,对于任意的通信模式,总有路径让他们的通信带宽达到网卡带宽。Fat-Tree 的另一个好处是,它用到的所有交换机都是相同的,这让我们能够在整个数据中心网络架构中采用廉价的交换机。

Fat-Tree 是无带宽收敛的:传统的树形网络拓扑中,带宽是逐层收敛的,树根处的网络带宽要远小于各个叶子处所有带宽的总和。而 Fat-Tree 则更像是真实的树,越到树根,枝干越粗,即:从叶子到树根,网络带宽不收敛。这是 Fat-Tree 能够支撑无阻塞网络的基础。
在这里插入图片描述
如上图所示,为了实现网络带宽的无收敛,Fat-Tree 中的每个节点(根节点除外)都需要保证上行带宽和下行带宽相等,并且每个节点都要提供对接入带宽的线速转发的能力。

下图是一个 2 元 4 层 Fat-Tree 的物理结构示例(2 元:每个叶子交换机接入 2 台终端;4 层:网络中的交换机分为 4 层),其使用的所有物理交换机都是完全相同的。
在这里插入图片描述
从图中可以看到,每个叶子节点就是一台物理交换机,接入 2 台终端;上面一层的内部节点,则是每个逻辑节点由 2 台物理交换机组成;再往上面一层则每个逻辑节点由 4 台物理交换机组成;根节点一共有 8 台物理交换机。这样,任意一个逻辑节点,下行带宽和上行带宽是完全一致的。这保证了整个网络带宽是无收敛的。同时我们还可以看到,对于根节点,有一半的带宽并没有被用于下行接入,这是 Fat-Tree 为了支持弹性扩展,而为根节点预留的上行带宽,通过把 Fat-Tree 向根部继续延伸,即可实现网络规模的弹性扩展。

Fat-Tree 拓扑示例

在这里插入图片描述

假设一个 k-ary(每个节点有不超过 k 个子节点)的三层 Fat-Tree 拓扑:

  • 核心交换机个数 (k/2)^2
  • POD 个数 k
  • 每个 POD 汇聚交换机 k/2
  • 每个 POD 接口交换机 k/2
    每个接入交换机连接的终端服务器 k/2
    每个接入交换机剩余 k/2 个口连接 POD 内 k/2 个汇聚交换机,每台核心交换机的第 i 个端口连接到第 i 个 POD,所有交换机均采用 k-port switch。

可以计算出,支持的服务器个数为 k * (k/2) * (k/2) = (k^3)/4,不同 POD 下服务器间等价路径数 (k/2) * (k/2) = (k^2)/4。上图为最简单的 k=4 时的 Fat-Tree 拓扑,连在同一个接入交换机下的服务器处于同一个子网,他们之间的通信走二层报文交换。不同接入交换机下的服务器通信,需要走路由。

Fat-Tree 的缺陷

Fat-Tree 的扩展规模在理论上受限于核心层交换机的端口数目,不利于数据中心的长期发展要求;
对于 POD 内部,Fat-Tree 容错性能差,对底层交换设备故障非常敏感,当底层交换设备故障时,难以保证服务质量;
Fat-Tree 拓扑结构的特点决定了网络不能很好的支持 One-to-All及 All-to-All 网络通信模式,不利于部署 MapReduce、Dryad 等高性能分布式应用;
Fat-Tree 网络中交换机与服务器的比值较大,在一定程度上使得网络设备成本依然很高,不利于企业的经济发展。
因为要防止出现 TCP 报文乱序的问题,难以达到 1:1 的超分比。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/393397.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

P33-模拟实现字符串相关函数

模拟实现strcpy strcpy函数是C语言中的字符串拷贝函数,用于将一个字符串复制到另一个字符串中。 函数原型如下: char* strcpy(char* destination, const char* source);参数说明: destination:目标字符串的指针,用于存…

北大和鹏城实验室联合推出的图像视频统一多模态大模型Chat-UniVi(CVPR 2024)

Chat-UniVi: Unified Visual Representation Empowers Large Language Models with Image and Video Understanding 论文信息 paper:CVPR 2024 code:https://github.com/PKU-YuanGroup/Chat-UniVi 训练130亿大模型仅3天,北大提出Chat-UniVi…

Tomcat 漏洞

一.CVE-2017-12615 1.使用burp抓包 把get改成put jsp文件后加/ 添加完成后访问 木马 然后木马的网址 在哥斯拉测试并且添加 添加成功 然后我们就成功进去啦、 二.弱口令 点击后输入默认用户名、密码:tomcat/tomcat 登陆之后上传一个jsp文件 后缀改成war 然后访问我…

android compose设置圆角不起作用

进度条progress设置背景圆角不起作用: 源码: Composablefun CircularProgress(modifier: Modifier, vm: TabarCmpViewModel?) {if (vm?.showLoading?.value ! true) returnBox(modifier modifier.background(Color(0x99000000)).defaultMinSize(minW…

【深度学习】【语音TTS】OpenVoice v2,测评,中英文语料,Docker镜像,对比GPT-SoVITS、FishAudio、BertVITS2

https://github.com/myshell-ai/OpenVoice/blob/main/docs/USAGE.md 实际体验OpenVoice v2的TTS效果。 文章目录 环境启动 jupyter代码代码分析主要模块和功能测试一些别的中文和中英文混合总结优点缺点对比GPT-SoVITS、FishAudio、BertVITS2使用我的Docker镜像快速体验OpenVo…

4.7.深层循环神经网络

深层循环网络 ​ 就是更深了,因为之前的网络都只有一层隐藏层,弄多一点 ​ 我们将多层循环神经网络堆叠在一起,通过对几个简单层的组合,产生了一个灵活的机制。上图展示了一个具有 L L L个隐藏层的深度循环神经网络,每…

【C++】STL | vector 详解及重要函数的实现

目录 前言 总代码 vector类框架建立(模板与成员变量) 构造、析构、swap 与 赋值重载 构造 析构 swap 赋值重载 reserve 扩容(重要!!)、size、capacity operator[ ]重载 insert 插入 逻辑讲解 i…

Oracle认证1Z0-071线上考试注意事项

目录 一、前言二、回顾过往战绩第一次 裸考🐒第二次 背题库硬考!🐒第三次 软件卡住,寄!🙈第四次 汇总纠错,通过!🌚 三、考试流程四、考试注意事项1. 是否需要科学上网2. …

探索四川财谷通抖音小店:安全与信赖的购物新体验

在数字经济蓬勃发展的今天,抖音平台凭借其庞大的用户基础和强大的内容生态,逐渐成为了电商领域的一股不可忽视的力量。其中,四川财谷通抖音小店作为这一浪潮中的佼佼者,不仅以其丰富的商品种类和独特的品牌魅力吸引了众多消费者的…

Java多线程的单例设计模式 多种实现方法

目录 前言 饿汉式 懒汉式 Double_check volatile double_check Holder方式 枚举 前言 单例设计模式GOF23中设计模式中最常用的设计模式之一, 单例设计模式提供了多线程环境下的保证唯一实例性的解决方案, 虽然简单, 但是实现单例模式的方式多种多样, 因此需要从多个维度去…

[安洵杯 2019]easy_serialize_php

[安洵杯 2019]easy_serialize_php [安洵杯 2019]easy_serialize_php - DGhh - 博客园 (cnblogs.com) [安洵杯 2019]easy_serialize_php - 何止(h3zh1) - 博客园 (cnblogs.com) 涉及的考点是字符串逃逸 <?php //GET一个f $function $_GET[f];//定义过滤的字符串数组 fu…

c++初阶-------模板

作者前言 &#x1f382; ✨✨✨✨✨✨&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f382; ​&#x1f382; 作者介绍&#xff1a; &#x1f382;&#x1f382; &#x1f382; &#x1f389;&#x1f389;&#x1f389…

科普文:微服务之全文检索SpringBoot整合ElasticSearch说明

一、RestHighLevelClient介绍 JavaREST客户端有两种模式&#xff1a; Java Low Level REST Client&#xff1a;ES官方的低级客户端。低级别的客户端通过http与Elasticsearch集群通信。Java High Level REST Client&#xff1a;ES官方的高级客户端。基于上面的低级客户端&…

Io 35

FIleinputStream字节输入 package File.io;import java.io.*;public class io1 {public static void main(String[] args) throws IOException {// InputStream is new FileInputStream(new File("C:\\Users\\SUI\\Desktop\\Java1\\one\\src\\kaishi"));//简化Input…

C++ 几何算法 - 求两条直线交点

一&#xff1a;算法介绍 1. 首先定义两条直线方程&#xff1a; 2. 解方程&#xff0c;求出x, y坐标 3. 如果x分母的行列式等于0&#xff0c; 说明两条直线平行或方向相反 4. 如果x&#xff0c;y分母的行列式都等于0&#xff0c;说明两条线重叠 二&#xff1a;代码实现: #inclu…

求职Leetcode题目(5)

1.分割回文串 每一个结点表示剩余没有扫描到的字符串&#xff0c;产生分支是截取了剩余字符串的前缀&#xff1b;产生前缀字符串的时候&#xff0c;判断前缀字符串是否是回文。如果前缀字符串是回文&#xff0c;则可以产生分支和结点&#xff1b;如果前缀字符串不是回文&#…

Vue常见问题(一)组件的使用

Failed to resolve component. 报错原因&#xff1a; 组件注册错误&#xff1a;我们在组件中使用了未注册的组件。在Vue中&#xff0c;组件必须先注册才能使用。 解决方法&#xff1a; 引用组件 &#xff1a; import ItemPage from "/components/itemPage.vue";…

【踩坑】pytorch中的索引与copy_结合不会复制数据及其解决方案

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你&#xff0c;欢迎[点赞、收藏、关注]哦~ 目录 背景知识 实验验证 结论分析 错误案例 处理方法 注意事项 附加说明 基本索引返回视图 高级索引返回副本 赋值操作都是原地操作 以下内容…

重生之我 学习【数据结构之顺序表(SeqList)】

⭐⭐⭐ 新老博友们&#xff0c;感谢各位的阅读观看 期末考试&假期调整暂时的停更了两个多月 没有写博客为大家分享优质内容 还容各位博友多多的理解 美丽的八月重生之我归来 继续为大家分享内容 你我共同加油 一起努力 ⭐⭐⭐ 数据结构将以顺序表、链表、栈区、队列、二叉树…

索尼相机SD卡找不到视频怎么办?提供全面解决方案

在使用索尼相机拍摄美好瞬间时&#xff0c;SD卡作为存储介质&#xff0c;承载着珍贵的视频和照片。然而&#xff0c;有时我们可能会遇到SD卡中视频文件无法找到的问题&#xff0c;这无疑让人倍感焦虑。本文旨在为大家提供一套全面的解决方案&#xff0c;希望帮助大家快速找回丢…