Share Notes

chundev

View the Project on GitHub latteouka/share-notes

PowerScale A310 網路佈線完整指南 — 從基礎觀念到實際接線

日期:2026-03-19 設備:Dell PowerScale A310(4 nodes / 4U chassis)


TL;DR

PowerScale A310 的網路分成 Frontend(對外服務)和 Backend(node 間通訊)兩個獨立平面。以常見配置(FE 10G + BE breakout DAC)為例,一台 4-node chassis 需要準備:FE 線材 8 條 + BE breakout DAC 2 條 + 管理線 4 條 = 共 14 條線。GBIC 方面,如果 FE 用光纖,需要 PowerScale 端 8 顆 + 交換器端 8 顆 = 共 16 顆 10G SFP+;如果 FE 改用 DAC 銅線則不需要額外 GBIC。


第一章:先搞懂這些名詞

開始佈線之前,先認識幾個關鍵概念。如果你已經熟悉這些,可以直接跳到第三章。

1.1 什麼是光模組(Transceiver / GBIC)?

光模組是一個可插拔的小元件,負責把電訊號轉成光訊號(發送)和把光訊號轉回電訊號(接收)。你可以把它想成「翻譯器」——設備內部說的是電的語言,光纖線走的是光的語言,光模組在中間幫你翻譯。

GBIC 是最早的可插拔光模組(約 1995 年),體積像一個隨身碟那麼大。後來技術演進,體積越做越小、速度越來越快,但很多人習慣把所有光模組都叫「GBIC」,就像很多人把所有影印機都叫「Xerox」一樣。

1.2 光模組家族演進

規格 推出年份 速率 外觀 說明
GBIC ~1995 1G 🟫 很大 第一代,已淘汰
SFP 2002 1G 🟨 小(GBIC 的一半) 取代 GBIC,又叫 mini-GBIC
SFP+ 2006 10G 🟨 同 SFP 外觀和 SFP 一樣,速度 10 倍
SFP28 2014 25G 🟨 同 SFP 外觀還是一樣,速度再升
QSFP+ 2012 40G(4×10G) 🟧 較寬(約 SFP 的 2 倍) Q = Quad,4 通道並行
QSFP28 2014 100G(4×25G) 🟧 同 QSFP+ 通道升級到 25G

重要相容性規則:

💡 SFP28 的「28」代表每通道 28Gbps 原始速率(25G 資料 + 編碼開銷)。QSFP28 = 4 × 28G = 112Gbps 原始速率,對應 100G 有效資料速率。

1.3 DAC 銅線 vs 光纖 + 光模組

連接兩台設備有兩種方式:

方式 A:DAC(Direct Attach Copper)銅線

┌─────────┐                              ┌─────────┐
│  設備 A   │  ◄── DAC 銅纜(一體成型)──►  │  設備 B   │
│ SFP28 埠 │      接頭已內建在線材上        │ SFP28 埠 │
└─────────┘                              └─────────┘

DAC 是「接頭和線纜合為一體」的銅線。兩端已經預先裝好連接器,買回來直接插就能用,不需要另外買光模組

方式 B:光模組 + 光纖線

┌─────────┐                                          ┌─────────┐
│  設備 A   │ ◄─ [光模組] ◄── 光纖線 ──► [光模組] ─► │  設備 B   │
│ SFP28 埠 │                                          │ SFP28 埠 │
└─────────┘                                          └─────────┘

兩端各插一顆光模組,中間用光纖線連接。

兩者比較:

比較項目 DAC 銅線 光纖 + 光模組
最大距離 被動式 ≤ 5m;主動式 ≤ 15m 100m ~ 80km
成本 ⬇️ 最低 ⬆️ 較高(光模組 × 2 + 光纖)
功耗 ⬇️ 被動式幾乎不耗電 ⬆️ 光模組需額外供電
延遲 ⬇️ 最低 略高(光電轉換)
彈性 線材長度固定,壞了整條換 光模組和光纖可分別更換
適用場景 同機櫃、相鄰機櫃 跨機房、跨樓層

💡 經驗法則:同機櫃或相鄰機櫃(< 5m)→ 用 DAC;距離更遠 → 用光纖 + 光模組。

1.4 什麼是 Breakout Cable(分支線材)?

Breakout cable 的一端是一個大接頭(QSFP28),另一端「分叉」成多個小接頭(4 個 SFP28)。它的作用是把一個高速埠的頻寬,拆分給多個低速埠使用。

                    ┌── SFP28 25G ──► Node 1
                    │
