… an after thought, in fact from the discussions I have seen here there is not a lot that needs done out side of what has already been said or written:
Hardware requirements:
- Servers 12:
o DNS Servers (minimum 2) – DNS only cpanel
o Web Servers (minimum 3) – Full CPanel
o Mail Servers – inbound (minimum 2) – full cpanel
o MySQL Servers (minimum 3) – in MySQL cluster (no cpanel license)
o Storage Servers (minimum 2) – stand alone running rsync or something similiar
- Switches 2:
o Front end switch or load balancing device
o Back end switch (GB capable) to connect Storage servers or NAS to web servers
As for hardware, I think that is it…
The load balancing switch should be able to determine the response time from the server and decide that if the server does not respond fast enough it should stop sending packets to it.
All 3 web servers would need to be configured identically. /home and /var and /etc should most likely all be written to the shared storage so all the servers are using the same directories. Most of this can and should be done at the hardware level and not cpanel.
They would all use clustered DNS.
The mail servers should run linux heartbeat incase of failover, one assumes the others IP address and responds as if it was the primary in case it fails. Mailboxes should be stored on the storage servers. There should be no locking or file connection issues because only one server would be accessing the files and receiving e-mail. Once the server fails its connections to the files would drop and the new server would respond, acting as the primary server.
The web servers are fine to run all 3 at the same time… the only issue should be if the bandwidth calculations are done and how logs are handled. This could possibly be handled via some kind of peril script run by a back up server every night to merge all the servers raw access logs into one the client sees. The caveat with this is the clients stats would always be 24 to 48 hours behind.
MySQL would be fairly simple, I believe, as I’m told MySQL has a cluster setting and they would run and handle everything and act as one and cpanel apparently will let you connect to a separate MySQL server.
Cpanel should not care if we were to run a cluster in a format like this as you’d run full cpanel licenses on the web servers and mail servers. DNS only versions on the dns servers. And if you used the heartbeat feature from linux you would not be in a license violation situation as far as I can see as they would only be running one at a time… but even if you needed the extra license who cares…
I believe that this would allow for the servers to handle all fail over aspects and outage issues… it would also let the web servers grow to handle load.. you could dynamically add them as you needed them and based on load.
Off the top of my head I can’t think of anything else that would need to be.. but I’m sure others of you will see holes or have suggestions… to which I welcome your thoughts, comments and suggestions.