Best practice for persistent data using swarm

For a small cluster, NFS will work well.

For GlusterFS, you could google swarm + glusterfs. For example, using glusterfs with docker swarm.

For using volume, the discussion in Data(base) persistence in docker swarm mode may help.