多張網路卡聚合:備援還是速度

聚合網路卡的理由有兩種,而兩者並不是同一種模式。大多數架構真正需要的是備援,設定時卻追求傳輸量,結果只換來失望。

AtlasPVE ·

本條目涵蓋以下問題

  • proxmox bond 是什麼
  • proxmox lacp 設定
  • proxmox 兩張網路卡合併
  • proxmox active-backup bond
  • proxmox 設定 bond 後斷線

伺服器有兩張網路卡,想要兩張都用上。到這裡為止,大家的想法都一樣。分歧從下一個問題開始:為什麼。

兩個不同的目標

備援:網路線鬆脫、網路卡故障或交換器連接埠失效時,什麼都不會停止。得到的是持續運作,而不是速度。

總頻寬:同一時間可以承載更多流量。得到的是容量,代價是交換器那一側也要做設定。

在大多數架構中,真正想要的是前者,但設定卻是為後者而做。結果通常是同時出現兩種失望:期待的速度沒有出現,設定也變得更脆弱。

分界的問題:交換器需不需要知道

有些模式不需要另一端做任何事,搭配一般的交換器就能運作。其他模式則需要在交換器上定義對應的群組。沒有先準備好交換器那一側就選用第二類模式,是失去這台機器最常見的方式之一,而且就發生在套用的那一刻。

規則很簡單:如果無法存取交換器,或無法在上面定義任何東西,就選擇不需要另一端做任何事的模式。

關於速度最常見的誤解

聚合網路卡並不會讓單一傳輸變快。單一連線始終只走單一條鏈路。效益要在同時有多條連線時才會出現。有人把兩張卡聚合起來,用複製一個檔案來測試,看到的是一張卡的速度,就認為壞掉了。它沒有壞,是量測方式錯了。

如果目標是讓一次大型傳輸更快,正確的答案是一張更快的網路卡,而不是聚合。

最不起眼、卻最實用的選擇

不需要另一端做任何事的備援模式,對大多數伺服器來說都是正確答案。它不會增加速度,但網路線被拔掉時沒有人會察覺。它常因為太無聊而被略過,偏偏它正是大多數架構所要找的東西。

沒測試過,就等於不存在

Bond 在測試之前只是一個假設。先看看實際承載流量的是哪一條鏈路,然後在自己選定的時機刻意拔掉一條網路線,確認流量真的轉移到另一條。略過這項測試的架構,會在真正發生故障的那天才發現 bond 從來沒有運作過。

順序不要弄反

Bond 是實體層,橋接器位於它之上。虛擬機器連接的是橋接器,而不是 bond。如果反過來建置,得到的會是一個看似能運作、卻在第一次故障時就崩解的結構。

Atlas 的做法

建立 bond 時,Atlas 會顯示四種模式,每種都附有說明,並且預設為不需要另一端做任何事的模式,讓最安全的選項成為起點。如果選擇需要在交換器上定義對應群組的模式,就會出現警告,警告會指出所需的技術名稱,並明白說明連線可能會中斷。即使忽略警告繼續進行,網路變更也受到回復倒數計時的保護:如果沒有確認,舊的設定會自行恢復。

資料來源

Proxmox 官方文件。內容為英文,且在此主題上以官方文件為準。

相關條目

這項工作在 Atlas 中是什麼樣子?

前往產品頁面