SORT BY:

LIST ORDER
THREAD
AUTHOR
SUBJECT


SEARCH

IPS HOME


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

    iSCSI/VI/TCP



    
    I have sent out a proposal (draft-csapuntz-iscsivi-00.txt) that argues
    for running iSCSI on top of the VI/TCP protocol. I argue that there
    are a couple principal reasons for doing this.
    
        1) Generic RDMA infrastructure. 
    
        A single NIC that support VI/TCP RDMA acceleration could
        accelerate SCSI, DAFS (http://www.dafscollaborative.org/), Oracle,
        and other message+RDMA protocols w/o the need for specific protocol
        processing in the NIC.
    
        2)  Reduce the need for TCP reassembly memory 
    
        Why? For performance, TCP maintains a window at least as large as
        the application buffers awaiting data.  The window buffer must be
        separate memory than the application buffers if the receiver cannot
        figure out which application buffers TCP payloads belongs to. 
        Thus, buffering requirements are potentially up to 2x that of the base
        application.
    
        - VI/TCP could align its headers at the start of each TCP segment payload
            
        [D] This is not currently well discussed in the spec. However, there
        are a couple things techniques that could be used to indicate 
        alignment. For one, a TCP option could be used to indicate that
        the sender will send aligned packets.
    
        As added check, each VI frame could end in a CRC. Failure of the CRC
        indicates loss of synchronization. Also, there are some fields in
        the VI/TCP header that should make sense (like the Segment Length <
        MTU). 
    
        - The VI/TCP header, which appears in each segment, could direct
        the payload  of the segment to the correct application-layer buffer
        (for both messages and data)
    
        3) More exact flow control
    
        VI/TCP provides flow control on messages separate from data buffers.
        
    
    It is worthwhile to note that iSCSI could be modified to incorporate 
    similar features to VI/TCP and do #2 and #3. 
    
    Others have stated some valid concerns with iSCSI/VI:
    
    >- It adds another protocol layer (VI/TCP)
    
    >- it adds another dependency (VI/TCP is not a standard yet)
    >   also heard, don't base new technology on new technology
    
    >- all SCSI class drivers and file systems that I'm aware of operate in kernel
    >space.  So what advantage does VI bring when the app must enter kernel space
    >to perform the I/O anyway?
    
    RDMA can improve kernel I/O performance too.
    
    >- it adds more complexity to developing the iSCSI accelerator to add yet
    >another protocol layer.
    
    To this, I would answer that it allows the construction of a
    potentially simpler accelerator that handles more protocols.
    
    > There already is a SCSI/VI.
    
    Our group is looking for the best way to do SCSI over IP. For a long
    time, members of this group have though that some kind of RDMA layer
    would be valuable for building simpler NICs.  VI/TCP provides just
    that sort of RDMA layer.
    
    SCSI/VI was born out of a different set of requirements than iSCSI.
    However, it may turn out that analysis of the problem brings us
    to a very similar solution.
    
    At the end of the day, this argument comes down to whether folks think
    that an RDMA mechanism is the right way to go and what RDMA scheme
    over IP is best. A suitably generic RDMA scheme allows innovation in
    protocol design, without worrying that the new protocol will be
    hopelessly slow in legacy hardware.  It decreases the pressure to load
    features into old, hardware-supported protocols instead of introducing
    new ones. It destroy an artificial barrier (host overhead) that
    prevents IP from scaling to fit all our needs.
    
    -Costa
    


Home

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