[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Ips] iSCSI-specific unit attention conditions




ips-bounces at ietf.org wrote on 04/04/2009 09:29:03:

> From:

>
> "Bill Galloway" <BillG at breatech.com>

>
> To:

>
> <ips at ietf.org>

>
> Date:

>
> 04/04/2009 20:39

>
> Subject:

>
> Re: [Ips] iSCSI-specific unit attention conditions

>
> Sent by:

>
> ips-bounces at ietf.org

>
> This is a re-send from a different email....
>
> I am the guilty party associated with these sense codes.  I have been
> traveling for the last few days or I would have chimed in sooner.  My
> original proposal was not iSCSI specific.  It added three ASC/ASCQs which
> were DEVICE PORT ADDRESS ADDED/CHANGED/REMOVED. The original names actually
> explain the intent better (IMHO).
>
> We produce an iSCSI target with many "Portal Groups" and "Network Portals".
> Portal Groups come and go dynamically. Within a Portal Group, Network
> Portals come, go, or change dynamically.  The intent is for the initiator to
> be connected to all Network Portals, on all Portal Groups, all of the time.
> This is usually accomplished with some combination of MCS in the initiator
> and a MPIO (multipath) layer above the initiator.  The initiator is
> perfectly willing to make all of these connections but there is no way
> specified in any standard to accomplish this task.  There is a mix of layers
> here that makes for a messy solution.  I am certainly open to a better one.
>
> The SCSI layer could care less about Network Portals coming, going, or
> changing but something has to kick the initiator to do a new discovery and
> make the appropriate connections.  This would have been better handled at
> the iSCSI layer but I could find nothing available.  In our implementation
> the MPIO layer traps these UAs and kicks the initiator.
>
> The SCSI layer does have a legitimate need to know about Portal Groups
> coming and going.  These map to SAM target ports and the SCSI layer may need
> to know. The initiator also needs to know so that it can make the new
> connections.  In our implementation the MPIO layer also traps these UAs and
> kicks the initiator.
>
> Why three codes? No good reason.  My first proposal was more generic than
> iSCSI and there was a hope that it would be useful to other protocols.  To
> get the proposal passed, I agreed to change the names to be iSCSI specific.
> In retrospect when I made the name change, I could have dropped it to one
> code.  In our current implementation we treat all codes the same.
>
> I hope this explains the rational for these ASC/ASCQs.  I am not aware of
> anything in the iSCSI spec that accomplishes these goals. I am certainly
> willing to explain further and to work with STORM to document this better
> and/or come up with a better solution.
>
> Bill Galloway
> Pivot3, Inc.
> BillG[-at-]Pivot3.com
>
> _______________________________________________
> Ips mailing list
> Ips at ietf.org
>
https://www.ietf.org/mailman/listinfo/ips

The first reaction to your note would be probably that you are right - SCSI is probably the wrong layer to make initiators aware of the existence of a new port.
On the other hand any transport than has no "permanent session" (in a generic sense) would have a hard time handling it.
And even worse - if the target is connected through different transport to the same or different initiators which one of the transports should carry it (think only about a FCP target that has an iSCSI backup - a not entirely imaginary scenario)?

And the ugly part about doing it with UA is that you kick in a recovery process that might be non-trivial.

The cleanest solution (for iSCSI) is to relegate the discovery (and change) to an out of band mechanism (as I have advocated for a long time). The drawback is that all the available out-of-band mechanisms are heavy and quite expensive (this is not to be considered a critique - it is just a statement of fact). Alternatively we could choose to handle the iSCSI case exclusively and use a version of one of our messages to convey the change. It will not handle all the cases (as the above FCP - iSCSI mix) but will perhaps solve Bill's problem.

Alternatively we might try and persuade T10 (SCSI) do adopt an "in-band" mechanism to prompt (re) discovery that should not carry the UA weight in most of the cases and then make the codes obsolete if the cease to be useful and/or extend them to other transports.

The last alternative is to mandate that configuration changes of this type can be made only outside a session - that will require us to use only a change bit from session to session (or login key) to indicate a change or unknown state since last discovery.

Julo

Julo