Dell Broadcom NetXtreme II 5709 (BCM5709) Dual Port Gigabit Ethernet NIC PCIe x4 + SLES 11 i386

คุณสมบัติ NetXtreme II 5709

โดยรวมจะช่วยเพิ่มประสิทธิภาพของเซิร์ฟเวอร์ และประสิทธิภาพของเครือข่าย แล้วเคอร์เนลลีนุกซ์มันสนับสนุนฮาร์ดแวร์ที่รองรับเทคโนโลยี่ TOE หรือเปล่า? เคอร์เนลลีนุกซ์ไม่ได้ร่วมการสนับสนุน TOE ต้องได้รับการแพทซ์จากผู้ผลิตฮาร์ดแวร์เพื่อสนับสนุน หรือ kernel patch จากดิสโทรที่เราใช้งานอยู่ และดูรายละเอียด changes ของ NIC ก็จะมีบอก supported Linux kernels

Dell Broadcom NetXtreme II 5709 Dual Port Gigabit Ethernet NIC

Dell Broadcom NetXtreme II 5709 Dual Port Gigabit Ethernet NIC

– Offers Offload, iSCSI and TOE (TCP off-load engine) support

TOE เทคโนโลยีที่ใช้ในอินเตอร์เฟซการ์ดเครือข่าย (NIC) เป็นเทคโนลยีที่ใช้ความสามารถของเซิร์ฟเวอร์ CPU ไปยังตัวอะแดปเตอร์ช่วยในการประมวลผล TCP/IP
ซึ่งจะถูกใช้งานเมื่อ CPU มีการรับข้อมูลจากแอพพลิเคชันเข้ามาโพรเซสจำนวนมาก และระหว่างนั้นทรัพยากรไม่เพียงพอที่จะใช้ในการโพรเซสงานด้านเน็ตเวิร์ค TOE จึงเข้ามาช่วยทำให้ระบบเครือข่ายมีประสิทธิภาพดีขึ้น

– Equipped with 10Base-T / 100Base-TX / 1000Base-T transceivers
– Features full fast-path TCP processing engine

Compatibility: งานนี้ซื้อมาใส่เซิร์ฟเวอร์ PowerEdge T105, PowerEdge T110 ส่วนเรื่องค่าใช้จ่ายก็แพงนิดหนึ่งครับ

ส่วนเรื่อง Security ก็สำคัญเช่นกันเนื่องจาก TOE จะถูกอิมพีลเมนท์ลงบนฮาร์ดแวร์ ดังนั้นเฟิร์มแวร์ TOE จะต้องผ่านการตรวจสอบและได้รับการรับรองจากผู้ผลิต

Dell Broadcom NetXtreme II 5709 (BCM5709) Dual Port Gigabit Ethernet NIC

Dell Broadcom NetXtreme II 5709 Dual Port Gigabit Ethernet NIC

ทดสอบทำ Network Bonding load balancing in TOE mode

– Network settings

Network Bonding load balancing

Network Bonding load balancing

– Device type

Device type : Bond

Device type : Bond

– Network card setup เลือก Bond Slaves

Network card setup เลือก Bond Slaves

Network card setup เลือก Bond Slaves

– Bond driver options เลือกรูปแบบการทำ load balance

Bond driver options เลือกรูปแบบการทำ load balance

Bond driver options เลือกรูปแบบการทำ load balance

– กำหนดไอพีแอดเดรสให้ Bond Network หรือกำหนดเป็น DHCP

กำหนดไอพีแอดเดรสให้ Bond Network หรือกำหนดเป็น DHCP

กำหนดไอพีแอดเดรสให้ Bond Network หรือกำหนดเป็น DHCP

– ใช้คำสั่ง ifconfig เรียกดูอินเทอร์เฟส

ifconfig

ifconfig

– ตั้งค่า Firewall สำหรับอินเทอร์เฟส bond0 โดยกำหนดเป็น Internal Zone

Firewall

Firewall Zone

ไฟล์คอนฟิก bond0 เก็บที่พาท /etc/sysconfig/network/ifcfg-bond0

ทดสอบ monitor อินเทอร์เฟต bond0

cat /proc/net/bonding/bond0

Driver messages log:
– To see all message

dmesg -n 6

dmesg

tail -f /var/log/message

MSI enabled successfully:
bnx2: eth0: using MSIX
bnx2: eth1: using MSIX

Bond Network Interface enabled:
bonding: bond0: releasing active interface eth0
bonding: bond0: releasing active interface eth1
bonding: bond0: setting mode to balance-rr (0)

Link up and speed indication:
bonding: bond0: Warning: failed to get speed and duplex from eth0, assumed to be 100Mb/sec and Full
bonding: bond0: Warning: failed to get speed and duplex from eth1, assumed to be 100Mb/sec and Full

เป็นอันเสร็จ

Note:
What are the different modes of bonding that you support?
In NIC (non-offload) mode there is support for all bonding modes – 0 to 6 (balance-rr, active-backup, balance-xor, broadcast, 802.3ad, balance-tlb, balance-alb). In TOE (offload) mode there is support for modes 1,2 and 4 (active-backup, balance-xor and 802.3ad).

Bonding Mode รูปแบบต่างๆ