交換器 QSFP28 100G ──┼── SFP28 25G ──► Node 2
                    │
                    ├── SFP28 25G ──► Node 3
                    │
                    └── SFP28 25G ──► Node 4

為什麼可以這樣拆? 因為 QSFP28 本身就有 4 條獨立的 25G 通道(lane)。正常使用時,4 條通道合在一起組成 100G;breakout cable 則是把 4 條通道各自獨立拉出來,每條通道就是一個完整的 25G 連線。

Breakout cable 也分 DAC 和光纖版本,短距離用 DAC breakout,長距離用 AOC(Active Optical Cable)breakout。

使用注意事項:

  1. 交換器端的 QSFP28 埠必須設定為 breakout mode
  2. Breakout cable(含 DAC 版本)不需要額外買光模組

1.5 什麼是 FEC(Forward Error Correction)?

FEC 是在傳送資料時附加冗餘位元的技術,接收端可以用冗餘位元修正傳輸錯誤,不需要重傳。25G 以上的速率幾乎都需要 FEC。

關鍵原則:兩端的 FEC 設定必須一致。 一端開 RS-FEC、另一端沒開 → 連線不通。

速率 FEC 需求
10G SFP+ 通常不需要
25G SFP28 ✅ 需要(FC-FEC 或 RS-FEC)
100G QSFP28 ✅ 需要(通常預設 RS-FEC)

⚠️ 特別注意:如果 SFP28 port 插了 10G SFP+ 模組降速跑,交換器端必須關閉 FEC,因為 10G SFP+ 不支援 FEC。FEC 不匹配會導致 link 建不起來。


第二章:PowerScale A310 網路架構

2.1 兩個獨立的網路平面

PowerScale 把網路分成兩個完全隔離的平面,各自有不同的用途和規則:

網路平面 Port 名稱 用途 接到哪裡
Frontend ext-1 / ext-2 對外服務(SMB/NFS/S3),用戶端存取資料走這裡 一般網路交換器
Backend int-a / int-b node 之間互相溝通(資料搬移、metadata 同步、journal mirror) Dell 認證的專用交換器

用你可能熟悉的概念類比:

每個 node 還有 1 個 1GbE management port(RJ45),類似 iDRAC / IPMI,用於 out-of-band 管理。

完整網路拓撲總覽

先看全貌,後面再逐一說明每個部分的細節。

ASCII 版:

                        ┌─────────────────────────────────┐
                        │    Client / Server Network       │
                        └──────┬──────────────┬────────────┘
                               │              │
                    ┌──────────▼──┐     ┌─────▼──────────┐
                    │ FE Switch A │     │ FE Switch B    │
                    │ Aruba 8360v2│     │ Aruba 8360v2   │
                    └──┬──┬──┬──┬┘     └┬──┬──┬──┬──────┘
                       │  │  │  │       │  │  │  │
           ext-1 ──────┘  │  │  │       │  │  │  └────── ext-2
              ┌───────────┘  │  │       │  │  └──────────────┐
              │  ┌───────────┘  │       │  └──────────┐      │
              │  │  ┌───────────┘       └──────┐      │      │
              │  │  │                          │      │      │
          ┌───▼──▼──▼──▼──────────────────────▼──────▼──────▼──┐
          │                PowerScale A310 Chassis (4U)         │
          │  ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐      │
          │  │ Node 1 │ │ Node 2 │ │ Node 3 │ │ Node 4 │      │
          │  └──┬──┬──┘ └──┬──┬──┘ └──┬──┬──┘ └──┬──┬──┘      │
          └─────┼──┼───────┼──┼───────┼──┼───────┼──┼──────────┘
           int-a│  │int-b  │  │       │  │       │  │
                │  │       │  │       │  │       │  │
     ═══════════╧══╧═══════╧══╧═══════╧══╧═══════╧══╧════
     Breakout     │                                 │
     DAC 3m       │                                 │
     ═════════════╧═════════════════════════════════╧═════
                  │                                 │
          ┌───────▼───────┐                 ┌───────▼───────┐
          │ BE Switch A   │                 │ BE Switch B   │
          │ S4112F (0.5U) │                 │ S4112F (0.5U) │
          └───────────────┘                 └───────────────┘

Mermaid 版:

