Bug 854776

Summary: iSCSI boot does't use TOE card for booting
Product: Red Hat Enterprise Linux 6 Reporter: Eddie Wai <eddie.wai>
Component: iscsi-initiator-utilsAssignee: Chris Leech <cleech>
Status: CLOSED ERRATA QA Contact: Bruno Goncalves <bgoncalv>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 6.4CC: agrover, azarembok, bdonahue, bgoncalv, cleech, coughlan, fge, harald, mchristi, xiaoli
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Linux   
Whiteboard:
Fixed In Version: iscsi-initiator-utils-6.2.0.873-1.el6 Doc Type: Bug Fix
Doc Text:
Cause: For some bnx2i cards, the network interface must be active for the iSCSI interface to report a valid MAC address. Consequence: Failure to connect to an iSCSI target, which for iSCSI root setups can mean a failure to boot. Fix: Change iscsistart to put the network interface associated with the iSCSI context into an active state. Result: iSCSI boot with bnx2i cards works correctly.
Story Points: ---
Clone Of: 805467 Environment:
Last Closed: 2013-02-21 10:32:06 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 805467    
Bug Blocks:    
Attachments:
Description Flags
open-iscsi patch to ifup the corresponding L2 network interface none

Description Eddie Wai 2012-09-05 23:57:22 UTC
+++ This bug was initially created as a clone of Bug #805467 +++

Description of problem:
When trying to boot via iSCSI and there is an Ethernet card eth0 and TOE card eth2 only eth0 is up, therefore the system boots using scsi_tcp instead of TOE interface.
Dracut could bring NIC up based on the output of iscsiadm -m fw.

Version-Release number of selected component (if applicable):
dracut-004-273.el6.noarch
Kernel: 2.6.32-251.el6.x86_64

How reproducible:
100%

Steps to Reproduce:
1. Boot the OS via iSCSI
2. iscsiadm -m session -P3
the transport show: Iface Transport: tcp
  
Actual results:
Iface Transport: tcp

Expected results:
Iface Transport: bnxi (for example)

Additional info:

--- Additional comment from harald on 2012-03-21 07:56:15 EDT ---

basically we have no "iscsiadm" in the initramfs.

--- Additional comment from mchristi on 2012-03-21 14:55:44 EDT ---

iscsiadm does not actually do what Bruno is asking for. iscsiadm/iscsistart just handles the networking for the iscsi interface. The cards Bruno is describing are have this weird quirk where they need the OS to do a ifup on the networking ethX device that the iscsi offload engines uses. Right now iscsiadm/iscsistart just prints out the ethx that needs the ifup.

I think in rhel6.2 we worked around this by adding the networking info on the command line and forced dracut to setup up the networking on eth2 in Bruno's example.

Harold, do you want iscsiadm/iscsistart to handle this? I am thinking this makes sense, because iscsiadm/iscsistart know about the quirks of the iscsi offload cards. It might get messy to do this in dracut. If so I will reassign this bz to me.

--- Additional comment from mchristi on 2012-03-22 05:30:22 EDT ---

Hey,

I went and implemented this in iscsi-initiator-utils-6.2.0.872-37.el6. It is building in brew with some other stuff Bruno had me fix.

--- Additional comment from pm-rhel on 2012-05-03 01:37:38 EDT ---

Since RHEL 6.3 External Beta has begun, and this bug remains
unresolved, it has been rejected as it is not proposed as
exception or blocker.

Red Hat invites you to ask your support representative to
propose this request, if appropriate and relevant, in the
next release of Red Hat Enterprise Linux.

--- Additional comment from mchristi on 2012-06-22 15:17:00 EDT ---

This did not get completely implemented in 6.3. It got implemented for non-boot sessions only. So for 6.4 we need to modify iscsistart.

Note that we must bring up the interface before iface_setup_from_boot_context, because we will want iscsi_sysfs_get_host_no_from_hwaddress to be able to match a MAC to a iscsi host. For some bnx2i cards, the card has to be ifupd for the iscsi interface to have a MAC. If it is not ifupd we have seen MACs with all zeros or no iscsi_hosts on different cards.

--- Additional comment from mchristi on 2012-06-22 15:56:28 EDT ---

(In reply to comment #6)
> This did not get completely implemented in 6.3. It got implemented for
> non-boot sessions only. So for 6.4 we need to modify iscsistart.
> 
> Note that we must bring up the interface before

Before or in that function.

> iface_setup_from_boot_context

Comment 1 Eddie Wai 2012-09-06 00:01:02 UTC
Created attachment 610125 [details]
open-iscsi patch to ifup the corresponding L2 network interface

Hello,

I've created the enclosed patch, based on the upstream open-iscsi util, which addresses this issue as aforementioned by Mike Christie.

The patch has already been acked by Mike Christie and has the following upstream commit reference:
f0a8c95426d21413d9980d31740e193208e3280e

Please incorporate this into the open-iscsi-util for RHEL6.4.  Thanks.

Eddie

Comment 4 Bruno Goncalves 2012-10-29 12:34:02 UTC
Problem fixed, now it is able to boot via bnx2i interface.

iscsiadm -m session -P1
Target: iqn.1992-08.com.netapp:sn.151753773
	Current Portal: 10.16.43.127:48140,1
	Persistent Portal: 10.16.43.127:3260,1
		**********
		Interface:
		**********
		Iface Name: bnx2i.00:10:18:88:e7:fd
		Iface Transport: bnx2i
		Iface Initiatorname: iqn.1994-05.com.redhat:boot-bnx2i-storageqe-01
		Iface IPaddress: 10.16.46.172
		Iface HWaddress: 00:10:18:88:e7:fd
		Iface Netdev: eth2
		SID: 1
		iSCSI Connection State: LOGGED IN
		iSCSI Session State: LOGGED_IN
		Internal iscsid Session State: NO CHANGE

uname -r
2.6.32-336.el6.x86_64


rpm -q iscsi-initiator-utils
iscsi-initiator-utils-6.2.0.873-2.el6.x86_64

Comment 6 errata-xmlrpc 2013-02-21 10:32:06 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

http://rhn.redhat.com/errata/RHBA-2013-0438.html