On Thu, 5 Apr 2012 12:31:24 +0200 Lukas Hejtmanek <xhejtman@xxxxxxxxxxx> wrote: > Hi, > > we got several front-ends for a shared storage. We want to build HA setup so > that failed front-end fails over to another front-end (that is serving NFSv4 > already). > > As I understand, NFS4 uses state dir somewhere in /var/lib/nfs/rpc_pipefs. > You're probably thinking of /var/lib/nfs/v4recovery. > Can we put this state dir on a shared volume so that this state dir is common > for all the front-ends serving the same content? Is is supposed to work and > NFSv4 can merge its state with existing state on a shared disk? > Not properly, no. nfsd expects to have complete control over that directory. There's no locking or merging of the data there. A node will also clean that directory out in some cases, and that will throw your state tracking off. 3.4 just got an overhaul of this code to use an upcall instead. At this point I'm waiting on Steve to merge the userspace portion of that. The legacy client tracking code will probably never be cluster-aware. This is actually a very complex problem to solve as you need to coordinate the grace periods between the different serving cluster nodes. I've been looking at this problem for the last few months, and am still working out a design that would allow active/active NFSv4 serving. For now, I'd advise against trying it since it won't work properly. If you want to follow along with the gory details of the design, I've been sporadically doing blog posts about it here: http://jtlayton.wordpress.com/ -- Jeff Layton <jlayton@xxxxxxxxxx> -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html