graph TB
    subgraph clients ["Client / Server Network"]
        C1["Client 1"]
        C2["Client 2"]
        C3["Client N"]
    end

    subgraph frontend ["Frontend Network (HA)"]
        FE_A["FE Switch A
Aruba 8360v2"] FE_B["FE Switch B
Aruba 8360v2"] end subgraph chassis ["PowerScale A310 Chassis (4U)"] N1["Node 1
ext-1 / ext-2
int-a / int-b"] N2["Node 2
ext-1 / ext-2
int-a / int-b"] N3["Node 3
ext-1 / ext-2
int-a / int-b"] N4["Node 4
ext-1 / ext-2
int-a / int-b"] end subgraph backend ["Backend Network (隔離)"] BE_A["BE Switch A
S4112F (0.5U)"] BE_B["BE Switch B
S4112F (0.5U)"] end C1 & C2 & C3 --> FE_A & FE_B FE_A -- "ext-1
10G SFP+" --> N1 & N2 & N3 & N4 FE_B -- "ext-2
10G SFP+" --> N1 & N2 & N3 & N4 N1 & N2 & N3 & N4 -- "int-a
Breakout DAC" --> BE_A N1 & N2 & N3 & N4 -- "int-b
Breakout DAC" --> BE_B style clients fill:#e8f4fd,stroke:#333 style frontend fill:#d4edda,stroke:#333 style chassis fill:#fff3cd,stroke:#333 style backend fill:#f8d7da,stroke:#333

2.2 A310 每個 Node 的 Port 配置選項

Port 選項 1 選項 2 選項 3
Frontend × 2 25GbE SFP28 100GbE QSFP28
Backend × 2 25GbE SFP28 100GbE QSFP28 InfiniBand QDR
Management × 1 1GbE RJ45

4 個 node 裝在一個 4U chassis 中(Dell Infinity chassis),所以一台 chassis 共有:

2.3 Frontend HA 架構

Frontend 的 8 個 port 分散接兩台交換器做冗餘:

                    ┌─ Node 1 ext-1 ─┐       ┌─ Node 1 ext-2 ─┐
                    ├─ Node 2 ext-1 ─┤       ├─ Node 2 ext-2 ─┤
Frontend Switch A ◄─┤─ Node 3 ext-1 ─┤   A ◄─┤─ Node 3 ext-2 ─┤─► Frontend Switch B
                    └─ Node 4 ext-1 ─┘       └─ Node 4 ext-2 ─┘

Mermaid 版:

graph LR
    subgraph switch_a ["FE Switch A (Aruba 8360v2)"]
        SA["4 × 10G SFP+ ports"]
    end
    subgraph switch_b ["FE Switch B (Aruba 8360v2)"]
        SB["4 × 10G SFP+ ports"]
    end

    subgraph chassis ["PowerScale A310 Chassis"]
        N1_1["Node 1
ext-1"] --> SA N2_1["Node 2
ext-1"] --> SA N3_1["Node 3
ext-1"] --> SA N4_1["Node 4
ext-1"] --> SA N1_2["Node 1
ext-2"] --> SB N2_2["Node 2
ext-2"] --> SB N3_2["Node 3
ext-2"] --> SB N4_2["Node 4
ext-2"] --> SB end style switch_a fill:#d4edda,stroke:#28a745 style switch_b fill:#d4edda,stroke:#28a745 style chassis fill:#fff3cd,stroke:#ffc107

任一台交換器故障時,每個 node 仍有另一個 port 走另一台交換器對外服務。搭配 OneFS SmartConnect(DNS-based 負載平衡,TTL=0)自動將 IP failover 到存活的 port 上。

2.4 Backend 佈線規則

Backend 有幾個嚴格限制,跟 Frontend 不一樣:

規則 說明 為什麼
⚠️ 完全隔離 不可接任何非 PowerScale 設備 Backend 流量未加密,混用有安全風險
⚠️ 不可經 patch panel 必須從 node 直連到 backend switch Dell 明確不支援,會影響訊號品質
⚠️ 專用交換器 需使用 Dell 認證的交換器,不能跑其他流量 確保低延遲和頻寬保證
⚠️ Active/Passive int-a / int-b 分接兩台獨立交換器 一台掛掉另一台自動接手

第三章:典型配置範例

以下以一個常見的 A310 配置為例,說明各元件的規格和接法:

3.1 PowerScale A310 主機(4 Nodes)

項目 每 Node 規格 4 Nodes 合計
HDD 4TB × 15 60 顆(可用 160TiB)
SSD(L3 cache) 800GB × 1 4 顆
Frontend 25GbE SFP28 × 2(附 10G transceiver) 8 port
Backend 25GbE SFP28 × 2(附 100G→4×25G DAC 3m) 8 port
License Enterprise Bundle(SnapshotIQ、SmartQuotas、SmartDedupe、SyncIQ)

3.2 Backend Switch:Dell S4112F-ON × 2

項目 規格
SFP+ port 12 × 10GbE(也支援 1GbE)
QSFP28 port 3 × 100GbE(支援 4×25G / 4×10G breakout)
機箱 半 RU(0.5U)
作業系統 Dell OS10 Enterprise Edition
PowerScale 認證 ✅ 是(注意:此型號已於 2023/5/5 EOL)

⚠️ S4112F breakout 限制:breakout cable 只能插在奇數編號的 QSFP28 port,使用時會停用對應的偶數 port。但 S4112F 只有 3 個 QSFP28 port(port 1、2、3),實務上用 1 個 QSFP28 做 breakout 就夠接 4 個 node。

3.3 接法解讀

Frontend(每 node 2 port,共 8 port):

此配置在 25GbE SFP28 port 裡插了 10G SFP+ transceiver。這是向下相容的用法——SFP28 port 插 SFP+ 模組會自動降速到 10G。對 archive 場景,10G 綽綽有餘。

Backend(每 node 2 port,共 8 port):

Backend 使用 QSFP28 100G → 4×SFP28 25G breakout DAC(3m) 連接。一條 breakout DAC 的 QSFP28 端插進 S4112F 的 100G port,4 個 SFP28 端分別插進同一台 chassis 的 4 個 node 的 backend port。

S4112F Switch A ◄─── [QSFP28 端] ═══╦══ [SFP28] ──► Node 1 int-a
  (Port 1)          breakout DAC    ╠══ [SFP28] ──► Node 2 int-a
                         3m         ╠══ [SFP28] ──► Node 3 int-a
                                    ╚══ [SFP28] ──► Node 4 int-a

S4112F Switch B ◄─── [QSFP28 端] ═══╦══ [SFP28] ──► Node 1 int-b
  (Port 1)          breakout DAC    ╠══ [SFP28] ──► Node 2 int-b
                         3m         ╠══ [SFP28] ──► Node 3 int-b
                                    ╚══ [SFP28] ──► Node 4 int-b

Mermaid 版:

graph LR
    subgraph sw_a ["S4112F Switch A"]
        QA["QSFP28 Port 1
100G"] end subgraph sw_b ["S4112F Switch B"] QB["QSFP28 Port 1
100G"] end QA -- "Breakout DAC 3m
Lane 1 (25G)" --> N1A["Node 1
int-a"] QA -- "Lane 2 (25G)" --> N2A["Node 2
int-a"] QA -- "Lane 3 (25G)" --> N3A["Node 3
int-a"] QA -- "Lane 4 (25G)" --> N4A["Node 4
int-a"] QB -- "Breakout DAC 3m
Lane 1 (25G)" --> N1B["Node 1
int-b"] QB -- "Lane 2 (25G)" --> N2B["Node 2
int-b"] QB -- "Lane 3 (25G)" --> N3B["Node 3
int-b"] QB -- "Lane 4 (25G)" --> N4B["Node 4
int-b"] style sw_a fill:#f8d7da,stroke:#dc3545 style sw_b fill:#f8d7da,stroke:#dc3545

所以 backend 只需要 2 條 breakout DAC 就搞定整台 chassis,非常乾淨。


第四章:線材與 GBIC 完整採購清單

4.1 線材數量

連線用途 線材類型 數量 備註
FE → Frontend Switch A LC 光纖或 10G SFP+ DAC 4 條 ext-1
FE → Frontend Switch B LC 光纖或 10G SFP+ DAC 4 條 ext-2
BE → Backend Switch A 100G→4×25G breakout DAC 3m 1 條 通常隨機附帶
BE → Backend Switch B 100G→4×25G breakout DAC 3m 1 條 通常隨機附帶
Management RJ45 Cat6 4 條 接管理網段
合計   14 條  

4.2 GBIC(光模組)數量

取決於 Frontend 用光纖還是 DAC:

情境 A:Frontend 用光纖 + 光模組(兩台設備距離 > 5m)

光模組 用途 數量 誰提供
10G SFP+ PowerScale 端 8 顆 通常隨機附帶
10G SFP+ Frontend Switch 端 8 顆 ⚠️ 需需另外準備交換器認證品
合計   16 顆  

另外需要 8 條 LC 光纖跳線。

情境 B:Frontend 用 DAC 銅線(兩台設備距離 ≤ 5m)

線材 用途 數量 備註
10G SFP+ DAC FE → Switch A 4 條 DAC 內建接頭,不需要額外光模組
10G SFP+ DAC FE → Switch B 4 條  
合計   8 條 光模組 = 0 顆

Backend 不需要額外光模組 — breakout DAC 已經內建接頭。

4.3 16 條 vs 10 條的差異

直覺算 16 條也沒錯——如果 backend 不用 breakout DAC,而是每個 port 各一條 SFP28 線直連:

算法 FE BE 合計(不含管理線)
直連 8 條 8 條 16 條
Breakout DAC 8 條 2 條 10 條

如果選配 breakout DAC,實際就是 10 條(+ 4 條管理線 = 14 條)。

4.4 如何判斷該準備什麼線材和 GBIC?

Step 1:看兩端的 port 類型
├── 兩端都是 SFP28(或 SFP+)→ 買 SFP28(或 SFP+)的線
├── 兩端都是 QSFP28 → 買 QSFP28 的線
└── 一端 QSFP28、另一端 SFP28 → 買 Breakout cable

Step 2:量距離
├── ≤ 3m(同機櫃)→ 被動式 DAC(不需要光模組)
├── 3~5m(相鄰機櫃)→ 被動式 DAC 或主動式 DAC
├── 5~15m → 主動式 DAC 或 AOC
└── > 15m → 光模組 × 2 + 光纖

Step 3:確認速度
├── 要跑 10G → 用 SFP+ 規格
├── 要跑 25G → 用 SFP28 規格
└── 要跑 100G → 用 QSFP28 規格

Step 4:查設備相容性清單(最重要!)
├── PowerScale 端:查 OneFS Supportability and Compatibility Guide
└── 交換器端:查交換器廠商的 Transceiver Compatibility Guide

Mermaid 決策樹版:

flowchart TD
    A["兩端 port 類型一樣嗎?"] --> |"是
(如 SFP28 對 SFP28)"| B["距離 ≤ 5m?"] A --> |"否
(如 QSFP28 對 SFP28)"| F["距離 ≤ 5m?"] B --> |是| C["✅ 買 DAC
不需要光模組"] B --> |否| D["距離 ≤ 15m?"] D --> |是| E["買主動式 DAC / AOC
不需要光模組"] D --> |否| G["買光模組 ×2 + 光纖"] F --> |是| H["✅ 買 Breakout DAC
不需要光模組"] F --> |否| I["買 Breakout AOC
或光纖方案"] style C fill:#d4edda,stroke:#28a745 style H fill:#d4edda,stroke:#28a745 style G fill:#fff3cd,stroke:#ffc107 style I fill:#fff3cd,stroke:#ffc107

⚠️ 很多企業級設備只認自家認證的光模組。插入未認證的模組可能被拒絕辨識、出現警告、或無法取得技術支援。


第五章:速率不匹配情境分析

以此配置為例,PowerScale Frontend 跑 10G,但 client 端可能是 1G、10G 或 25G。不同速率之間會發生什麼事?

5.0 核心觀念:問題不在速度不同,在 buffer 夠不夠

NIC 傳資料是以 line rate burst(線速率突發)方式送出,不是平滑的平均速度。當 25G 的 NIC burst 送資料到 10G 的 port 時,交換器必須在 egress buffer(出口緩衝區)暫存多出來的流量。

Buffer 需求 ≈ 頻寬差 × RTT

以 25G→10G、RTT 100μs 為例:
(25Gbps - 10Gbps) × 0.0001s = 187.5 KB(單一 flow)

速率不匹配時 switch buffer 的角色(ASCII):

Client (25G)                Switch                 Storage (10G)
    │                         │                         │
    │ ══25Gbps burst══►      │                         │
    │                    ┌────┴────┐                    │
    │                    │ Buffer  │ ──10Gbps──►        │
    │                    │ 暫存差額 │                    │
    │                    │ 15Gbps  │                    │
    │                    └────┬────┘                    │
    │                         │                         │
    │    ◄── TCP ACK ─────────┼──── TCP ACK ◄──         │
    │   (收到 ACK,繼續送)     │                        │

Mermaid 版:

sequenceDiagram
    participant C as Client (25G)
    participant S as Switch (Buffer)
    participant P as PowerScale (10G)

    C->>S: 25Gbps burst 送出資料
    Note over S: Buffer 暫存
25G - 10G = 15G 差額 S->>P: 10Gbps 穩定送出 P-->>S: TCP ACK S-->>C: TCP ACK Note over C: TCP 收斂到 ~10Gbps rect rgb(255, 200, 200) Note over S: ⚠️ 如果 buffer 滿了 S--xC: 丟棄封包 (tail drop) Note over C: TCP 偵測遺失
觸發重傳 + 降速 end

場景 1:Client 25G 寫入 → Storage Node 10G 🟡 低風險

發生什麼事:

Client 以 25Gbps burst 送出資料,但 PowerScale 只能收 10Gbps。交換器的 10G egress port 必須 buffer 多出的 15Gbps 流量。

管理員會看到:

解法:

方法 說明 難度
確保 switch buffer 足夠 32MB(如 Aruba 8360v2)對單一 flow 足夠 ✅ 簡單
啟用 Flow Control 在 switch 端啟用 asymmetric flow control ✅ 簡單
Client 端限速 Linux: tc qdisc add dev eth0 root fq maxrate 10gbit 中等
升級 storage 到 25G 換 25G transceiver(SFP28 port 本來就支援) 花錢

TCP 能自行處理嗎? ✅ 單一 client 對單一 node,TCP 通常能正常收斂。


場景 2:Client 1G 從 Storage Node 10G 讀取 🟡 低風險

發生什麼事:

Storage node 以 10Gbps burst 回應讀取請求,但 client 的 1G port 只能收 1Gbps。速度比為 10:1,交換器 1G egress port 的 buffer 壓力極大。

管理員會看到:

解法:

方法 說明
TCP receiver window 自然限速 client 端的 TCP window 會告訴 storage「慢一點」
Switch 端啟用 Flow Control pause frame 要求 storage 暫停
升級 client NIC 到 10G/25G 最根本的解法

TCP 能自行處理嗎? ✅ 單一 client 讀取通常 OK,但 10:1 的速差讓收斂比較慢。


場景 3:多台 25G Client 同時寫入同一台 10G Node 🔴 高風險

這是儲存網路最經典的效能殺手 — Incast 問題。

Incast 示意圖(ASCII):

Client A (25G) ──burst──►┐
Client B (25G) ──burst──►├──► Switch ──► [10G egress] ──► Storage Node
Client C (25G) ──burst──►│       │
Client D (25G) ──burst──►┘  ┌────┴────┐
                            │ Buffer  │ ◄── 多個 25G flow 同時灌入
                            │ 瞬間爆滿 │     遠超出 10G 出口能力
                            │ → 丟封包 │
                            └─────────┘
graph LR
    CA["Client A
25Gbps"] -->|burst| SW["Switch
Buffer 32MB"] CB["Client B
25Gbps"] -->|burst| SW CC["Client C
25Gbps"] -->|burst| SW CD["Client D
25Gbps"] -->|burst| SW SW -->|"10Gbps 出口
⚠️ 瓶頸"| PS["PowerScale
Node (10G)"] style SW fill:#f8d7da,stroke:#dc3545 style PS fill:#fff3cd,stroke:#ffc107

發生什麼事:

多個 25G flow 同時 burst 到同一個 10G egress port。即使每個 flow 的 buffer 需求很小(~187KB),10 個 flow 同時 burst 就需要 ~1.8MB,加上 TCP burst 和排隊效應,很快就會超過 buffer。

管理員會看到:

解法:

方法 說明 效果
WRED 在 buffer 滿之前隨機 drop,避免 TCP global sync ✅ 有效
ECN 標記封包而非 drop,讓 TCP 更優雅地降速 ✅ 有效
PFC(802.1Qbb) 對特定 traffic class 發送 pause ✅ 有效但配置複雜
升級 storage 到 25G 消除速差瓶頸 ✅ 最根本
用 SmartConnect 分散 把 client 分散到不同 node ✅ 架構面解決

TCP 能自行處理嗎? ❌ 多對一 incast 場景,TCP 通常處理不好。需要交換器的 QoS 機制介入。


場景 4:10G PowerScale Node 接在 25G Switch Port 🟢 無問題

發生什麼事:

PowerScale 的 SFP28 port 插了 10G SFP+ transceiver,接到交換器的 SFP28 25G port。SFP28 port 向下相容 SFP+,auto-negotiate 到 10G。

管理員會看到:

注意事項:

有問題嗎? ✅ 完全沒有,這是設計上支援的用法。


場景 5:Backend 100G Breakout → 4×25G Node Ports 🟢 無問題

發生什麼事:

S4112F 的 QSFP28 100G port 用 breakout DAC 拆成 4×25G,每條 lane 接一個 node。

管理員會看到:

有問題嗎? ✅ 完全沒有。QSFP28 breakout 到 4×25G 是原生設計,每條 lane 本來就是獨立的 25Gbps 通道,不存在速率不匹配。


場景 6:混合世代 Cluster(不同 Frontend 速度)🟡 中等風險

發生什麼事:

例如舊 Isilon X410(10G frontend)跟新 PowerScale F710(25G frontend)混在同一個 cluster。SmartConnect 可能把 client 導向任一 node。

管理員會看到:

解法:


速率不匹配情境總結

場景 風險 TCP 能處理? 建議
25G→10G 單一 client 🟡 低 ✅ 通常可以 確保 switch buffer 足夠
1G←10G 讀取 🟡 低 ✅ receiver window 限速 考慮升級 client NIC
多台 25G→10G incast 🔴 高 ❌ 容易崩 啟用 WRED/ECN 或升級 node 速度
10G node→25G switch port 🟢 無 ✅ auto-negotiate 確認 FEC 關閉、optic 相容
100G breakout→4×25G 🟢 無 N/A 原生設計,無不匹配
混合世代 cluster 🟡 中 ✅ 但效能不一致 SmartConnect 分 zone

最重要的一句話: 速度不匹配本身不可怕,可怕的是 buffer 不足加上多 flow incast。確保 switch 有足夠 buffer,並善用 flow control 機制,大部分場景都能正常運作。


第六章:此配置實際會遇到的問題

基於上述配置(FE 10G、BE 25G breakout),實際部署時會遇到哪些場景?

6.1 Frontend:Aruba 8360v2 + PowerScale 10G

Client 速度 對應場景 風險 需要做什麼
1G 場景 2 🟡 低 TCP 自然限速,通常無需處理
10G 無不匹配 🟢 無 完美匹配
25G 場景 1 或 3 🟡~🔴 少量 client OK;多 client 同時寫入注意 incast

Aruba 8360v2 的 buffer 夠嗎?

建議的交換器設定:

# 啟用 Jumbo Frame
interface <port>
  mtu 9216

# Asymmetric Flow Control(建議設定)
interface <port>
  flow-control receive on
  flow-control send off

# 如果用 10G SFP+ 在 SFP28 port,關閉 FEC
interface <port>
  forward-error-correction off

6.2 Backend:S4112F + Breakout DAC

情況 風險 說明
Breakout 100G→4×25G 🟢 無 原生設計,每 lane 獨立 25G
Node 間資料搬移 🟢 無 同速 25G,無不匹配

Backend 因為所有 node 都是同速 25G、走 breakout DAC 直連,不存在速率不匹配問題。

6.3 無法解決的情境

情境 為什麼無法解決 替代方案
大量 25G client 同時 burst 寫入 10G node 物理速差在那裡,buffer 和 QoS 只能緩解,無法消除 升級 FE transceiver 到 25G SFP28
需要 > 10Gbps 的持續吞吐量 10G 就是 10G 的上限 換 25G transceiver 或用 NIC bonding(LACP)
Aruba 8360v2 buffer 不足應付嚴重 incast 硬體限制,32MB 固定 換 deep buffer switch 或減少 incast 源

💡 好消息:A310 的 port 本身是 25GbE SFP28,只是插了 10G transceiver 降速跑。未來要升速,只需要把兩端的 transceiver 從 SFP+ 換成 SFP28 就好,port 和線材都不用動


第七章:診斷工具

遇到效能問題時,用這些指令排查:

Switch 端(Aruba CX)

# 檢查 output discard(如果有數值增長,代表 egress buffer 不夠)
show interface <port> statistics

# 檢查 buffer 使用狀況
show buffer-stats

# 檢查 flow control 狀態
show interface <port> flow-control

# 檢查 port 速度和 FEC 設定
show interface <port> transceiver

PowerScale / Linux Client 端

# 檢查 TCP retransmit(數值持續增長代表有問題)
netstat -s | grep retrans

# 用 iperf3 測試帶 pacing 的效能
iperf3 --fq-rate 10G -c <target>

# Linux 端限速避免 burst(可選)
tc qdisc add dev eth0 root fq maxrate 10gbit

PowerScale 端

# 檢查 MTU 設定
isi_for_array netstat -in

# 檢查 pause frame
isi_for_array -a sysctl dev | grep pause

結論

需要準備的東西(一台 chassis = 4 nodes)

完整佈線總覽圖:

                         ┌───── Client Network ─────┐
                         │                          │
                 ┌───────▼───────┐          ┌───────▼───────┐
                 │ FE Switch A   │          │ FE Switch B   │
                 │ Aruba 8360v2  │          │ Aruba 8360v2  │
                 └┬──┬──┬──┬────┘          └────┬──┬──┬──┬─┘
     10G SFP+/DAC │  │  │  │  10G SFP+/DAC      │  │  │  │
          ┌───────┘  │  │  └───────┐  ┌─────────┘  │  │  └───────┐
          │     ┌────┘  └────┐     │  │     ┌──────┘  └────┐     │
          │     │            │     │  │     │              │     │
     ┌────▼─────▼────────────▼─────▼──▼─────▼──────────────▼─────▼────┐
     │  ┌──────┐  ┌──────┐  ┌──────┐  ┌──────┐                       │
     │  │Node 1│  │Node 2│  │Node 3│  │Node 4│     A310 Chassis (4U) │
     │  │ext1/2│  │ext1/2│  │ext1/2│  │ext1/2│                       │
     │  │int-a │  │int-a │  │int-a │  │int-a │ ← 1 條 Breakout DAC   │
     │  │int-b │  │int-b │  │int-b │  │int-b │ ← 1 條 Breakout DAC   │
     │  │ mgmt │  │ mgmt │  │ mgmt │  │ mgmt │ ← 4 條 RJ45           │
     │  └──────┘  └──────┘  └──────┘  └──────┘                       │
     └───────┬────────┬────────┬────────┬─────────────────────────────┘
             │        │        │        │  ← Breakout DAC (QSFP28 → 4×SFP28)
     ┌───────▼────────▼────────▼────────▼──┐
     │         BE Switch A  (S4112F)        │  ← QSFP28 Port 1
     └─────────────────────────────────────┘
     ┌─────────────────────────────────────┐
     │         BE Switch B  (S4112F)        │  ← QSFP28 Port 1
     └─────────────────────────────────────┘

     線材統計:FE 8條 + BE 2條 + Mgmt 4條 = 14 條
graph TB
    subgraph client_net ["Client Network"]
        CL["Clients
(1G / 10G / 25G)"] end subgraph fe_net ["Frontend Network — 8 條線"] FEA["FE Switch A — Aruba 8360v2
4 × 10G SFP+ ports"] FEB["FE Switch B — Aruba 8360v2
4 × 10G SFP+ ports"] end subgraph a310 ["PowerScale A310 Chassis (4U)"] N1["Node 1"] N2["Node 2"] N3["Node 3"] N4["Node 4"] end subgraph be_net ["Backend Network — 2 條 Breakout DAC"] BEA["BE Switch A — S4112F
QSFP28 Port 1 → 4×25G"] BEB["BE Switch B — S4112F
QSFP28 Port 1 → 4×25G"] end subgraph mgmt ["Management — 4 條 RJ45"] MG["管理網段"] end CL --> FEA & FEB FEA -- "ext-1 × 4
10G SFP+/DAC" --> N1 & N2 & N3 & N4 FEB -- "ext-2 × 4
10G SFP+/DAC" --> N1 & N2 & N3 & N4 N1 & N2 & N3 & N4 -- "int-a
1 Breakout DAC" --> BEA N1 & N2 & N3 & N4 -- "int-b
1 Breakout DAC" --> BEB N1 & N2 & N3 & N4 -. "mgmt
RJ45" .-> MG style client_net fill:#e8f4fd,stroke:#333 style fe_net fill:#d4edda,stroke:#28a745 style a310 fill:#fff3cd,stroke:#ffc107 style be_net fill:#f8d7da,stroke:#dc3545 style mgmt fill:#f0f0f0,stroke:#999

線材:

用途 線材類型 數量 來源
FE → Switch A LC 光纖或 10G DAC 4 條 需另外準備
FE → Switch B LC 光纖或 10G DAC 4 條 需另外準備
BE → Backend Switch A 100G→4×25G breakout DAC 3m 1 條 通常隨機附帶
BE → Backend Switch B 100G→4×25G breakout DAC 3m 1 條 通常隨機附帶
Management RJ45 Cat6 4 條 需另外準備
合計   14 條  

GBIC(光模組):

用途 規格 數量 來源
PowerScale FE 端 10G SFP+ 8 顆 通常隨機附帶
Frontend Switch 端 10G SFP+ 8 顆 ⚠️ 需另外準備(交換器認證品)
Backend 不需要 0 顆 breakout DAC 已含接頭
合計   16 顆(或 FE 用 DAC 則 0 顆)  

速率不匹配的核心結論


學到的事


參考資料