Hi - this topic has been discussed before on the list and options to
implement have changed (read-subvolume, consistent-metadata, choose-local,
read-hash-mode, etc all seemingly targeting only reads not writes) a couple
times; is there a recommended option in the current (3.8.x) release to
instruct a client to pick a, and only the, local replica - for whatever
available definition of "local" can be set?
The workaround I have right now, not tested in production, is to define on
each server the local clients (the IP subnet they're in) and reject at TCP
level any connection from the remote subnet. As to why this is useful: when
the remote cluster/building/availability zone fails, all its clients are
considered unavailable, forcefully powered off if needed, and services
restarted in the active zone. Mount option backupvolfile-server would
ensure clients do reach a working replica on startup. The decision as to
which zone is the active one is done outside of Gluster, although the
2*replica+arbiter option looks helpful too.
Gluster-users mailing list