SORT BY:

LIST ORDER
THREAD
AUTHOR
SUBJECT


SEARCH

IPS HOME


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

    Re: iSCSI: multiple sessions b/n a pair of WWUIs.



    
    Santosh,
    Notes in text below between [Huff] and [/Huff].
    .
    .
    .
    John L. Hufferd
    Senior Technical Staff Member (STSM)
    IBM/SSG San Jose Ca
    (408) 256-0403, Tie: 276-0403,  eFax: (408) 904-4688
    Internet address: hufferd@us.ibm.com
    
    
    Santosh Rao <santoshr@cup.hp.com>@ece.cmu.edu on 05/09/2001 10:41:34 AM
    
    Sent by:  owner-ips@ece.cmu.edu
    
    
    To:   John Hufferd/San Jose/IBM@IBMUS
    cc:   Black_David@emc.com, ips@ece.cmu.edu
    Subject:  Re: iSCSI: multiple sessions b/n a pair of WWUIs.
    
    
    
    John Hufferd wrote:
    >
    > Santosh,
    > I think I am beginning to see the problem.  A given iSCSI Initiator Port
    > can NOT have a second session with the same iSCSI Initiator Port and be
    
    John,
                                                 ^^^^^^^^^^^^^^^^^^^^^
    Is the above "same iSCSI target port" (?).
    
    [Huff]  correct, it was a Type-O, or Brain-check.[/Huff]
    
    
    > consistent with SCSIness.  The second session could be started with
    another
    > ISID, (to the same iSCSI Target Port) but if the session was established
    it
    > would not have any of its commands and data handled via any techniques
    > defined by SCSI or iSCSI.  In fact its use would require a wedge driver.
    
    Perhaps, some of my confusion arises from a lack of understanding of
    your definition of iSCSI Initiator Port and iSCSI Target Port. Some
    clarification on your definition of these would help make things more
    clear.
    
    [Huff] In our Naming and Discovery Document the thing I am calling iSCSI
    Initiator Port was shown as the SCSI Initiator Port.  It is the thing that
    creates the sessions that talk to the Target Devices,  the Target Device
    must logically receive the connection and assign it to what I was calling
    an iSCSI Target Port, which in the  N&D document was shown as the SCSI
    Port.
    
    It is the (i)SCSI Initiator Port that creates Sessions and in our iSCSI
    model it does this through the LOGIN command sending the iSCSI Initiator
    Node Name and an approprate ISID.  The Target side's SCSI port, in our
    iSCSI model exchanges its iSCSI Target Node Name and an approprate TSID.
    (And Jim has been talking about how the (i)SCSI Target Port  should keep
    persistent reservation information, including the ISID & TSIDs,  and use
    that information to re-establish the Session and assign to the Session the
    approprate Reservations that might be out standing for the approprate
    (i)SCSI Initiator Port -- This port is identified by the iSCSI Initiator
    Node Name and the ISID, under which the Reservation was taken.)[/Huff]
    
    
    > This is the exact confusion I was trying to avoid.  Technically if you
    were
    > actually able to start another Session to the same Target Port, it would
    > be, by definition another iSCSI Initiator Port.   The two different Ports
    > would need to be coordinated by what we have been calling a Wedge Driver.
    
    
    I'm not sure why you believe a wedge driver would be required to handle
    such a configuration.(?) Per my understanding [which may be missing some
    aspect], the host can operate in such a configuration in the absence of
    a wedge driver.
    
    Also, the host could create such multiple sessions to the same target
    port in order to separate sub-sets of LUNs into different sessions and
    apply different session properties to each such LUN subset.
    
    [Huff] As for Wedge Drivers, this is a NON SCSI process that is either
    Dynamic and therefore in the path to the Port, or is Static and performs
    setup before the I/O is done (such as isolation of one set of LUNs from
    others even though they are on the same Target).   But some one has to do
    something to prevent the LUN I/O from being spread across different
    sessions, such that order can not be assured.  The best performing Wedge
    Drivers are those that  can send the I/O down any Session, but will insure
    that it will not send any LUN I/O down another Session as long as the LUN
    has I/O out standing.  However, if no I./O is outstanding to the LUN it can
    balance the I/O across the different session.  So in my terms, your wedge
    driver either separate the LUN I/O ahead of time statically, or it does it
    dynamically (or both).  The point to remember is:  if Multiple Connections
    per Sessions (SC/S) can be used, there is no Wedge Driver requirement and
    the code is already in place to balance I/O across connections.   Since
    SC/S is documented by the protocol, we should probably give preference in
    the document to those design approaches which use the protocol to its best
    advantage.   [/Huff]
    
    
    
    >
    > Today, the way we use multiple Fibre Channel Initiator Ports connected to
    > the same Fibre Channel Target Ports is by use of Wedge Drivers.
    
    With FC, connecting multiple initiator ports from the *same* host to a
    single target port makes little or no sense. The host would see the same
    LUNs twice through different initiator ports.
    
    [Huff] In fact this is a frequent type of connection used by large servers,
    and this is where the Wedge drivers come into action [/Huff]
    
    A more typical configuration is to connect multiple FC initiator ports
    from *different* hosts to the same target port as a high availability
    configuration. Yes, in such a case, some type of cluster application
    would be managing the switch-over from one initiator port to another.
    (Is this the case being referred to ?).
    
    [Huff] This is not what I was talking about, this is the typical type of
    connections with Shared File Systems. and that does not need a Wedge
    Driver, since the Shared File System (or Database) protects its self in
    such a cluster environment.  Also no application can assume any
    inter-arrival  of I/O with respect to the other system unless it does its
    own coordination.  This is NOT a Wedge Driver. [/Huff]
    
    
    > I think
    > what you are suggesting causes the need for a Wedge Drivers to integrate
    > the iSCSI Initiator Ports.
    
    
    (I guess we wandered off into a different line of discussion which is
    "whether multiple sessions between an initiator port and target port are
    legal and required" ? :)
    
    My answer to that would be, yes, they are legal and required. They also
    do not require the use of a wedge driver. The host may configure
    multiple sessions from one iSCSI initiator NIC to a given iSCSI
    TargetAddress so as to access LUN subsets from different sessions, and
    apply different session properties to different LUN sub-sets.
    
    [Huff] The point is their sematicts are NOT defined by SCSI, you need what
    I was calling a Wedge Driver either dynamic or Staticly, and I think you
    are saying the same thing.  Yes, it can be done, but the deffinition of
    what happens is NOT Standarized. [/Huff]
    
    Such multiple sessions that are originated on the same initiator NIC
    need to use different ISIDs [for all of the sessions for that given
    target node] and thereby, are considered multiple iSCSI Initiator Ports,
    based on the current name-disc draft's defn.
    
    [Huff] Correct, we are back on the same page now. [/Huff]
    
    
     Not sure that we want to cause this type of
    > thinking, by accident.  One of the reasons for Multiple Connections per
    > Session was to remove the "Hard" need for Wedge Drivers.
    
    IMHO, "multiple connections per session" complements wedge drivers in
    their functionality but may not comletely replace them. A lot of wedge
    drivers have code specific to the SCSI properties of the target and
    moving all of this functionality into the iSCSI layer would imply adding
    device specific code into this layer. Not the cleanest of layering
    schemes.
    
    [Huff] Correct again, there are some dynamic wedge drivers that not only
    balance workload but also spring into action to help with fail over
    situations.  Also the wedge drivers sometimes are needed to ensure that for
    the best use of the target Raid Array Caches, by assuring that the various
    LUN traffic is isolated/fixed to one connection or another,until fail over
    at the target.  These types of storage controllers will probably continue
    to need Wedge Drivers, but that makes it very hard to come up with generic
    Desktop and Laptop Initiators that can efficiently use those types of RAID
    Arrays. IMHO it is unlikely that Microsoft will ship various vendor
    specific Wedge Drivers, so it will be up to the RAID manufacture, and that
    is always problematical in large installations.  [/Huff]
    
    Also, some wedge drivers claim to utilize device proprietary features,
    which a device independent iSCSI initiator layer could not provide
    through "multiple connections per session".
    
    [Huff] And again Correct, as I agreed above.  However, it would be very
    good if the vendors that are making the various generic iSCSI initiators,
    think through how they will handle the Single Connection case with one of
    the above mentioned RAID Array Controllers, so that upon failure of one
    side of a duplexed Raid Storage Controller, the Session can be restarted
    from the initiator to the surviving side of the Raid Controller (which may
    have a different TCP/IP address, or have taken over the failing IP
    address).  If a clean new session is started, the target  still needs to
    handle Persistent Reserves, and if the surviving Storage controller board
    actually takes over the IP address, then I am not sure what we should be
    doing since the surviving side may or may not have approprate state to
    continue the session as if nothing had happen.  (I would be interested in
    opinions here.)
    
    In any event, as I suspected, we are in basic agreement, but were talking
    past each other.  So the question is should David's suggestion about
    including, in the Protocol Document, the concept of multiple ISIDs per
    (i)SCSI Port.   My opinion is not, since it would probably cause a whole
    lot of  discussion about Wedge Drivers, etc., and I do not think that would
    be approprate in the iSCSI spec. [/Huff]
    
    Regards,
    Santosh
    
    
    
    
    


Home

Last updated: Tue Sep 04 01:04:44 2001
6315 messages in chronological order