I agree that I would like to setup in a way that allowed for multiple web servers. If I think I can get the file server to be redundant to some extent that is what I will look for.
For the purposes of the remainder of this discussion let's assume the following:
- Let's not concern ourselves with the codebase. I know it needs to be in sync and we will work on that but that isn't the big problem.
- The localcache will be stored on each server
- The moodledata root will be shared across all servers. The question is how to make this redundant. Below I will outline my plan in two phases. If you could please let me know if you think I am missing something.
So one thing we have to get out of the way is how we will setup moodle. I must apologize for not being more clear with this at the beginning but it is because I wasn't aware of some things. I am just the infrastructure guy while someone else is in charge of actually doing all the moodle config. I spoke to him and confirmed that the system will not have forums, user uploads etc. I was told we the content we need to be worried about is the files that go into the web directory (the actual flash content that will run the courses) and the files uploaded through moodle by the system admins like the manifests and resources files that will be part of the course (I hope I am using proper terminology to makes things clear).
Given the above, I know the system might not be perfect, but do you think it is conceivable given that we control all uploads to use a server image as a hot swap backup. So in the event that the file server has a problem, we would spin up a new server from the image and put it in its place. If any files had been uploaded between the backup and now we would manually upload them. There would be downtime while the new server is created but the downtime wouldn't be excessive.
The reason for this first phase is to make sure we at least have something up and running now without having to wait to make sure we can setup a clustered file server before moving forward. My concern is I still might be missing files of importance that can play a role. Some specific questions I have:
- Are there other files of critical importance that a potential day old backup would impact?
- How would the system behave if a file uploaded via the moodle CP (which I assume would create a DB entry) was later missing from the actual disk? Obviously it would throw an error if you tried to access it but would it be enough to effectively just redo whatever work we did between the last backup and now?
Once we get something up and running in an acceptable way (to make sure we can move forward with our planned launch) I would look to try and move forward with the cluster file server. That would provide me the time to learn and implement the solution. The idea would be to have two or more file servers in a master/master type cluster.... similar to a Rackspace link I had posted about before.