SORT BY:

LIST ORDER
THREAD
AUTHOR
SUBJECT


SEARCH

IPS HOME


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

    iSCSI: Serialization and Acknowledgement


    • To: "Ips" <ips@ece.cmu.edu>
    • Subject: iSCSI: Serialization and Acknowledgement
    • From: "Douglas Otis" <dotis@sanlight.net>
    • Date: Thu, 19 Apr 2001 04:47:07 -0700
    • Content-Type: multipart/mixed;boundary="----=_NextPart_000_0000_01C0C88B.C9CF76C0"
    • Importance: Normal
    • Sender: owner-ips@ece.cmu.edu

    As I-D will not be processed until April 23 and time is short, please
    forgive this posting.
    
    I attempted to provide an overview of my concerns regarding the handling of
    serialization.  It is not longer than some of my prior posts.
    
       Internet Draft                                 Douglas Otis               Expires October 2001                               SANlight
                                                    April 19, 2001
    
                       iSCSI Full Acknowledgement
                     draft-otis-iscsi-fullack-00.txt
    
       Status of this Memo
    
    
       This document is an Internet-Draft and is in full conformance 
       with all provisions of Section 10 of RFC2026 [1]. 
    
       Internet-Drafts are working documents of the Internet 
       Engineering Task Force (IETF), its areas, and its working 
       groups.  Note that other groups may also distribute working 
       documents as Internet-Drafts. Internet-Drafts are draft 
       documents valid for a maximum of six months and may be 
       updated, replaced, or made obsolete by other documents at any 
       time.  It is inappropriate to use Internet-Drafts as 
       reference material or to cite them other than as "work in 
       progress." 
    
       The list of current Internet-Drafts can be accessed at 
       http://www.ietf.org/ietf/1id-abstracts.txt 
       The list of Internet-Draft Shadow Directories can be accessed at 
       http://www.ietf.org/shadow.html.
    
       Abstract
    
       This document is illustrative of potential modifications to 
       the iSCSI protocol proposal (draft-ietf-ips-iscsi-05+.txt).  
       These changes are to create a means to do the following:
    
        - Ensure Management response is coherent.
        - Acknowledge ALL requests delivered to the Server.
        - Ensure integrity of the iSCSI request window.
        - Open request window during abnormal events.
        - Quickly eliminate invalidated requests.
        - Quickly expunge sequence holes.
        - Simplify the reception sequencer.
    
    
    
      draft-otis-iscsi-fullack-00.txt                     Page [2]
    
       Problem Statement:
    
       The iSCSI Service Delivery Subsystem provides a means of 
       exchanging Device Service and Task Management requests and 
       their associated data and responses between Client and 
       Server.  The Service Delivery Subsystem is assumed to provide 
       error-free requests and responses between the Client and 
       Server.  (See SCSI Architecture Model–2.)
    
       This model assumes that the Service Delivery Subsystem 
       enforces state synchronization transparent to the Server.  
       The iSCSI Service Delivery Subsystem is also assumed able to 
       provide sequential delivery between Client's and Server's 
       Service Delivery Port.  Although the SAM-2 model assumes 
       sequential delivery, the iSCSI protocol extends this to be a 
       requirement to minimize complexity.  The Service Delivery 
       Subsystem must also ensure responses to Task Management 
       requests are delivered within the sequence of Server 
       responses or Task state information becomes corrupt.  
    
       iSCSI uses the TCP protocol as a transport that, in general, 
       ensures reliable and sequential exchanges.  Much of the 
       complexity found in adhering to the sequential delivery 
       requirement is created through the use of multiple TCP 
       connections.  Multiple connections allow increased 
       reliability and capacity through multiple paths or adapters 
       and are not to capture increased network bandwidth.  Because 
       these connections are expected to transverse different 
       physical equipment, their relative latency is expected to 
       diverge.
    
       To ensure sequential delivery, all Client requests are 
       serialized session wide with connection allegiance between 
       Client request and Server response.  An exception to this 
       serialization and sequential delivery are for requests to be 
       presented to Server ahead of requests contained within 
       Service Delivery Subsystem.  If limited to a single instance, 
       the present pending provision of using a flag and non-
       incremented serialization rather than null serialization 
       allows the identification of this request relative to 
       requests on differing connections.  If successive ahead-of-
       sequence requests are limited to the same connection as well 
       as the subsequent normal request carrying the same 
       serialization, then these request's relative position can 
       also be determined.
    
       Serialization of requests session wide provides two 
       functions.  First, it allows simple detection of requests 
       that may have been repeated.  The underlying mechanism of TCP 
       is connectionless IP and, as a result, does not provide an 
       indication of communication loss.  TCP will eventually detect 
       communication loss perhaps well after iSCSI attempts 
       corrective action.  Second, session wide request 
       serialization allows for sequential delivery to the Server as 
       well as timely acknowledgement of reception.  
    
    
    
      draft-otis-iscsi-fullack-00.txt                     Page [3]
    
       In the event of the Service Delivery Subsystem attempting 
       corrective action, the suspected connection is terminated by 
       a new TCP connection doing a Login Restart using the same 
       connection ID while also acknowledging the response 
       serialization and the prior connection allegiance is 
       transferred to this new connection.  Potential problems arise 
       as the Service Delivery Subsystem does not acknowledge ahead-
       of-sequence requests and, if there are successive ahead-of-
       sequence requests, repeated requests cannot be determined 
       during corrective action without examining Client Tags.
    
       There is not necessarily a one-to-one relationship between 
       Task Management and affected tasks.  This creates a state 
       synchronization problem as the connections returning to the 
       Client are independently serialized.  The Task Management 
       response may be seen out of context to Server responses as a 
       result.  Task Management requests are identified to the 
       Service Delivery Subsystem and will allow for special 
       handling.
    
       Sequential delivery to the Server with a request window 
       offers an additional problem.  The iSCSI Service Delivery 
       Subsystem combines Logical Units.  Task Management is 
       generally limited to one outstanding request per Logical Unit 
       but there is only a provision for one additional Task 
       Management request if flagged ahead-of-sequence such that 
       successive Task Management requests will carry the same 
       serialization and at least enough spare resources must be set 
       aside to accommodate requests for the number of Logical 
       Units.
    
       Sequential delivery potentially offers another problem 
       depending on Logical Unit hierarchies and related delivery 
       structures.  If the Logical Unit is a simple flat model, then 
       delivery may be stopped by lack of associated resources 
       together with a busy unit.  If the acknowledgement returned 
       by the Service Delivery Subsystem is for delivery, then 
       acknowledgement stops until resources become freed.
    
       The event created by an ahead-of-sequence or Task Management 
       request will likely invalidate requests in-transit within the 
       Service Delivery Subsystem.  The quantity and latency of this 
       in-transit request queue may be problematic for applications 
       that are not likely to anticipate this unusual situation.  
       The Logical Unit must enter into an ACA condition to reject 
       these requests that may extend beyond normal fabric timeouts.  
       As iSCSI may include various SCSI models, this inter-locking 
       mechanism to purge in-transit requests may not exist.
    
    
       Solutions and Benefits:
    
       To ensure proper context of a response to a Task Management 
       request, it must not appear before prior Server responses.  
       Server response serialization can be changed to session wide 
       in the same manner as Client requests.  The benefit is Server 
       resources can be freed without a response directed 
       specifically to each connection.  Logging of Server responses 
       can be compiled in a coherent fashion.  A connection failure 
       becomes apparent across all connections at the Client.  This 
       is important as the Client is expected to initiate recovery 
       action.  
    
    
    
      draft-otis-iscsi-fullack-00.txt                     Page [4]
    
       As ahead-of-sequence requests, which are most likely Task 
       Management requests, do not increment the request 
       serialization, these requests are without Service Delivery 
       Subsystem acknowledgement and are without a simple sequential 
       sorting variable.  With the exception of the sorting problem 
       solved by examining the Client Tag, this technique keeps the 
       sequencer handling of these events simple but there would be 
       another technique that would also afford an even greater 
       level of simplicity.  The side affect of these requests is 
       the likely invalidation of many in-transit requests.  Instead 
       of creating a special case for ahead-of-sequence request 
       serialization, treat these requests in the same manner as all 
       other requests.  The mechanism to advance these requests 
       however is to reject all prior pending non-ahead-of-sequence 
       requests back to the Client.
      
       This has the advantage of instantly opening up the request 
       window to its maximum.  No additional set aside resources 
       need to be allotted to handle ahead-of-sequence requests.  
       The reject status could either indicate the range of requests 
       rejected or each request could be individually rejected such 
       that the Client is then freed to either purge or retry those 
       requests as required.  It places no expectations on the 
       Service Delivery Subsystem to interpret the nature of SCSI 
       requests treated in this fashion.  It also ensures a timely 
       removal of enqueued requests well within typical fabric 
       timeouts.
    
       This rejection technique can also simplify the recovery of a 
       terminated connection as the failed connection serialization 
       does not need to be recalled for recovery nor are timeouts 
       required to discovery the sequence holes created as a result 
       of the connection termination.  This rejection technique also 
       maintains the integrity of the iSCSI request window.  The 
       technique removes the potentially sizeable amount resources 
       that must be set aside otherwise.    
    
       If the sequencer, a term for the sequencing function within 
       the Server side of the Service Delivery Subsystem, was unable 
       to deliver a request, sending an over-ride of this request 
       would create uncertainty as it would be unknown if progress 
       continued as a result of the prior request being accepted or 
       if the over-ride had taken effect without explicit status 
       indicating such.  The rejection structure is already in place 
       to allow for the sequencer to simply be advanced to the point 
       this ahead-of-sequence request.
    
    
    
      draft-otis-iscsi-fullack-00.txt                     Page [5]
    
       The sequencer process could look something like the 
       following:  
    
       if ( (request_SN – next_request_SN ) > 2^(SERIAL_BITS - 1))
       	{
    	reject_pdu(request_SN, SEQUENCER_INVALIDATION);
    	}
    
       if (request_SN == next_request_SN)
    	{
    	send_pdu(request_SN);
    	next_request_SN++;
    	}
    
       Upon receipt of a request flagged ahead-of-sequence, the 
       'next sequence' value immediately becomes the serialization 
       of this request as well as ExpCmd advancing to this value 
       plus one.  Rather than silently discarding these requests as 
       it is now defined, these requests should be rejected back to 
       the Client.  Unexpected rejections would be an indication of 
       nefarious spoofing attempts or a software bug. 
    
       One unsatisfactory alternative would be a redefinition of 
       Service Delivery Subsystem acknowledgement to indicate point 
       of sequential reception without actual delivery.  This would 
       then create a problem of again having a large quantity of 
       enqueued requests but now beyond even the ability to remove 
       these requests with an ahead-of-sequence flag.
    
       Using the ahead-of-sequence flag to create a response that 
       indicates the range of commands rejected or rejection on an 
       individual basis ensures the state of the Server can be 
       quickly ascertained well within a fabric timeout.  This 
       allows quick recovery of a connection termination, a Logical 
       Unit hang condition, a flushing of invalidated requests, and 
       an instant opening of the request window while still enabling 
       the iSCSI flow control mechanism.  This technique also 
       ensures all requests are provided a timely acknowledgement by 
       the Service Delivery Subsystem as requests are delivered.
    
    
    
      draft-otis-iscsi-fullack-00.txt                     Page [6]
    
       Author's Address: 
    
             Douglas Otis 
             SANlight Inc. 
             160 Saratoga Ave, #40 
             Santa Clara, CA 95051 
             Tel: (408) 260-1400 x2 
             dotis@sanlight.net 
    
       Full Copyright Statement 
       Copyright (C) The Internet Society (2000).
         All Rights Reserved. 
    
       This document and translations of it may be copied and 
       furnished to others, and derivative works that comment on or 
       otherwise explain it or assist in its implementation may be 
       prepared, copied, published and distributed, in whole or in 
       part, without restriction of any kind, provided that the 
       above copyright notice and this paragraph are included on all 
       such copies and derivative works. 
    
       However, this document itself may not be modified in any way, 
       such as by removing the copyright notice or references to the 
       Internet Society or other Internet organizations, except as 
       needed for the purpose of developing Internet standards in 
       which case the procedures for copyrights defined in the 
       Internet Standards process must be followed, or as required 
       to translate it into languages other than English. 
    
       The limited permissions granted above are perpetual and will 
       not be revoked by the Internet Society or its successors or 
       assigns.  This document and the information contained herein 
       is provided on an "AS IS" basis and THE INTERNET SOCIETY AND 
       THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, 
       EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY 
       THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY 
       RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR 
       FITNESS FOR A PARTICULAR PURPOSE.
    
     
    


Home

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