Voor het bedrijf waar ik werk zijn we op zoek naar een nieuw webservercluster. We hosten zo'n 80 - 100 domeinen, varierend van simpele CMS'en tot ingewikkelde applicaties. Al deze websites zijn PHP met MySQL en leunen zwaar op hun database. De huidige oplossing, met een aantal losse webservers voldoet niet qua performance, availability en beheermogelijkheden.
We zijn daarom op zoek naar een nieuwe webserver oplossing. We zaten te denken aan een combinatie van loadbalancers, webservers en database- annex fileservers. De opzet zou ongeveer iets als volgt moeten worden:
Een dikke server bevat alle databases en bestanden voor alle domeinen. Deze is redundant uitgevoerd. Door middel van NFS hebben webservers toegang tot alle bestanden en handelen ze alle verzoeken af. De webservers hebben dus geen eigen data en config, alles gaat via NFS (config, websites, uploads, alles).
Het voordeel van deze oplossing is dat het transparant is voor alle websites. Het is niet nodig om websites aan te passen, omdat alle storage toch op een plek blijft. Het is eenvoudig om meer rekenkracht aan de webserverpool toe te voegen. Door middel van rsync en MySQL-replicatie kunnen de fileservers in sync blijven.
Voor de webservers zaten we te denken aan een aantal Dell PE 850's, voor de database/fileservers aan twee nieuwe PE 1950 met RAID 5 over 4 SAS schijven. Dit in verband met de grote verwachtte I/O.
Is dit een wijze setup? Zijn er valkuilen waar we op moeten letten?
We zijn daarom op zoek naar een nieuwe webserver oplossing. We zaten te denken aan een combinatie van loadbalancers, webservers en database- annex fileservers. De opzet zou ongeveer iets als volgt moeten worden:
Een dikke server bevat alle databases en bestanden voor alle domeinen. Deze is redundant uitgevoerd. Door middel van NFS hebben webservers toegang tot alle bestanden en handelen ze alle verzoeken af. De webservers hebben dus geen eigen data en config, alles gaat via NFS (config, websites, uploads, alles).
code:
1
2
3
4
5
| [loadbalancer] <--> [loadbalancer]
|
[webserver][webserver][...]
|
[fileserver/mysqlserver] <--> [fileserver/mysqlserver] |
Het voordeel van deze oplossing is dat het transparant is voor alle websites. Het is niet nodig om websites aan te passen, omdat alle storage toch op een plek blijft. Het is eenvoudig om meer rekenkracht aan de webserverpool toe te voegen. Door middel van rsync en MySQL-replicatie kunnen de fileservers in sync blijven.
Voor de webservers zaten we te denken aan een aantal Dell PE 850's, voor de database/fileservers aan twee nieuwe PE 1950 met RAID 5 over 4 SAS schijven. Dit in verband met de grote verwachtte I/O.
Is dit een wijze setup? Zijn er valkuilen waar we op moeten letten?