Re: [storm] SPC-2 reserve/release text - version 6

"Black, David" <david.black@emc.com> Fri, 28 September 2012 14:34 UTC

Return-Path: <david.black@emc.com>
X-Original-To: storm@ietfa.amsl.com
Delivered-To: storm@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id B267F21F853D for <storm@ietfa.amsl.com>; Fri, 28 Sep 2012 07:34:41 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.599
X-Spam-Level:
X-Spam-Status: No, score=-102.599 tagged_above=-999 required=5 tests=[AWL=0.000, BAYES_00=-2.599, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([64.170.98.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id UQnFIl8kHGxG for <storm@ietfa.amsl.com>; Fri, 28 Sep 2012 07:34:40 -0700 (PDT)
Received: from mexforward.lss.emc.com (hop-nat-141.emc.com [168.159.213.141]) by ietfa.amsl.com (Postfix) with ESMTP id 1E12F21F851C for <storm@ietf.org>; Fri, 28 Sep 2012 07:34:37 -0700 (PDT)
Received: from hop04-l1d11-si04.isus.emc.com (HOP04-L1D11-SI04.isus.emc.com [10.254.111.24]) by mexforward.lss.emc.com (Switch-3.4.3/Switch-3.4.3) with ESMTP id q8SEYaJN006935 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Fri, 28 Sep 2012 10:34:37 -0400
Received: from mailhub.lss.emc.com (mailhub.lss.emc.com [10.254.221.251]) by hop04-l1d11-si04.isus.emc.com (RSA Interceptor); Fri, 28 Sep 2012 10:34:26 -0400
Received: from mxhub05.corp.emc.com (mxhub05.corp.emc.com [128.222.70.202]) by mailhub.lss.emc.com (Switch-3.4.3/Switch-3.4.3) with ESMTP id q8SEYPY5001520; Fri, 28 Sep 2012 10:34:25 -0400
Received: from mx15a.corp.emc.com ([169.254.1.83]) by mxhub05.corp.emc.com ([128.222.70.202]) with mapi; Fri, 28 Sep 2012 10:34:25 -0400
From: "Black, David" <david.black@emc.com>
To: "Knight, Frederick" <Frederick.Knight@netapp.com>
Date: Fri, 28 Sep 2012 10:34:24 -0400
Thread-Topic: [storm] SPC-2 reserve/release text - version 6
Thread-Index: Ac2cNcys4MzRK8PXQu651fVKNuEIxQAXDfsAABnkfIAADjDW0AAa4S6gACikjGD//nJjgIAAECkggAAHbKCAAAZiEIAABrHg
Message-ID: <8D3D17ACE214DC429325B2B98F3AE7120DE79B71@MX15A.corp.emc.com>
References: <8D3D17ACE214DC429325B2B98F3AE7120DE797C4@MX15A.corp.emc.com> <4AE113CD-96D7-414D-8AAB-36ECF7FD89EA@satran.net> <8D3D17ACE214DC429325B2B98F3AE7120DE798F9@MX15A.corp.emc.com> <FFEE311F0EC80C4EA64EC8757CAD0CD208EA8077@SACEXCMBX04-PRD.hq.netapp.com> <8D3D17ACE214DC429325B2B98F3AE7120DE7993C@MX15A.corp.emc.com> <FFEE311F0EC80C4EA64EC8757CAD0CD208EA8277@SACEXCMBX04-PRD.hq.netapp.com> <EF9A0D09-7415-4460-9224-C9334EA71A68@satran.net> <FFEE311F0EC80C4EA64EC8757CAD0CD208EA83F9@SACEXCMBX04-PRD.hq.netapp.com> <8D3D17ACE214DC429325B2B98F3AE7120DE79B42@MX15A.corp.emc.com> <FFEE311F0EC80C4EA64EC8757CAD0CD208EA88C7@SACEXCMBX04-PRD.hq.netapp.com>
In-Reply-To: <FFEE311F0EC80C4EA64EC8757CAD0CD208EA88C7@SACEXCMBX04-PRD.hq.netapp.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
acceptlanguage: en-US
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-EMM-MHVC: 1
Cc: "storm@ietf.org" <storm@ietf.org>
Subject: Re: [storm] SPC-2 reserve/release text - version 6
X-BeenThere: storm@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Storage Maintenance WG <storm.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/storm>, <mailto:storm-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/storm>
List-Post: <mailto:storm@ietf.org>
List-Help: <mailto:storm-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/storm>, <mailto:storm-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 28 Sep 2012 14:34:41 -0000

I'm not sure what's BROKEN, but a statement requiring the UAs would
be a post-SAM-2 requirements change that would have to go in the
-sam- draft so that it's subject to the negotiation of the text key
in that draft.  I have no problem with a blanket statement that
negotiating that text key to a value that promises the functionality
in the -sam- draft requires that the implementation adhere to
everything in SAM-4 that may differ from prior versions of SAM,
including I_T Nexus loss UA behavior, but there will need to be
some language in there about what happens after Time2Retain expires
before the ISID is reused.

OTOH, I am strongly opposed to revising the baseline requirements
in the consolidated draft in a fashion that may break "running code"
that's working fine, especially when the change is based on a point
of principle that does not exist in the specifications against
which that "running code" was developed (i.e., SAM-2).

Thanks,
--David

> -----Original Message-----
> From: Knight, Frederick [mailto:Frederick.Knight@netapp.com]
> Sent: Friday, September 28, 2012 10:21 AM
> To: Black, David
> Cc: storm@ietf.org
> Subject: RE: [storm] SPC-2 reserve/release text - version 6
>
> But we also shouldn't codify BROKEN designs in a brand new RFC.  It would
> better (in my opinion) to leave it alone than sanction and describe how to
> build a broken implementation.  Adding the "IF" is wrong.
>
> We've fixed the issues raised by RFC5048 by incorporating it into the new RFC.
>
>       Fred
>
> -----Original Message-----
> From: Black, David [mailto:david.black@emc.com]
> Sent: Friday, September 28, 2012 9:51 AM
> To: Knight, Frederick
> Cc: storm@ietf.org
> Subject: RE: [storm] SPC-2 reserve/release text - version 6
>
> Fred,
>
> > If state is retained (it's an old "I" reconnecting), then which UA is
> > defined by SAM-3.
> >
> > If state is not retained (it's a new "I"), then the UA is defined by SAM-3.
> >
> > Since both old "I"s and new "I"s result in the "IF" condition being
> > true, what is the condition that would make the "IF" false?
>
> You almost answered your own question ;-).
>
> The answer is .... (drum roll) ... a target implementation based on RFC 3720
> SAM-2, although I would hope that such implementations at least picked up RFC
> 5048's changes.
>
> The I_T Nexus Loss concept on which this UA discussion is based is part of the
> SCSI events and event notifications model that was introduced in SAM-3, but
> neither RFC 3720 nor RFC 5048 references SAM-3.
>
> There were definitely implementations of iSCSI based on SAM-2 - I agree with
> Julian that we should *not* be introducing a UA requirement in this draft that
> might break such implementations.
>
> Thanks,
> --David
>
> > -----Original Message-----
> > From: Knight, Frederick [mailto:Frederick.Knight@netapp.com]
> > Sent: Friday, September 28, 2012 8:38 AM
> > To: Julian Satran
> > Cc: Black, David; storm@ietf.org
> > Subject: RE: [storm] SPC-2 reserve/release text - version 6
> >
> > OK, that's what I thought.
> >
> > If state is retained (it's an old "I" reconnecting), then which UA is
> > defined by SAM-3.
> >
> > If state is not retained (it's a new "I"), then the UA is defined by SAM-3.
> >
> > Since both old "I"s and new "I"s result in the "IF" condition being
> > true, what is the condition that would make the "IF" false?
> >
> > That "IF" language allows a target to loose state and not deliver any UA.
> >
> >     Fred
> >
> >
> > -----Original Message-----
> > From: Julian Satran [mailto:julian@satran.net]
> > Sent: Friday, September 28, 2012 2:03 AM
> > To: Knight, Frederick
> > Cc: Black, David; storm@ietf.org
> > Subject: Re: [storm] SPC-2 reserve/release text - version 6
> >
> > There is no such thing. And the reason the timeout is there is to
> > limit the amount of state the targets have to keep. A target may
> > choose to accept very large timeouts and then do what you wanted done
> > but beyond that only the power-up ua is required.
> >
> > julo
> >
> > Sent from my iPad
> >
> > On 28 בספט 2012, at 00:29, "Knight, Frederick"
> > <Frederick.Knight@netapp.com>
> > wrote:
> >
> > > I would think if the ISID is not recognized as an old one, then it
> > > must be
> > recognized as a new one.  If it is a new one, then it will get a UA:
> > 29/00 reflecting the first access after power on from the "new" initiator.
> > >
> > > Is there something other than new or old?  Is there such a thing as
> > > a
> > middle-aged initiator?
> > >
> > >    Fred
> > >
> > > -----Original Message-----
> > > From: Black, David [mailto:david.black@emc.com]
> > > Sent: Thursday, September 27, 2012 11:56 AM
> > > To: Knight, Frederick
> > > Cc: storm@ietf.org
> > > Subject: RE: [storm] SPC-2 reserve/release text - version 6
> > >
> > > Fred,
> > >
> > > The problem is not that the device does not raise a UA, it's that
> > > the UA may
> > never be delivered.
> > >
> > > A summary of how this can happen is that the new connection with the
> > > same
> > ISID may not be recognized as reinstating or continuing the session at
> > the target if the timeouts have expired - the UA gets established, but
> > nobody shows up to pick it up in time, so the UA is discarded along
> > with the rest of the session state and the target fails to recognize
> > the initiator's subsequent ISID reuse even though the initiator
> > believes that it's re- establishing the session.
> > >
> > > This is further complicated by the UA that indicates nexus state
> > preservation not being specified in SAM-2.
> > >
> > > Thanks,
> > > --David
> > >
> > >
> > >> -----Original Message-----
> > >> From: Knight, Frederick [mailto:Frederick.Knight@netapp.com]
> > >> Sent: Thursday, September 27, 2012 11:11 AM
> > >> To: Black, David; Julian Satran
> > >> Cc: storm@ietf.org
> > >> Subject: RE: [storm] SPC-2 reserve/release text - version 6
> > >>
> > >> I afraid I have to contest a little on this - if I understand this
> > >> discussion correctly.
> > >>
> > >> If a SCSI device loses any state and does not raise a UNIT
> > >> ATTENTION, then it is BROKEN.  It is not a matter of anything in
> > >> iSCSI (3720); I think SAM and SPC are pretty clear on this.  If
> > >> there is no UNIT ATTENTION, then state SHALL be preserved;
> > >> otherwise, all sorts of stuff will never work (mode page settings,
> > >> RESERVE commands, all sorts of
> > stuff).
> > >>
> > >> Is someone really suggesting that some devices will drop state and
> > >> NOT tell the host, and somehow that it is OK to do that?
> > >>
> > >> The suggest rewording says this is possible.
> > >>
> > >>    Fred
> > >>
> > >> -----Original Message-----
> > >> From: storm-bounces@ietf.org [mailto:storm-bounces@ietf.org] On
> > >> Behalf Of Black, David
> > >> Sent: Thursday, September 27, 2012 10:47 AM
> > >> To: Julian Satran
> > >> Cc: storm@ietf.org
> > >> Subject: Re: [storm] SPC-2 reserve/release text - version 6
> > >>
> > >> Julian,
> > >>
> > >>> The text in 4.4.3 states the obvious (there is no other speced
> > >>> method for continuation or reinstatement). Moreover if the session
> > >>> is reinstated after time2wait you create a need for a UA (or at
> > >>> least suggest one) and that was not there.
> > >>
> > >> The UAs are courtesy of SAM-3 (and SAM-4).  To encompass systems
> > >> that may not deliver these UAs and situations in which they don't
> > >> occur (e.g., the target doesn't recognize what happened as nexus
> > >> reestablishment, independent of what the initiator thinks it's
> > >> doing) I
> > think the text should be rephrased as:
> > >>
> > >>     If a Unit Attention condition results from session reestablishment,
> > >>     the specific Unit Attention condition indicates whether nexus state
> > >>     was preserved, see Section 6.3.4 of [SAM4].
> > >>
> > >>> Just stating that creation/continuation of a session done
> > >>> according 6.x includes preservation of reserve/release state -that
> > >>> was already there implied by conformance to spc2 and the relation
> > >>> between it nexus and session.
> > >>
> > >> Unfortunately, SPC-2 is sufficiently imprecise on this subject that
> > >> such an implication is at best a "preferred implementation approach".
> > >> It's not a requirement that can be safely stated in any stronger
> > >> fashion without the risk of rendering existing implementations non-
> > compliant.
> > >>
> > >>> The new text you suggest to 4.4 is merely a best practices
> > >>> recommendations and will need additions once the new "locking"
> > >>> through compare-and-swap get in widespread use.
> > >>
> > >> It's definitely best practices recommendations - no argument there.
> > >>
> > >> For context, what Julian is referring to is use of the COMPARE AND
> > >> WRITE command that performs an atomic operation at the target
> > >> instead of using RESERVE and RELEASE to create a critical section
> > >> at the initiator based on read and write commands.
> > >>
> > >> COMPARE AND WRITE is in use - a sentence mentioning that command
> > >> could be added, although this best practices text is aimed
> > >> primarily at uses of reserve/release for long-term reservations.  I
> > >> think there's an implicit "when a reservation is the desired behavior"
> > >> implication to the "persistent reservations SHOULD be used instead"
> > >> text that I don't think needs to be made explicit.  OTOH, that "SHOULD"
> > >> could be changed to a "should", or it might be even better to
> > >> rewrite that text
> > >> as:
> > >>
> > >>    persistent reservations are suggested as an alternative, see Annex B
> > >>    of [SPC4].
> > >>
> > >> In contrast, "SHOULD NOT be used" is clearly justified for
> > >> reserve/release reservations by [SPC3].
> > >>
> > >> Thanks,
> > >> --David
> > >>
> > >>
> > >>> -----Original Message-----
> > >>> From: Julian Satran [mailto:julian@satran.net]
> > >>> Sent: Wednesday, September 26, 2012 10:25 PM
> > >>> To: Black, David
> > >>> Cc: storm@ietf.org
> > >>> Subject: Re: [storm] SPC-2 reserve/release text - version 6
> > >>>
> > >>> David,
> > >>>
> > >>> The text in 4.4.3 states the obvious (there is no other speced
> > >>> method for continuation or reinstatement). Moreover if the the
> > >>> session is reinstated after time2wait you create a need for a UA
> > >>> (or at least suggest one) and that was not there. Just stating
> > >>> that creation/continuation of a session done according 6.x
> > >>> includes preservation of reserve/release state -that was already
> > >>> there implied by conformance to spc2 and the relation between it
> > >>> nexus and
> > session.
> > >>>
> > >>> The new text you suggest to 4.4 is merely a best practices
> > >>> recomendations and will need additions once the new "locking"
> > >>> through compare-and-swap get in widespread use.
> > >>> If instead we refrain from stating anything specific and state
> > >>> that target should maintain whatever state is required by SPC
> > >>> while a session is continued and may discard state when a session
> > >>> is terminated and may indicate that it discarded state through a
> > >>> ua you are on safer ground and do not create new requirement.
> > >>>
> > >>> Sent from my iPad
> > >>>
> > >>> On 27 בספט 2012, at 00:25, "Black, David" <david.black@emc.com> wrote:
> > >>>
> > >>>> Here's where I think we've arrived (I've made a few minor
> > >>>> editorial tweaks to what's been discussed).  Despite all the
> > >>>> detailed discussion, I think this version 6 comes close to
> > >>>> Julian's suggestion
> > >> that:
> > >>>>
> > >>>>> i would mention only that the state that must be maintained
> > >>>>> while the session is maintained includes the reserve/release and
> > >>>>> leave it to
> > >>> that.
> > >>>>
> > >>>> Although we can't actually say "must" as that would be a new
> > >>>> requirement, and implementations differ in what they do about
> > >>>> reserve/release reservation state.  The current language
> > >>>> characterizes retention of that state as the "preferred
> > >>>> implementation
> > >> approach".
> > >>>>
> > >>>> Beyond that, I think the two additional caveats about
> > >>>> reserve/release reservations (possible need for a reset,
> > >>>> potentially unexpected interaction with persistent reservations,
> > >>>> see below) are useful
> > >> to include.
> > >>>>
> > >>>> -----------------------------------------
> > >>>>
> > >>>> [1] For clarity, the following change should be made in
> > >>>> 4.4.3.1:
> > >>>>
> > >>>> OLD
> > >>>> That is, it should perform session recovery as  described in
> > >>>> Chapter 6.
> > >>>> NEW
> > >>>> That is, it should reinstate the session via iSCSI session
> > >>>> reinstatement (Section 6.3.5) or continue via session
> > >>>> continuation (Section 6.3.6).
> > >>>> END
> > >>>>
> > >>>> [2] Add the following sentence to the end of 4.4.3.1:
> > >>>>
> > >>>>    The specific Unit Attention condition that results from session
> > >>>>    reestablishment indicates whether nexus state was preserved,
> > >>>>    see Section 6.3.4 of [SAM4].
> > >>>>
> > >>>> [3] NEW TEXT:
> > >>>>
> > >>>> 4.4.3.2. Reservations
> > >>>>
> > >>>> There are two reservation management methods defined in the SCSI
> > >>>> standards, reserve/release reservations, based on the RESERVE and
> > >>>> RELEASE commands [SPC2], and persistent reservations, based on
> > >>>> the PERSISTENT RESERVE IN and PERSISTENT RESERVE OUT commands [SPC3].
> > >>>> Reserve/release reservations are obsolete [SPC3] and SHOULD NOT
> > >>>> be used; persistent reservations SHOULD be used instead.
> > >>>>
> > >>>> State for persistent reservations is required to persist  through
> > >>>> changes and failures at the iSCSI layer that result in  I_T Nexus
> > >>>> failures, see [SPC3] for details and specific requirements.
> > >>>>
> > >>>> In contrast, [SPC2] does not specify detailed persistence
> > >>>> requirements for reserve/release reservation state after an I_T
> > >>>> Nexus failure.  Nonetheless, when reserve/release reservations
> > >>>> are supported by an iSCSI target, the preferred implementation
> > >>>> approach is to preserve reserve/release reservation state for
> > >>>> iSCSI session reinstatement (see Section 6.3.5) or session
> > >>>> continuation  (see Section 6.3.6).
> > >>>>
> > >>>> Two additional caveats apply to reserve/release reservations:
> > >>>>
> > >>>> - When connection failure causes the iSCSI session to fail, and
> > >>>>     the session is not reinstated or continued, target retention
> > >>>>     of that session's reserve/release reservation state may
> > >>>>     require an initiator to issue a reset (e.g., LOGICAL UNIT RESET,
> > >>>>     see section 11.5) in order to remove that reservation state.
> > >>>>
> > >>>> - Reserve/release reservations may not behave as expected when
> > >>>>     persistent reservations are also used on the same logical unit;
> > >>>>     see the discussion of "Exceptions to SPC-2 RESERVE and RELEASE
> > >>>>     behavior" in [SPC4].
> > >>>>
> > >>>> Thanks,
> > >>>> --David
> > >>>> ----------------------------------------------------
> > >>>> David L. Black, Distinguished Engineer EMC Corporation, 176 South
> > >>>> St., Hopkinton, MA  01748
> > >>>> +1 (508) 293-7953             FAX: +1 (508) 293-7786
> > >>>> david.black@emc.com        Mobile: +1 (978) 394-7754
> > >>>> ----------------------------------------------------
> > >>>>
> > >>>>
> > >>>> _______________________________________________
> > >>>> storm mailing list
> > >>>> storm@ietf.org
> > >>>> https://www.ietf.org/mailman/listinfo/storm
> > >>
> > >> _______________________________________________
> > >> storm mailing list
> > >> storm@ietf.org
> > >> https://www.ietf.org/mailman/listinfo/storm
> > > _______________________________________________
> > > storm mailing list
> > > storm@ietf.org
> > > https://www.ietf.org/mailman/listinfo/storm