You are viewing a plain text version of this content. The canonical link for it is here.
Posted to modperl@perl.apache.org by Chris <ch...@comcast.net> on 2005/04/06 00:24:44 UTC

Configuration for redundancy?

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!!

Re: Configuration for redundancy?

Posted by Dzuy Nguyen <dz...@infinity-studios.com>.
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!!
>  
>