当前位置: 首页 > news >正文

《系统架构设计师教程(第2版)》第17章-通信系统架构设计理论与实践-04-其他网络架构(存储网络架构、软件定义网络架构)

文章目录

  • 1. 存储网络架构
    • 1.1 网络连接存储 (NAS)
    • 1.2 存储区域网络(SAN)
  • 2. 软件定义网络架构
    • 2.1 软件定义网络(SDN)
    • 2.2 SDN架构
    • 2.3 相关技术
      • 2.3.1 控制平面技术
      • 2.3.2 数据平面技术
        • 1) 硬件处理方式
        • 4) 软件处理方式
      • 2.3.3 转发规则一致性更新技术

1. 存储网络架构

计算机访问磁盘存储的方式如下:

  • 直连式存储(DAS)

    • Direct Attached Storage
    • 计算机通过 I/O端口直接访问存储设备
  • 网络连接的存储 (NAS)

    • Network Attached Storage
    • 专门用于数据存储的网络服务器,它通过网络提供文件级别的数据访问和共享服务

    教材原文对NAS定义 :“计算机通过分布式文件系统访问存储设备的方式”。不准确

  • 存储区域网络 (SAN)

    • Storage Area Network
    • 是一种基于块的存储
    • 利用专用的高速网络,连接存储设备
  • NAS与SAN 异同点

    • 相同:
      • 对存储集中管理
      • 多主机共享存储
    • 不同
      • NAS通常是基于以太网, SAN使用以太网或光纤的专用通道
      • NAS注重易用性、易管理性、可扩展性、低成本;SAN 则注重高性能和低延迟。

1.1 网络连接存储 (NAS)

RPC:Remote Procedure Call。即,远程调用。

  • 用户计算机通过IP远程过程调用 访问NAS存储单元

在这里插入图片描述

  • 常见NAS协议
    • CIFS/SMB协议
      • Common Internet File Services / Server Message Block
      • 为网络中的计算机提供了文件和打印资源的共享功能
      • 是Windows 通常使用的协议
  • SMB 协议最早由 IBM 设计,并用于网络文件共享。它允许应用程序在网络上读取、写入和请求文件,以及与文件共享服务进行通信。SMB 主要在 Windows 操作系统中使用,但也被多个其他操作系统支持。
  • CIFS 是 SMB 协议的一个扩展和更新版本,由 Microsoft 推出。它旨在通过互联网进行文件共享,并增强了协议的功能和兼容性。CIFS 也是 SMB 协议的一个特定实现,尤其是在 Windows 2000 及更高版本的操作系统中。
  • NFS协议
    • Network File System
    • 通用的 Linux协议

1.2 存储区域网络(SAN)

  • 逻辑磁盘单元(LDU)
    • Logical Disk Unit
    • 是一系列通过共享存储池配置的块
    • 以逻辑磁盘的形式呈现给服务器
    • 服务器会对这些块进行分区和格式化
  • SAN的设计消除了单点故障,具有极高可用性和故障恢复能力

在这里插入图片描述

  • SAN的特点

    • 采用存储协议连接服务器和存储单元(而不是网络协议)
    • SAN交换机允许或禁止主机访问存储
    • 通过配置 SAN来为主机提供所需存储容量
  • SAN常见的4种协议

    • 光纤通道协议(FCP)
      • Fibre Channel Protocol
      • 应用最广,如:FC-SAN
    • Internet小型计算机系统接口 (iSCSI)
      • Internet Small Computer System Interface
      • 第二大SAN协议
      • 将 SCSI命令封装在以太网帧内,然后使用 IP 以太网络进行传输
    • 以太网光纤通道 (FCoE)
      • Fibre Channel over Ethernet
      • 其应用相对较少
      • 将FC帧封装在以太网数据报中,然后使用IP 以太网络进行传输
    • 基于光纤通道的非易失性内存标准 (FC-NVMe)
      • Non-Volatile Memory Express over Fibre Channel

SAN存储网络可有效避免网元处理节点故障切换后业务数据丢失

2. 软件定义网络架构

2.1 软件定义网络(SDN)

