Use DRBD in dual primary mode
http://www.drbd.org/users-guide/s-dual-primary-mode.html to get bidirectional replication of block devices.
Use OCFS2
http://oss.oracle.com/projects/ocfs2/ as a cluster filesystem (support cache and distributed locks).
HOWTO:
http://www.drbd.org/users-guide/ch-ocfs2.html