|
My first thought is that the ‘best way’ is likely to be dependent on what type of data, how much data, and how this data is going to be used.
GFS and GFS2 only really allow for multiple systems accessing the same (shared) storage. Your data will need to be redundant at the block level, ie: on a good SAN with RAID or potentially using something like DRBD that will distribute block-level data between multiple nodes over the network. I’ve tried the latter, but having more than 2 DRBD nodes requires some trickery (I believe they refer to this as “stacking”) and GFS/GFS2 is less than optimal with less than 3 nodes due to fencing and possible split-brain scenarios.
In my implementation, I did not find DRBD+GFS2 to be reliable with only 2 nodes (DRBD would sync fine, GFS2 had fencing problems) and had to manually fsck with the stack to get my nodes to rejoin the cluster.
Another possibility is using something like MogileFS (http://www.danga.com/mogilefs/ – made by the makers of memcached) but it is important for me to point out that your application would need to be written to use MogileFS as it is not a filesystem layer, although a Fuse plugin for it would be interesting to see.
|