SORT BY:

LIST ORDER
THREAD
AUTHOR
SUBJECT


SEARCH

IPS HOME


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

    Re: iSCSI : Command Ordering Proposal.



    
    
    Besides what Costa already stated vs. this will involve maintaining state
    per LU - an expensive
    thing we have rejected long ago.
    
    Julo
    
    Santosh Rao <santoshr@cup.hp.com> on 26/01/2001 04:15:15
    
    Please respond to Santosh Rao <santoshr@cup.hp.com>
    
    To:   IPS Reflector <ips@ece.cmu.edu>
    cc:
    Subject:  iSCSI : Command Ordering Proposal.
    
    
    
    
    Julian & All,
    
    Proposal :
    =======
    CmdSN should be used to enforce ordering only when the Ordered Task Tag
    attribute is set in the SCSI Command PDU.
    
    Reference :
    =========
    Current iSCSI model for enforcing command ordering, based on striping
    commands across multiple TCP connections in an iSCSI Session and using a
    
    CmdSN to order the commands received out of order. Currently, CmdSN is
    used to enforce ordering for all commands.
    
    Objective of multi-connection sessions :
    ==============================
    Multiple TCP connections per session were defined in order to
    allow for :
    a) bandwidth aggregation by the creation of a fat pipe between the
    target and initiator.
    b) to optimize against single connection failures.
    c) to allow for iSCSI layer failover mechanisms within a session.
    
    
    Problems with the current ordering model :
    ================================
    1) When one TCP connection is faulty in an iSCSI session and is causing
    command transmission failures, all the commands being sent on other
    connections in the session will stall [due to the CmdSN ordering]
    at the receiving iSCSI layer of  the target, until TCP
    timeouts + re-transmissions for the commands on the faulty
    connection are exhausted and a "link ping" of the faulty
    connection fails, thereby, detecting connection failure and initiating
    connection failure recovery.
    
    While operating under such conditions, the commands sent on
    other TCP connections within the session will be stalled until the
    initiator commences connection failure recovery and re-sends the
    commands with their original CmdRN on a new connection.
    
    This can result in a large number of stalled I/Os that can remain
    stalled for the period it takes to detect a faulty TCP connection and
    complete connection failure recovery.
    
    2) This strict command ordering introduces a lot of complexity into
    error recovery conditions like connection failures, QUEUE FULL, BUSY &
    CHECK CONDITION handling due to the attempts iSCSI makes to enforce
    strict ordering of command delivery.
    
    3) This model depends on the retry of ALL the failed commands on a new
    connection in order to bridge the missing CmdSNs at the target. If a
    subset of the failed commands were not to be retried [due to a retry
    policy that forbids this, such as non-idempotent media, or a
    ULP timeout],
    then, the CmdSNs at the target waiting for the out-of-order commands to
    arrive, need bridging which results in additional complexity.
    
    Requirements for Ordering :
    =====================
    1) SCSI ordering is only required on a per-LUN basis.
    
    2) Strict SCSI ordering is only required when requested through the
    Ordered Task Tag attribute. For all the other types of tasks, no command
    
    ordering is required. Strict Command ordering is not enforced in other
    SCSI transport protocols. Command ordering in other SCSI transport
    protocols is violated when a QUEUE FULL, BUSY or CHECK
    CONDITION SCSI Status is returned. Command ordering can also
    be violated when the SCSI transport encounters transport failures
    or resource allocation failures on intermittent commands.
    
    3) SAM Section 4.6.2 assumes the service delivery subsystem to provide
    in-order delivery for convinience. "This assumption is only made to
    simplify
    description of behaviour and does NOT constitute a requirement."
    
    Solution :
    ========
    iSCSI should only enforce strict ordering when requested to do so by the
    
    SCSI ULP through the Ordered Task Tag attribute.
    
    Benefits :
    ========
    1) Optimizes iSCSI performance by avoiding stalls on other TCP
    connections within a session when one connection is faulty.
    
    2) Simplifies error recovery on connection failure, digest error,
    CHECK CONDITION, QUEUE FULL and BUSY scsi status as
    well as initiator resource allocation errors.
    
     -------------------------------------------------------
    
    Regards,
    Santosh
    
     - santoshr.vcf
    
    
    
    


Home

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