Indeed a shared datastore is the best practice. It allows us to reduce disk space and simplify the replication by employing a binary less replication.
The configuration is not much diffident from a non-shared datastore. The min required arguments are minRecordLength and path.
Shared datastore requires some special DataStore Garbage Collection routine. For a shared File Data Store, you need to run Datastore Garbage Collection with a mark only flag from all of AEM that are using a shared file data store. Next, you need to run Datastore Garbage Collection without mark only flag from one of AEM that is using a shared file data store.