chundev
日期:2026-03-19 設備:Dell PowerScale A310(4 nodes / 4U chassis)
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。
開始佈線之前,先認識幾個關鍵概念。如果你已經熟悉這些,可以直接跳到第三章。
光模組是一個可插拔的小元件,負責把電訊號轉成光訊號(發送)和把光訊號轉回電訊號(接收)。你可以把它想成「翻譯器」——設備內部說的是電的語言,光纖線走的是光的語言,光模組在中間幫你翻譯。
GBIC 是最早的可插拔光模組(約 1995 年),體積像一個隨身碟那麼大。後來技術演進,體積越做越小、速度越來越快,但很多人習慣把所有光模組都叫「GBIC」,就像很多人把所有影印機都叫「Xerox」一樣。
| 規格 | 推出年份 | 速率 | 外觀 | 說明 |
|---|---|---|---|---|
| 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 有效資料速率。
連接兩台設備有兩種方式:
方式 A:DAC(Direct Attach Copper)銅線
┌─────────┐ ┌─────────┐
│ 設備 A │ ◄── DAC 銅纜(一體成型)──► │ 設備 B │
│ SFP28 埠 │ 接頭已內建在線材上 │ SFP28 埠 │
└─────────┘ └─────────┘
DAC 是「接頭和線纜合為一體」的銅線。兩端已經預先裝好連接器,買回來直接插就能用,不需要另外買光模組。
方式 B:光模組 + 光纖線
┌─────────┐ ┌─────────┐
│ 設備 A │ ◄─ [光模組] ◄── 光纖線 ──► [光模組] ─► │ 設備 B │
│ SFP28 埠 │ │ SFP28 埠 │
└─────────┘ └─────────┘
兩端各插一顆光模組,中間用光纖線連接。
兩者比較:
| 比較項目 | DAC 銅線 | 光纖 + 光模組 |
|---|---|---|
| 最大距離 | 被動式 ≤ 5m;主動式 ≤ 15m | 100m ~ 80km |
| 成本 | ⬇️ 最低 | ⬆️ 較高(光模組 × 2 + 光纖) |
| 功耗 | ⬇️ 被動式幾乎不耗電 | ⬆️ 光模組需額外供電 |
| 延遲 | ⬇️ 最低 | 略高(光電轉換) |
| 彈性 | 線材長度固定,壞了整條換 | 光模組和光纖可分別更換 |
| 適用場景 | 同機櫃、相鄰機櫃 | 跨機房、跨樓層 |
💡 經驗法則:同機櫃或相鄰機櫃(< 5m)→ 用 DAC;距離更遠 → 用光纖 + 光模組。
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。
使用注意事項:
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 把網路分成兩個完全隔離的平面,各自有不同的用途和規則:
| 網路平面 | 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
| 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 共有:
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 上。
Backend 有幾個嚴格限制,跟 Frontend 不一樣:
| 規則 | 說明 | 為什麼 |
|---|---|---|
| ⚠️ 完全隔離 | 不可接任何非 PowerScale 設備 | Backend 流量未加密,混用有安全風險 |
| ⚠️ 不可經 patch panel | 必須從 node 直連到 backend switch | Dell 明確不支援,會影響訊號品質 |
| ⚠️ 專用交換器 | 需使用 Dell 認證的交換器,不能跑其他流量 | 確保低延遲和頻寬保證 |
| ⚠️ Active/Passive | int-a / int-b 分接兩台獨立交換器 | 一台掛掉另一台自動接手 |
以下以一個常見的 A310 配置為例,說明各元件的規格和接法:
| 項目 | 每 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) | — |
| 項目 | 規格 |
|---|---|
| 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。
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,非常乾淨。
| 連線用途 | 線材類型 | 數量 | 備註 |
|---|---|---|---|
| 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 條 |
取決於 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 已經內建接頭。
直覺算 16 條也沒錯——如果 backend 不用 breakout DAC,而是每個 port 各一條 SFP28 線直連:
| 算法 | FE | BE | 合計(不含管理線) |
|---|---|---|---|
| 直連 | 8 條 | 8 條 | 16 條 |
| Breakout DAC | 8 條 | 2 條 | 10 條 |
如果選配 breakout DAC,實際就是 10 條(+ 4 條管理線 = 14 條)。
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。不同速率之間會發生什麼事?
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
發生什麼事:
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 通常能正常收斂。
發生什麼事:
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 的速差讓收斂比較慢。
這是儲存網路最經典的效能殺手 — 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 機制介入。
發生什麼事:
PowerScale 的 SFP28 port 插了 10G SFP+ transceiver,接到交換器的 SFP28 25G port。SFP28 port 向下相容 SFP+,auto-negotiate 到 10G。
管理員會看到:
注意事項:
有問題嗎? ✅ 完全沒有,這是設計上支援的用法。
發生什麼事:
S4112F 的 QSFP28 100G port 用 breakout DAC 拆成 4×25G,每條 lane 接一個 node。
管理員會看到:
有問題嗎? ✅ 完全沒有。QSFP28 breakout 到 4×25G 是原生設計,每條 lane 本來就是獨立的 25Gbps 通道,不存在速率不匹配。
發生什麼事:
例如舊 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),實際部署時會遇到哪些場景?
| 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
| 情況 | 風險 | 說明 |
|---|---|---|
| Breakout 100G→4×25G | 🟢 無 | 原生設計,每 lane 獨立 25G |
| Node 間資料搬移 | 🟢 無 | 同速 25G,無不匹配 |
Backend 因為所有 node 都是同速 25G、走 breakout DAC 直連,不存在速率不匹配問題。
| 情境 | 為什麼無法解決 | 替代方案 |
|---|---|---|
| 大量 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 和線材都不用動。
遇到效能問題時,用這些指令排查:
# 檢查 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
# 檢查 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
# 檢查 MTU 設定
isi_for_array netstat -in
# 檢查 pause frame
isi_for_array -a sysctl dev | grep pause
完整佈線總覽圖:
┌───── 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 顆) |