[prev in list] [next in list] [prev in thread] [next in thread]
List: ietf-nfsv4
Subject: Re: [nfsv4] pNFS - bad devices
From: Marc Eshel <eshel () almaden ! ibm ! com>
Date: 2005-11-28 20:59:44
Message-ID: OF3DBECBCA.BB4A0340-ON882570C7.007284E7-882570C7.00731916 () us ! ibm ! com
[Download RAW message or body]
nfsv4-bounces@ietf.org wrote on 11/28/2005 11:30:49 AM:
> I'll change that wording appropriately. But, I would like the preferred
> option to be that the client write out dirty data before returning the
> layout (using the layout or through the MDS).
This is right if layoutchanged is false. If layoutchanged is true the
client should first try to get a new layout and if the get new layout call
fails than write the dirty data through the MDS.
Marc.
>
> -Garth
>
> Marc Eshel wrote:
> > This will work too. The client will just have to find out if a new
layout
> > is available before deciding what to do next.
> > What about the following text? it should be dropped or changed.
> > section 10.1:
> > "The client should complete any in-flight I/O operations using the
> > recalled layout(s) before returning it/them via LAYOUTRETURN. If
the
> > client has buffered dirty data, it may chose to write it directly
to
> > storage before calling LAYOUTRETURN, or to write it later using
> > normal NFSv4 WRITE operations to the metadata server."
> >
> >
> > Garth Goodson <Garth.Goodson@netapp.com> wrote on 11/22/2005 05:55:37
PM:
> >
> >
> >>Ok, this is my suggestion. I want to keep these changes simple and
> >>limited to only the most necessary. I added a 'layoutchanged' bool to
> >>the recall structure. Any comments?
> >>
> >>-Garth
> >>
> >>
> >>10.1 CB_LAYOUTRECALL
> >>
> >> SYNOPSIS
> >>
> >> layout_type, iomode, layoutchanged, layoutrecall -> -
> >>
> >> ARGUMENT
> >>
> >> ...
> >>
> >> struct CB_LAYOUTRECALLargs {
> >> pnfs_layouttype4 layout_type;
> >> pnfs_layoutiomode4 iomode;
> >> bool layoutchanged;
> >> layoutrecall4 layoutrecall;
> >> };
> >>
> >> RESULT
> >>
> >> struct CB_LAYOUTRECALLres {
> >> nfsstat4 status;
> >> };
> >>
> >> DESCRIPTION
> >>
> >> The CB_LAYOUTRECALL operation is used to begin the process of
> >> recalling a layout, a portion thereof, or all layouts pertaining
to
> >
> > a
> >
> >> particular file system (FSID). If RECALL_FILE is specified, the
> >> offset and length fields specify the portion of the layout to be
> >> returned. The iomode specifies the set of layouts to be returned.
> >> An iomode of ANY specifies that all matching layouts, regardless
of
> >> iomode, must be returned; otherwise, only layouts that exactly
match
> >> the iomode must be returned.
> >>
> >> If the layoutchanged field is TRUE, then the client SHOULD not
flush
> >> its dirty data to the devices specified by the layout being
> >
> > recalled.
> >
> >> Instead, it is preferable for the client to flush the dirty data
> >> through the metadata server. Alternatively, the client may
attempt
> >> to obtain a new layout. Note: in order to obtain a new layout the
> >> client must first return the old layout. Since obtaining a new
> >> layout is not guaranteed to succeed, the client must be ready to
> >> flush its dirty data through the metadata server.
> >>
> >>...
> >>
> >>Halevy, Benny wrote:
> >>
> >>>In fact, there's no consistency related reason for the client to
flush
> >>>any data in this scenario, and since layouts are orthogonal to cache
> >>>consistency a better approach for the client might be to return the
> >>>old layout and get a new one (can be in the same compound) while
> >
> > keeping
> >
> >>>the dirty data in its cache and sync it later with the new layout
> >>>or via the MDS at the client's convenience.
> >>>
> >>>This can be achieved by adding a flag to CB_LAYOUTRECALL indicating
> >>>that the layout is just invalidated - i.e. there's a good chance for
> >
> > the
> >
> >>>client to get a new layout immediately after returning the current
> >
> > one.
> >
> >>>Benny
> >>>
> >>>
> >>>
> >>>>-----Original Message-----
> >>>>From: nfsv4-bounces@ietf.org
> >>>>[mailto:nfsv4-bounces@ietf.org]On Behalf Of
> >>>>Marc Eshel
> >>>>Sent: Tuesday, November 01, 2005 9:22 PM
> >>>>To: Garth Goodson
> >>>>Cc: nfsv4@ietf.org
> >>>>Subject: [nfsv4] pNFS - bad devices
> >>>>
> >>>>
> >>>>When one of the data server crashes the metadata server uses
> >>>>CB_LAYOUTRECALL to recall all layouts that were included the now
dead
> >>>>node. The client will than go and try to commit its data to the dead
> >>>>node(device) before returning the layout which will cause at
> >>>>the minimum
> >>>>big delays. Maybe we can add more information to the layout recall
to
> >>>>include either the list of bad devices (don't even try to do
> >>>>I/O to those
> >>>>devices) or just a way to advice the client to flush/commit
> >>>>the data using
> >>>>the MDS to complete the recall.
> >>>>Marc.
> >>>>
> >>>>_______________________________________________
> >>>>nfsv4 mailing list
> >>>>nfsv4@ietf.org
> >>>>https://www1.ietf.org/mailman/listinfo/nfsv4
> >>>>
>
> _______________________________________________
> nfsv4 mailing list
> nfsv4@ietf.org
> https://www1.ietf.org/mailman/listinfo/nfsv4
_______________________________________________
nfsv4 mailing list
nfsv4@ietf.org
https://www1.ietf.org/mailman/listinfo/nfsv4
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic