Ubuntu

Ubuntu 12.04 和 Cisco 交換機上的網路綁定模式 802.3ad

  • October 6, 2017

我正在嘗試在 2 個伺服器上將 3 個網卡組合在一起。我正在嘗試實現 3Gbps 的最大吞吐量以在伺服器之間複製數據。設置很簡單,我在同一個 Cisco 交換機上連接了 2 台帶有 3 個千兆網卡的伺服器。恰好在 server-1 的埠 1-2-3 和 server-2 的埠 4-5-6 上。我的介面配置如下所示:

auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet manual
       bond-master bond0

auto eth1
iface eth1 inet manual
       bond-master bond0

auto eth2
iface eth2 inet manual
       bond-master bond0

auto bond0
iface bond0 inet static
       address 192.168.1.11
       netmask 255.255.255.0
       gateway 192.168.1.1

       bond-miimon 100
       bond-mode 802.3ad
       #bond-downdelay 200
       #bond-updelay 200
       bond-lacp-rate 1
       # tried bond with slaves and no slaves interfaces
       bond-slaves eth0 eth1 eth2 
       # bond-slaves none

我在這些卡上嘗試了多種配置,但當時我總是只使用 1 個網卡。

我用 iperf 和 netcat 測試了性能

# server-1
iperf -s

# server-2 
iperf -c 192.168.1.10

# Wait for trafic
nc.traditional -l -p 5000 | pv > /dev/null 

# Push trafic
dd if=/dev/zero | pv | nc.traditional 192.168.1.11 5000

我們還在 Cisco 交換機上嘗試了許多配置,沒有埠通道和埠通道,並且當時始終只使用 1 個網卡。如果我們單獨測試每張卡,它們的工作速度為 1Gbps。

我也可以說,在 /proc/net/bonding/bond0 中,模式顯示 802.3ad,LACP 速率顯示 FAST。我沒有連結計數失敗,並且顯示了 3 個介面。我還使用 ethtool 驗證了每個 eth 介面,它們對我來說看起來不錯。

我正在按照本指南進行設置https://help.ubuntu.com/community/UbuntuBonding並且我在核心中啟用了綁定模組,modprobe bonding當我lsmod用來驗證綁定模組是否啟動時,是的,它在列表。

我們缺少什麼才能使這項工作正常進行?

您永遠不會在兩台伺服器之間獲得超過 1 個 NIC 的性能。交換機不會將來自單個源的幀傳播到鏈路聚合組 (LAG) 中的多個鏈路。他們實際上做的是散列源 MAC 或 IP(或兩者),並使用該散列將客戶端分配給一個 NIC。

因此,您的伺服器可以通過任意數量的 NIC 進行傳輸,但這些幀都將通過一個連結發送到目標伺服器。

測試 LAG 使用多個執行緒,因此它們使用多個連結。使用 netperf 嘗試:

netperf -H ipaddress &
netperf -H ipaddress &
netperf -H ipaddress &
netperf -H ipaddress &
netperf -H ipaddress &

您應該看到一些流量擊中了綁定中的其他從站。

我在 LACP 綁定中有四個 10GbE 埠,兩台伺服器之間的單程為 32Gb 到 36Gb。

另一種方法是在具有多個 IP 地址的綁定上設置別名,然後將多個 netperf 實例啟動到不同的地址。

配備 Intel Xeon 處理器 X5690 的伺服器具有足夠的功率來驅動每個核心接近 10Gb。

我已經通過 8x1GbE 埠驅動了 80Gb 單向流量。關鍵是在交換機和 NIC 上使用 l3+l4 散列,並使用多個執行緒。

這是我的 4x10GbE 配置範例…我的介面配置文件:

#Ports that will be used for VXLAN Traffic in on Bond0
auto p4p1
auto p4p2
auto p6p1
auto p6p2

iface p4p1 inet manual
bond-master bond0

iface p4p2 inet manual
bond-master bond0

iface p6p1 inet manual
bond-master bond0

iface p6p2 inet manual
bond-master bond0

#Configure Bond0. Setup script will provide VXLAN VLAN configuration on bond0
auto bond0
iface bond0 inet manual
#address 10.3.100.60
#netmask 255.255.0.0
bond-mode 4
bond-slaves none
bond-lacp-rate 0
bond-ad-select 1
bond-miimon 100
bond-xmit_hash_policy 1

cat /proc/net/bonding/bond0

root@host2:~# cat /proc/net/bonding/bond0 
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: IEEE 802.3ad Dynamic link aggregation
Transmit Hash Policy: layer3+4 (1)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

802.3ad info
LACP rate: slow
Min links: 0
Aggregator selection policy (ad_select): bandwidth
Active Aggregator Info:
   Aggregator ID: 2
   Number of ports: 4
   Actor Key: 33
   Partner Key: 32768
   Partner Mac Address: 54:7f:ee:e3:01:41

Slave Interface: p6p1
MII Status: up
Speed: 10000 Mbps
Duplex: full
Link Failure Count: 1
Permanent HW addr: 90:e2:ba:47:2b:e4
Aggregator ID: 2
Slave queue ID: 0

Slave Interface: p4p2
MII Status: up
Speed: 10000 Mbps
Duplex: full
Link Failure Count: 1
Permanent HW addr: 90:e2:ba:47:2b:69
Aggregator ID: 2
Slave queue ID: 0

Slave Interface: p4p1
MII Status: up
Speed: 10000 Mbps
Duplex: full
Link Failure Count: 1
Permanent HW addr: 90:e2:ba:47:2b:68
Aggregator ID: 2
Slave queue ID: 0

Slave Interface: p6p2
MII Status: up
Speed: 10000 Mbps
Duplex: full
Link Failure Count: 1
Permanent HW addr: 90:e2:ba:47:2b:e5
Aggregator ID: 2
Slave queue ID: 0

這是執行多個 netperf 實例的結果:

root@host6:~# vnstat -i bond0.192 -l
Monitoring bond0.192...    (press CTRL-C to stop)

  rx:    36.83 Gbit/s 353202 p/s          tx:   162.40 Mbit/s 314535 p/s

bond0.192  /  traffic statistics

                          rx         |       tx
--------------------------------------+------------------
 bytes                   499.57 GiB  |        2.15 GiB
--------------------------------------+------------------
         max           36.90 Gbit/s  |   170.52 Mbit/s
     average           20.05 Gbit/s  |    86.38 Mbit/s
         min               0 kbit/s  |        0 kbit/s
--------------------------------------+------------------
 packets                   39060415  |        34965195
--------------------------------------+------------------
         max             369770 p/s  |      330146 p/s
     average             186891 p/s  |      167297 p/s
         min                  0 p/s  |           0 p/s
--------------------------------------+------------------
 time                  3.48 minutes

希望這可以幫助…

引用自:https://serverfault.com/questions/477711