Problem using exportfs in an active-active nfs cluster

RaSca
2010-06-08T16:32:23Z

Hi all,
I'm trying to use a resource agent named exportfs for my active-active
nfs cluster configuration.
The resource agent works using the exportfs command. I have an instance
of nfs-kernel-server for each node and exportfs dynamically remove or
append the export to the node (obviously I've got also a shared storage).
The problem comes when the export is mounted by a client and this client
is writing on it: if the node switches, then the migration fails. The
sequence is this one:

- The resource exportfs stops correctly (the Resource Agent launch
exportfs -u)
- The Filesystem resource tries to unmount the exported filesystem,
doing an fuser to see if some processes are locking the fs.
- fuser doesn't return anything, but the filesystem is still locked.
This happens because the kernel process nfsd is locking the FS.
- The migration fails.

The only way to make thing work again is to restart the
nfs-kernel-daemon on the node which the resource reside and then cleanup
the resource.

Now, after many discussions on the Linux-ha Mailing List, I'm here to
ask if this problem is about the exportfs command. Why a filesystem
remains locked to the nfsd kernel process even if I (or the resource
agent) have done an "exportfs -u" command?

What can else I do to free the exported filesystem? Note that I've tried
to mount from the client with "nolock" option and also the exported
filesystem is mounted with "noatime".

Thanks a lot,

--
RaSca
Mia Mamma Usa Linux: Niente è impossibile da capire, se lo spieghi bene!
rasca@miamammausalinux.org