RE: [nfsv4] Migration questions
"Noveck, Dave" <Dave.Noveck@netapp.com> Mon, 25 October 2004 23:53 UTC
Received: from ietf-mx.ietf.org (ietf-mx.ietf.org [132.151.6.1]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id TAA19999 for <nfsv4-web-archive@ietf.org>; Mon, 25 Oct 2004 19:53:51 -0400 (EDT)
Received: from megatron.ietf.org ([132.151.6.71]) by ietf-mx.ietf.org with esmtp (Exim 4.33) id 1CMEsU-0004lJ-Ou for nfsv4-web-archive@ietf.org; Mon, 25 Oct 2004 20:07:55 -0400
Received: from localhost.localdomain ([127.0.0.1] helo=megatron.ietf.org) by megatron.ietf.org with esmtp (Exim 4.32) id 1CMEO7-0007HU-T1; Mon, 25 Oct 2004 19:36:31 -0400
Received: from odin.ietf.org ([132.151.1.176] helo=ietf.org) by megatron.ietf.org with esmtp (Exim 4.32) id 1CMC0I-0007vs-JG for nfsv4@megatron.ietf.org; Mon, 25 Oct 2004 17:03:47 -0400
Received: from ietf-mx.ietf.org (ietf-mx.ietf.org [132.151.6.1]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id RAA09188 for <nfsv4@ietf.org>; Mon, 25 Oct 2004 17:03:39 -0400 (EDT)
Received: from mx2.netapp.com ([216.240.18.37]) by ietf-mx.ietf.org with esmtp (Exim 4.33) id 1CMCDi-0000vy-JD for nfsv4@ietf.org; Mon, 25 Oct 2004 17:17:40 -0400
Received: from smtp1.corp.netapp.com (10.57.156.124) by mx2.netapp.com with ESMTP; 25 Oct 2004 14:03:01 -0700
X-Ironport-AV: i="3.86,98,1096873200"; d="scan'208"; a="30611783:sNHT19586272"
Received: from svlexc02.hq.netapp.com (svlexc02.corp.netapp.com [10.57.157.136]) by smtp1.corp.netapp.com (8.13.1/8.13.1/NTAP-1.6) with ESMTP id i9PL2tWj007507; Mon, 25 Oct 2004 14:03:00 -0700 (PDT)
Received: from violet.hq.netapp.com ([10.56.10.190]) by svlexc02.hq.netapp.com with Microsoft SMTPSVC(5.0.2195.6713); Mon, 25 Oct 2004 14:02:57 -0700
Received: from exnane01.hq.netapp.com ([10.97.0.61]) by violet.hq.netapp.com with Microsoft SMTPSVC(5.0.2195.2966); Mon, 25 Oct 2004 14:02:57 -0700
X-MimeOLE: Produced By Microsoft Exchange V6.5.7226.0
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
Subject: RE: [nfsv4] Migration questions
Date: Mon, 25 Oct 2004 17:02:55 -0400
Message-ID: <C98692FD98048C41885E0B0FACD9DFB803BD8B@exnane01.hq.netapp.com>
Thread-Topic: [nfsv4] Migration questions
Thread-Index: AcSuQ7jDMpuwzohQTOKg/2vRCJ9grAAfMurg
From: "Noveck, Dave" <Dave.Noveck@netapp.com>
To: Chenggong Fan <fan@rainfinity.com>, nfsv4@ietf.org
X-OriginalArrivalTime: 25 Oct 2004 21:02:57.0289 (UTC) FILETIME=[00D42F90:01C4BAD6]
X-Spam-Score: 0.0 (/)
X-Scan-Signature: 87a3f533bb300b99e2a18357f3c1563d
Content-Transfer-Encoding: quoted-printable
X-BeenThere: nfsv4@ietf.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: NFSv4 Working Group <nfsv4.ietf.org>
List-Unsubscribe: <https://www1.ietf.org/mailman/listinfo/nfsv4>, <mailto:nfsv4-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www1.ietf.org/pipermail/nfsv4>
List-Post: <mailto:nfsv4@ietf.org>
List-Help: <mailto:nfsv4-request@ietf.org?subject=help>
List-Subscribe: <https://www1.ietf.org/mailman/listinfo/nfsv4>, <mailto:nfsv4-request@ietf.org?subject=subscribe>
Sender: nfsv4-bounces@ietf.org
Errors-To: nfsv4-bounces@ietf.org
X-Spam-Score: 0.0 (/)
X-Scan-Signature: 29dc808194f5fb921c09d0040806d6eb
Content-Transfer-Encoding: quoted-printable
Let me give you some history on the migration feature in v4. At the time the migration feature was being thought about, there was active interest in developing a server-to-server migration protocol, to allow a smooth multi-vendor transfer of the file and directory data, and possibly state and lock information, to allow a co-operative transfer of file service with minimal impact on the client. At that time, one school of opinion was that it would be best to wait for that effort to complete and then add the migration feature to the v4 client-server protocol, in a minor version. But in thinking about the development and roll-out of such a feature, the anticipated timeline looked kind of daunting, to those thinking about such an effort as it looked like the long pole consisted of development of the server-server protocol, followed by development of the extensions to the v4 client- server protocol, the implementation of clients capable of dealing with that, and finally the gradual and general deployment of clients capable of using the migration feature. In other words, it looked like it would take forever to get something going that way. So the current migration approach was an attempt to get done whatever migration support that could be done in clients and servers, without waiting for a server-to-server migration protocol, which was presumed to be on its way. As things have turned out, that effort did not maintain its momementum and ground to a halt. So, to get back to the client-server world, there were two anticipated possibilities. One was a single-vendor migration using persistent filehandles. A server implementor could relatively easily arrange his filehandles so they were unique among all machines within the scope of migration. The filesystem could be copied and the old filehandles honored at the new server. The idea here was that even though we'd like a muti-vendor solution, enabling the single-vendor solution would get us part of the way there, while work proceeded on the multi-vendor approach. Another approach is use of volatile filehandles but there are some issues that restrict use of volatile filehandles for migration. It doesn't seem to me that the cost of saving the file name information is one of them. The first thing to note here is that for most file handles you know about, you are caching them and so you do have information that would allow you to have the names for these file handles. Otherwise, what is the value in caching them? However, if you have migration and volatile file handles, the simplest thing to do with cached file handles is to forget about them. Caching is an optimization but when you would have to go to the server to re-instantiate, you might as well just wait for a new reference. There are filehandles for which the client typically has name information and the filehandle cannot be thrown away (e.g. for open files), but the troublesome issue is that while it has a name, it might not be correct. If I open a file, I know a name that the file once had, but with typical Unix semantics I have no guarantee that the name has not changed or even that the file has any name. So in that environment, using the name to get a new filehandle may get you a different file. Servers may not allow you to change the name of an open file but this is semantics that most clients are not expecting and might not like. My conclusion is that volatile file handles for migration, are useful only in particular cicumstances. There are certainly many applications in which they are useful, the most common being data which read-only or read mostly. Dealing with archival data, the issue of name change while a file is open may not be significant. In general though, this is an issue, unless people are prepared to deal with non-traditional semantics for open. There has been some discussion of ways to address this issue. One way, in the context of a migration protocol, is for the servers to form an fh translation table which the client can interrogate to ask the migration destination server what the new file handle is that corresponds to a particular old one. Another way to address this is to allow the client to ask for the current filename of given open file. Such a call would still be valid after the migration event and could be used to get the name to be looked up on the new server. You would need the grace period to be applied to rename and delete requests on the new server to give the client a guarantee that the new name is still the current one. I think the overall situation is that the current handling of file handles in migration is a limited one which is useful in many cases but not complete and that some v4 extensions will be required to cleanly address the general case. -----Original Message----- From: Chenggong Fan [mailto:fan@rainfinity.com] Sent: Saturday, October 09, 2004 4:57 PM To: nfsv4@ietf.org Subject: [nfsv4] Migration questions Hi, I have some questions related to the management of file handles after receiving NFS4ERR_MOVED in the migration case (not the pure referral case). If a file handle is not a volatile file handle, currently the NFSv4 client does not remember the associated pathname with each file handle, correct? If that's the case, it seems difficult to make the NFS4ERR_MOVED and GETATTR fs_location useful in the migration case. Let's say the client has been accessing this filesystem for a while, and suddenly it gets the MOVED error. Without the associated pathname, how would the client be able to use fs_location information to look up the new file handle in the new file system? With filehandle being an opaque object, the client shouldn't just replace the fsid field in the file handle. It seems that for migration to work, all file handles need to be volatile, (or in other words, client need to keep track of pathnames associated with all the file handles it knows)? Is it too much a load on the client? Second, what should the client do to the other file handles that have the same fsid? Should it not do anything about them? Or should it expire all of them? If the first case, the access to each fh will get a separate MOVED error, and the scenario is the same as the last paragraph. If this is the case, file-level referral actually might be possible. If the second case, again the client needed to remember the pathname to look up the new file handles in the new filesystem, or all file handles will be stale. After all it looks that "pure referral" might be easier to support than migration redirection. Am I missing anything? Charles _______________________________________________ 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] Migration questions Chenggong Fan
- RE: [nfsv4] Migration questions Noveck, Dave
- Re: [nfsv4] Migration questions Chenggong Charles Fan
- [nfsv4] A draft on the global namespace problem Chenggong Charles Fan