下一节关键技术里还会有说明

  • 概述:
    • Software-Defined Networking
    • 是一种现代网络架构和管理方法
    • 通过将网络控制层数据转发层分离,提供了更灵活、更可编程的网络管理方式
  • SDN的分层
    • 控制层
      • 包括:
        • 可编程控制器
        • 网络控制逻辑中心
        • 网络全局信息
        • 配置和部署的新协议
    • 数据层
      • 包括
        • 哑交换机:仅提供简单的数据转发功能
    • 两层之间:采用开放的统一接口交互
  • 优点:
    • 有效降低转发设备复杂度
    • 卸载不必要的运行负载
    • 降低整体运营成本
    • 打破了传统网络设备的封闭性

2.2 SDN架构

在这里插入图片描述

  • 架构
    • 数据平面
      • 组成:网络转发设备
      • 连接:SDN数据通路
    • 控制平面
      • 包括:SDN控制器
      • 作用:
        • 掌握着网络全局信息
        • 负责转发规则的下发
    • 应用平面
      • 包含:各种基于SDN 的网络应用
      • 应用无须关心网络底层细节就可以编程、部署新应用
    • 南向接口
      • SBI(South Bound Interface)
      • 控制平面数据平面的通信接口
      • 采用OpenFlow协议
      • 作用:将控制器中的转发规则下发至转发设备
    • 北向接口
      • SBI(South Bound Interface)
      • 控制平面应用平面的通信接口(即,对应用开放)
      • 作用:允许用户根据自身需求定制开发各种网络管理应用
    • 东西向接口:负责多控制器之间的通信

2.3 相关技术

本小节是从《05-网络构建关键技术》中合并过来的。

2.3.1 控制平面技术

  • 控制器
    • 控制平面的核心部件
    • SDN体系架构的逻辑中心
  • 扩展方式
    • 对网络中单一控制器本身进行扩展

      • 采用多线程的方式对控制器进行性能提升,形成NOX-MT版本
      • 采用多核并行处理能力的Maestro控制器
    • 采用多控制器方式扩展

      • 扁平控制模型
      • 层次控制模型

2.3.2 数据平面技术

1) 硬件处理方式
  • 相较软件:

    • 速度快
    • 灵活性低
  • RMT模型

    • Reconfigurable Match Tables
    • 可重配置匹配表
    • 一种网络设备的硬件架构设计
    • 允许在流水线阶段支持任意宽度和深度的流表
    • 旨在提高网络交换机和路由器中流表的灵活性和性能
  • FlowAdapter

    • 流适配器
    • 采用交换机分层的方式来实现多表流水线业务
4) 软件处理方式

没有考点

2.3.3 转发规则一致性更新技术

  • 问题:不同转发设备更新转发规则时,可能会出现不一致现象
  • 解决:采用“两段提交”的方式更新
    • 控制器询问每个交换机是否处理完对应旧规则的流
    • 确认后对处理完毕的交换机进行规则更新
    • 当所有交换机都更新完毕后才真正完成更新,否则撤销更新操作
  • 不足:
    • 需要等待旧规则的流全部处理完毕
  • 解决:增量式一致性更新算法
    • 将规则更新分多轮进行
    • 每一轮都采用“二段提交”方式更新一个子集

在这里插入图片描述

相关文章:

《系统架构设计师教程(第2版)》第17章-通信系统架构设计理论与实践-04-其他网络架构(存储网络架构、软件定义网络架构)

文章目录 1. 存储网络架构1.1 网络连接存储 (NAS)1.2 存储区域网络(SAN) 2. 软件定义网络架构2.1 软件定义网络(SDN)2.2 SDN架构2.3 相关技术2.3.1 控制平面技术2.3.2 数据平面技术1) 硬件处理方式4) 软件处…...

大话Python|基础语法(上)

一、单行注释 以下代码输出一个Hello World!字符串 在Python代码中,注释会自动被Python解析器忽略 print(Hello World) 二、多行注释 在Python代码中,注释一共有两种形式; 1、单行注释:注释的内容只有一行 2、多行…...

crosscrossover24支持的游戏有那些

CrossOver刚刚更新了24版本,支持《地平线零之曙光》、《以撒的结合:重生》等游戏。一起来看看它有哪些更新吧!之前买过23版的用户可以在1年之内免费升级哦,点击这里查看升级教程。 一、功能优化 - 更新 Wine 至最新的稳定版 Wine …...

如何免费调用GPT API进行自然语言处理

在当今这个信息爆炸的时代,自然语言处理(NLP)技术正逐步渗透到我们生活的各个方面,从智能客服到内容创作,无一不彰显着其强大的应用价值。而GPT(Generative Pre-trained Transformer)作为NLP领域…...

