[CentOS] iSCSI offload with Broadcom NetXtreme II BCM5709.

Thu May 31 14:04:37 UTC 2012
Svavar Örn Eysteinsson <svavar at fiton.is>

Hello all.
We recently purchased HP Proliant DL380 G7 server and also a HP Lefthand 
P4500 G2 24TB iSCSI box.

The server itself has Quad Ethernet based on the BCM5709 Chipset from 
Broadcom (NetXtreme II).

My main question is about iSCSI offload mechanism, as iSCSI itself is 
pretty new to me
but I have gotten a good hold on it tho.

I have managed to setup and configured our Lefthand box into our iSCSI 
Network.
iSCSI network : 192.168.200.0/24

I have also managed to setup and configure a fully operational Software 
based iSCSI traffic
from the server to the Target without problems. Everything just works fine.
Until I thought about iSCSI offload functionality offered by the Network 
Adapter in the server.


As for the Software based iSCSI connection I have bonded(NIC Teamed) two 
NIC's on the server
into a ALB(Adaptive Load Balancing) configuration.

Those are eth2,eth3 interfaces configured as bond1 with IP address of : 
192.168.200.20 (iSCSI network).

My decision to team up eth2 and eth3 into ALB was clearly based on the 
HP Lefthand configuration guidelines.
They state that the Lefthand box itself should be configured into ALB. 
So I configured the server also.


But, am I misunderstanding the iSCSI thing about offload and or network 
configurations ?
If I'm going to use offload mechanisms do I need to get rid of the 
bonding setup ?
I'm asking because the server offers 4 interfaces, and also 4 iscsi 
offload interfaces :S

These are the messages from dmesg :


bnx2: Broadcom NetXtreme II Gigabit Ethernet Driver bnx2 v2.1.12b (Oct 
14, 2011)
bnx2 0000:03:00.0: eth0: Broadcom NetXtreme II BCM5709 1000Base-T (C0) 
PCI Express found at mem f4000000, IRQ 16, node addr e4:11:5b:b6:92:e0
bnx2 0000:03:00.1: eth1: Broadcom NetXtreme II BCM5709 1000Base-T (C0) 
PCI Express found at mem f2000000, IRQ 17, node addr e4:11:5b:b6:92:e2
bnx2 0000:04:00.0: eth2: Broadcom NetXtreme II BCM5709 1000Base-T (C0) 
PCI Express found at mem f8000000, IRQ 18, node addr e4:11:5b:b6:92:e4
bnx2 0000:04:00.1: eth3: Broadcom NetXtreme II BCM5709 1000Base-T (C0) 
PCI Express found at mem f6000000, IRQ 19, node addr e4:11:5b:b6:92:e6


After I launch up iscsi, and iscsid these messages appear :

iscsi: registered transport (tcp)
iscsi: registered transport (iser)
Chelsio T3 iSCSI Driver cxgb3i v2.0.0 (Jun. 2010)
iscsi: registered transport (cxgb3i)
Chelsio T4 iSCSI Driver cxgb4i v0.9.1 (Aug. 2010)
iscsi: registered transport (cxgb4i)
cnic: Broadcom NetXtreme II CNIC Driver cnic v2.5.7g (September 23, 2011)
bnx2 0000:03:00.0: eth0: Added CNIC device
bnx2 0000:03:00.1: eth1: Added CNIC device
bnx2 0000:04:00.0: eth2: Added CNIC device
bnx2 0000:04:00.1: eth3: Added CNIC device
Broadcom NetXtreme II iSCSI Driver bnx2i v2.7.0.4i (Nov 01, 2011)
iscsi: registered transport (bnx2i)
scsi123 : Broadcom Offload iSCSI Initiator
bnx2i [04:00.01]: ISCSI_INIT passed
scsi124 : Broadcom Offload iSCSI Initiator
bnx2i [04:00.00]: ISCSI_INIT passed
scsi125 : Broadcom Offload iSCSI Initiator
scsi126 : Broadcom Offload iSCSI Initiator
bnx2i [03:00.00]: ISCSI_INIT passed


iscsiadm -m iface -P1 shows me these interfaces

Iface: default
Iface: iser
Iface: bnx2i.00:00:00:00:00:00
Iface: bnx2i.e4:11:5b:b6:92:e1
Iface: bnx2i.e4:11:5b:b6:92:e5
Iface: bnx2i.e4:11:5b:b6:92:e7


Am I correct that you can't bind more then one interface to a iscsi target ?
As the physical interfaces (eth2, eth3) are bonded together how would I use
those virtual bnx2i (offload) interfaces as bond ?

Is that what they call multipath ? Do I need multipath in this setup?
One server, one switch, one iSCSI target box.


Any help, information and guidelines would be much appreciated about 
this scenario.
I'm really lost about this one, and would clearly like my server to 
operate at the top... :)

The server is running up_to_date Centos 6.2 x_64 and with the newest 
Broadcom drivers.


Best regards,

Svavar O
Reykjavik - Iceland