05 June 2020

If you’re interested in running an NFSv4-only server in a Pacemaker cluster on Debian, you’ll probably find the default nfsserver RA in the Debian-packaged resource agents to be lacking.

It suffers from serveral issues:

  1. The default behavior is to use the NFS init script to handle starting/stopping/monitoring the NFS server. This is broken in the monitor case as the service is reported as active even if it’s been killed.

  2. Starting/stopping the service is dog slow. I’d venture to say at least half of the total cluster failover time in my setup with the default RA was consumed by starting/stopping the NFS daemon and all the related v2/v3 services.

So if you’re willing to go with NFSv4 only, here’s a much better approach:

  1. Follow the Debian NFS server setup, including the adjustments under NFSv4 only.
  2. Drop the below RA in a valid path for Pacemaker to find it, and make it executable.
  3. Configure your resource(s).

CAVEATS:

  • Does not work for v2/v3, and will not manage any of the services that are v2/v3 only.
  • Only tested on Debian Buster, YMMV.