Ubuntu 12.04 和 Cisco 交換機上的網路綁定模式 802.3ad
我正在嘗試在 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
希望這可以幫助…