I put the servers behind an LVS load balancer. LVS is an L4 load balancer, so all servers
behind it must have identical functions and content. I use keepalive to monitor the servers
and automatically takes it out of the load balancer if it goes down. When I add a new
machine, just replicate it and put it in the load balancing farm. There is no idle machine
in this setup. It is totally redundant and highly available.


For the database server, you can have one master and slave MySQL server. You can use
the load balancer to balance them too. Keepalive has a concept of emergency server so
you can configure your slave MySQL server to be it.


What you described is kind of similar to a project that I was going to do - with a blade
server. The main data storage is on a NAS. The master blade acts as the load balancer/router/
NFS server. It boots from a flash disk with a small embedded Linux. All other blades can
boot from flash or PXE which downloads the OS from the NFS server, loads and runs a
small OS in memory. The application is NFS mounted read only. Logging can be done
via network log so the server can take a power outage well. For redundancy of the master
blade, you can dedicate another blade to monitor the master blade and takes over if the
master goes down.


Chris wrote:

Greetings,

We have developed a web application using mod_perl and MySQL. We chose the light Apache + mod_perl Apache + MySQL method.

What we would like to be able to do is come up with a fully redundant setup of machines so that we can sell this package to company's, install it in their datacenter and thats it.

We are not very hardware minded, so we are looking for suggestions on what kind of setup we should deploy. We want to keep redundancy and scalability as top priority.

One of our basic ideas was to have a setup of 6 machines and a raid array. 3 machines would act as the primary machines, the remaining 3 would be backup machines. That would leave us with a primary and backup light Apache, same with mod_perl same with MySQL.

We would like to separate these three entity's so that as the install gets larger and larger, all we need to do is add machines for that specific purpose and not have to re-arrange anything.

The machines would each have a small harddrive connected to them, which will contain the operating system. We would then have a raid setup which the individual machines would mount (via NFS?) the raid setup would contain the database files, the core code that powers the application, and any web files to be served.

Like I said, we are not big into hardware, and this may be overkill or totally wrong.

Any suggestions are highly appreciated!!


Reply via email to