I need a storage system with the following requirements:
- Dynamic pool of Linux EC2 application servers (1-20) that autoscale daily
- Low latency reads
- Possibly async writes (<5 minutes)
- Most posix features, except locking
- Each application server can work autonomously so needs all the data locally (replication mode)
Because I want to replicate many machines (N-Master setup), I think that I need async writes, which would be acceptable as the application can stand 5 minute delay in write propagation. But am not sure how to do this in GlusterFS and whether it is viable at all. How would you set it up?
Given this setup, let me sneak two more questions in:
- How would GlusterFS manage conflicting async writes? If I'm not too bothered about data loss, what is the best way to resolve these conflicts?
- Also, most GlusterFS documentation writes about manually adding/removing bricks. Does anyone succesfully run a setup where the addition/removal of bricks is done automatically, many times a day?
- Is there perhaps a better alternative to GlusterFS for these particular requirements?
Background: I host 2000 Magento shops, using NFS at the moment. It sucks (SPOF, reliability), so I'm looking for an alternative. Magento software can run on read-only storage, however 98% of these shops use external modules that somehow depend on a shared writable filesystem. Now I could tell the shop developers that they should ditch these modules, but I'm afraid I wouldn't keep many customers ;)