Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

XenServer 多網卡綁定進階實戰:CLI 實現 3/4 口 Bond、Active-Active 與 LACP 模式全解析

編輯:Linux 教學

XenCenter GUI 僅支援雙網卡 Bond(Active-Active / Active-Standby),生產環境常需 3/4 口聚合、LACP (802.3ad) 或 balance-slb 模式以榨乾頻寬與高可用。本文完整演示 CLI 手動建立 Network 對象 → 查詢 PIF UUID → bond-create 綁定 → 驗證與故障注入 全流程,並解析 Bond 模式選型、VLAN 疊加、MTU 9000 巨型幀等進階配置。

一、XenServer 網路模型核心概念

關鍵規則:Bond 建立後會自動解除成員 PIF 原有的 Network 關聯,防止誤用單張物理卡;內部 Bridge 仍保留。

二、Bond 模式選型指南

對象角色關鍵屬性
PIF (Physical Interface)物理網卡實體UUID、device (eth0/eth1)、MAC、速率、MTU
VIF (Virtual Interface)VM 虛擬網卡連接 Network、MAC、QoS
Network二層廣播域邏輯容器name-label、bridge (xenbrX)、VLAN tag、MTU、purpose
BondPIF 聚合後的邏輯介面master PIF、slave PIFs、mode、primary、MTU

注意:XenServer 6.x 僅支援 active-backup、balance-slb;LACP 需較新版本(XS 7.1+、XCP-ng 8.2+、Citrix Hypervisor 8.2+)。

三、CLI 實戰:4 口 LACP Bond 建立全流程

1. 規劃與查詢

# 查看所有物理網卡 (PIF)
xe pif-list params=uuid,device,MAC,speed,duplex,host-uuid --minimal | tr ',' '\n' | paste - - - - - - | column -t

# 記下要綁定的 4 張卡 UUID(假設 eth1-eth4)
PIF_UUIDS=",,,"

2. 建立 Network 對象(邏輯容器)

NET_UUID=$(xe network-create name-label="Bond0-4x10G-LACP" mtu=9000)
echo "Network UUID: $NET_UUID"

3. 建立 Bond(指定模式為 lacp)

BOND_UUID=$(xe bond-create \
    network-uuid=$NET_UUID \
    pif-uuids=$PIF_UUIDS \
    mode=lacp \
    properties:lacp-time=fast)  # fast=1s 快速檢測,slow=30s
echo "Bond UUID: $BOND_UUID"

4. 驗證 Bond 狀態

# 檢查 Bond 主介面
xe pif-list uuid=$BOND_UUID params=uuid,device,MAC,MTU,mode,slaves,currently-attached

# 檢查成員介面狀態
for pif in $PIF_UUIDS; do
    xe pif-param-get uuid=$pif param-name=currently-attached
done

# 查看橋面
brctl show | grep -E "xenbr|bond"

5. 配置 VLAN 疊加(可選)

# 在 Bond 上建立 VLAN 100
VLAN_UUID=$(xe vlan-create network-uuid=$NET_UUID pif-uuid=$BOND_UUID vlan=100)
# 將 VLAN 掛載給 VM
xe vif-create vm-uuid= network-uuid=$VLAN_UUID device=0

四、故障注入驗證高可用

# 1. 物理斷開 eth2 (slave)
# 觀察:bond0 仍 UP,流量自動分流至其餘 3 口
watch -n 1 'xe pif-param-get uuid= param-name=currently-attached'

# 2. 恢復 eth2
# 觀察:自動重新加入聚合組,LACP 重新協商

# 3. 斷開交換機端 Port-Channel
# 觀察:LACP 快速檢測 (1s) 宣告 link down,流量秒級切換

五、常見坑點與最佳實踐

模式XenServer 參數特點適用場景交換機配置
Active-Standby (Active-Backup)active-backup單活、故障切換、無頻寬疊加高可用優先、無交換機聚合支援無需配置
Active-Active (Balance-SLB)balance-slb負載均衡、基於源 MAC 分流、無需交換機支援多 VM、流量均勻、簡單部署無需配置
LACP (802.3ad)lacp (XS 7.1+ / XCP-ng 8.2+)動態協商、雙向負載、支援故障快速檢測高併發、需頻寬疊加、交換機支援 LACP配置 Port-Channel / LAGG
坑點原因規避
Bond 建立後成員 PIF 消失正常行為:成員 PIF 解除原 Network 關聯理解模型,勿嘗試將成員 PIF 另行掛載
MTU 不一致導致巨型幀丟包Network/PIF/Bond/交換機端 MTU 不一致統一設 9000:Network 建立時指定,PIF 可用 xe pif-param-set uuid=... mtu=9000
LACP 模式不可選XenServer 版本過舊升級至 XS 7.1+ / XCP-ng 8.2+
balance-slb 單流程無法跑滿多張卡基於源 MAC 分流,單一 VM 單流程只能佔用 1 張物理卡多 VM 場景有效;單 VM 高併發需 LACP 或多 VIF 綁定不同 Network
VLAN tag 在 Bond 上不生效未在 Network 建立 VLAN 對象使用 xe vlan-create 在 Bond 對應的 Network 上建立 VLAN

六、自動化部署腳本範本

#!/bin/bash
# create_bond.sh     [pif_uuid2...]
# mode: active-backup | balance-slb | lacp
set -euo pipefail
NAME=$1; MODE=$2; MTU=$3; shift 3
PIFS=$(IFS=,; echo "$*")

NET=$(xe network-create name-label="$NAME" mtu=$MTU)
BOND=$(xe bond-create network-uuid=$NET pif-uuids=$PIFS mode=$MODE \
    ${MODE==lacp && echo "properties:lacp-time=fast"})
echo "Created Network: $NET"
echo "Created Bond: $BOND (mode=$MODE, MTU=$MTU)"
xe pif-param-get uuid=$BOND param-name=currently-attached

用法:

./create_bond.sh "Bond0-4x25G" lacp 9000 \
  uuid1 uuid2 uuid3 uuid4

掌握 CLI 級 Bond 操作,即可突破 GUI 限制,釋放多網卡頻寬潛力,構建彈性、高可用的虛擬化網路基礎設施。

Copyright © Windows教程網 All Rights Reserved