Bidirectional real-time sync of large file tree between two distant linux servers
Solution 1:
DRBD in Dual-primary mode with a Proxy is an option.
Solution 2:
Rather than syncing, why not share the same filesystem over NFS?
Solution 3:
Implementing a distributed filesystem is probably better than hacking this together with tools and scripts, especially if the cluster of servers will grow. You'll also be able to handle a downed node better.
I don't think Gluster (or AFS) is overkill at all.
Solution 4:
In your case I would recommend a combination of DRBD in dual-primary-mode and gfs or ocfs.
The drawback of DRBD in dual-primary is that it will be running in syncronous mode. But write-speed does not seem to be important here right?
An alternative to DRBD might be a Soft-Raid1 using many (2+) iSCSI-Targets - but I would prefer DRBD with two nodes.