SORT BY:

LIST ORDER
THREAD
AUTHOR
SUBJECT


SEARCH

IPS HOME


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

    RE: iSCSI: ISID issue



    Yet more comments inline.  --David
     
    > David,
    > 
    > Comments in line.
    > 
    > Jim Hafner
    > 
    > 
    > Black_David@emc.com on 10/04/2001 06:56:46 PM
    > 
    > To:   Jim Hafner/Almaden/IBM@IBMUS, Black_David@emc.com
    > cc:
    > Subject:  RE: iSCSI: ISID issue
    > 
    > 
    > 
    > Jim,
    > 
    > > As I said in my last note, I'm willing to abandon use of the ISID for
    the
    > > purposes of naming SCSI Initiator Ports and replace that with some text
    key
    > > (so that ISIDs are removed from the dual role of identifying sessions
    AND
    > > SCSI initiator ports).  But I haven't seen any specific proposal to that
    > > effect and that addresses all the issues involved (as outlined also in
    my
    > > last note).
    > 
    > Ok, I think this is the key piece of your last note:
    > 
    > > My point general point is
    > > that I believe we need to have an unambiguous identifier of the SCSI
    > > initiator port.  This is for reasons of
    > > (a) persistent reserverations (as defined today) as well as for future
    > >    extensions
    > > (b) there is an obligation today (I think) for the transport layer to
    > >    present to the OS layers above a "picture" of the SCSI Initiator
    Ports
    > >    (isn't that what you keep saying goes in /dev stuff?).   Wedge
    drivers rely
    > >    on this stuff too.
    > > (c) some access control stuff (as defined by T10) but this is not a hard
    > >    requirement
    > 
    > I would do the following:
    > 
    > (a) Set aside all notion of "future extensions" thereby removing a need
    >      for an externally visible iSCSI Initiator Port Name for this purpose.
    > (b) Use the iSCSI Initiator Node Name + iSCSI Target Node Name + TSID
    >      for this purpose.
    > (c) Do nothing in the absence of a "hard requirement", and try to use
    >      the Initiator Node Name for this purpose rather than a Port Name.
    > 
    > <JLH>
    > If we do (b), then we're effectively having hte target "name/identify"
    SCSI
    > Initiator Port.  OK, now, suppose the initiator has two sessions active to
    > given target portal group.  On one (say with TSID=5) he sends persistent
    > reserve registration and on another (say with TSID=7) he sends persistent
    > reserve registration + reservation.  Now the target resets and the
    > initiator cleans up context and starts up one new session.  What does the
    > target do?  Does it assign TSID=5 or 7 or 9?
    
    If the Initiator wants the state from TSID 5 (or 7), the Initiator sets TSID
    to 5 (or 7) on Login.  If the Initiator does not want that state, it sets
    TSID
    to 0 on Login, and the Target can assign 9 or 15 or 523.  If the Target has
    removed or lost the state for TSID 5 or 7, the Initiator gets back an error
    when attempting to login using those TSID values.  Targets SHOULD NOT
    aggressively reuse TSID values to avoid possible confusion (e.g., if in
    the interim, the Target has assigned 5 to a new session from the same
    Initiator, confusion may result - correctly written Initiators can avoid
    such confusion, but not aggressively reusing TSID values increases
    robustness).
    
    [.. text asking how the above could work elided ..]
    
    > I don't know what you mean by (c).  What "purpose" are you talking about?
    
    Access control.  I think it should be clear by now that given the choice,
    iSCSI Node Names are the preferred entities to use to express Access
    Control policy and decisions, not iSCSI Port Names.  Note that my (a), (b),
    and (c) were intended to respond to your (a), (b) and (c).
    
    > I would plan to deal with "future extensions" via a possible "future text
    key"
    > to be specified after the "future extensions" are so that we have a
    concrete
    > set of requirements and objectives to work to.  In the Interim, we can
    > advise T10 that iSCSI strongly prefers reservations to be associated with
    > Initiators, rather than Initiator Ports.
    > 
    > > In fact, if we do find an alternative to the ISID for naming SCSI
    Initiator
    > > Ports, then the ISID would be  irrelevant to the SCSI model (as the TSID
    is
    > > now) and we won't need the ISID rule anymore (we'd need another rule for
    > > port names, however).
    > 
    > This includes one more reason:
    > 
    > (d) iSCSI entity to which the SAM2 concept of SCSI Initiator Port maps to.
    > 
    > As we discussed, and I think agreed, earlier, it is sufficient to assert
    > the existence of such an entity in an iSCSI implementation (some sort of
    > session data structure) for the purpose of mapping, but not provide an
    > externally visible name that is independently useful outside the bounds of
    > the specific iSCSI implementation.
    > 
    > <JLH>
    > But I also argued that existing OS's like to see some consistency (you've
    > even said they put stuff in /dev) on their initiator ports.  If these are
    > all driven by the target (in the sense of identification), then where can
    > the iSCSI layer provide such consistency?
    > </JLH>
    
    It won't be the TSID, and it probably won't be the ISID because, as
    currently
    specified, it also lacks sufficient consistency for this purpose.  The info
    will come out of local device configuration information on the Initiator,
    which may or may not turn out to match up with Initiator Portal Groups.
    This
    kind of thing is already platform-specific and will remain so.  Folks like
    Veritas will continue to rely on their own volume headers for configuration
    of VxVM and the like rather that device names (FWIW, this is the only
    technique
    that has proven to have sufficient robustness in practice).
     
    > > We can then ask if there is any value in the iSCSI
    > > protocol for either the ISID or the TSID (as I did many many
    > > months ago prior to this dicussion).
    > 
    > I'm not seeing any.  We might be better off using that field to hold
    > the Target Portal Group number; TSIDs would then only need to be unique
    > to an Initiator within a Target Portal Group, and hence could be
    > independently managed on a per-Portal Group basis, as opposed to the
    > current TSID RULE that spans the entire Target (instead of configuring
    > TSID ranges, one configures the Portal Group Number, which probably
    > needs to be configured anyway).  This also makes any attempt to span
    > Target Portal Groups or recover a session across Target Portal Groups
    > immediately obvious to the Target (the first is forbidden, the
    > second might work, but probably requires special handling at the Target,
    > and may need some more protocol support).  One consequence of
    > this field change would be to add Target Portal Group to (b) above, and
    > that may actually be a good thing  as it forces exposure of this
    > fundamental level of structure.
    > 
    > <JLH>
    > You're proposal to include the target portal group number in the TSID is
    an
    > *implementation of configuring TSID ranges* for each target portal group,
    > isn't it?  In fact, that would be how I would implement it my target (if I
    > was building one, whether the spec said that it had this form or not --
    and
    > I'm implement my host driver pretty much the same way, via enumeration of
    > drivers/devices  (which pretty much constitute initiator portal groups) as
    > they are discovered/loaded by the OS).  Such an implementation guarantees
    > compliance with the TSID RULE (and would do the same for the ISID RULE as
    > well).  So, you haven't avoided it, you've simply spec'ed an
    implementation
    > that meets the requirements.
    > 
    > The proposal to include the target portal group tag in the message header
    > (either within or separate from the TSID) is an independent issue from the
    > ISID one.
    > </JLH>
    
    I agree, but observe that if we specify the one and only way in which
    the Target Portal Group MUST be encoded in the TSID, then code can be
    written in both iSCSI implementations and management tools that relies
    on the encoding being done that way.  I think there's value to that.
    
    --David
    
    ---------------------------------------------------
    David L. Black, Senior Technologist
    EMC Corporation, 42 South St., Hopkinton, MA  01748
    +1 (508) 435-1000 x75140     FAX: +1 (508) 497-8500
    black_david@emc.com       Mobile: +1 (978) 394-7754
    ---------------------------------------------------
    


Home

Last updated: Fri Oct 05 07:18:18 2001
7063 messages in chronological order