SORT BY:

LIST ORDER
THREAD
AUTHOR
SUBJECT


SEARCH

IPS HOME


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

    Notes of 06/21 meeting



    Action items:
    Action item: get rid of command reference number in SCSI response
    Action item: get rid of immediate data in SCSI response
    
    Unresolved question: Should we allow multiple RTTs to be pending
    simultaneously? If so, how many?
    
    --------------
    
    
    
    The day started of with a discussion of SCSI error recovery.
    
    The main motivation behind iSCSI layer error recovery was
    tape drives. Many tape backup applications cannot recover
    from aborted commands.
    
    It was pointed out that the command reference number
    as spec'ed was not long-lived enough to provide error
    recovery. However, the task tag could be used to do
    error recovery.
    
    --------------
    
    There was then a discussion about whether the command
    reference number should be per LU or per session.
    
    The per-LU advocates pointed out that there are no
    inter-LU ordering constraints in SCSI SAM. Per-LU
    provides greater parallelism and less head-of-line
    blocking by providing more lines.
    
    The per-session folks pointed out that LUs are not
    an iSCSI layer concept. What's more, adding command
    reference numbers per LU would necessitate adding
    state per LU into the iSCSI drivers at both ends.
    Unfortunately, there was no way of bounding or
    reclaiming this state.
    
    ----------------
    
    There was a lot of talk about whether we want
    to support multiple TCP connections/session.
    
    John Hufferd pointed out that SCSI load balancers already exist
    that take advantage of multiple sessions (multiple SCSI busses) 
    to stripe commands to a target. He argued that multiple
    TCP connections are unnecessary. He also argued that no applications
    make effective use of SCSI ORDERED attribute, because the
    interface are not there. 
    
    However, they have to stop and wait for ordered commands.
    One application where stop and wait hurts is tape (where
    all writes are ordered), so some tape applications write
    self-describing blocks to tape which can be written in any order.
    
    Remote asynchronous mirroring can also be done with ordered
    writes. Hufferd argued that remote asynchronous mirroring must
    be solved at a higher layer and is being solved today.
    
    Most of those arguing for multiple TCP connection said that
        - it isn't that hard
        - it would make iSCSI better than other SCSI transports
        - it would make high-perf apps easier to write
    
    ----------------
    
    Can a single initiator have multiple sessions? The answer
    was yes.
    
    An initiator is named by the initiator ID which we think
    will be the same as the Access ID in Hafner's proposal.
    
    Multiple sessions can be used to separate different
    classes of traffic (bulk vs. latency sensitive)
    or even multiple processes
    
    -------------
    Deadlock:
    
    Luciano pointed out that it is possible to run out of
    buffers and deadlock with multiple TCP connections.
    
    The source of the problem is 
            1) receive too many out-of-order commands
            2) receiving too much unsolicited (immediate)
               data
    
    The solution to 1) is to either
       - limit the number of out-of-order commands that
         are read from each TCP pipe to 1 (requires NIC
         to know that command is out-of-order) and then
         stop reading from the connections (deskewing)
       - have a windowing mechanism on the command
         ordering queue in target
       - have a separate TCP pipe for emergency 
         recovery commands
       - Nuspeed aborts command with SCSI status TASK QUEUE FULL
    
    The consensus seems to have resulted in windowing
    being adopted.
    
    The consensus solution to 2) was to allow the
    target to drop immediate data and request it be
    retransmited via ready-to-transmit (RTT).
    
    --------------
    
    Should task management commands be ordered with respect to tasks?
    
    Those against feared that ordering task mangement commands
    would prevent their timely delivery.
    
    Those for feared that not ordering task management commands
    would lead to surprising behaviors (like ABORT TASK SET 
    overtaking and not aborting all previously issued tasks).
    
    ----------------
    
    Can a single iSCSI TCP connection use multiple paths in the network
    simultaneously?
    
    Answer: Most networks keep a flow on one path to help ensure
    minimal re-ordering, so no in that case. Of course, this being IP,
    people could design a network that sprays packets of a flow across
    multiple paths and it would still work...
    
    
    


Home

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