|
Home > Archive > Unix administration > June 2005 > HELP! I need to set up a fully redundant web server architecture
You are viewing an archived Text-only version of the thread.
To view this thread in it's original format and/or if you want to reply to
this thread please [click here]
| Author |
HELP! I need to set up a fully redundant web server architecture
|
|
| shannonwhitty@hotmail.com 2005-06-14, 8:52 pm |
| We currently have an architecture that DOES NOT WORK! We have been
toiling for the past 2-3 months with continual system downtime and
irate customers which we can no longer take. I need an infrastructure
that is fully redundant with DRP in place to ensure minimal downtime
but the problem is that I don't know what I need.
I currently have 7 Java/JSP web based applications residing on two
separate LX50 Linux machines. 5 applications are on one server and the
other two are on the other server.
All 7 applications connect to a DB2 database server with 3 separate
instances running. The database server is a Sunfire V240 machine
running Solaris.
What I need is an archtecture that has failover in place. I've heard
terms such as hot standby and clustering and want to know what I need
to have in place.
All I really need is:
A web server environment capable of hosting all 7 applications with a
DRP set-up should anything happen to quickly and easily switch over to
a hot standby (less than 5 minutes)
Same goes for the database environment...
Can anyone offer any suggestions or guidance on where I should start
looking?
Thank you
| |
| Dave Hinz 2005-06-14, 8:52 pm |
| On 14 Jun 2005 18:27:02 -0700, shannonwhitty@hotmail.com <shannonwhitty@hotmail.com> wrote:
> Can anyone offer any suggestions or guidance on where I should start
> looking?
We use an appliance from F5 which does several types of load balancing
in front of our web farm, and then an application server cluster
(Weblogic, but Tomcat or most others do it as well) consists of several
boxes all running the same apps.
Database servers will vary more in clustering strategies.
| |
| shannonwhitty@hotmail.com 2005-06-15, 2:49 am |
| I believe we had issues with load balancing with regards to losing
sessions across the distributed machines - is this a problem that is
easily fixed? I have a feeling that the guy setting it up for me was
not as advanced as I would have liked and couldn't get it working as
opposed to it just not working!!!
How do you mirror your environments across the application server
cluster with regards to updates?
We use Tomcat at the moment and would like to continue using it. So am
I right in assuming that we could do something along these lines:
1. Create an image of our web server environment and duplicate onto a
secondary machine
2. Make them both do exactly the same thing
3. Use F5 to load balance between these two machines.
4. If one goes down, the other will automatically pick up the slack?
5. Look at a 3rd and 4th machine to add to the cluster?
Where can I get some info about F5?
Thanks
| |
| Peter C. Tribble 2005-06-15, 7:48 am |
| In article <1118810718.825520.105710@g14g2000cwa.googlegroups.com>,
shannonwhitty@hotmail.com writes:
> I believe we had issues with load balancing with regards to losing
> sessions across the distributed machines - is this a problem that is
> easily fixed? I have a feeling that the guy setting it up for me was
> not as advanced as I would have liked and couldn't get it working as
> opposed to it just not working!!!
Tomcat 5 supports session replication. See, for example:
http://www.onjava.com/pub/a/onjava/...plication1.html
We put apache in front of the tomcat servers and use that to load
balance as well. That works pretty well if one of the tomcats goes down
- I couldn't notice a break in service when I tested it.
And then put hardware load balancing in front of that to catch apache
failing (which I've never seen) or a system failing (which does happen)
or needing maintenance.
One advantage of having a hardware load balancer is that you can get
away with cheap servers. That's the theory anyway. We got the cheap
servers but not the hardware load balancer :-(
> How do you mirror your environments across the application server
> cluster with regards to updates?
Well we're an academic site so we just find a quiet slot and
redeploy. But to do it properly you tell the front end (hardware and/or
apache) to stop using one of the servers. Then you can work on that,
and then put it back in the cluster.
--
-Peter Tribble
MRC Rosalind Franklin Centre for Genomics Research
http://www.petertribble.co.uk/ - http://ptribble.blogspot.com/
| |
| Mike Miller 2005-06-15, 7:48 am |
| In article <1118798822.112459.84340@g43g2000cwa.googlegroups.com>,
shannonwhitty@hotmail.com says...
> We currently have an architecture that DOES NOT WORK! We have been
> toiling for the past 2-3 months with continual system downtime and
> irate customers which we can no longer take. I need an infrastructure
> that is fully redundant with DRP in place to ensure minimal downtime
> but the problem is that I don't know what I need.
>
> I currently have 7 Java/JSP web based applications residing on two
> separate LX50 Linux machines. 5 applications are on one server and the
> other two are on the other server.
>
> All 7 applications connect to a DB2 database server with 3 separate
> instances running. The database server is a Sunfire V240 machine
> running Solaris.
>
> What I need is an archtecture that has failover in place. I've heard
> terms such as hot standby and clustering and want to know what I need
> to have in place.
>
> All I really need is:
>
> A web server environment capable of hosting all 7 applications with a
> DRP set-up should anything happen to quickly and easily switch over to
> a hot standby (less than 5 minutes)
>
> Same goes for the database environment...
>
> Can anyone offer any suggestions or guidance on where I should start
> looking?
>
> Thank you
>
>
Another possibility to look at is having diskless servers and using a boot
from SAN configuration. NetApp ( and probably others ) offer this ability.
Using this method keeps your down time for a failed server to the amount of
time it takes to boot the stand by server. NetApp also has a builtin
snapshot process so that if something gets lost or corrupted you can
recover it from the snapshot quickly.
--
Mike Miller
If all else fails - READ THE INSTRUCTIONS!
or if you like
"If all else fails - THROW HARDER" Robert Smith(pro bowler)
| |
| Dave Hinz 2005-06-15, 6:10 pm |
| On 14 Jun 2005 21:45:18 -0700, shannonwhitty@hotmail.com <shannonwhitty@hotmail.com> wrote:
> I believe we had issues with load balancing with regards to losing
> sessions across the distributed machines - is this a problem that is
> easily fixed?
Yes, you need to have "sticky sessioning" (could be called any number of
things) turned on. So, Joe User always goes to server #2 as long as
he's logged in, that sort of thing. You have to decide if the overhead
of "if machine 2 goes away, does Joe's information mean anything to the
other systems?". As rare as boxes go down, it may be acceptable for
that session to just end and Joe will have to log back in.
> I have a feeling that the guy setting it up for me was
> not as advanced as I would have liked and couldn't get it working as
> opposed to it just not working!!!
Well, there's "working", and "working well".
> How do you mirror your environments across the application server
> cluster with regards to updates?
All go down for updates & come back up together-ish. We ususally have
database changes that preclude dropping one at a time & updating it.
Webservers have a bit more flexibility, but the app servers pretty much
need to all be running the same code. For our apps, anyway.
> We use Tomcat at the moment and would like to continue using it. So am
> I right in assuming that we could do something along these lines:
> 1. Create an image of our web server environment and duplicate onto a
> secondary machine
Yes. Our several webservers are identical, with the same several dozen
sites running on each one. The only thing different is the "listen" and
the IP addresses. These machines are behind the F5 which load balances
on any number of schemes - round robin, least connections, or "least
busy compared to machine capacity" which I've never bothered with.
> 2. Make them both do exactly the same thing
Yes.
> 3. Use F5 to load balance between these two machines.
There ya go. If they're identical, then "least connections" makes
sense more so than round-robin, but if the site is busy enough the
difference in balancing schemes gets trivial.
> 4. If one goes down, the other will automatically pick up the slack?
Yes, but what happens to your application's session? Will Joe be known
by the other webserver if he authenticates there, (no), or by the
appserver if he comes from a different webserver? Is this a problem?
> 5. Look at a 3rd and 4th machine to add to the cluster?
Yes. 2 is obviously a minimum for a failover, 3 gives you a LOT more
flexibility. One goes down, you can run fine on 2. You can even update
things on the fly at the web layer - shut down apache as a "graceful" so
it finishes servicing the connections it has, and when the connections
are all gone, you can do whatever you need to it. Bring it back up,
graceful the next box, and work your changes through without impacting
production at all.
> Where can I get some info about F5?
Google for F5 load balancer, maybe? That's just who we use - cisco has
balancers, and a bunch of other people do as well. F5 doesn't suck.
| |
| shannonwhitty@hotmail.com 2005-06-21, 8:01 am |
| Tanks for your help - I think we've decided (95%) to take the
applications off-site and let them worry about the redundancy - thanks
for your assistance.
|
|
|
|
|