Hi,
if you have each instance writing updates to the shared index you could have problems with locking; especially NFS can't guarantee correct working of the file locks used by Lucene.
You have two options:
use the JMS approach (or similar approach using JGroups backend since latest beta release), so that you have only one single node doing the writes and the others doing the reading. Application would scale fairly well because you offload the indexwriters from the main nodes, and actually the single writing node can be setup as having "exclusive write access", which makes it perform better.
An alternative is to use a different LockFactory; I've written about the different LockFactories available on Lucene's wiki:
http://wiki.apache.org/lucene-java/AvailableLockFactoriesWe're currently working on an Infinispan based Directory; it's too early to use the whole Directory in production but you could use the Infinispan approach for Locking only, it's extremely safe and efficient.
Of course you're welcome to try the Directory too, it should work AFAIK and needs feedback. It will definitely make the operations and management easier than shared filesystems, and theoretically perform better.
You mention that you want to share indexes to "save space" ..?? How big are the indexes? And incidentally you can't set it up to use a local index in a clustered environment, or each node will end up having a different incomplete index.