SORT BY:

LIST ORDER
THREAD
AUTHOR
SUBJECT


SEARCH

IPS HOME


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

    RE: multiple connections



    >One downside I see to this proposal is that for a host with multiple iSCSI
    >nics, it will have to issue two commands (in this order): one to the "data
    path
    >nic" to describe where the data is to be read from/written to, and one to
    the
    >"control path nic" to send the command.  This would be communication to two
    >cards instead of one.  Also, note that the communication to the data path
    nic
    >MUST complete before the control path nic sends the command, requiring some
    >kind of sync mechanism.
    
    I don't understand why you think two commands are necessary.  A single
    command
    down the command/control connection will work.  This is my view of how an
    async model would work:
    
    Data and command/control connections would be pre-established.  In the
    model with one command/control and multiple data connections, the
    command PDU could go first down the control connection, and have a
    "data connection handle" field which would specify which data connection
    will be used.  In a write command, unsolicited data may be part of the
    command PDU, which would be sent down the control connection.  The target
    would respond with a RTT using the data connection specified by the original
    command, and all subsequent data PDU's would be sent down the specified 
    data connection.  In a read command, the target would respond by sending
    back data on the specified data connection.
    
    >For the case of the command connection failure and fail-over to a new
    >connection, I don't see how you can get away from the command counters.
    When a
    >fail over occurs, you will need some way of finding out what commands made
    it
    >to the target and which didn't.  The easiest way to do this is with command
    >numbering.
    
    Since commands must be delivered sequentially by iSCSI, the lost command is
    the last command for which there was no reply or acknowledgement.  I think
    the issue is how to detect a lost command, and I'm not sure if command
    counters will help here either.  To detect a lost command, you either need a
    timeout, or implement something similar to FCP's REC link service command.
    Neither of these options is a flow control mechanism, and therefore does not
    solve a major cause of the lost commands--the initiator overrunning the
    target
    with too many commands.  Another possibility is the command windowing
    mechanism in the existing iSCSI specification.  But then how wide shall the 
    target open the window to allow the initiator to send multiple commands?
    And
    at what threshold shall the difference between StatRN and ExpStatRN before
    the initiator determines that the command has been lost?
    
    An alternative proposal is for the target to communicate to the initiator
    the
    amount of buffer he has available at iSCSI login.  This is a static
    parameter
    dependent on the amount of memory available in the target.  It is up to the 
    initiator to decide how many commands to put in flight simultaneously.  I
    believe
    the initiator (not the target, as currently specified by the existing iSCSI
    spec)
    is in the best position to decide how many commands to put in flight,
    because
    the initiator knows what commands it has coming, and more importantly the
    size
    of the command PDU's, including any unsolicited write data, which will
    affect
    the buffer usage at the target.  Additionally, the initiator knows what
    recovery
    mechanisms (if any) it has at its disposal in the event of a lost command,
    and
    can decide whether to be aggressive or conservative based on its specific
    implementation.
    
    Comments would be appreciated on this proposed model.
    
    Josh
    
    -----Original Message-----
    From: Matt Wakeley [mailto:matt_wakeley@agilent.com]
    Sent: Wednesday, September 06, 2000 1:17 AM
    To: ips@ece.cmu.edu
    Subject: Re: multiple connections
    
    
    julian_satran@il.ibm.com wrote:
    
    > Dear colleagues,
    >
    > With all the heated debate about multiple vs. single connection a request
    I
    > made a while ago got no significant reply (neither for nor against).
    >
    > The request was to consider a proposal made by Kalman Meth to reconsider
    > the asymmetric model with the addition of a path selection made by the
    > initiator.
    
    One downside I see to this proposal is that for a host with multiple iSCSI
    nics, it will have to issue two commands (in this order): one to the "data
    path
    nic" to describe where the data is to be read from/written to, and one to
    the
    "control path nic" to send the command.  This would be communication to two
    cards instead of one.  Also, note that the communication to the data path
    nic
    MUST complete before the control path nic sends the command, requiring some
    kind of sync mechanism.
    
    
    > This proposal allows removing the command counters - as commands use a
    > single TCP connection. The single connection can also be a shared
    > data+control connection.
    
    For the case of the command connection failure and fail-over to a new
    connection, I don't see how you can get away from the command counters.
    When a
    fail over occurs, you will need some way of finding out what commands made
    it
    to the target and which didn't.  The easiest way to do this is with command
    numbering.
    
    >
    >
    > In case of multiple connection the data path to be used is selected and
    > maintained until the command ends.
    >
    > Thanks,
    > Julo
    
    -Matt Wakeley
    Agilent Technologies
    


Home

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