vue无感刷新Token并重新请求

vue 拦截器拦截401重新请求Token 无感刷新Token 之后重新请求报401的接口 instance.interceptors.response.use(async (response) > {let { data } response;if (data.code 401 || data.code 403) {return await handleExpiredToken(response.config);}if (data.code ! …...

C++和OpenGL实现3D游戏编程【连载10】——纹理的半透明显示

1、本节实现的内容 上一节课我们讲到了图片的镂空显示,它能在显示图片时去除指定颜色的背景,那么这节课我们来说一下图片的半透明显示效果,半透明效果能给画面带来更高质量的提升,使图片显示的更自然,产生更真实的效果。下面是一个气泡向上漂浮的效果。 气泡效果 2、非纹…...

50页PPT麦肯锡精益运营转型五步法

读者朋友大家好,最近有会员朋友咨询晓雯,需要《 50页PPT麦肯锡精益运营转型五步法》资料,欢迎大家下载学习。 知识星球已上传的资料链接: 企业架构 企业架构 (EA) 设计咨询项目-企业架构治理(EAM)现状诊断 105页PPTHW企业架构设…...

Fyne ( go跨平台GUI )中文文档-小部件 (五)

本文档注意参考官网(developer.fyne.io/) 编写, 只保留基本用法 go代码展示为Go 1.16 及更高版本, ide为goland2021.2 这是一个系列文章: Fyne ( go跨平台GUI )中文文档-入门(一)-CSDN博客 Fyne ( go跨平台GUI )中文文档-Fyne总览(二)-CSDN博客 Fyne ( go跨平台GUI…...

GUI编程19:贪吃蛇小游戏及GUI总结

视频链接:21、贪吃蛇之界面绘制_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1DJ411B75F?p21&vd_sourceb5775c3a4ea16a5306db9c7c1c1486b5 1.游戏中用的的图片素材 1.贪吃蛇游戏的主启动类StartGame; package com.yundait.snake;import j…...

linux StarRocks 安装

一、检查服务器是否支持avx2,如果执行命令显示空,则不支持,那么安装后无法启动BE cat /proc/cpuinfo |grep avx2我的支持显示如下: 二、安装 docker run -p 9030:9030 -p 8030:8030 -p 8040:8040 -p 9001:9000 --privilegedtrue…...

解决RabbitMQ设置x-max-length队列最大长度后不进入死信队列

解决RabbitMQ设置x-max-length队列最大长度后不进入死信队列 问题发现问题解决方法一:只监听死信队列,在死信队列里面处理业务逻辑方法二:修改预取值 问题发现 最近再学习RabbitMQ过程中,看到关于死信队列内容: 来自队…...

【解决】chrome 谷歌浏览器,鼠标点击任何区域都是 Input 输入框的状态,能看到输入的光标

chrome 谷歌浏览器,鼠标点击任何区域都是 Input 输入框的状态,能看到输入的光标 今天打开电脑的时候,网页中任何文本的地方,只要鼠标点击,就会出现一个输入的光标,无论在哪个站点哪个页面都是如此。 我知道…...

使用python操作数据库

文章目录 一、问题背景二、安装python三、代码示例四、总结 一、问题背景 在日常开发过程中,随着项目进展和业务功能的迭代,我们需要对数据库的表结构进行修改,向部分表中追加字段,并对追加后的字段进行数据填充。但是如果需要追加…...

[Redis] 渐进式遍历+使用jedis操作Redis+使用Spring操作Redis

🌸个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 🏵️热门专栏: 🧊 Java基本语法(97平均质量分)https://blog.csdn.net/2301_80050796/category_12615970.html?spm1001.2014.3001.5482 🍕 Collection与…...

排序----数据结构

Comparable Integer Double 默认情况下都是按照升序排列的 string 按照字母再ASCII码表中对应的数字升序进行排列 冒泡排序 时间复杂度O(x^2) 选择排序 时间复杂度O(x^2) 插入排序 时间复杂度O(x^2) 希尔排序 时间复杂度O(x) 归并排序 时间复杂度O(nlogn) 快速排序...

Crack道路裂缝检测数据集——目标检测数据集

【Crack道路裂缝检测数据集】共3684张。 目标检测数据集,标注文件为YOLO适用的txt格式。已划分为训练、验证集。 图片分辨率:224*224 类别:crack Crack道路裂缝检测数据集 数据集描述 该数据集是一个专门用于训练和评估基于YOLO&#xff0…...

10.3拉普拉斯金字塔

实验原理 拉普拉斯金字塔(Laplacian Pyramid)是一种图像表示方法,常被用于图像处理和计算机视觉领域。它是基于高斯金字塔的一种变换形式,主要用于图像融合、图像金字塔的构建等场景。下面简要介绍拉普拉斯金字塔的基本原理。 高…...

redis为什么不使用一致性hash

Redis节点间通信时,心跳包会携带节点的所有槽信息,它能以幂等方式来更新配置。如果采用 16384 个插槽,占空间 2KB (16384/8);如果采用 65536 个插槽,占空间 8KB (65536/8)。 今天我们聊个知识点为什么Redis使用哈希槽而不是一致性…...

Vue.js与Flask/Django后端配合

Vue.js与Flask/Django后端配合 在现代Web开发领域,前后端分离已成为一种流行的架构模式。Vue.js作为一款轻量级、高性能的前端框架,与Flask或Django这样的后端框架相结合,可以构建出强大且可扩展的Web应用。本文将详细介绍如何将Vue.js与Fla…...

ESP32 入门笔记02: ESP32-C3 系列( 芯片ESP32-C3FN4) (ESP-IDF + VSCode)

ESP32-C3 系列的 芯片 / 模组 / 开发板 ESP32-C3-DevKitM-1是乐鑫一款搭载 ESP32-C3-MINI-1 或 ESP32-C3-MINI-1U 模组的入门级开发板(内置 ESP32-C3FH4 或 ESP32-C3FN4 芯片)。 板上模组大部分管脚均已引出至两侧排针,可根据开发实际需求&a…...

云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?

大家好,欢迎来到《云原生核心技术》系列的第七篇! 在上一篇,我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在,我们就像一个拥有了一块崭新数字土地的农场主,是时…...

Appium+python自动化(十六)- ADB命令

简介 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试…...

AI Agent与Agentic AI:原理、应用、挑战与未来展望

文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例:使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例:使用OpenAI GPT-3进…...

Frozen-Flask :将 Flask 应用“冻结”为静态文件

Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...

从零实现STL哈希容器:unordered_map/unordered_set封装详解

本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说&#xff0c;直接开始吧&#xff01; 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...

前端开发面试题总结-JavaScript篇(一)

文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包&#xff08;Closure&#xff09;&#xff1f;闭包有什么应用场景和潜在问题&#xff1f;2.解释 JavaScript 的作用域链&#xff08;Scope Chain&#xff09; 二、原型与继承3.原型链是什么&#xff1f;如何实现继承&a…...

OpenLayers 分屏对比(地图联动)

注&#xff1a;当前使用的是 ol 5.3.0 版本&#xff0c;天地图使用的key请到天地图官网申请&#xff0c;并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能&#xff0c;和卷帘图层不一样的是&#xff0c;分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...

2023赣州旅游投资集团

单选题 1.“不登高山&#xff0c;不知天之高也&#xff1b;不临深溪&#xff0c;不知地之厚也。”这句话说明_____。 A、人的意识具有创造性 B、人的认识是独立于实践之外的 C、实践在认识过程中具有决定作用 D、人的一切知识都是从直接经验中获得的 参考答案: C 本题解…...

基于Java Swing的电子通讯录设计与实现:附系统托盘功能代码详解

JAVASQL电子通讯录带系统托盘 一、系统概述 本电子通讯录系统采用Java Swing开发桌面应用&#xff0c;结合SQLite数据库实现联系人管理功能&#xff0c;并集成系统托盘功能提升用户体验。系统支持联系人的增删改查、分组管理、搜索过滤等功能&#xff0c;同时可以最小化到系统…...

现有的 Redis 分布式锁库(如 Redisson)提供了哪些便利?

现有的 Redis 分布式锁库&#xff08;如 Redisson&#xff09;相比于开发者自己基于 Redis 命令&#xff08;如 SETNX, EXPIRE, DEL&#xff09;手动实现分布式锁&#xff0c;提供了巨大的便利性和健壮性。主要体现在以下几个方面&#xff1a; 原子性保证 (Atomicity)&#xff…...