mode=0 (balance-rr) เป็นการส่งข้อมูลแบบสลับวนรอบ round-robin (load balancing, fault tolerance)

mode=1 (active-backup) สถานการณ์ปกติจะมีพอร์ตเดียวเท่านั้นที่ใช้รับส่งข้อมูล (fault tolerance)
Active-backup policy: Only one slave in the bond is active. A different slave becomes active if, and only if, the active slave fails. The bond’s MAC address is externally visible on only one port (network adapter) to avoid confusing the switch. This mode provides fault tolerance. The primary option affects the behavior of this mode.

mode=2 (balance-xor) เป็นการส่งข้อมูลแบบใช้ XOR เพื่อหาพอร์ตที่จะส่ง เช่น คำนวณจาก MAC Address ต้นทางปลายทางเป็นต้น (load balancing, fault tolerance)
XOR policy: Transmit based on [(source MAC address XOR’d with destination MAC address) modulo slave count]. This selects the same slave for each destination MAC address. This mode provides load balancing and fault tolerance.

mode=3 (broadcast)
Broadcast policy: transmits everything on all slave interfaces. This mode provides fault tolerance.

mode=4 (802.3ad) เป็นส่งข้อมูลแบบ Link Aggregation Control Protocol (LACP) / 802.3ad
IEEE 802.3ad Dynamic link aggregation. Creates aggregation groups that share the same speed and duplex settings. Utilizes all slaves in the active aggregator according to the 802.3ad specification.

mode=5 (balance-tlb) ส่งข้อมูลแบบ adaptive transmit load balancing
Adaptive transmit load balancing: channel bonding that does not require any special switch support. The outgoing traffic is distributed according to the current load (computed relative to the speed) on each slave. Incoming traffic is received by the current slave. If the receiving slave fails, another slave takes over the MAC address of the failed receiving slave.

mode=6 (balance-alb) ส่งข้อมูลแบบ adaptive load balancing
Adaptive load balancing: includes balance-tlb plus receive load balancing (rlb) for IPV4 traffic, and does not require any special switch support. The receive load balancing is achieved by ARP negotiation. The bonding driver intercepts the ARP Replies sent by the local system on their way out and overwrites the source hardware address with the unique hardware address of one of the slaves in the bond such that different peers use different hardware addresses for the server.

XOR policy ในการส่งแยกแพคเกจแบบสลับต้นทางคู่กับปลายทาง source MAC address คู่กับ destination MAC address

Layer 2 = mac to mac level, all computer1 connections will use the same whichever nic on the bond
แพคเกจจะวิ่งบน NIC เดียวกันใน bond อินเทอร์เฟส

Layer 2+3 = mac/ip to mac/ip level, all ip address 192.168.1.3 connections will use the same bond ip, however can end up going across either nic in the bond
ถ้าเราทดสอบโดยการถอดสายแลนออก ถ้าเริ่มแพคเกจวิ่งที่ eth1 ใน bond อินเทอร์เฟส เมื่อถอดสายแลนออกแพคเกจจะข้ามไปวิ่งที่ eth0 ใน bond อินเทอร์เฟส

Layer 3+4 = mac/ip/tcp/udp level, different tcp/udp port connections from the same ip can/may be connected across either nic in the bond
อันนี้ก็จะดูที่ไอพีแอดเดรส และโปรโตคอล แพคเกจสามารถวิ่งข้าม ethX ใน bond อินเทอร์เฟสได้

performance tranfer spped of file size 2.1GB, Output: 35.8MB/sec
xmit_hash_policy?

Selects the transmit hash policy to use for slave selection in
balance-xor and 802.3ad modes. Possible values are: layer2

Uses XOR of hardware MAC addresses to generate the
hash. The formula is (source MAC XOR destination MAC) modulo slave count

This algorithm will place all traffic to a particular network peer on the same slave.


How to check that TOE is enabled?

ใน case นี้ไดร์เวอร์ bnx2 บน SLES11 i386 เคอร์เนลลีนุกซ์ 2.6.27 ไม่สนับสนุน TOE ส่วน Broadcom NetXtreme II รุ่นที่สนับสนุน TOE (bnx2x driver) ได้แก่ Broadcom NetXtreme II BCM57710/BCM57711/BCM57712 เป็นต้น
How to check the bnx2 driver loaded for the NetXtreme II 5709 device?

lsmod | grep bnx2

How to load bnx2 driver for the NetXtreme II 5709 device?

modprobe bnx2

bnx2 is driver for the Broadcom NetXtreme II BCM5709 Dual Port Gigabit Ethernet NIC PCIe x4

Reference :
//www.broadcom.com/support/ethernet_nic/netxtremeii.php
//www.chelsio.com/faqs/linux/
//www.readynas.com/forum/viewtopic.php?f=7&t=52156

One Response to Dell Broadcom NetXtreme II 5709 (BCM5709) Dual Port Gigabit Ethernet NIC PCIe x4 + SLES 11 i386

  1. Tia says:

    Very informative article, i am regular reader of your site.
    I noticed that your site is outranked by many other blogs in google’s search results.
    You deserve to be in top10. I know what can help you, search in google for:
    Omond’s tips outsource the work

Leave a Reply

Your email address will not be published. Required fields are marked *

Please validate : * Time limit is exhausted. Please reload CAPTCHA.