We need to set up a small web farm, ranging from 3-10 web servers. They will all be running CentOS with apache 2.2. They will all be serving the SAME content, via ColdFusion. They will be a load-balancerr in front of all these servers managing the user connections and taking care of fault-tolerance (ie- taking the server out the cluster if it stops responding).
My questions is more focused on the back-end network architecture. Since all servers will be identical and serve the same content, I'm faced with two options:
1. Replicate all content from a master location to each web server, and serve locally
2. Have a file server and share out the document root to each web server
Yes, I'm aware that option #2 creates a single point of failure for the web data as well as being slower than local disk access. Besides these two negatives, the main advantage would be in not needing to replicate (mantain) the data accross all of the web servers.
I'd like to be able to bring up or take down servers as traffic requires, which is why I opt for option #2. However, I'm unsure which protocol and/or setup to use. I've looked at using iSCSI (one system with RW access, and all others with RO access), CIFS, and NFS. Not sure which way to go or if there are alternatives I have not yet considered.