一、为什么我总会先画一张图

首先我不是那种喜欢“做汇报图”的人,但无论是调整网络、搭建 HomeLab 亦或者学习某个知识点我都习惯在动手前先画一张架构/拓扑图。

原因很简单:系统一旦复杂起来,人就越容易混乱

我画架构/拓扑图的目的,主要有以下三点:

1. 理清底层逻辑

系统越大、服务越多,你越容易被依赖关系淹没。拓扑图能迫使你使用“图形语言”重新整理逻辑:

  • 哪些组件在关键链路上,哪些只是辅助节点;

  • 网络、存储、计算三者如何相互依赖;

  • 技术实现原理等。

当你能用一张图讲清系统逻辑的那一刻,其实就是你真的“理解它”的时刻--画图的过程,就是梳理思维的过程

2. 快速定位故障

当系统出现问题时,如果没有全局视图,只能靠直觉排查。但有了清晰的架构,排障就会变成一种逻辑推理:

  • 请求卡住?看路径;

  • 端口异常?看流向。

看“故障信号”在哪一层、哪一个节点消失--往往是问题的关键点。一张图,能帮你快速收敛到最可能的那个节点

3. 降低沟通成本

不管是写技术文档、写公众号,还是团队沟通,图都是一种“跨语言的表达方式”。

架构图能让人:

  • 快速了解系统如何运作;

  • 理解组件职责。

”图”的真正价值--把复杂抽象的系统逻辑变成可感知的语言

🌐 一张架构图能带来的改变:

场景

图能解决什么

理解系统结构

把抽象逻辑视觉化,理清模块关系

快速定位故障

从全局路径分析问题,不考猜

沟通与协作

让复杂系统“一图可懂”

二、案例

1. H100 通信拓扑

H100 通信拓扑最主要目的是理解 GPU 之间的互联逻辑:

  • 单台 H100 服务器之间显卡通过 NVSwitch 互通,不经过网卡(绿色虚线表示);

  • 两台 H100 服务器的相同位置显卡通过 Leaf 交换机互通(蓝色带箭头虚线表示);

  • 两台 H100 服务器的不同位置显卡通过 Leaf 到达 Spine 再经由 Leaf 交换机互通(绿色带箭头虚线表示)。

2. HomeLab 网络拓扑

这是我最常更新的一张图,主要是家里的设备比较多,包含:

  • QNAP NAS;

  • Ubuntu 网关;

  • PVE 工作站;

  • 交换机;

  • Mac Studio 等。

这张图最大的价值是排障,由于设备比较多布线复杂视觉感官非常乱在加上运行服务和异地组网等清况让网络环境相对复杂。当局部设备或服务发生异常通过该图能快速定位到问题节点。

3. Linux Ring-Buffer

直观理解 ring buffer 在网卡硬件、驱动和协议栈之间的桥梁作用。无论是数据接收(Rx)还是发送(Tx),都绕不开这个中转站。它像一个“转盘”,数据从网卡 DMA 转进来,再被驱动从中取出;或者反过来,从驱动放进去,由网卡发送出去。

三、画图遵循的几个逻辑

原则

说明

目的导向

理清逻辑、深层理解

分层思维

不要混着画,把物理和逻辑层分开

信息最小化

一图一个主题,宁可画多张小图

命名统一

线条、接口、设备前缀一致